Merkwürdige Zeilenbegrenzung in Subpage

10. Juli 2024 11:14

Hallo,
ich habe bei einer Subpage ("Eigengewächs", kein Standard) folgendes merkwürdiges Phänomen: Wenn ich von oben nach unten Datensätze in diese Subpage eingebe, wandert der Schieberegler an der Seite nach unten. Irgendwann bin ich am unteren Rand der Subpage angelangt. Ich kann allerdings erstmal weitere Datensätze eingeben, die Subpage wird nach unten erweitert. Irgendwann ist dann aber unvermittelt Schluss, ich kann nicht mehr mit der Pfeil-nach unten Taste "unter" den letzten Datensatz springen.
Wenn ich dann Rechtsklick -> neue Zeile einfügen betätige, werden unvermittelt wieder leere Zeilen "unten angebaut". Sorry, wenn ich das beschreibe, wie jemand der gerade in der Volkshochschule Erstkontakt mit einem PC hat, aber ich weiß nicht, wie ich das besser ausdrücken soll.
Wie gesagt, ich gebe einfach nur Datensätze straight nacheinander ein und füge keine Datensätze zwischen zwei Datensätzen ein, dann könnte ich es mir ja noch erklären.

Re: Merkwürdige Zeilenbegrenzung in Subpage

10. Juli 2024 11:17

Das ist mir noch nie begegnet und gerade in NAV 2017 war/bin ich recht viel unterwegs. Welchen CU-Stand hast du denn? Das klingt ja nach einem Plattform-Problem, nach dem man mal in den CUs suchen könnte.

Re: Merkwürdige Zeilenbegrenzung in Subpage

10. Juli 2024 11:21

10.0.22286.
Das Problem ist, dass ich noch nicht mal weiß, wie ich es so formulieren soll dass ich es googlen kann.

Re: Merkwürdige Zeilenbegrenzung in Subpage

10. Juli 2024 12:18

ok, das ist Cumulative Update 19 und damit neuer als meine Kunden die das Problem nicht haben...
Es geht doch um den Windows Client - nicht um den Web Client, richtig?
Wenn es nur bei einer Page auftritt - hat die irgendwelche Besonderheiten die Standard-Pages nicht haben - im Code (Trigger?) oder in Properties?
Zuletzt geändert von enh am 10. Juli 2024 12:21, insgesamt 2-mal geändert.

Re: Merkwürdige Zeilenbegrenzung in Subpage

10. Juli 2024 12:19

Hallo,

das kann viele Ursachen haben.
Verwendet die Subpage "AutoSplitKey"?

Zickt da evtl. NewRecord?

Gruß Fiddi

Re: Merkwürdige Zeilenbegrenzung in Subpage

10. Juli 2024 12:22

Verwendet die Subpage "AutoSplitKey"?


Ja.

Zickt da evtl. NewRecord?


Der OnNewRecord-Trigger ist nicht ausprogrammiert, falls Du das meinst.

Re: Merkwürdige Zeilenbegrenzung in Subpage

10. Juli 2024 12:24

Ich hatte schon Probleme wenn in einem der "dubiosen" Trigger wie OnNewRecord oder OnNextRecord sogar nur auskommentierter Code oder eine Leerzeile stand... die sollten also komplett leer sein. Ich weiß aber nicht mehr in welchen NAV Versionen das war.

Re: Merkwürdige Zeilenbegrenzung in Subpage

10. Juli 2024 12:27

Ja, dass es schon Theater geben kann, wenn auch nur IRGENDETWAS in einem Trigger steht, habe ich auch schon vernommen. Der OnNewRecord in der besagten Page ist allerdings komplett leer, da ist nicht mal eine zusätzliche Leerzeile drin.

Re: Merkwürdige Zeilenbegrenzung in Subpage

10. Juli 2024 12:28

Hallo,
Ich weiß aber nicht mehr in welchen NAV Versionen das war.


Das ist in jeder NAV- Version so. der Trigger wird immer ausgeführt,und muss korrekt reagieren, wenn da auch nur eine lokale Variable definiert ist.

Gruß Fiddi

Re: Merkwürdige Zeilenbegrenzung in Subpage

10. Juli 2024 16:19

