Mittels Extension Feld Angebot Nr einblenden

3. Juni 2020 15:52

Hallo,

in der Page 42 gibt es folgenden Code:

Code:
ShowQuoteNo := "Quote No." <> '';


welche steuert ob das Feld Angebots Nr eingeblendet wird oder nicht.

Es werden aber keine Angebote nach Auftrag erstellt, so ist das Feld immer Leer und nicht sichtbar.
Es soll aber trotzdem sichtbar sein um es Manuell zu befüllen.

Wenn ich in einer Page Extension versuche das Feld "Quote no" einzufügen wird mir gesagt dass dieses schon verwendet wird.
Kann ich über die Extension die variable setzen welche auf der Page verwendet wird?

Wie kann ich das lösen dass ich dieses Feld über eine Extension eingeblendet bekomme?

Vielen Dank.

Re: Mittels Extension Feld Angebot Nr einblenden

3. Juni 2020 16:04

elTorito hat geschrieben:Wenn ich in einer Page Extension versuche das Feld "Quote no" einzufügen wird mir gesagt dass dieses schon verwendet wird.

Wo wird dir das gesagt? Kann es sein, dass du mit dem Designer statt direkt in VS Code arbeitest?

Kann ich über die Extension die variable setzen welche auf der Page verwendet wird?

Du hast nur auf solche Page Variablen Zugriff, welche als "Protected" deklariert sind.

Re: Mittels Extension Feld Angebot Nr einblenden

3. Juni 2020 16:14

In Visual Studio Code, im Object Designer wäre das ja kein Thema die Variable einfach auf True zu setzen :-)

SalesOrderExt.png


Wo kann ich denn sehen ob eine Variable Protected ist?
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.

Re: Mittels Extension Feld Angebot Nr einblenden

3. Juni 2020 16:26

Dachte ich mir ;-)
Unterkringelt ist nicht der Tabellenfeldname, sondern der Pagefeldname. Einfach ändern (eigenen Variablennamen erfinden) und ab dafür :)

Re: Mittels Extension Feld Angebot Nr einblenden

3. Juni 2020 18:41

oder aber die sichtbarkeit einfach auf true setzen - sollte doch auch gehen ;)

also das PageField modifizieren (sorry, hab grad kein VSCode da, um Beispielcode zu schicken)

Re: Mittels Extension Feld Angebot Nr einblenden

3. Juni 2020 19:54

Natalie hat geschrieben:Dachte ich mir ;-)
Unterkringelt ist nicht der Tabellenfeldname, sondern der Pagefeldname. Einfach ändern (eigenen Variablennamen erfinden) und ab dafür :)


ahh... *nicht aufgepasst* :oops:

Wenn dann aber doch mal ein Auftrag über ein Angebot erstellt wird würde das Feld doppelt erscheinen.

sweikelt hat geschrieben:oder aber die sichtbarkeit einfach auf true setzen - sollte doch auch gehen ;)
also das PageField modifizieren (sorry, hab grad kein VSCode da, um Beispielcode zu schicken)

