Hallo zusammen,
ich möchte eine Textbox bzw deren angezeigte Bezeichnung (sie verweist auf eine globale Variable mit dem constanten Text: Version) ändern.
ich möchte das bei einem bestimmten bedingung eine funktion ausgeführt wird, die diese textbox ausblendet oder einblendet.
ich habe schon gelesen, dass es über die funktion FieldCaption gehen sollte, nur leider funktioniert das i-wie nicht, bzw kenne ich anscheinend den richtigen syntax dieser funktion nicht, da mit immer fehlermeldungen ausgegeben werden.
→ globale Variable Text0002 …diese soll bei bedarf auf leer gesetzt werden (also nicht angezeigt)
vielleicht könnt ihr mir behilflich sein!
Die Fieldcaption -Funktion muss einen String zurückgeben, der nach folgendem Schema aufgebaut ist:
“3,Das ist meine Caption”
Führenderweise immer eine 3 davor setzen - sonst weiß die CU1 nix damit anzufangen.
Aber das hat ja mit dem einblenden bzw. ausblenden eigentlich nichts zu tun.
Dafür gibt es eine Eigenschaft des Feldes namens “VISIBLE”.
Im RTC funktioniert es ein wenig anders (nicht viel) aber hier mal die Vorgehensweise für NAV Forms:
In deiner Funktion weist du einfach TRUE oder FALSE zu:
CurrForm.Textbox1.VISIBLE := TRUE;
CurrForm.Label1.VISIBLE := TRUE;
Du musst nur den Namen “Label1” bzw. “Textbox1” den Controls zuweisen - sonst kennt Navision (das CurrForm) die Controls nicht.
vielen dank für deine antwort.
ich sollte noch erwähnen, dass ich mit nav 5.0 sp1 arbeite, da der kunde noch diese version nutzt.
also ich weiß mittlerweile, dass FIELDCAPTION einen String zurückgibt, aber ich will ja diesen String ändern und nicht wissen wie der heißt xD
wie ändert man denn per funktion die visible-property einer textbox? …das ist eigentlich mein ganzes problem.
Hallo,
sofern du nur den Text innerhalb der Textbox ausblenden möchtest, kannst du in dem Format-Trigger der Textbox den Parameter “Text” leeren:
Text := ‘’;
Falls nicht nur der Text, sondern die ganze Textbox (inkl. Label) verschwinden soll, musst du dem Textbox-Control über die Properties einen Namen zuweisen.
Dann kannst du über CurrForm.NameDeinerTextbox.VISIBLE := FALSE; die Textbox ausblenden.
Der zum sichtbar/unsichtbar schalten notwendige code lautet wie folgt:
CurrForm.Description.VISIBLE := FALSE;
Dabei muss es eine Textbox geben deren Name “Description” ist.
Für alle Textboxen die auf einem Tabellenfeld beruhen wird der Name automatisch erkannt (heißt genauso wie das Tabellenfeld), für alle anderen muss der Name über das Name property der Textbox festgelegt werden.
Ich habe die besagten Textboxen mit dem Clear-Befehl geleert und somit werden sie ja “unsichtbar”, da kein Text mehr drin steht.
→ Clear(Tb1);
Tb1 ist in diesem Falle natürlich der Name der ersten Textbox
sorry für die verspätete antwort meinerseits (hatte in der zwischenzeit berufsschule und keinen zugang zu meinem quelltext)
vielen dank für die hilfe 