Formularfeld zugreifen

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: Formularfeld zugreifen

von Woitsch » Mo, 23.01.2006 20:24

Hallo,

hat jmd eine Ahnung wie das geht?

Danke.

von Woitsch » So, 15.01.2006 13:50

Hallo Toxitom,

ich hab nun das Problem, dass wenn ich im Formular Datensatzfelder verändere nicht rausfinde wie ich diese speichere?
Also ich dache ev mit .commit. Aber scheint nicht zu funktionieren.
Hast Du oder sonst jemand eine Idee?

Mein Code bisher

Sub itRight

dim document as object
dim dispatcher as object
dim oDoc as object
dim oForm as object
dim oFeld as object
dim oFeld2 as object
dim oButton as object
dim cntok as integer
dim co as object
dim st as object

oDoc = ThisComponent
oForm = oDoc.DrawPage.Forms(0)
oForm.AllowUpdates

co= oForm.ActiveConnection
st = co.createStatement()

'msgbox co.dbg_methods

oFeld= oForm.getByName("itOkCntF")
oFeld2= oForm.getbyname("itWordITF")

oFeld2.text= "jaja"
oFeld.value= oFeld.value + 1
msgbox co.dbg_properties
msgbox st.dbg_properties
msgbox st.dbg_methods
co.Commit()

End Sub

von Toxitom » Fr, 13.01.2006 09:07

