30. Dezember 2009 05:02
Hallo zusammen, habe ein Problem mit dem XML - Export. Ich möcht nur einen bestimmten Datensatz aus einer Tabelle exportieren. Wenn sich ein User am Client anmeldet, soll nach erfolgter Arbeit, ein bestimmter Datensatz aus einer Tabelle exportiert werden. Der Filter soll dabei auf der USERID liegen. Die Codeunit sieht dabei folgendermaßen aus:
- Code:
Root := USERID;
ofile.CREATE(FileDialog.OpenFile('Dateipfad....',Root,4,'.xml' + '|*' + '.xml',2));
ofile.CREATEOUTSTREAM(ostream);
XMLPORT.EXPORT(123456780,ostream);
ofile.CLOSE;
MESSAGE('XML-Port erfolgreich');
Funktioniert wunderbar.
Exportiert werden soll nur der Datensatz, dessen ID mit dem Anmeldenamen übereinstimmt. Die systemweite Variable dafür ist die USERID. Ich kann die USERID auch in einem Trigger des XMLPORT aufrufen und testweise über eine Messagebox ausgeben. Funktioniert einwandfrei. Nur jeglicher Versuch einen Filter zu setzten auf diese USERID funktioniert nicht. Nicht im Trigger, nicht in den Properties (SourceTableView). In den Proberties funktioniert es nur, wenn ich z.B. folgenden Code dort von Hand eingebe:
- Code:
WHERE(User ID=CONST(SUPER))
Super ist eine definierte Rolle / User ID. Wenn ich SUPER durch die Variable USERID ersetze, wird kein Datensatz ausgelesen.
Wie kann man denn nun in einem XMLPort (Export) einen vernünftigen Filter setzten, den ich nicht von Hand jedesmal eingeben muss, sondern davon abhängt, welcher User sich jeweils am Client anmeldet?
In einem Forumsbeitrag habe ich etwas über SETTABLEVIEW gelesen, das in einen bestimmten Trigger des xmlports geschrieben wird. Hat bei mir aber nicht funktioniert und ist mir auch ein Rätsel geblieben.
Gibt es da eine Möglichkeit? Wäre schön, wenn mir da jemand helfen könnte.
Vielen Dank
Manfred
Zuletzt geändert von MJonas am 19. Januar 2010 16:03, insgesamt 1-mal geändert.