Codefelder verbinden CC

Bild Microsoft Dynamics NAV 2009 (aka "NAV 6")
Forumsregeln
Impressum • Community-Knigge • Nutzungsbedingungen • Datenschutzrichtlinie

Bitte unbedingt angeben, ob sich eure Frage auf den RoleTailored-Client (RTC) oder den Classic-Client (CC) bezieht!

Codefelder verbinden CC

Beitragvon thfreidank » 22. August 2017 14:20

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 ?
thfreidank
 
Beiträge: 16
Registriert: 6. Juli 2006 13:59
Realer Name: Thomas Freidank
Arbeitsort: BĂĽchen
Bezug zu Microsoft Dynamics: End-Anwender
Microsoft Dynamics Produkt: Microsoft Dynamics NAV
Microsoft Dynamics Version: 2009 R2

Re: Codefelder verbinden CC

Beitragvon elTorito » 22. August 2017 14:36

Hi,

ich verstehe die Frage/Aufgabe nicht richtig.

Evtl. IF Abfrage?

Code: Alles auswählen
StrAusgabe :=''

IF FELD1 <> ''
  StrAusgabe :='' StrAusgabe + '1';

IF FELD1 <>'' AND FELD2<>''  THEN
  StrAusgabe :='' StrAusgabe + ',';

IF FELD2<>''  THEN
  StrAusgabe :='' StrAusgabe + '2';
...
...
..
gruĂź Peter
Die letzten Worte eines Dieselfahrers: "lieber tot als Schub verlieren" Dieselfahrverbot
(Oo)=*=(oO)
Benutzeravatar
elTorito
 
Beiträge: 1042
Registriert: 16. Juni 2006 17:57
Wohnort: Viersen
Realer Name: Peter Karsten
Arbeitsort: Viersen
Bezug zu Microsoft Dynamics: Microsoft Partner
Microsoft Dynamics Produkt: Microsoft Dynamics NAV
Microsoft Dynamics Version: 2.60 ... NAV2009 -> NAV2018

Re: Codefelder verbinden CC

Beitragvon Ted » 22. August 2017 15:21

Ich wuerde es so machen: (hab dein Komma durch nen _ ersetz damit man es besser lesen kann)
Code: Alles auswählen
Ausgabe := Feld1;
Ausgabe += DELCHR(('_' + Feld2), '>', '_');
Ausgabe += DELCHR(('_' + Feld3), '>', '_');

Ausgabe := DELCHR(Ausgabe,  '<', '_');
GruĂź
Ted
Ted
 
Beiträge: 328
Registriert: 18. September 2014 11:16
Realer Name: Dennis Reinecke
Arbeitsort: Berlin
Bezug zu Microsoft Dynamics: End-Anwender
Microsoft Dynamics Produkt: Microsoft Dynamics NAV
Microsoft Dynamics Version: 2015+

Re: Codefelder verbinden CC

Beitragvon fiddi » 22. August 2017 15:28

Hallo,

ich wĂĽrde folgenden Code bevorzugen:
Code: Alles auswählen
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: Alles auswählen
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
Wer aufhört besser zu werden, hat aufgehört gut zu sein. (frei nach Philip Rosenthal)
Frage beantwortet? Schreibe bitte [Gelöst] vor den Titel des ersten Beitrags.
Bitte erst suchen, dann fragen. Bitte beachte den kleinen Community-Knigge.
Kein Support per PN, Mail, IM oder Telefon! DafĂĽr ist dieses Forum da.
fiddi
Moderator
Moderator
 
Beiträge: 7091
Registriert: 9. Juni 2008 10:13
Realer Name: Hans Heinrich Fiddelke
Arbeitsort: Bremen
Bezug zu Microsoft Dynamics: Microsoft Partner
Microsoft Dynamics Produkt: Microsoft Dynamics NAV
Microsoft Dynamics Version: NAV2.6-aktuell

Re: Codefelder verbinden CC

Beitragvon Raik Zobel » 22. August 2017 16:01

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: Alles auswählen
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, '<>', ','));
Benutzeravatar
Raik Zobel
 
Beiträge: 279
Registriert: 4. März 2013 13:43
Realer Name: Raik Zobel
Arbeitsort: Leipzig
Bezug zu Microsoft Dynamics: Microsoft Partner
Microsoft Dynamics Produkt: Microsoft Dynamics NAV
Microsoft Dynamics Version: 4.00SP3, 2013R2, 2016

Re: Codefelder verbinden CC

Beitragvon Natalie » 22. August 2017 16:09

Mein persönlicher Pokal geht an Ted! :-D
Sehr elegant.
Benutzeravatar
Natalie
Moderator
Moderator
 
Beiträge: 9257
Registriert: 31. Oktober 2006 19:51
Bezug zu Microsoft Dynamics: Microsoft Partner
Microsoft Dynamics Produkt: Microsoft Dynamics NAV

Re: Codefelder verbinden CC gelöst

Beitragvon thfreidank » 22. August 2017 20:01

Liebe Leute
vielen Dank fĂĽr die schnellen Reaktionen. :-D
Damit habe ich eine Lösung gefunden
Thomas
thfreidank
 
Beiträge: 16
Registriert: 6. Juli 2006 13:59
Realer Name: Thomas Freidank
Arbeitsort: BĂĽchen
Bezug zu Microsoft Dynamics: End-Anwender
Microsoft Dynamics Produkt: Microsoft Dynamics NAV
Microsoft Dynamics Version: 2009 R2


ZurĂĽck zu NAV 2009

Wer ist online?

Mitglieder in diesem Forum: Unbekannter Crawler und 1 Gast