Filter auf Tabelle Field greift nicht

8. Mai 2015 09:54

Hallo zusammen

Ich möchte über die Tabelle 'Field' einen Filter legen auf eine bestimmte Tabelle, damit ich einen String daraus zusammenbauen kann. Das habe ich so gelöst:

Code:
Fields.SETRANGE(TableNo, _TableNo);
IF Fields.FINDSET THEN BEGIN
  cnt := 1;
  REPEAT
    IF Fields.TableNo = _TableNo THEN BEGIN                // Workaround, da der SETRANGE-Befehl auf Tabelle Field nicht greift
      RetVal := RetVal + '[%' + FORMAT(cnt) +'], ';
      cnt += 1;
    END;
  UNTIL Fields.NEXT = 0;
  RetVal := COPYSTR(RetVal, 1, STRLEN(RetVal)-2);
  RetVal := RetVal + ')';
END;


Komischerweise greift der Filter nicht (darum temporär die Abfrage auch die TableNo in der Schleife. Das hat aber schon funktioniert. Erst als die Tabelle neue Felder bekam, trat dieser Effekt auf.

Hat jemand vielleicht eine Idee? Besten Dank schon mal im Voraus.

Re: Filter auf Tabelle Field greift nicht

8. Mai 2015 09:59

rotsch hat geschrieben:Erst als die Tabelle neue Felder bekam, trat dieser Effekt auf.

Was meinst du damit? Welche Tabelle, was für neue Felder?

Re: Filter auf Tabelle Field greift nicht

8. Mai 2015 10:03

Natalie hat geschrieben:Was meinst du damit? Welche Tabelle, was für neue Felder?


In Variable _TableNo steht die ID einer beliebigen Tabelle (die wurde indiv. erstellt). Und in dieser Tabelle sind neue Felder dazugekommen.

Re: Filter auf Tabelle Field greift nicht

8. Mai 2015 10:34

Hallo,

das kannst du aber auch ein wenig einfacher haben :mrgreen:

Code:
RecRef.Open(3); // Payment Terms
for i:= 1 to RecRef.FieldCount do begin
   if txt <>'' then
     txt +=', ';
   Txt +=Strsubstno('[%%1]',i);
end;
Message(txt);


Oder falls du das hier erreichen wolltest
Code:
RecRef.Open(3);
for i:= 1 to RecRef.FieldCount do begin
   if txt <>'' then
     txt +=', \';
//   Txt +='['+RecRef.FIELDINDEX(i).Name+']';
   Txt +='['+RecRef.FIELDINDEX(i).Caption+']';
end;
Message(txt);


Gruß, Fiddi

Re: Filter auf Tabelle Field greift nicht

8. Mai 2015 11:10

fiddi hat geschrieben:das kannst du aber auch ein wenig einfacher haben :mrgreen:


Hallo, Fiddi, danke für den Code. Das ist einfacher, da hast du recht :-D

Das Problem mit dem Filter auf Tabelle Field ist damit nicht gelöst, aber so habe ich eine gute Alternative.

Re: Filter auf Tabelle Field greift nicht

8. Mai 2015 11:17

Das Problem mit dem Filter auf Tabelle Field ist damit nicht gelöst, aber so habe ich eine gute Alternative.


Hast du nach der Tabellenänderung mal den Servicetier neu gestartet, um zu testen, ob evtl. die Daten nur nicht aktuell sind, die du dort siehst?

Gruß Fiddi