meinst du ?
Code:
    layout
    {
        modify("Quote No.")
        {
            Visible = true;
        }
....


das funktioniert nicht, vielleicht weil "ShowQuoteNo"=False im OnAfterGetRecord gesetzt wird? Und das modify vorher passiert?

Müsste ich dann im Trigger OnAfterGetRecord Event das Feld einblenden ?

Wenn ich es mache wie Natalie vorschlägt müsste ich noch eine Abfrage reinsetzen welche das "Neue" ausblendet wenn Quote No. gefüllt.

Danke

Re: Mittels Extension Feld Angebot Nr einblenden

3. Juni 2020 20:22

Wenn ich wie folgt mache:

Code:
addafter("External Document No"){
field("Quote No.1"; "Quote No.")
                {
                    CaptionML = DEU = 'Angebotsnr.2', ENU = ' Quote No.';
                    ApplicationArea = All;
                    Visible = ShowQuoteNo2;
                    Editable = ShowQuoteNo2;
                }
}
trigger OnAfterGetRecord();
    begin
        IF "Quote No." = '' THEN
            ShowQuoteNo2 := TRUE
        else
            ShowQuoteNo2 := FALSE;
    end;


Wird das Feld nicht eingeblendet.

Wenn ich aber :
Code:
addafter("External Document No")
        {
            group("QuoteNo2")
            {
                ShowCaption = false;
                Visible = ShowQuoteNo2;
                field("Quote No.1"; "Quote No.")
                {
                    CaptionML = DEU = 'Angebotsnr.2', ENU = ' Quote No.';
                    ApplicationArea = All;
                    Visible = ShowQuoteNo2;
                    Editable = ShowQuoteNo2;
                }
            }
        }
trigger OnAfterGetRecord();
    begin
        IF "Quote No." = '' THEN
            ShowQuoteNo2 := TRUE
        else
            ShowQuoteNo2 := FALSE;
    end;


Dann wird das Feld Angebotsnr 2 eingeblendet,

Den Beitrag hier habe ich dazu gefunden:
https://demiliani.com/2018/09/17/dynami ... -on-pages/


mit modify hin und her auf das Original Feld bin ich nicht weiter gekommen :-(

Re: Mittels Extension Feld Angebot Nr einblenden

3. Juni 2020 21:24

Code:
addafter("External Document No")
        {
            group("QuoteNo2")
            {
                ShowCaption = false;
                Visible = ShowQuoteNo2;
                field("Quote No.1"; "Quote No.")
                {
                    CaptionML = DEU = 'Angebotsnr.2', ENU = ' Quote No.';
                    ApplicationArea = All;
                    Visible = ShowQuoteNo2;
                    Editable = ShowQuoteNo2;
                }
            }
        }
trigger OnAfterGetRecord();
    begin
        IF "Quote No." = '' THEN
            ShowQuoteNo2 := TRUE
        else
            ShowQuoteNo2 := FALSE;
    end;



Was auch Schwachsinn ist weil das Feld dann verschwindet sobald ich etwas eingebe

hmm.

Re: Mittels Extension Feld Angebot Nr einblenden

4. Juni 2020 11:33

Hast du denn sweikelts Vorschlag überhaupt ausprobiert?
Der Standard verwendet für Feld "Quote No."
Code:
Visible = ShowQuoteNo;

Wenn du mit deiner Extension daraus

Code:
        modify("Quote No.")
        {
            Visible = true;
        }

machst, dann spielt doch die Variable ShowQuoteNo keine Rolle mehr, egal welchen Wert sie hat.
Also sollte die eben genannte Erweiterung allein reichen, und die Anlage eines 2. Feldes entfällt.

Re: Mittels Extension Feld Angebot Nr einblenden

4. Juni 2020 16:06

Natalie hat geschrieben:Hast du denn sweikelts Vorschlag überhaupt ausprobiert?
Der Standard verwendet für Feld "Quote No."
Code:
Visible = ShowQuoteNo;

Wenn du mit deiner Extension daraus

Code:
        modify("Quote No.")
        {
            Visible = true;
        }

machst, dann spielt doch die Variable ShowQuoteNo keine Rolle mehr, egal welchen Wert sie hat.
Also sollte die eben genannte Erweiterung allein reichen, und die Anlage eines 2. Feldes entfällt.


Ja, habe ich ausprobiert. Und Feld wird nicht eingeblendet.

Wann wird denn dies Modify { } ausgeführt? Beim Starten der Page?

Im OnAfterGetRecord Trigger in der Page wird das Feld auf Visible = False gesetzt.

Re: Mittels Extension Feld Angebot Nr einblenden

4. Juni 2020 16:10

elTorito hat geschrieben:Wann wird denn dies Modify { } ausgeführt? Beim Starten der Page?

Ja, auf jeden Fall bevor die Page sichtbar wird.
Ich hätte erwartet, noch vor OnAfterGetRecord ...