Seite 1 von 1
Codefelder verbinden CC
Verfasst: 22. August 2017 14:20
von thfreidank
Hallo an alle,
ich habe 6 Codefelder, die sollen je nach Inhalt einem Ausgabefeld als Filter verknüpft werden.
Wenn Feld <> '' dann Verketten mit Komma, oder als Separates Feld ohne Komma.
Beispiele:
Feld 1=1
Feld 2=2
Feld 3=3
Ausgabe: 1,2,3
Feld 1=''
Feld 2=2
Feld 3=3
Ausgabe: 2,3
Feld 1=''
Feld 2=''
Feld 3=3
Ausgabe: 3
hat jemand eine Lösung ?
Re: Codefelder verbinden CC
Verfasst: 22. August 2017 14:36
von elTorito
Hi,
ich verstehe die Frage/Aufgabe nicht richtig.
Evtl. IF Abfrage?
- Code:
StrAusgabe :=''
IF FELD1 <> ''
StrAusgabe :='' StrAusgabe + '1';
IF FELD1 <>'' AND FELD2<>'' THEN
StrAusgabe :='' StrAusgabe + ',';
IF FELD2<>'' THEN
StrAusgabe :='' StrAusgabe + '2';
...
...
..
Re: Codefelder verbinden CC
Verfasst: 22. August 2017 15:21
von Ted
Ich wuerde es so machen: (hab dein Komma durch nen _ ersetz damit man es besser lesen kann)
- Code:
Ausgabe := Feld1;
Ausgabe += DELCHR(('_' + Feld2), '>', '_');
Ausgabe += DELCHR(('_' + Feld3), '>', '_');
Ausgabe := DELCHR(Ausgabe, '<', '_');
Re: Codefelder verbinden CC
Verfasst: 22. August 2017 15:28
von fiddi
Hallo,
ich würde folgenden Code bevorzugen:
- Code:
Ausgabe:='';
if Feld1 <>'' then
Ausgabe := Feld1;
if Feld2 <> '' then begin
if Ausgabe <> '' then
Ausgabe +=','
Ausgabe += Feld2;
end;
if Feld3 <> '' then begin
if Ausgabe <> '' then
Ausgabe +=','
Ausgabe += Feld3;
end;
Etwas einfacher wird es, wenn die Felder als Array vorliegen:
- Code:
Ausgabe :='';
for I:=1 to arraylen(Feld) do begin
if Feld[i] <>'' then begin
if Ausgabe <> '' then
Ausgabe +=','
Ausgabe += Feld[i];
end;
end;
Was soll denn passieren, wenn in Feld1 und Feld3 etwas steht?
Gruß Fiddi
Re: Codefelder verbinden CC
Verfasst: 22. August 2017 16:01
von Raik Zobel
Ich will dann auch noch :)
Bei mir wäre es eine Funktion, die alle Felder aufnimmt und einen String zurück gibt. Ich verbinde alle Felder mit einem Komma; In der While-Schleife werden alle doppelten Kommas zu einfachen Kommas gemacht. Am Ende werden noch evtl. vorhandene Kommas am Anfang oder Ende des Strings entfernt.
MultipleTextToString(Feld1 : Code[10];Feld2 : Code[10];Feld3 : Code[10];Feld4 : Code[10];Feld5 : Code[10];Feld6 : Code[10]) : Text
- Code:
String := Feld1 + ',' + Feld2 + ',' + Feld3 + ',' + Feld4 + ',' + Feld5 + ',' + Feld6;
FindWhat := ',,';
ReplaceWith := ',';
WHILE STRPOS(String,FindWhat) > 0 DO
String := DELSTR(String,STRPOS(String,FindWhat)) + ReplaceWith + COPYSTR(String,STRPOS(String,FindWhat) + STRLEN(FindWhat));
exit(DELCHR(String, '<>', ','));
Re: Codefelder verbinden CC
Verfasst: 22. August 2017 16:09
von Natalie
Mein persönlicher Pokal geht an
Ted!
Sehr elegant.
Re: Codefelder verbinden CC gelöst
Verfasst: 22. August 2017 20:01
von thfreidank
Liebe Leute
vielen Dank für die schnellen Reaktionen.
Damit habe ich eine Lösung gefunden
Thomas