[Gelöst]Temporäre Variable im Subpage einbinden und anzeigen

18. Januar 2021 15:02

Hallo,

mein Ziel ist es, von einem Record auf einer Page über eine Subpage Inhalte einer temporäre Record Tabelle anzuzeigen, die ich zur Laufzeit befülle.
Die temporäre Tabelle ist als Recordvariable in dem Record enthalten.

Ein Verweis von Record zu temprären Record über SubPage Link kann ich nicht anwenden, daher versuche ich dies nachzuprogrammieren.



Stand jetzt schaffe ich es nur, entweder das erste oder das letzte Record der temporären Record Tabelle anzuzeigen. Die Werte der temporären Tabelle sind vorhanden, es wird aber ledigleich nur ein Record angezeigt.

Vielen Dank im voraus.
Zuletzt geändert von DanielF am 19. Januar 2021 09:39, insgesamt 1-mal geändert.

Re: Temporäre Variable im Subpage einbinden und anzeigen

18. Januar 2021 15:12

Hallo,

ich denke, das kann man schon.
Du solltest nur den Record der entsprechenden Page als Temporary erklären (Property der Page).
Desweiteren musst du den temporären Record der SubPage im OnAfterGetCurrentRecord der Masterpage setzen.

Das kann man entweder über eine Funktion in der Subpage machen, die dann ein SubpageREC.Copy(MasterTemRec,TRUE) macht. Letzteres übergibt den temporären Record als Referenz.

Gruß Fiddi

Re: Temporäre Variable im Subpage einbinden und anzeigen

18. Januar 2021 16:32

Hallo und herlichen Dank fiddi für deine schnelle Antwort.

So in der Richtung hatte ich es schon.
Funktion SetSuppageData
Code:

TmpInterLogEntry.DELETEALL;
TmpInterLogEntry.RESET;
IF InterLogEntryCommentLineTmp.FINDSET THEN BEGIN
  REPEAT
    TmpInterLogEntry.INIT;
    TmpInterLogEntry.TRANSFERFIELDS(InterLogEntryCommentLineTmp,FALSE);
    TmpInterLogEntry."Line No." := InterLogEntryCommentLineTmp."Line No.";
    TmpInterLogEntry."Entry No." := InterLogEntryCommentLineTmp."Entry No.";
    TmpInterLogEntry.INSERT;
  UNTIL InterLogEntryCommentLineTmp.NEXT = 0;
END;


OnOpenPAge der Subpage
Code:

TmpInterLogEntry.RESET;
IF TmpInterLogEntry.FINDSET THEN BEGIN
  REPEAT
    Rec.INIT;
    Rec.TRANSFERFIELDS(TmpInterLogEntry);
    Rec."Line No." := TmpInterLogEntry."Line No.";
    Rec."Entry No." := TmpInterLogEntry."Entry No.";
    Rec.INSERT;
  UNTIL TmpInterLogEntry.NEXT = 0;
END;



Ich habe jetzt eine Subpage. Über den Debugger weiß ich, dass 2 Records enthalten sind. Über "Suchen" in der Subpage kann ich zwischen beiden abgespeicherten Records wechseln und diese anzeigen.
Nur angezeigt wird auf der Subpage immer nur EIN Record. Händisch eintragen kann ich weitere Records, die auch angezeigt werden, jedoch falls ich die Zeilennummer des nicht sichtbaren Records eintrage gibt es natürlich eine Schlüsselverletzung.
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.

Re: Temporäre Variable im Subpage einbinden und anzeigen

19. Januar 2021 09:38

Habe es jetzt hinbekommen. Der oben angedachte Weg war richtig.
Nach weiterer Recherche musste ich die Subpage um folgendes erweitern (muss gestehen, dass ich diese Trigger noch nie zuvor benutzt habe oder benutzen musste):
Code:
OnFindRecord(Which : Text) : Boolean
IF Rec.FIND(Which) THEN BEGIN
  EXIT(TRUE);
END ELSE
  EXIT(FALSE);
 
OnNextRecord(Steps : Integer) : Integer
locResultSteps := Rec.NEXT(Steps);
IF locResultSteps <> 0 THEN
  EXIT(locResultSteps);

Anbei noch zwei Links, die die Thematik behandeln und vielleicht weiteren Leuten dienlich sein könnten, wenn diese auf diesen Thread stoßen:
https://andreilungu.com/sub-page-with-s ... izard-nav/
https://mibuso.com/howtos/how-to-use-te ... -a-subform

Re: [Gelöst]Temporäre Variable im Subpage einbinden und anze

19. Januar 2021 10:05

Hallo

das kommt mir merkwürdig vor. Kann es sein, das da etwas in einem der Trigger drin stand, oder ist der Record der Subpage nicht Temporaray?

Gruß fiddi

Re: [Gelöst]Temporäre Variable im Subpage einbinden und anze

19. Januar 2021 12:07

Hallo,

also das Record auf der Subpage ist als temporär gekennzeichnet.
Die Subpage habe ich allerdings vom Kollegen übernommen, daher kann ich nicht sicher sein, dass nichts in den Triggern stand. Es stand nichts drin, aber ob Leerzeichen eingefügt wurden kann ich nicht ausschließen.