Codeunit, Form

14. Mai 2009 12:01

Hallo,

ich habe eine kleine Verständnisfrage.

Ich möchte im Form ein Textfeld anzeige, in dem eine Information angezeigt wird. Diese Information möchte ich aber nicht in einer Tabelle speichern. Diese Information wird in einer Codeunit erstellt. Meine Idee dazu war, dass ich den Text in eine Variable setze und diese dann als Quelle dem Feld im Form hinterlege. Leider kann ich die Variable nicht im Form aufrufe. Wie kann ich so eine Nachricht mir anzeigen lassen?

Für ein paar Vorschläge wäre ich echt dankbar.

VG
Rom

Re: Codeunit, Form

14. Mai 2009 13:18

Wenn deine Form auf einer Tabelle basiert, würde ich es so lösen:
Auf der Basis-Tabelle eine Funktion mit Rückgabewert erstellen.
In dieser Funktion rufst du deine Codeunit auf und gibst das Ergebnis der Codeunit als Rückgabewert der Funktion zurück.
Auf deiner Form erstellst du die Textbox und trägst als SourceExpr einfach nur den von dir gewählen Funktionsnamen (aus der Tabelle) ein.

Wenn nicht, dann erstelle auf deiner Form eine globale Variable und setzte diese als SourceExpr deiner Textbox ein.
Diese Variable füllst du im Form-Trigger OnAfterGetCurrRecord, indem du dort deine Codeunit-Funktion verwendest.

Re: Codeunit, Form

14. Mai 2009 15:55

hallo Rom,

das geht u.U. ganz einfach. Du baust dir deine Codeunit mit einer Funktion, die einen Wert zurückliefert (egal ob Text o. Dezimal). Auf deinem Form legst du ein neues Feld an. in der "Source Expression" des Feldes gibst du dann den Aufruf deiner Funktion an (z.B. MeineCodeunit.MeineFunktion(param....)). Damit kannst du dir ein ReadOnly-Feld anlegen, das dir Werte ausgibt.

Gruß, Fiddi

Re: Codeunit, Form

14. Mai 2009 16:14

fiddi hat geschrieben:hallo Rom,

das geht u.U. ganz einfach. Du baust ...

Hm hab ich nicht genau das gleiche beschrieben ...? ;-)
Der Unterschied ist nur, dass du in der SourceExpr die Codeunit selbst ansprichst. Wüsste nicht, dass das geht und daher eine Tabellenfunktion dazwischengeschaltet.