Vielleicht noch als Ergänzung: Dieses Konstrukt ist Bestandteil einer Branchenlösung, die wir in mehrere Navision bzw. BC-Versionen portiert haben. In NAV2017 und 2018 gibt es anscheinend das Problem, in BC140 funktioniert es dagegen.
Wenn ich die Subpage jeweils als Text exportiere, fällt mir lediglich auf, dass unter dem einen, einzelnen Tabellenfeld, welches in dieser Subpage angezeigt wird, in BC140 dieser Hinweis oder wie auch immer man das nennen soll, steht (ImplicitType=Text120):

Code:
{ 1119403002;2;Field  ;
                SourceExpr=Text;
                OnValidate=BEGIN
                             CurrPage.SAVERECORD;
                           END;

                ImplicitType=Text120 }


  }


Im Quellcode selber finde ich diese Stelle nicht, auch nicht, wie ich das beeinflussen könnte.

Re: Merkwürdige Zeilenbegrenzung in Subpage

10. Juli 2024 16:28

Hallo,

Vorsicht: Das etwas in der einen Version funktioniert und in der anderen nicht, kann auch an den Daten liegen.

Evtl. liegt es auch an dem Variablennamen "Text".

wichtige nötige Informationen wären noch wie der Primärschlüssel aussieht, und wie und wo er generiert wird.

Gruß Fiddi

Re: Merkwürdige Zeilenbegrenzung in Subpage

10. Juli 2024 17:18

Der Primärschlüssel wird auf die gleiche Weise gefüllt, wie z.B. in Tabelle 37, also keine Übertragung per Quellcode, sondern über den SubPageLink. Das funktioniert auch grundsätzlich. Wenn man allerdings voller Freude Zeilen gibt, "klemmt" die unterste Zeile auf einmal, ohne eine Gesetztmässigkeit, die ich gerade erkennen könnte.

Re: Merkwürdige Zeilenbegrenzung in Subpage

10. Juli 2024 17:28

Hallo,

das kann nicht sein, du gibst ja neue Zeilen ein, es muss also ein zusätzliches Schlüsselfeld geben. Oder fügst du Felder in der SalesLine ein?

Gruß Fiddi

Re: Merkwürdige Zeilenbegrenzung in Subpage

10. Juli 2024 17:37

Kann es sein dass das Property ImplicitType beim Downgrade vergessen wurde zu löschen? Ich würde das mal rauswerfen.

Re: Merkwürdige Zeilenbegrenzung in Subpage

11. Juli 2024 06:56

das kann nicht sein, du gibst ja neue Zeilen ein, es muss also ein zusätzliches Schlüsselfeld geben. Oder fügst du Felder in der SalesLine ein?


also, nicht, dass wir uns missverstehen, die Tabelle 37 hat mit der problematischen Ansicht nichts zu tun, ich habe die nur als Beispiel angegeben, weil die Datensätze bei unserem "Eigengewächs" anscheinend auf die gleiche Weise erzeugt werden, sprich: eine Header-Tabelle, eine Zeilen-Tabelle, beide über eine Page und eine Subpage miteinander verbunden, analog zu Page 42 und 46.

Kann es sein dass das Property ImplicitType beim Downgrade vergessen wurde zu löschen? Ich würde das mal rauswerfen.

Einen Downgrade hat es nicht gegeben, die BC-140-Portierung kam später. Dort funktioniert es ja auch

Re: Merkwürdige Zeilenbegrenzung in Subpage

16. Juli 2024 17:51

Ich habe jetzt mal eine Headertabelle, eine Zeilentabelle und die dazugehörige Page bzw. Subpage erstellt. Die Headertabelle besteht lediglich aus den Feldern No. und Text No., welche gleichzeitig den Primärschlüssel darstellen. Die Zeilentabelle besteht aus den gleichen Feldern plus Zeilennummern und einem Textfeld.
Die Pages sind über die Felder No. und Text No. miteinander verbunden.
Die Zeilennummer wird beim Verlassen des Textfeldes über CURRPAGE.SAVERECORD hochgezählt.
Das ganze funktioniert bis Zeile 130000, dann "klemmt" die automatische Zeilengenerierung.
Verlässt man die Page incl. Subpage und öffnet diese erneut, dann kann man bis Zeile 250000 weitermachen, danach "klemmt" es wieder.
Ich habe mal den Quellcode der Tabellen und Pages eingestellt und einen Screenshot des ganzen in Aktion angehängt. Vielleicht kann jemand das ganze bei sich nachvollziehen, ich stehe gerade auf dem Schlauch.

Code:
OBJECT Table 99998 TestTextHeader
{
  OBJECT-PROPERTIES
  {
    Date=16.07.24;
    Time=17:26:00;
    Modified=Yes;
    Version List=;
  }
  PROPERTIES
  {
  }
  FIELDS
  {
    { 1   ;   ;No.                 ;Code20        ;DataClassification=ToBeClassified;
                                                   CaptionML=DEU=Nr. }
    { 2   ;   ;Text No.            ;Integer       ;DataClassification=ToBeClassified;
                                                   CaptionML=DEU=Text Nummer }
  }
  KEYS
  {
    {    ;No.,Text No.                            ;Clustered=Yes }
  }
  FIELDGROUPS
  {
  }
  CODE
  {

    BEGIN
    END.
  }
}

OBJECT Table 99999 TestTextLine
{
  OBJECT-PROPERTIES
  {
    Date=16.07.24;
    Time=17:36:06;
    Modified=Yes;
    Version List=;
  }
  PROPERTIES
  {
  }
  FIELDS
  {
    { 1   ;   ;No.                 ;Code20        ;DataClassification=ToBeClassified;
                                                   CaptionML=DEU=Nr. }
    { 2   ;   ;Text No.            ;Integer       ;DataClassification=ToBeClassified;
                                                   CaptionML=DEU=Text Nummer }
    { 3   ;   ;Line No.            ;Integer       ;DataClassification=ToBeClassified;
                                                   CaptionML=DEU=Zeilennr. }
    { 4   ;   ;Text                ;Text120       ;DataClassification=ToBeClassified;
                                                   CaptionML=DEU=Text }
  }
  KEYS
  {
    {    ;No.,Text No.,Line No.                   ;Clustered=Yes }
  }
  FIELDGROUPS
  {
  }
  CODE
  {

    BEGIN
    END.
  }
}

OBJECT Page 99997 TestTextPage
{
  OBJECT-PROPERTIES
  {
    Date=16.07.24;
    Time=17:30:20;
    Modified=Yes;
    Version List=;
  }
  PROPERTIES
  {
    SourceTable=Table99998;
    PageType=Card;
  }
  CONTROLS
  {
    { 1119403000;0;Container;
                ContainerType=ContentArea }

    { 1119403001;1;Group  ;
                Name=Allgemein;
                GroupType=Group }

    { 1119403002;2;Field  ;
                SourceExpr="No." }

    { 1119403003;2;Field  ;
                SourceExpr="Text No." }

    { 1119403004;2;Part   ;
                SubPageLink=No.=FIELD(No.),
                            Text No.=FIELD(Text No.);
                PagePartID=Page99996;
                PartType=Page }

  }
  CODE
  {

    BEGIN
    END.
  }
}

OBJECT Page 99998 DateView
{
  OBJECT-PROPERTIES
  {
    Date=06.06.24;
    Time=14:37:54;
    Modified=Yes;
    Version List=;
  }
  PROPERTIES
  {
    SourceTable=Table2000000007;
    PageType=List;
  }
  CONTROLS
  {
    { 1119403000;0;Container;
                ContainerType=ContentArea }

    { 1119403001;1;Group  ;
                Name=Group;
                GroupType=Repeater }

    { 1119403002;2;Field  ;
                SourceExpr="Period Type" }

    { 1119403003;2;Field  ;
                SourceExpr="Period Start" }

    { 1119403004;2;Field  ;
                SourceExpr="Period End" }

    { 1119403005;2;Field  ;
                SourceExpr="Period No." }

    { 1119403006;2;Field  ;
                SourceExpr="Period Name" }

  }
  CODE
  {

    BEGIN
    END.
  }
}



Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.

Re: Merkwürdige Zeilenbegrenzung in Subpage

16. Juli 2024 19:15

Ach ja, DelayedInsert Probleme... habe da leider keine Lösung...

Re: Merkwürdige Zeilenbegrenzung in Subpage

17. Juli 2024 06:36

Ach ja, DelayedInsert Probleme... habe da leider keine Lösung...


DelayedInsert Probleme? Kannst Du das evtl. noch etwas konkretisieren? Ich habe Google bemüht, aber die Probleme, die dort im Zusammenhang mit DelayedInsert erwähnt wurden, hatten andere Auswirkungen. Ich habe das Property dann weggelassen, keine Änderung.

