gefilterte Form öffnen und ausgewählter Datensatz eintragen

10. Juli 2008 09:23

Guten Morgen Leute,

ich hab folgendes Problem:

Ich möchte eine gefilterte Form aufrufen und über einen Button einen Teil des ausgewählten Datensatzes, bzw. Datensätze in die Zeile aus der die Form aufgerufen wurde einfügen.

Versteht mich jmd und kann mir helfen ????

Vielen Dank und Gruß

10. Juli 2008 09:33

Um auf der Form, in der du die Datensätze markierst, an diese Datensätze zu kommen, verwende dort SETSELECTIONFILTER (siehe Suche hier im Forum und natürlich Onlinehilfe).
Diese Datensätze musst du an die Funktion zurück geben, mit Hilfe derer du die Form überhaupt aufgerufen hast.

10. Juli 2008 10:25

Bis hier hin klappt das jetzt schon, nur wenn ich wieder auf meine Funktion zurück wechsel, hat diese die Beziehung zu dem Datensatz, bei dem die Funktion aufgerufen wurde, schon wieder verloren.
Die funktion rufe ich aus einer form heruas auf.


Gruß

10. Juli 2008 10:59

Zeig doch uns mal bitte deinen Quelltext dazu (bitte zwischen so genannte Code-Tags schreiben, damit der Quelltext mit seinen Formatierungen lesbar bleibt, biespiel [code]Dein Quelltext;[/code]

10. Juli 2008 11:16

Ich will eine / mehrere Verkaufszeilen, bzw. nur ein paar Felder, einfügen.
Ich rufe über ein Menu Item eine Form mit entsprechenden Filterwerten auf.
Jetzt will ich über einen Button die ausgewählten Zeilen einfügen.

OnPush - beim Button
Code:
CurrForm.SETSELECTIONFILTER(Rec);
HelpLine.InsertSalesLines(Rec);
CurrForm.CLOSE;


HelpLine -InsertSalesLines
Code:
InsertSalesLines(SalesLine : Record "Sales Line")

HelpServLine.RESET;
HelpServLine.SETRANGE("Document Type","Document Type");
HelpServLine.SETRANGE("Document No.","Document No.");
IF FINDLAST THEN BEGIN
  HelpServLine."Line No." += 10000;
  HelpServLine."No." := SalesLine."No.";
  HelpServLine.INSERT;
END;


Jetzt soll zB. nur die ArtikelNr in der HelpServLine eingetragen werden, diese finde ich aber nicht, da inzwischen die HelpLine verloren ging.

10. Juli 2008 11:24

Nochmal ... In welcher Form rufst du den Button auf (VK-Auftrag?)
Diese Form nenn ich jetzt Form1.

Nun öffnet sich eine neue Form (Form2), in der du Datensätze auswählst - was sind das für welche? Auftragszeilen? Rechnungszeilen?

Und in welcher Form wird nun welche Funktion aufgerufen?

SETSELECTIONFILTER gehört allein in Form2.

In InsertSalesLines fehlt eine Record-Variable vor FINDLAST. Außerdem verstehe ich nicht, was du da durchsuchst und warum du mittels FINDLAST nur den letzten Datensatz bestimmen willst.`
Steht ServLine für Service Line?

10. Juli 2008 11:56

waaaah :D

Form1 öffnet Form2 und da klick ich dann den Button, der ruft die Funktion InsertSalesLines in Form1 auf und da soll eine neue zeile reinkommen.

10. Juli 2008 12:36

Schau dir mal den Code in Form 18 an, Funktion GetSelectionFilter.

Diese Funktion brauchst du auf deiner Form2 auch, damit du den gewählten Records aus Form1 heraus aufrufen kannst.