[RTC] Endlosschleife CONFIRM in Page OnAfterGetRecord

Bild Microsoft Dynamics NAV 2018

[RTC] Endlosschleife CONFIRM in Page OnAfterGetRecord

Beitragvon elTorito » 30. März 2022 10:52

Guten Morgen,

beim öffnen einer Page soll auf eine bestimmte Eigenschaft geprüft werden, wenn diese zutrifft soll ein Hinweis (CONFIRM Dialog) kommen, wird dieser mit Ja angeklickt, soll ein report automatisch gedruckt werden.

Dazu habe ich im OnAfterGetRecord auf der Page folgende Programmierung:

Code: Alles auswählen
IF WhsePickWithAssemblyOrder() THEN
  IF CONFIRM(Montageauftrag vorhanden, drucken?,TRUE) THEN BEGIN
    CustomerFncs.PrintAssemblyOrder(Rec);
END;


PrintAssemblyOrder:
Code: Alles auswählen
AssemblyOrderreportID := 902;
IF WhsePickWithAssemblyOrder(WhsePick) THEN BEGIN
  IF AppMgt.FindPrinter(AssemblyOrderreportID)<>'' THEN BEGIN
    locWhsePickLines.SETRANGE("No.",WhsePick."No.");
    locWhsePickLines.SETRANGE("Activity Type",locWhsePickLines."Activity Type"::Pick);
    locWhsePickLines.SETRANGE("Action Type",locWhsePickLines."Action Type"::Place);
    IF locWhsePickLines.FINDSET THEN BEGIN
      REPEAT
        IF (locWhsePickLines."Assemble to Order" = TRUE) THEN BEGIN
          locAssemblyOrder.SETRANGE("No.",locWhsePickLines."Source No.");
          IF locAssemblyOrder.FINDLAST THEN BEGIN
            REPORT.RUN(AssemblyOrderreportID,FALSE,FALSE,locAssemblyOrder); 
          END;
        END;
      UNTIL locWhsePickLines.NEXT =0;
    END;
  END ELSE BEGIN
    ERROR(errNoPrinterFound);
  END;
END ELSE BEGIN
  ERROR(errNoAssemblyFound);
END;


Ich öffne die Page, trifft die Eigenschaft zu, kommt der Confirm Dialog, ich sage ja, der Report wird gedruckt, und es kommt wieder der Confirm Dialog, immer wieder ...
Lasse ich die IF CONFIRM Abfrage weg, wird der Report 1 x gedruckt und fertig ..

Was läuft da mit den CONFIRM falsch? :roll:

Danke
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: [RTC] Endlosschleife CONFIRM in Page OnAfterGetRecord

Beitragvon fiddi » 30. März 2022 11:18

Hallo,

kann es sein, da der Confirm einen neuen OnAfterGetRecord auslöst, weil du ja die ursprüngliche Page verlässt, und nach dem Confirm wieder zur ursprünglichen Page zurückkehrst, der Daten allerdings durch den Kontextwechsel verworfen wurden.

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: [RTC] Endlosschleife CONFIRM in Page OnAfterGetRecord

Beitragvon elTorito » 30. März 2022 11:44

Das klingt logisch.

Wenn ich folgendes versuche:
Code: Alles auswählen
IF xRec."No." <> Rec."No." THEN BEGIN
   IF CONFIRM(Montageauftrag vorhanden, drucken?,TRUE) THEN BEGIN
       CustomerFncs.PrintAssemblyOrder(Rec);
END;


dann poppt der CONFIRM Dialog zwar nicht mehr auf, aber dennoch läuft OnAfterGetRecord in Endlosschleife.
Scheint mir so dass der erste Confirm Aufruf im OnAfterGetrecord schon fĂĽr die endlosschleife sorgt.

Tjoa, wie kann man das nun lösen?
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: [RTC] Endlosschleife CONFIRM in Page OnAfterGetRecord

Beitragvon elTorito » 30. März 2022 12:12

Es scheint wohl doch nicht am CONFIRM zu liegen.

Sondern am Report RUN , nehme ich den Report RUN raus, dann passiert die Endlosschleife nicht.
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: [RTC] Endlosschleife CONFIRM in Page OnAfterGetRecord

Beitragvon elTorito » 30. März 2022 13:46

So scheint es zu gehen:
Code: Alles auswählen
IF xRec."No."<> Rec."No." THEN BEGIN
  IF CustomerFncs.WhsePickWithAssemblyOrder(Rec) THEN BEGIN
     IF CONFIRM(txtAssemblyInfo) THEN BEGIN
       PrintAssemblyOrder(WhsePick);
     END;
  END;
END;


Finde trotzdem dass es eine sensible stelle ist um ein Ausdruck zu starten. Ist dann so :-)
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: [RTC] Endlosschleife CONFIRM in Page OnAfterGetRecord

Beitragvon Raik Zobel » 5. April 2022 13:02

Hi,

ich bin mir nicht sicher, aber vielleicht könnte auch REPORT.RUNMODAL funktionieren.
Andere Möglichkeiten zum prüfen, ob bereits gedruckt wurde, wären:
- Globale Variable nutzen
- Feld am Montageauftrag nutzen. Zum Beispiel "Status" oder ein eigenes Feld ("printed").

GruĂź
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


ZurĂĽck zu NAV 2018

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast