express++ dcsay Picture Dezimalzahl

Moderator: Moderatoren

Antworten
Alfred
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 476
Registriert: Do, 03. Mai 2007 12:37
Wohnort: München

express++ dcsay Picture Dezimalzahl

Beitrag von Alfred »

Hallo,

Code: Alles auswählen

@5,10 DCSAY 'Betrag' Get nBetrag
Welche Picture verwendet ihr für eine Dezimalzahl mit 2 Stellen, die auch
Minus sein kann.
'XXX.XXX,XX' liefert zwar einen . und ein Komma, was aber z.B. bei der
Eingabe von -34,50 nicht sehr sinnvoll ist wenn der Cursor links steht.

Wo finde ich denn was welche Zeichen in der Picture in express bewirken.

Gruß
Alfred
Benutzeravatar
Wolfgang Ciriack
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2941
Registriert: Sa, 24. Sep 2005 9:37
Wohnort: Berlin
Hat sich bedankt: 13 Mal
Danksagung erhalten: 34 Mal
Kontaktdaten:

Beitrag von Wolfgang Ciriack »

Hallo Alfred,
die picture-Formate findest du in der XBase-Hilfe unter @get..

Für Zahlen verwende ich (je nach Nachkommastellen) "999999.999", für Währungen "@E 9,999,999.99".
Viele Grüße
Wolfgang
Alfred
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 476
Registriert: Do, 03. Mai 2007 12:37
Wohnort: München

Beitrag von Alfred »

Hallo Wolfgang,

ich glaube ich weiß wo mein Problem liegt.

Wie dimensioniert man denn in Alaska eine Speichervariable?

In VB6 heißt es zum Beispiel Dim cName as String.

Gruß
Alfred
Benutzeravatar
Wolfgang Ciriack
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2941
Registriert: Sa, 24. Sep 2005 9:37
Wohnort: Berlin
Hat sich bedankt: 13 Mal
Danksagung erhalten: 34 Mal
Kontaktdaten:

Beitrag von Wolfgang Ciriack »

Hallo Alfred,
das ist bei Clipper/Xbase++ nicht so streng. Im Prinzip kannst du einer Variablen zuordnen was du möchtest. Deshalb haben sich auch viele angewöhnt, vor den Variablennamen einen Kenner zu schreiben, so z.B. nNummer, cString oder lLogisch.
In deinem Beispiel also:

nBetrag:=1000
...DCGET nBetrag PICT "99999.99" (oder mit "@E 999,999.99")
Viele Grüße
Wolfgang
Benutzeravatar
Jan
Marvin
Marvin
Beiträge: 14660
Registriert: Fr, 23. Sep 2005 18:23
Wohnort: 49328 Melle
Hat sich bedankt: 21 Mal
Danksagung erhalten: 88 Mal
Kontaktdaten:

Beitrag von Jan »

Es ist aber doch sinnvoll, Variablen grundsätzlich zu deklarieren. Auch wenn das nicht zwingend ist. Macht man das nicht, werden die automatisch PUBLIC. Meist reicht aber LOCAL vollkommen aus.

Aber wie in VB, wo man komplett angeben muß, was für ein Typ die Variable sein soll (AS String/Boolean/Double/Int/RecordSet/etc.) gibt es aber unter Clipper/Xbase++ nicht. Man kann also auch einfach mitten in der Funktion den Variablentypen bei gleichem Variablennamen einfach ändern. Ohne das das irgendwo stört. Außer in der Übersichtlichkeit vielleicht.

Jan
Alfred
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 476
Registriert: Do, 03. Mai 2007 12:37
Wohnort: München

Beitrag von Alfred »

Hallo Wolfgang,


LOCAL nBetrag = 0 und PICTURE '999,999.99' funktioniert.

Nur wie belegt man ein leeres Datum vor.

Gruß
Alfred
Benutzeravatar
Martin Altmann
Foren-Administrator
Foren-Administrator
Beiträge: 16552
Registriert: Fr, 23. Sep 2005 4:58
Wohnort: Berlin
Hat sich bedankt: 114 Mal
Danksagung erhalten: 48 Mal
Kontaktdaten:

Beitrag von Martin Altmann »

Hallo Alfred,
was ist denn mit:

Code: Alles auswählen

local dDatum := CToD( "" )
Viele Grüße,
Martin
:grommit:
Webseite mit XB2.NET und ausschließlich statischem Content in Form von HTML-Dateien: https://www.altem.de/
Webseite mit XB2.NET und ausschließlich dynamischem Content in Form von in-memory-HTML: https://meldungen.altem.de/

Mitglied der XUG Osnabrück
Vorsitzender des Deutschsprachige Xbase-Entwickler e. V.
Benutzeravatar
Wolfgang Ciriack
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2941
Registriert: Sa, 24. Sep 2005 9:37
Wohnort: Berlin
Hat sich bedankt: 13 Mal
Danksagung erhalten: 34 Mal
Kontaktdaten:

Beitrag von Wolfgang Ciriack »

Ja, so wie Martin es schrieb oder mit der Funktion blank() aus den XBTools:

dDatum:=blank(date())
Viele Grüße
Wolfgang
Antworten