Absturz

6. Mai 2021 11:10

Wenn ich eine Page mit Baumstruktur habe, wo ich einen Temporären Record habe den ich mit einer Funktion in der Page fülle und dann die Page mit RUNMODAL aufrufe stürzt Nav ab.

Dieses konnte ich bereits in der CU 44 nachstellen. Aktuell: Nav 2017 CU53

OBJECT Page 50000 Page Test
{
OBJECT-PROPERTIES
{
Date=06.05.21;
Time=10:18:48;
}
PROPERTIES
{
SourceTable=Table50001;
PageType=Worksheet;
SourceTableTemporary=Yes;
}
CONTROLS
{
{ 50018;0 ;Container ;
ContainerType=ContentArea }

{ 50012;1 ;Group ;
IndentationColumnName=Level;
ShowAsTree=Yes;
GroupType=Repeater }

{ 50011;2 ;Field ;
SourceExpr=Level;
Editable=FALSE }

{ 50003;2 ;Field ;
SourceExpr=Description;
Editable=FALSE }

}
CODE
{
PROCEDURE FillData@50000();
VAR
XXXLoc@50000 : Record 50000;
BEGIN
XXXLoc.FINDSET;
REPEAT
Rec.TRANSFERFIELDS(XXXLoc);
Rec.INSERT;
UNTIL XXXLoc.NEXT = 0;
END;

BEGIN
END.
}
}

Also: erst die Funktion FillData aufgerufen und danach die Page mit RUNMODAL

Re: Absturz

6. Mai 2021 11:26

Hallo,

ich würde das Filldata mal im OnOpen der Page machen!?

Gruß Fiddi

Re: Absturz

6. Mai 2021 11:28

Ich würde 'ne Kleinigkeit im Code ändern:
if findset then repeat...

Außerdem die Funktion FillData im OnOpenPage aufrufen.

Re: Absturz

6. Mai 2021 11:41

Das hatte ich auch probiert, aber in der Funktion OnOpen kann man keine Parameter mitgeben (ist im Beispiel unnötig)

Mein Beispiel kommt aus einem Paket, weil plötzlich nach einem Technischen Update der Client abgestürzt ist. Habe nur die Baumstruktur entfernt (wird nicht wirklich benötigt).
Könnte die Page auch mit RUN aufrufen, gibt auch keinen Absturz.

Re: Absturz

6. Mai 2021 12:05

Anistou hat geschrieben:Das hatte ich auch probiert, aber in der Funktion OnOpen kann man keine Parameter mitgeben (ist im Beispiel unnötig)

Das verstehe ich nicht. Du hast doch in FillData keine Parameter.

Re: Absturz

6. Mai 2021 12:15

enh hat geschrieben:Das verstehe ich nicht. Du hast doch in FillData keine Parameter.


Weil Beispiel...

Original Problem:
Code:
CALCFIELDS("Prod. Order No.");
IF "Prod. Order No." = '' THEN
  EXIT;

LocProductionOrderRec.SETRANGE("No.", "Prod. Order No.");
IF LocProductionOrderRec.FINDLAST THEN BEGIN
  LocProductionOrderRec.SETRECFILTER;
  LocSubcontractingTrackingPage.SetProdOrder(LocProductionOrderRec);
  LocSubcontractingTrackingPage.RUNMODAL;
END;
Zuletzt geändert von Anistou am 6. Mai 2021 12:45, insgesamt 1-mal geändert.

Re: Absturz

6. Mai 2021 12:27

Hallo Anistou,

dein Quelltext ist leichter zu lesen und zu verstehen, wenn du ihn zwischen so genannte Code-Tags setzt. Insbesondere deine Formatierungen werden so auch beibehalten.

Daher bitten wir dich, vor und nach deinem Quelltext diese Code-Tags einzufügen. Beispiel:


[code]Dein Quelltext[/code]

Gruß, Kowa
MSDynamics.de-Team

Re: Absturz

6. Mai 2021 12:48

Im Standard gibt es eine Page mit PageType=Worksheet und SourceTableTemporary und ShowAsTree:
Page 5870 BOM Structure

Vielleicht hilft es dir wenn du schaust was die tut. Die wird in Page 31 Item List aufgerufen, auch mit vorherigem Aufruf einer function in der Page, aber mit RUN (in der Page Action Structure).