Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Formatierung einer Kontonummer im SQL Statement (https://www.delphipraxis.net/158818-formatierung-einer-kontonummer-im-sql-statement.html)

nachtstreuner 4. Mär 2011 09:38

Datenbank: mysql • Version: 4+ • Zugriff über: zeos

Formatierung einer Kontonummer im SQL Statement
 
Hallo Delphianer,

und wiedermal ein kleines Problem.

In einem SQL Select Statement wird die Kontonummer abgefragt und für einen Rave-Report verwendet.

Nun gibt es ja Vorschriften, die besagen, dass auf einer elektronisch erstellten Rechnung, die letzten 3 bzw. 4 Stellen der
Kontonummer ausgeblendet bzw. durch 'xxx' ersetzt werden müssen.

Beispiel DB Eintrag KtoNr = '69802036 auf dem Report sollte aber nur '6980xxxx' zu sehen sein.

Ist es einfacher im Select befehl dies als ein zusätzliches Feld (Select ktoNr as xKtNr) mit einem Formatbefehl auszugeben, oder im Rave-report dies umzuformatieren?

Bin gespannt auf Eure Vorschläge! Danke

lg
Nachtstreuner

DeddyH 4. Mär 2011 10:18

AW: Formatierung einer Kontonummer im SQL Statement
 
Du kannst doch bei der Abfrage mit SUBSTR die letzten 4 Stellen auslassen und per Konkantenation die "xxxx" anhängen.

nachtstreuner 4. Mär 2011 10:25

AW: Formatierung einer Kontonummer im SQL Statement
 
Hallo DeddyH,

Danke für Deine Antwort, das Feld ist vom Typ Integer(wurde nicht von mir so deklariert), da funzt Substr nicht

himitsu 4. Mär 2011 10:26

AW: Formatierung einer Kontonummer im SQL Statement
 
Vorher einfach noch in einen String ( VARCHAR? ) casten?

Sicher daß die Letzten weggelassen werden sollen?
z.B. von PayPal und meinem Provider kenn ich es andersrum, also nur die letzen 4 Ziffern sichtbar.

DeddyH 4. Mär 2011 10:40

AW: Formatierung einer Kontonummer im SQL Statement
 
SQL-Code:
SELECT
  CONCAT(CAST((KtoNr DIV 10000) AS CHAR), 'xxxx')
FROM
  Tabelle

ibp 4. Mär 2011 10:45

AW: Formatierung einer Kontonummer im SQL Statement
 
Zitat:

Zitat von nachtstreuner (Beitrag 1085801)
Kontonummer ausgeblendet bzw. durch 'xxx' ersetzt werden müssen.

liefert dir die kto-nummer ohne die letzten vier stellen truncate(ktonummer/10000,0)


mmmhh kein roter Kasten...

nachtstreuner 4. Mär 2011 12:26

AW: Formatierung einer Kontonummer im SQL Statement
 
Danke an allen, werde beide Vorschläge morgen testen.

Ein schönes Wochenende

Nachtstreuner

shmia 4. Mär 2011 13:20

AW: Formatierung einer Kontonummer im SQL Statement
 
Also ich würde diese spezielle Art der Formatierung ganz klar auf der Clientseite, also im Programm, vornehmen.

Dies lässt sich z.B. mit dem Event OnGetText erreichen:
Delphi-Quellcode:
procedure TFormReport.KontoNummerOnGetText(Sender: TField; var Text: String; DisplayText: Boolean);
begin
  Text := Sender.AsString;
  Text := copy(Text, 1, Length(Text)-3) + 'XXX';
end;
Ich würde in SQL auch keinesfalls durch 1000 dividieren, denn es gilt
eine KontoNummer ist keine Nummer sondern ein String.
Genausowenig ist eine Postleitzahl eine Zahl, sondern sie ist ein String der eben nur aus Ziffern besteht.
Das gleiche gilt auch für die Sozialversicherungsnummer.

omata 4. Mär 2011 13:29

AW: Formatierung einer Kontonummer im SQL Statement
 
Zitat:

Zitat von shmia (Beitrag 1085874)
eine KontoNummer ist keine Nummer sondern ein String.
Genausowenig ist eine Postleitzahl eine Zahl, sondern sie ist ein String der eben nur aus Ziffern besteht.
Das gleiche gilt auch für die Sozialversicherungsnummer.

@shmia: :thumb:

DeddyH 4. Mär 2011 16:23

AW: Formatierung einer Kontonummer im SQL Statement
 
Das wird demjenigen, der mit der vorhandenen DB arbeiten muss und nur den Report erstellen darf, nicht viel nützen. Ich spreche da aus Erfahrung.


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:37 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz