[Gelöst]Textbausteine in einer Page einfügen

28. Januar 2020 12:37

Hallo zusammen :D,

Ich sitze derzeit an einem Projekt, bei dem es darum geht in bestimmten Zeilen Textbausteine einzubauen.
Ich habe bereits einen Action-Knopf erstellt, der die Page mit den Textbausteinen öffnet. Nun möchte ich aber,
dass sobald ich auf den jeweiligen Textbaustein an-klicke dieser auch in meine Zeilen eingefügt wird. Ich komme derzeit
leider nicht weiter ich habe mir auch angeschaut wie es in anderen Pages gemacht wird, kriegs aber selbst leider nicht hin.

Vielen Dank im Voraus!
Zuletzt geändert von RazvanNAV am 30. Januar 2020 14:06, insgesamt 1-mal geändert.

Re: Textbausteine in einer Page einfügen

28. Januar 2020 13:32

ein kleiner Hinweis:
Code:
IF Page.RUNMODAL(21, MyRecord, ...) = Action::LookupOK THEN...; 


https://docs.microsoft.com/en-us/dynamics-nav/page-runmodal-function

mit einem Code-Beispiel von dir könnte man dir sicherlich besser helfen ;)

Re: Textbausteine in einer Page einfügen

30. Januar 2020 11:42

Hallo,
erstmal vielen Dank für deine schnelle Antwort, hat mir auf jeden Fall ein bisschen weiter geholfen.
Derzeit habe ich das Problem, dass mir zwar die Seite angezeigt wird und ich mit dem Betätigen des
Knopfes Ok Code ausführe, jedoch ist es dabei irrelevant auf welchem Datensatz ich stehe es wird
immer der erste ausgewählt. Ein weiteres Problem, ist das ich beim Einfügen des Textes in die Zeilen
immer nur die erste Zeile befüllt kriege die anderen Inhalte werden gekonnt ignoriert (liegt ziemlich
sich am Setrange auf die Zeilen Nr., jedoch kommt wenn ich den Filter wegnehme die Fehlermeldung:
'Diese Zeile ist bereits vorhanden'.

Hier mein Code:
Code:
ExtendedTextHeader.RESET;
ExtendedTextHeader.SETRANGE(ExtendedTextHeader."Erbrachter Service",TRUE);
IF ExtendedTextHeader.FINDFIRST THEN BEGIN
  IF PageDieIchNeede.RUNMODAL = ACTION:: OK THEN BEGIN 
    ExtendedTextLine.SETRANGE(ExtendedTextLine."No.", ExtendedTextHeader."No.");
    ExtendedTextLine.SETRANGE(ExtendedTextLine."Line No.",10000);
    ExtendedTextLine.FINDSET;
    REPEAT
      MESSAGE(ExtendedTextLine.Text);
      Description := ExtendedTextLine.Text;
      INSERT;
    UNTIL ExtendedTextLine.NEXT = 0;
  END;
END;

Re: Textbausteine in einer Page einfügen

30. Januar 2020 13:13

ja natürlich - das Setrange auf die erste Zeile deiner Textbausteinzeilen liefert dir natürlich auch nur die erste Zeile - das muss weg!

Code:
ExtendedTextHeader.RESET;
ExtendedTextHeader.SETRANGE(ExtendedTextHeader."Erbrachter Service",TRUE);
IF ExtendedTextHeader.FINDFIRST THEN BEGIN
  IF PageDieIchNeede.RUNMODAL = ACTION:: OK THEN BEGIN
    ExtendedTextLine.SETRANGE(ExtendedTextLine."No.", ExtendedTextHeader."No.");
    //ExtendedTextLine.SETRANGE(ExtendedTextLine."Line No.",10000); - weg damit
    ExtendedTextLine.FINDSET;
    REPEAT
      MESSAGE(ExtendedTextLine.Text);
      Description := ExtendedTextLine.Text;
      //hier musst du dir was für den Primärschlüssel einfallen lassen ich keine deine Tabellenstrukturen nicht - vll .reicht das:
      "Line No." := ExtendedTextLine."Line No.
      INSERT;
    UNTIL ExtendedTextLine.NEXT = 0;
  END;
END;


Hinweis - das ist nur ganz grob dein Code in bearbeiter Form!
Es wird dann sicherlich Probleme geben, wenn du die Textbausteine in bereits bestehende Zeilen einfügen willst - deswegen musst du dir was zwecks PrimaryKey einfallen lassen

Re: Textbausteine in einer Page einfügen

30. Januar 2020 14:06

Super hat geklappt! Danke dir :D