Hey Wotisch,
Denn irgendwo muss ja geschrieben stehen,...
Das ist leider ein "frommer" Wunsch. OpenSource Projekte habe ja genau dieses Problem: schlechte bis gar keine Dokumentation - und wenn, kaum benutzerfreiundlich.
OK, es existiert das SDK mit ziemlich ausführlicher Dokumentation inklusive der kompletten API Doc, ist aber alles nicht gerade "lesefreundlich".
Dann gibt es diverse Dokumentationen und Bücher (>werbung an> siehe meins -> in der Signatur :wink: </werbung aus> .
Aber warst du es nicht, der nicht "kiloweise Doku lesen" wollte?
Leider ist es aber so - um in OOo Basic (oder einer anderen Scriptsprache zum Fremdsteuern von OOo) fit zu werden, bleibt nichts anders übrig, als überall das zu lesen, was irgendwer und irgendwann mal veröffentlicht hat. Und der Rest ist Erfahrung...

Viele Grüße
Thomas

von ca » Fr, 13.01.2006 08:36

Hallo Woitsch,

ich versuche mich auch gerade, habe das gleiche Problem. Das thisComponent ist relativ gut beschrieben im Programmierbuch zu Starbasic. Dieser Link führt dich auf die Seite der Starbasicfaq. Da stehen auch noch diverse Fehler des Dokuments, die solltest Du Dir ansehen sonst bekommst Du Probleme besonders mit den ' und ".

http://www.dannenhoefer.de/faqstarbasic ... ndAPI.html

Mit den Beispielen unter den jeweiligen Themen habe ich die meisten Probleme gelöst. Bin aber auch noch nicht fertig.

Servus Christian

von Woitsch » Do, 12.01.2006 22:12

Hallo Toxitom,


"itWordGE" ist tatsächlich ein Textfeld. Hab gestern Abend auch noch gelernt, dass man mit
msgbox oFeld.dbg_properties
msgbox oFeld.dbg_methods
dbg_supportedInterfaces
viel Info rausbekommt.

Aber tatsächlich meinte ich "BASE" und nicht "BASIC"

Denn irgendwo muss ja geschrieben stehen, dass wenn ich OO BASE verwende und "ThisComponent" verwende, dass es
oDoc = ThisComponent
oForm = oDoc.DrawPage.Forms(0) und eben nicht oDoc.Sheets.Forms(0) oder sonst was heißt. .Sheets. heißt es ja nur bei CALC glaub ich, oder?
Und genauso denk ich mir werden auch die weiter unteren Ebenen wie oField= oForm.getByName("itWordGE") beschrieben sein.
Und dann eben die Properties und Methoden.
Was anderes noch: Ist eigentlich ein IntelliSens oder ähnliches geplant bei BASIC?

Und übrigens, danke für Deine Antworten.

Ciao, Wotisch

von Toxitom » Do, 12.01.2006 08:14

Hey Woitsch,
aber bei oField.value= "jaja" bekomm ich einen Laufzeitfehler.
Tia, was ist denn das für ein Feld "itWordGE"? Wenn es sich um ein Textfeld handelt, hat es keinen Value-Wert (den gibt es nur bei Zahlenfeldern!). Die Eigenschaft existiert also nicht. Versuch es mal mit "string" oder "text", das sollte dan zum Erfolg führen.
Wo ist eigentlich ThisComponent für Base beschrieben?
Du meinst wahrscheinlich "Basic"? "ThisComponent" ist in der Dokumentation der API (Teil des SDKs) beschrieben, aber frag mich nicht , wo genau.
Es handelt sich um eine vordefinierte Varaible, die immer das letzte, aktive Modulfenster als Objekt enthält, wobei nur die Hauptmodule berücksichtigt werden, also keine Hilfe-Fenster, und auch nicht das IDE-Fenster. Mit Hilfe dieser Varaiblen kannst du einfacher in der IDE deine Programme testen. Später sollte man aber "thisComponent" mit dem tatsächlichen Objektbezug austauschen: "StarDesktop.currentComponent" ist der korrekte Bezug, der funktioniert aber nicht in der IDE, da er dann natürlich auch das IDE-Fenster als Objekt zurückliefert - und das will man ja nicht.

Gruss
Thomas

von Woitsch » Mi, 11.01.2006 21:14

Hallo Toxitom,

hab rausgefunden dass das so funktioniern sollte:

oDoc = ThisComponent
oForm = oDoc.DrawPage.Forms(0)
oField= oForm.getByName("itWordGE")

oField.value= "jaja"

aber bei oField.value= "jaja" bekomm ich einen Laufzeitfehler.
Wo ist eigentlich ThisComponent für Base beschrieben?

Danke für Deine Unterstützung.

Ciao, Woitsch

von Woitsch » Mi, 11.01.2006 20:43

Hallo Toxitom,

danke für die Antwort. Jetzt weiss ich zumindest wie das ungefähr funktioniert. Klar steig ich nicht um auf Microsoft, davon halte ich mich sicher selbst ab. Ein Einstieg wäre ja sicher leichter wenn es ein paar Beispieldatenbanken gitbt.
An oForm und oDoc komm ich sicher auch noch ran.

Ciao, Woitsch

von Toxitom » Mi, 11.01.2006 08:30

Hey Woitsch,
Also bitte, das kann doch nicht wahr sein. Da werd ich wieder auf Microsoft Produkte umsteigen müssen. Schade aber.
Davon hält dich niemand ab. Das entscheidest du alleine :wink:

Ansonsten gilt:
Aber im gesamten Form kann anscheinend niemand so eine Kleinigkeit beantworten?
Klar können wir. Aber wir machen das alle freiwillig - und du hast keine konkrete Frage gestellt, die eine "echte" Hilfe erfordert. Wie kann ich zugreifen? Kein Problem:

Code: Alles auswählen

oControl = oForm.getByName("NameDesControllElementes")
Jetzt hast du dein Controllobjekt, und das hat die Eigenschaften "visible" oder "Value" etc.
Und wie du dein Formularobjekt ("oForm") erhälst, weisst du sicher, und wie die Struktur der API aussiehrt und wie die Dokumente aufgebaut sind und und und....
Dafür brauchst du natürlich keine "dicke" Dokumentation lesen, das weisst du alles und wir müssen dir das nicht erläutern.
OK, jetzt weisst du, wie du an dein Formularfeld rankommst.

Viel Spass und beste Grüße
Thomas

von Woitsch » Di, 10.01.2006 23:06

Danke für die Antwort.

Aber im gesamten Form kann anscheinend niemand so eine Kleinigkeit beantworten?

Auf ein Formularfeld, sagen wir "Feld1", zugreifen. Wie Eigenschaften von .Visible, .Value, ...

Also bitte, das kann doch nicht wahr sein. Da werd ich wieder auf Microsoft Produkte umsteigen müssen. Schade aber.

von ykcim » So, 08.01.2006 14:17

Lies mal die Links im ersten Thema dieses Forums.
"Wichtig: Informationen zur StarBasic-Programmierung"
Dort sind die wichtigsten Adresse zu OOBasic hinterlegt.

mfg
Michael

Formularfeld zugreifen

von Woitsch » Sa, 07.01.2006 11:50

Bin Brandnew. Hab schon füher auf MS ACCESS programmiert.

Möchte nur ein paar ganz einfache Sachen machen, ohne Kiloweise Doku zu lesen.

Also, hab mit Base eine DB erstellt. Hab ein Formular erstellt. Und möchte nun im OOo Basic auf ein Formularfeld zugreifen.
Bei MS ACCESS hat das einfach mit my.feldname funktioniert.
Wie geht das bei OOo Basic?
Oder wo gibts ein paar Beispieldatenbanken mit OOo Code?

Danke

Woitsch

Nach oben