Seite 1 von 1

express++ dcsay Picture Dezimalzahl

Verfasst: Fr, 22. Jun 2007 20:59
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

Verfasst: Sa, 23. Jun 2007 7:46
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".

Verfasst: Sa, 23. Jun 2007 11:17
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

Verfasst: Sa, 23. Jun 2007 17:44
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")

Verfasst: Sa, 23. Jun 2007 19:07
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

Verfasst: Sa, 23. Jun 2007 23:59
von Alfred
Hallo Wolfgang,


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

Nur wie belegt man ein leeres Datum vor.

Gruß
Alfred

Verfasst: So, 24. Jun 2007 0:10
von Martin Altmann
Hallo Alfred,
was ist denn mit:

Code: Alles auswählen

local dDatum := CToD( "" )
Viele Grüße,
Martin

Verfasst: So, 24. Jun 2007 13:46
von Wolfgang Ciriack
Ja, so wie Martin es schrieb oder mit der Funktion blank() aus den XBTools:

dDatum:=blank(date())