[Gelöst] Formular mit Variablen aufrufen?

5. August 2008 09:01

Guten Morgen,

hab schon wieder eine Frage. Ist es möglich ein Formular aus einem anderen Formular aufzurufen und dabei eine Variable mit zu übergeben? Genauer gesagt, will ich mein Formular aus dem Verkaufsauftragsformular heraus öffnen lassen und dabei die Auftragsnummer mit übergeben. Müsste ja irgendwie dem Menu-Item die Variable mit übergeben, oder? Und wie fang ich die Variable auf dem anderen Formular ab, bzw. als "was" kommt sie dort rein?
Zuletzt geändert von enno am 5. August 2008 11:04, insgesamt 1-mal geändert.

Re: Formular mit Variablen aufrufen?

5. August 2008 09:14

Guten Morgen enno!
enno hat geschrieben:[...] will ich mein Formular aus dem Verkaufsauftragsformular heraus öffnen lassen und dabei die Auftragsnummer mit übergeben.

Erstelle hierzu eine neue Funktion in der Form, welche geöffnet werden soll. Nenn die Funktion beispielsweise SetVariable. Bevor du nun das Formular per Form.RUN startest, rufst du diese neue Funktion auf auf und übergibst mit diesem Funktionsaufruf einen Parameter.

Code:
Form.SetVariable(OrderNo);
Form.Run

Gruß, Marc

Re: Formular mit Variablen aufrufen?

5. August 2008 09:15

enno hat geschrieben:Ist es möglich ein Formular aus einem anderen Formular aufzurufen und dabei eine Variable mit zu übergeben?

Das Formular als lokale Variable im ersten Formular an der entsprechenden Stelle anlegen (z.B. im OnPush).
In diesem Formular eine Funktion einbauen, die einen Parameter übergibt.
Diesem Übergabeparameter einer globalen Variablen zuweisen.
Z.B.
Code:
setParameter(Variable: Integer);
globVariable := Variable;

Im ersten Formular den Parameter per Funktion übergeben und dann das Formular aufrufen.
Z.B.
Code:
localForm.setParameter(meinWert);
localForm.runmodal;

Im zweiten Formular kann man jetzt auf den Übergabeparameter als globale Variable zugreifen.

Gruß
Ralf

Re: Formular mit Variablen aufrufen?

5. August 2008 11:04

Junge Junge, ihr wart ja echt mal wieder fix

... danke euch

Re: [Gelöst] Formular mit Variablen aufrufen?

5. August 2008 11:40

noch kleine Nachfrage dazu ... nicht zwingend wichtig...

ich schaue jetzt vorher in der Tabelle nach, ob ein DS zu dem Formular besteht, und wenn ja, ruf ich dieses über
Code:
Form.Settableview(Record);
Form.Run;

auf ...

dadurch wird ja aber ein fester Filter auf die Form gelegt. Geht das auch anders? Also den Aufruf des Formulars mit dem entsprechendem Datensatz nur nicht zwingend mit diesem Filter drin?

Re: [Gelöst] Formular mit Variablen aufrufen?

5. August 2008 11:58

Hallo wenn ich deine Frage richtig verstanden habe willst du das Formular mit einen bestimmten Datensatz öffnen!

das geht mittels SETRECORD
Code:

TestTable.RESET();
TestTable.GET('TEST4');

CLEAR(TestForm);
TestForm.SETRECORD(TestTable);
TestForm.RUN();



LG

Re: [Gelöst] Formular mit Variablen aufrufen?

5. August 2008 12:29

genau so ... die firma dankt :-D

Re: [Gelöst] Formular mit Variablen aufrufen?

5. August 2008 14:30

xeto hat geschrieben:
Code:
TestForm.SETRECORD(TestTable);
TestForm.RUN();



... aber für die CurrForm gibts sowas nicht zufällig?

Re: [Gelöst] Formular mit Variablen aufrufen?

5. August 2008 14:42

Wie für CurrForm?
Du meinst du willst dich im aktuellen Form auf einen anderen Record stellen?

Probiers mal mit Rec.GET()

LG

Re: [Gelöst] Formular mit Variablen aufrufen?

5. August 2008 14:59

tja ... schwierig ... ich kenn nämlich nicht wirklich meinen Primärschlüssel ...

... der Datensatz wird nämlich neu angelegt (und der PS automatisch, da Seriennummer) und soll danach gleich angezeigt werden ...

ich mach`s jetzt einfach mit Rec.Findlast(); ... der neue DS sollte ja eigentlich immer der letzte sein :-)

Grüße

Re: [Gelöst] Formular mit Variablen aufrufen?

5. August 2008 15:04

enno hat geschrieben:tja ... schwierig ... ich kenn nämlich nicht wirklich meinen Primärschlüssel ...


Wenn deine Lizenz es erlaubt, öffne den Objekt Designer, gehe in die entsprechende Tabelle, deren Primärschlüssel du suchst und wähle Design.
Unter Ansicht -> Keys findest du mindestens eine Zeile. Der Inhalt der obersten Zeile ist dein Primärschlüssel.

Re: [Gelöst] Formular mit Variablen aufrufen?

5. August 2008 15:09

Ich glaube das ist nicht sein Problem, lt. seiner aussage kennt er den WERT den schlüssels nicht.
Vl. kannst du mir ja ein konkretes Beispiel nennen! Bist du dir sicher das immer der letzte DS der gewünschte ist?
LG

Re: [Gelöst] Formular mit Variablen aufrufen?

5. August 2008 15:10

xeto hat geschrieben:Ich glaube das ist nicht sein Problem, lt. seiner aussage kennt er den WERT den schlüssels nicht.

Upps, na das kommt halt durch mein "Beiträge-Überfliegen" heraus ...

Re: [Gelöst] Formular mit Variablen aufrufen?

5. August 2008 15:46

Hehe, richtig ... meine natürlich den Wert des PS ... etwas unglücklich ausgedrückt.

Wie gesagt mein PS ist eine Nummer, die per Nummernserie immer eins hochgezählt wird.
Ich öffne das Formular halt über ein anderes Formular, will nachschauen, ob ein bestimmter DS schon vorhanden ist (mit ner Auftragsnummer ... nicht PS, aber trotzdem eindeutig ^^) und im Falle eines Nicht-Vorhandenseins füge ich einen neuen DS in die Tabelle ein und öffne das Formular mit dem neu angelegtem DS.

"Sauber" programmiert müsste ich jetzt wahrscheinlich nochmal den neu angelegten DS einlesen und könnte ihn dann anhand von Get() auf der Form anzeigen, aber theoretisch müsste doch der neuangelegte DS immer der letzte sein, oder? Wird ja schließlich hochgezählt :-)

... wie gesagt ... klappt momentan mit FindLast() gut ... aber bestimmt bau ich`s auf Get() um, soll ja schließlich "sauber" sein