PICTURE für IBAN [erledigt]

Grafische Primitive, XbaseParts und Darstellungsfragen allgemein.

Moderator: Moderatoren

Antworten
Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 12906
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg
Hat sich bedankt: 19 Mal
Danksagung erhalten: 45 Mal

PICTURE für IBAN [erledigt]

Beitrag von AUGE_OHR »

hi,

ich habe für DE als PICTURE

Code: Alles auswählen

'@S25 !!99999999999999999999999999999999'
und analog für andere Länder jeweils die passende PICTURE.
nun frage ich mich ob man das nicht eleganter lösen könnte als mit einer riesigen DO CASE Abfrage ?

Code: Alles auswählen

CASE cCiLaenderCode = "BE" ; cCiIban := Space(16)
CASE cCiLaenderCode = "DK" ; cCiIban := Space(18)
CASE cCiLaenderCode = "DE" ; cCiIban := Space(22)
CASE cCiLaenderCode = "FR" ; cCiIban := Space(27)
CASE cCiLaenderCode = "LI" ; cCiIban := Space(21)
CASE cCiLaenderCode = "LU" ; cCiIban := Space(20)
CASE cCiLaenderCode = "NL" ; cCiIban := Space(18)
CASE cCiLaenderCode = "AT" ; cCiIban := Space(20)
CASE cCiLaenderCode = "SE" ; cCiIban := Space(24)
CASE cCiLaenderCode = "CH" ; cCiIban := Space(21)
Zuletzt geändert von AUGE_OHR am Fr, 24. Jan 2014 6:24, insgesamt 1-mal geändert.
gruss by OHR
Jimmy
Benutzeravatar
Jan
Marvin
Marvin
Beiträge: 14653
Registriert: Fr, 23. Sep 2005 18:23
Wohnort: 49328 Melle
Hat sich bedankt: 21 Mal
Danksagung erhalten: 88 Mal
Kontaktdaten:

Re: PICTURE für IBAN

Beitrag von Jan »

Hallo Jimmy,

wenn es um Ausdrucke auf Rechnungen etc. geht: Bitte denke daran, das der Kunde oder Lieferant ein solches Zahlenungetüm sehr schlecht lesen kann. Man sollte die unterteilen, wie das schon bei den Kontonummern und BLZ üblich ist. Ich habe vielfach gesehen: Die beiden letzten Stellen separat, und dann in 4er-Schritten nach vorne arbeiten. Ob das so korrekt ist weiß ich nicht. Aber sinnvoll ist das allemal. Vor Allem z. B. bei den auffüll-Nullen zwischen BLZ und Kontonummer.

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

Re: PICTURE für IBAN

Beitrag von Wolfgang Ciriack »

Es sollten immer 4er-Blöcke von vorne sein, da bei DE 22 Stellen sind, bleiben hinten 2 übrig, also für DE z.B.
PICT '!!99 9999 9999 9999 9999 99'.
Viele Grüße
Wolfgang
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15696
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 66 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Re: PICTURE für IBAN

Beitrag von brandelh »

Hallo Jimmy,
mach doch eine Funktion mit Array ... etwa so

Code: Alles auswählen

function getPictIBAN(cLand)
   local x, cTxt := "*** IBAN ???? ***"
   static aIBAN := nil
   DEFAULT cLand := "??"
   cLand := left(upper(cLand+"??"),2)
   aIBAN := { {"DE",22},.... }
   x     := aScan(aIBAN, {|x| x[1]==cLand} ) 
   if x > 0
      x := aIBAN[x,2] + int(x/4)
      // wenn möglich und gewünscht mit Land voran, das könnte aber Eingabeprobleme geben ...
      cTxt := left(cLAND+"99 "+Replicate("9999 ",10),x) 
      // diese geht auf jeden Fall und ist flexibler
      cTxt := left("!!99 "+Replicate("9999 ",10),x)
   endif
return cTxt
Gruß
Hubert
Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 12906
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg
Hat sich bedankt: 19 Mal
Danksagung erhalten: 45 Mal

Re: PICTURE für IBAN

Beitrag von AUGE_OHR »

brandelh hat geschrieben:mach doch eine Funktion mit Array ... etwa so

Code: Alles auswählen

      cTxt := left(cLAND+"99 "+Replicate("9999 ",10),x) 
      // diese geht auf jeden Fall und ist flexibler
      cTxt := left("!!99 "+Replicate("9999 ",10),x)
return cTxt
hm ... mit REPLICATE einen Picture String zusammenstellen ... ja das wäre eine Idee, DANKE.
gruss by OHR
Jimmy
Antworten