Re: Merkwürdige Zeilenbegrenzung in Subpage

17. Juli 2024 08:55

Hallo,

was passiert denn, wenn du den SAVERECORD einfach weglässt? Der sollte eigentlich gar nicht nötig sein. NAV erkennt das eigentlich automatisch, dass es das speichern muss.

EDIT: Wenn ich es nicht übersehen habe, fehlt in deinem Code die Page 99996. Die ist eigentlich der interessanteste Teil am Ganzen. Benutzt du AutoSplitKey?

Gruß Fiddi

Re: Merkwürdige Zeilenbegrenzung in Subpage

17. Juli 2024 14:58

Seufz, ich bin beim Textexport eine Zeile verrutscht, hier also nochmal das ganze, mit der Subpage 99996. Ich benutze AutoSplitKey, ja, bzw. ich habe es auch einmal ohne versucht. Die Zeilennummern werden ergänzt, ja, aber der "Hänger" nach 12 Zeilen erfolgt trotzdem :?:

Code:
OBJECT Page 99996 TestTextSub
{
  OBJECT-PROPERTIES
  {
    Date=17.07.24;
    Time=06:30:22;
    Modified=Yes;
    Version List=;
  }
  PROPERTIES
  {
    MultipleNewLines=Yes;
    SourceTable=Table99999;
    PageType=ListPart;
    AutoSplitKey=Yes;
  }
  CONTROLS
  {
    { 1119403000;0;Container;
                ContainerType=ContentArea }

    { 1119403001;1;Group  ;
                Name=Group;
                GroupType=Repeater }

    { 1119403002;2;Field  ;
                SourceExpr="No." }

    { 1119403003;2;Field  ;
                SourceExpr="Text No." }

    { 1119403004;2;Field  ;
                SourceExpr="Line No." }

    { 1119403005;2;Field  ;
                SourceExpr=Text;
                OnValidate=BEGIN
                             IF xRec.Text <> Rec.Text THEN
                               CurrPage.SAVERECORD;
                           END;
                            }

  }
  CODE
  {

    BEGIN
    END.
  }
}

OBJECT Page 99997 TestTextPage
{
  OBJECT-PROPERTIES
  {
    Date=16.07.24;
    Time=17:30:20;
    Modified=Yes;
    Version List=;
  }
  PROPERTIES
  {
    SourceTable=Table99998;
    PageType=Card;
  }
  CONTROLS
  {
    { 1119403000;0;Container;
                ContainerType=ContentArea }

    { 1119403001;1;Group  ;
                Name=Allgemein;
                GroupType=Group }

    { 1119403002;2;Field  ;
                SourceExpr="No." }

    { 1119403003;2;Field  ;
                SourceExpr="Text No." }

    { 1119403004;2;Part   ;
                SubPageLink=No.=FIELD(No.),
                            Text No.=FIELD(Text No.);
                PagePartID=Page99996;
                PartType=Page }

  }
  CODE
  {

    BEGIN
    END.
  }
}


Re: Merkwürdige Zeilenbegrenzung in Subpage

17. Juli 2024 15:19

Hallo,

Schmeiß mal - mit Autosplitkey - alle Felder außer des Textfeldes aus der SubPage raus und auch den SaveRecord.

Gruß Fiddi

Re: Merkwürdige Zeilenbegrenzung in Subpage

19. Juli 2024 17:05

Schmeiß mal - mit Autosplitkey - alle Felder außer des Textfeldes aus der SubPage raus und auch den SaveRecord.


habe ich gemacht, keine Änderung.
Dann habe ich den
- DelayedInsert auf No gesetzt; Wird immer noch nicht besser
- PagePart-Typ von List auf ListPart geändert, voilá, es scheint zu funktionieren.

Muss ich das verstehen?
Aber trotzdem schonmal herzlichen Dank an alle für die Tipps und Infos.

Re: Merkwürdige Zeilenbegrenzung in Subpage

19. Juli 2024 21:44

Ja, dass Pages die als Parts verwendet sein sollen auch von Typ Parts sein sollen ist mir auch schon mal begegnet. Allerdings habe ich dazu nie eine richtige Erläuterung gefunden.
https://learn.microsoft.com/en-us/dynam ... -listparts