Verfügbarkeit der Makros / Globale Makros & Variablen

Antwort erstellen


BBCode ist eingeschaltet
[img] ist ausgeschaltet
[url] ist eingeschaltet
Smileys sind ausgeschaltet

Die letzten Beiträge des Themas
   

Ansicht erweitern Die letzten Beiträge des Themas: Verfügbarkeit der Makros / Globale Makros & Variablen

Re: Verfügbarkeit der Makros / Globale Makros & Variablen

von eBayer » Mi, 11.02.2009 19:57

Hallo,
ich habe kürzlich in einem US-Forum die Lösung gefunden, mit der ich per Macro an eine Tabelle gebundene Formularfelder ändern und automatisch speichern kann. Mit dieser Methode erkennt das Formular die Änderung und speichert die Daten so ab, als wenn ich sie per Hand geändert hätte (der Speichern-Button wird aktiviert und beim schließen wird automatisch gefragt, ob die Änderungen gespeichert werden sollen. Weiterer Vorteil: ein UnDo, also rückgängig machen der noch nicht gepeicherten Änderung des Formulars geht auch!
Hier der auf das wesentliche reduzierte Code:
oDoc = thisComponent
oForm = oDoc.DrawPage.Forms.GetByIndex(0)
oTx = oForm.getByName("meinFormularFeld")
oTxCtr = oDoc.CurrentController.GetControl(oTx)
oTxCtr.Text = "neuer Wert"
Das wars!!
Achtung, Du mußt natürlich auf den richtigen Datentyp achten, also numerisch, text usw.
Allerdings kann ich das Funktionieren nur für ooBase 3.0 bestätigen.... zu früheren Versionen kann ich nichts sagen.
Viel Spaß und Gruß
eBayer

Re: Verfügbarkeit der Makros / Globale Makros & Variablen

von Toxitom » Mi, 16.01.2008 16:16

Hallo Gabriel,
Gabriel123 hat geschrieben:ABER, dadurch, dass die daten in Form2 über ein makro in die Textfelder geschrieben werden, werden sie nicht als Eingabe erkannt. ich kann sie also nicht speichern.
Das ist korrekt. Das Formular bildest ja Inhalte nur ab - normalerweise die Inhalte des aktuellen Rowsets. Schreibst du direkt etwas in die Formularfelder (per Basic), so ist nur der dargestellte Inhalt verändert worden - nicht das Rowset an sich. Um das zu umgehen, schreibe die Werte entweder direkt in das Rowset (also in die Datenbank) und rufe anschliessend das Formular über "refresh" auf, jetzt werden die dargestellten Inhalte aktualisiert - deine Eingaben sind zu sehen und dennoch in der DB :-)
Es könnte auch funktionieren, wenn du nach dem Inhaltsreinschreiben den Rowset speicherst - bin mir aber nicht ganz sicher. Möglicherweise müsste auch hier zunächt ein Update erfolgen - dann könnten aber die Felder wieder leer sein....

Viele Grüße
Thomas

Re: Verfügbarkeit der Makros / Globale Makros & Variablen

von Gabriel123 » Mi, 16.01.2008 14:18

Gerne beschreibe ich noch mal mein Problem genauer=) Inzwischen bin ich auch schon ein Schritt weiter=)

Formular 1 enthält Kundendaten / liest aus Tabelle 1

Formular 2 ist leer und liest / schreibt in Tabelle 2 - hier werden neue Aufträge für einen Kunden erfasst.

In Formular1 ist ein Button "neuer Auftrag" und Formular2 öffnet sich. Hier sollen nun die kundendaten, die gerade in Formular1 aktiv waren übernommen werden. Ich muss also aus Formular1 die daten an Formular2 übergeben.

Da habe ich mir nun mit globalen Variablen geholfen
Form1: txtKundennr1 = .getByName("Kundennr.1").Text
Form2: .getByName("Kundennr.1").Text = txtKundennr.

Das geht auch inzwischen ohne Probleme. ABER, dadurch, dass die daten in Form2 über ein makro in die Textfelder geschrieben werden, werden sie nicht als Eingabe erkannt. ich kann sie also nicht speichern. selbst wenn ich manuell noch was ergänze, wird nur das ergänzte in tabelle 2 gespeichert.

Re: Verfügbarkeit der Makros / Globale Makros & Variablen

von Toxitom » Mi, 16.01.2008 13:13

Hey Gabriel,
Gabriel123 hat geschrieben:Eigentlich ja nicht schlimm, ich kann nun aber aus Formular2 nicht auf globale Variablen, die ich in Formular1 hinterlegt habe zugreifen.
Globale Variablen in Formular 1? meinst du Konstanten? Ansonsten könntest du natürlich die Werte beim Aufruf aus Formualar 1 als Parameter mit auf Formular 2 übergeben - und dann stehen sie auch dort zur Verfügung??

Aber vielleicht kannst du das Beispiel besser beschreiben?

Gruss
Thomas

Re: Verfügbarkeit der Makros / Globale Makros & Variablen

von komma4 » Di, 15.01.2008 03:23

...da Makros (noch nicht) an BASE-Dokumente angehängt werden - musst Du sowieso eine Bibliothek zusätzlich verteilen... oder verstehe ich da nun etwas falsch?

[immer noch: 8°52'55"N 98°16'1" E; aktuell: 29 Grad C]

Verfügbarkeit der Makros / Globale Makros & Variablen

von Gabriel123 » Mo, 14.01.2008 21:01

Hallo,

Ich frage mich gerade ob es möglich ist, Makros so abzulegen / speichern, dass sie für jedes Formular nutzbar sind aber dennoch bei Weitergabe der Datenbank beinhaltet sind.

Ich habe 2 Formulare mit jeweils separaten Tabellen und entsprechend musste ich auch die Makros für jedes Formular separat hinterlegen. Eigentlich ja nicht schlimm, ich kann nun aber aus Formular2 nicht auf globale Variablen, die ich in Formular1 hinterlegt habe zugreifen. Oder liege ich da falsch? Ich müsste also alle Makros in z-b Meine Makros ablegen um globale Variablen nutzen zu können. Dann könnte ich aber die Datenbank nicht weitergeben...

Versteht mich jemand=)?

Nach oben