10. Februar 2014 16:16
10. Februar 2014 17:09
10. Februar 2014 21:23
Angebot:= SalesHeader."No.";
SalesLine.SETRANGE("Document No.", Angebot);
ImportDataport.SETTABLEVIEW(Angebot);
ImportDataport.RUN;
10. Februar 2014 22:43
10. Februar 2014 23:10
Echt, das geht nicht über den o.g. Code?McClane hat geschrieben:Du musst den Dataport mit einer Funktion erweitern, die eine Variable für die Angebotsnummer setzt.
10. Februar 2014 23:54
11. Februar 2014 08:29
11. Februar 2014 10:04
McClane hat geschrieben:Du musst den Dataport mit einer Funktion erweitern, die eine Variable für die Angebotsnummer setzt.
JRenz hat geschrieben:"Angebot" ist lt. deinem Programmcode eine Variable vom Typ "Code" mit Länge 20.
Ein SETTABLEVIEW mit einer Code-Variablen bringt m.W. nichts.
Du solltest SETTABLEVIEW(Salesline) verwenden, sofern die Tabelle "Sales Line" das DataItem im Dataport ist.
McClane hat geschrieben:Doch, du hast Recht, denke ich. Man kann vermutlich den Filter auf das DataItem bzw. die Belegnummer auslesen und im OnAfterImportRecord setzen. Aber eine Funktion wäre deutlicher zu verstehen und auch nicht mehr Aufwand.
11. Februar 2014 10:09
...
ImportDataport.SETTABLEVIEW(Angebot);
ImportDataport.RUN;
...
ImportDataport.SETTABLEVIEW(SalesLine);
ImportDataport.RUN;
11. Februar 2014 10:16
Angebot:= SalesHeader."No.";
SalesLine.SETRANGE("Document No.", Angebot);
ImportDataport.SETTABLEVIEW(SalesLine);
MESSAGE(Angebot);
11. Februar 2014 10:25
11. Februar 2014 10:25
JRenz hat geschrieben:Hallo,
da hast du mich falsch verstanden.
Ich meinte, dass du die Zeile mit SETTABLEVIEW ändern solltest, also von
- Code:
...
ImportDataport.SETTABLEVIEW(Angebot);
ImportDataport.RUN;
auf:
- Code:
...
ImportDataport.SETTABLEVIEW(SalesLine);
ImportDataport.RUN;
Angebot:= '123';//SalesHeader."No.";
SalesLine.SETRANGE("Document No.", Angebot);
ImportDataport.SETTABLEVIEW(SalesLine);
//MESSAGE(Angebot);
ImportDataport.RUN;
11. Februar 2014 10:34
11. Februar 2014 10:48
FJS hat geschrieben:Und diese Angebotsnummer sollte nun schon als Filter in dem Feld "Document No." stehen, damit nicht versehentlich falsche Zeilen importiert werden, nur ich weiß nicht, wie ich das bewerkstelligen soll.
11. Februar 2014 11:20
McClane hat geschrieben:@ Natalie und JRenz: klärt mich doch bitte mal auf, wieso ihr bei einem Import mit Settableview arbeiten wollt
11. Februar 2014 14:45
JRenz hat geschrieben:Hallo,
in diesem Fall gehe ich davon aus, dass deine Variable "SalesHeader" noch nicht initialisiert bzw. nícht auf dem gewünschten Datensatz steht.
Die Variable "SalesHeader" ist vermutlich eine lokale oder globale Record-Variable in der Codeunit.
Bekommt die Codeunit bzw. die Funktion beim Aufruf denn den aktuellen bzw. gewünschten Datensatz von deinem Verkaufsangebot?
Dann müsstest du noch zuerst noch mit deiner Record-Variablen ein GET oder SETRANGE + FINDFIRST ausführen, damit die Record-Variable auf dem richtigen Datensatz steht.
Gruß
Jörg
SalesHeader.GET;
Angebot:= (SalesHeader."No.");
SalesLine.SETRANGE("Document No.", Angebot);
ImportDataport.SETTABLEVIEW(SalesLine);
//MESSAGE(Angebot);
ImportDataport.RUN;
11. Februar 2014 14:52
11. Februar 2014 17:19
JRenz hat geschrieben:Hallo,
auch da kann dir wahrscheinlich geholfen werden, aber dazu solltest du uns zunächst mal die Programmstelle posten, an der die Codeunit bzw. die Funktion aus der Codeunit aufgerufen wird und solltest du uns noch die gesamte Funktion (zumindest den Funktionsbeginn, damit eventuelle Parameter sichtbar sind) senden.
Gruß
Jörg
SalesHeader.GET;
Angebot:= (SalesHeader."No.");
SalesLine.SETRANGE("Document No.", Angebot);
ImportDataport.SETTABLEVIEW(SalesLine);
ImportDataport.RUN;
11. Februar 2014 18:42
SalesHeader.GET(rec."Document Type",rec."No.");
11. Februar 2014 21:15
11. Februar 2014 21:19
FJS hat geschrieben:Bingo! Tausend Dank Euch allen, jetzt klappt`s.