Formular global anlegen

Programmierung unter AOO/LO (StarBasic, Python, Java, ...)

Moderator: Moderatoren

eBayer
******
Beiträge: 556
Registriert: Do, 04.12.2008 14:33
Wohnort: Augsburg

Re: Formular global anlegen

Beitrag von eBayer »

Hallo anonym,
wer soll sich nun von Deinem letzten Beitrag angesprochen fühlen und was willst Du damit sagen?
Wird langsam nervig, wie Du hier die Mitglieder beschäftigst..................
- Erst eine Behauptung aufstellen
- Dann fragen ob die Behauptung stimmt
Irgendwie habe ich das Gefühl, Du versuchst nur Dampf in das Forum zu bringen.
Auf eine direkte und klar formulierte Frage antworte ich gerne..... aber für Besserwisserei ist hier nicht der richtige Platz.
eBayer
Intel(R) Core(TM)2 Quad CPU Q8200 @ 2.33GHz mit 4 GB Memory (3,2 GB aktiv)
Vista Home Premium 32 Bit
openOffice 3.1.1 mit Sun Report Builder 1.1.0 und MySql 5.1
Hauptinteresse ooBase seit 12.2008
Benutzeravatar
komma4
********
Beiträge: 5332
Registriert: Mi, 03.05.2006 23:29
Wohnort: Chon Buri Thailand Asia
Kontaktdaten:

Re: Formular global anlegen

Beitrag von komma4 »

Auch ich habe mich gefragt was Dein Posting soll. Du bringst nichts Neues und nach meiner Meinung trägst Du (wieder mal) nichts konkretes zum Thema bei.

Deine "konkrete Frage", warum eine Beschränkung der Anzahl von Links und wie Du das umgehen könntest, ist hier im Bereich falsch: ==> Unterforum "Site Feedback"


Versuche Dich bitte mal etwas erwachsener zu benehmen; Danke!
Cheers
Winfried
aktuell: LO 5.3.5.2 30m0(Build:2) SUSE rpm, unter Linux openSuSE Leap 42.3 x86_64/KDE5
DateTime2 Einfügen von Datum/Zeit/Zeitstempel (als OOo Extension)
Stephan
********
Beiträge: 12368
Registriert: Mi, 30.06.2004 19:36
Wohnort: nahe Berlin

Re: Formular global anlegen

Beitrag von Stephan »

Hallo anonym,

ich ziehe jetzt hier die Grenze.

Was Du treibst nenne ich nunmehr Trollerei und sperre deshalb Deinen Account für zunächst 1 Woche.



Ich habe auch keine Lust hier noch ein weiteres Mal den Versuch zu unternehmen Dir zu erklären was Du hier falsch machst, wenn du es denn bis jetzt (trotz diverser - teil sachlicher, teils genervter - Erklärungen, von mir, in diversen Threads) nicht verstanden hast.
Ich schrieb in meinem Post um 12:33 nochmals ganz deutlich worum es geht, und selbst wenn (was ich aber inzwischen nicht mehr recht glaube) das alles die Situation mißdeutet, hätte jeder andere nach diesen deutlichen Worten, mich entweder konkret angesprochen (wenn er denn wirklich nicht verstünde worum es geht) oder hätte notfalls (weil er die Situation nicht versteht) zunächst etwas 'inne gehalten'.
Du jedoch setzt nahtlos den bisherigen Sil fort.

Du aber solltest vielleicht einen Eindruck davon gewinnen wie wenig leicht ich mir die Entscheidung mache, wenn ich Dir hier sage das Du der Allererste bist dessen Account ich hier sperre, solange ich hier Moderator bin (ausgenommen offensichtliche Spam-Accounts).

Im Übrigen bist Du mir (nach Ablauf der Sperre) ausdrücklich gerne wieder mit Beiträgen willkommen, sofern sich diese in einem vernünftigen Rahmen bewegen - momentan sehe ich aber keine Alternative mehr zu einer Account-Sperre.



Gruß
Stephan
gigabert
*****
Beiträge: 203
Registriert: Di, 11.08.2009 16:06

Re: Formular global anlegen

Beitrag von gigabert »

Stephan hat geschrieben:Hallo anonym,

ich ziehe jetzt hier die Grenze.

Was Du treibst nenne ich nunmehr Trollerei und sperre deshalb Deinen Account für zunächst 1 Woche.
Hallo,

ich weiss jetzt ehrlich nicht, ob so eine Sperre nun gerechtfertigt ist. Ich - als häufiger Fragesteller - muss schon eingestehen, dass die Beiträge von anonym nicht immer einfach zu verstehen oder inhaltlich richtig waren. Ich konnte mit vielen Antworten nicht unbedingt was anfangen. Aber ich denke, man sollte unterscheiden, ob jemand absichtlich oder böswillig das Forum mit wirklich unnötigen Beiträgen bedient, oder in der Absicht, anderen weiterzuhelfen. Man sollte auch bedenken, dass nicht alle die Fähigkeit besitzen, sich immer verständlich auszudrücken. Ich ärgere mich dann manchmal auch über falsche oder unverständliche Antworten und Beiträge, fände es aber richtig, damit einen anderen und besseren Umgang zu finden.

Na ja, nur eine Meinung eines Forumsbenutzers...
Bert
OpenOffice 3.1.1 unter Debian 5.0 und mit PostgreSQL 8.3
gigabert
*****
Beiträge: 203
Registriert: Di, 11.08.2009 16:06

Re: Formular global anlegen

Beitrag von gigabert »

anonym hat geschrieben:Das sind zwei unterschiedliche Behälter.

datenbank.DatabaseDocument.FormDocuments()
Ist ein Behälter für die Formulare im Basebehälter.
(im Gegensatz zu Berichten, Abfragen und Tabellen)
Name des Formular-Dokumentes

datenbank.drawpage.forms.getByName("PersonenFormular")
Ist ein Behälter für die Formulare mit den Steuerelementen.
Name des Formular-Elementes
Hallo,

kann mir das jemand mal genauer erklären? Ich verstehe den Unterschied nicht so ganz. Wann und warum nehme ich die erste und wann die zweite Variante? Ich möchte ja ein globales Objekt des Formulars erstellen, welches ich dann in der weiteren Anwendung benutzen kann.

Wenn ich das mit

Code: Alles auswählen

formContainer = thisDatabaseDocument.FormDocuments
oFormularPerson = formContainer.loadComponentFromURL("Personen","_blank",0,aProp())
versuche, kann ich in den weiteren Modulen mit der globalen Variablen oFormularPerson nicht die bisher entwickelten Prozeduren ausführen, weil die das Formular-Objekt bisher mit

Code: Alles auswählen

oFormularPerson = ThisComponent.drawpage.forms.getByName("PersonenFormular")
erstellt haben. Meine Verwirrung nimmt so langsam zu...

Gruss
Bert
OpenOffice 3.1.1 unter Debian 5.0 und mit PostgreSQL 8.3
eBayer
******
Beiträge: 556
Registriert: Do, 04.12.2008 14:33
Wohnort: Augsburg

Re: Formular global anlegen

Beitrag von eBayer »

Hallo Bert,
ich verstehe Deine Verwirrung nicht.....
Hast Du Dir denn noch nicht angeschaut, wie ich es in meiner Beispielanwendung mache?
Oder habe ich Deine Fragestellung so mißverstanden?
Gruß eBayer
Intel(R) Core(TM)2 Quad CPU Q8200 @ 2.33GHz mit 4 GB Memory (3,2 GB aktiv)
Vista Home Premium 32 Bit
openOffice 3.1.1 mit Sun Report Builder 1.1.0 und MySql 5.1
Hauptinteresse ooBase seit 12.2008
Benutzeravatar
komma4
********
Beiträge: 5332
Registriert: Mi, 03.05.2006 23:29
Wohnort: Chon Buri Thailand Asia
Kontaktdaten:

Re: Formular global anlegen

Beitrag von komma4 »

Variante 1 ist der Zugriff auf den Formular-Container - zum Umbenennen eines Formulars, bspw. (ThisDatabaseDocument)

Variante 2 ist der Zugriff auf das Formular selbst (bei geöffnetem Formular; ThisComponent)
Cheers
Winfried
aktuell: LO 5.3.5.2 30m0(Build:2) SUSE rpm, unter Linux openSuSE Leap 42.3 x86_64/KDE5
DateTime2 Einfügen von Datum/Zeit/Zeitstempel (als OOo Extension)
gigabert
*****
Beiträge: 203
Registriert: Di, 11.08.2009 16:06

Re: Formular global anlegen

Beitrag von gigabert »

Sorry, hab diesen Inhalt mal gelöscht. Wurde versehentlich unfertig abgeschickt. Kommt jetzt nochmal komplett...
Zuletzt geändert von gigabert am So, 04.10.2009 15:23, insgesamt 1-mal geändert.
OpenOffice 3.1.1 unter Debian 5.0 und mit PostgreSQL 8.3
gigabert
*****
Beiträge: 203
Registriert: Di, 11.08.2009 16:06

Re: Formular global anlegen

Beitrag von gigabert »

eBayer hat geschrieben:Hallo Bert,
ich verstehe Deine Verwirrung nicht.....
Hast Du Dir denn noch nicht angeschaut, wie ich es in meiner Beispielanwendung mache?
Oder habe ich Deine Fragestellung so mißverstanden?
Gruß eBayer
Hallo eBayer,

ich glaube, ich hab meine Verwirrung nun in deinem Beispiel gefunden. Du weist der globalen Variable das Objekt des Formulars aus einer Prozedur (Main) heraus zu, die beim Öffnen des Formulars aufgerufen wird. Damit hast du natürlich mit oForm = ThisComponent.DrawPage.Forms.getByName("Form_Adressen") und setGlobalForm(oForm) die globale Variable für dieses Formular aus dem Formular selbst heraus gesetzt und damit auch weiteren Zugriff auf das Formular. Aber wie kann ich die globale Variable auf das Formular setzen, wenn ich das Formular selbst noch garnicht aufgerufen habe?

OK, ich muss gestehen, ich hab meine Anwendung mittlerweile soweit geändert, dass ich ein weiteres (leeres) Formular erstellt habe ("StartFormular"), welches beim Öffnen der odb-Anwendung erscheint. Mit diesem Formular wird auch eine Startprozedur in einem Modul gestartet, welche globale Variablen für die Anwendung setzen soll, unter anderem eben auch für die vorhandenen Formulare, auf die ich dann über das Menü in dem Startformular zugreifen möchte. Nur sind die Formulare ja noch garnicht geöffnet worden.

Ich hoffe, nicht zu sehr verwirrt zu haben
Bert
OpenOffice 3.1.1 unter Debian 5.0 und mit PostgreSQL 8.3
gigabert
*****
Beiträge: 203
Registriert: Di, 11.08.2009 16:06

Re: Formular global anlegen

Beitrag von gigabert »

komma4 hat geschrieben:Variante 1 ist der Zugriff auf den Formular-Container - zum Umbenennen eines Formulars, bspw. (ThisDatabaseDocument)

Variante 2 ist der Zugriff auf das Formular selbst (bei geöffnetem Formular; ThisComponent)
Das heisst, mit der 2. Variante kann ich nur ein Objekt des Formulars erzeugen, wenn das Formular selbst auch geöffnet ist? Das ThisComponent bezieht sich immer auf das geöffnete/aktive Dokument? Aus einem anderen Formular kann ich so also keine globale Variable für ein noch nicht geöffnetes Formular erzeugen?

Gruss
Bert
OpenOffice 3.1.1 unter Debian 5.0 und mit PostgreSQL 8.3
Stephan
********
Beiträge: 12368
Registriert: Mi, 30.06.2004 19:36
Wohnort: nahe Berlin

Re: Formular global anlegen

Beitrag von Stephan »

Ich - als häufiger Fragesteller - muss schon eingestehen, dass die Beiträge von anonym nicht immer einfach zu verstehen oder inhaltlich richtig waren
darin sehe ich kein wesentliches Problem und keinen Grund der mich eine Sperre hätten aussprechen lassen
Aber ich denke, man sollte unterscheiden, ob jemand absichtlich oder böswillig das Forum mit wirklich unnötigen Beiträgen bedient
ja, genau das habe ich getan und habe mir die jetzige Entscheidung nicht leicht gemacht.

Na ja, nur eine Meinung eines Forumsbenutzers...
Ich finde es ausdrücklich gut das Du Deine Meinung hier so offen gesagt hast, gerade weil es ja vielleicht auch etwas Überwindung gekostet hat. Du darfst auch ganz sicher sein das mich Deine Kritik nicht verärgert, ganz im Gegenteil respektiere ich Deine Meinung, allein ich teile sie inhaltlich nicht (bzw. nicht vollständig).

Über Eines solltest Du Dir garkeine Sorgen machen (sofern Du das tust): es ist nicht irgendwie Deine Schuld (z.B. weil Du hier den Thread eröffnet hast) das ich jetzt eine Sperre ausgesprochen habe, meine Entscheidung dazu begründet sich ja auch ausdrücklich nicht nur aus dem einen Thread hier.



Gruß
Stephan
Stephan
********
Beiträge: 12368
Registriert: Mi, 30.06.2004 19:36
Wohnort: nahe Berlin

Re: Formular global anlegen

Beitrag von Stephan »

Ich verstehe den Unterschied nicht so ganz.
Naja, weil das was dasteht wieder einmal nicht so ganz stimmt, es gibt kein "datenbank.drawpage.forms.getByName("PersonenFormular")
" wenn man annimmt "datenbank" sei so definiert wie es dem Wort nach offensichtlich ist, insbesondere das Gleiche wie datenbank in "datenbank.DatabaseDocument.FormDocuments()"


Verstehe erstens das "ThisComponent" nicht immer das Gleiche ist, sondern eine allgemeine DEfinition für das Objekt das dem letzten aktiven Fenster aus Sicht der IDE entspricht.

Unterscheide zweitens zwischen verschiedenen Formularen bzw. der verschiedenen Verwendung des Begriffs "Formular"

Zum Einen meint "Formular" das Formulardokument, zum Zweiten aber auch das virtuelle Formular auf der drawpage des Formulardokuments.
Bild1.gif
Bild1.gif (26.95 KiB) 1545 mal betrachtet
Bild2.gif
Bild2.gif (25.77 KiB) 1544 mal betrachtet
Bild3.gif
Bild3.gif (51.08 KiB) 1544 mal betrachtet

Das Formulardokument in erster und zweiter Abbildung ist nun das was dem ZUsammenhang nach hinter:

Code: Alles auswählen

... .loadComponentFromURL("Personen","_blank",0,aProp())
steht.
Die zwei(!) Formulare (von denen jedes ein(!) Textfeld beinhaltet) in der dritten Abbildung hingegen repräsentieren:

Code: Alles auswählen

... .drawpage.forms.getByName("PersonenFormular1")
... .drawpage.forms.getByName("PersonenFormular2")
wobei "drawpage" (es kann hierbei auch mehrere bzw. mehrere Ebenen geben) ein virtuell gedachter 'Container' zur Aufnahme der Zeichnungsobjekte (bzw. hier Formularelemente) ist


Gruß
Stephan
Stephan
********
Beiträge: 12368
Registriert: Mi, 30.06.2004 19:36
Wohnort: nahe Berlin

Re: Formular global anlegen

Beitrag von Stephan »

Hallo anonym.

ich habe DEinen account gesperrt, damit war natürlich gemeint das Du 7 Tage aus dem Forum ausgeschlossen bist.

Da Du anscheinend auch das wieder mißverstehen willst ergänze ich:

Ich nehme hiermit das Hausrecht war und erteile dem Nutzer "anonym" ein Hausverbot, für jegliche posts egal unter welcher Anmeldung solange wie die Sperre des Accounts "anonym" andauert (also bis zum 11.10.).(*)

(*)
siehe:
ucp.php?mode=register

Ich mache darauf aufmerksam das die IP-Adressen mitgeloggt werden und ich jeden Verstoß gegen das nunmehr klar erteilte Hausverbot den Eigentümer des Forums umgehend zur Kenntnis geben werde.


Stephan
gigabert
*****
Beiträge: 203
Registriert: Di, 11.08.2009 16:06

Re: Formular global anlegen

Beitrag von gigabert »

Stephan hat geschrieben:Verstehe erstens das "ThisComponent" nicht immer das Gleiche ist, sondern eine allgemeine DEfinition für das Objekt das dem letzten aktiven Fenster aus Sicht der IDE entspricht.

Unterscheide zweitens zwischen verschiedenen Formularen bzw. der verschiedenen Verwendung des Begriffs "Formular"

Zum Einen meint "Formular" das Formulardokument, zum Zweiten aber auch das virtuelle Formular auf der drawpage des Formulardokuments.
Hallo Stephan,

super erklärt. Vielen Dank. Ich denke, ich hab das jetzt endlich verstanden. Falls nicht, kommen gleich weitere Fragen... ;-)

Gruss
Bert
OpenOffice 3.1.1 unter Debian 5.0 und mit PostgreSQL 8.3
eBayer
******
Beiträge: 556
Registriert: Do, 04.12.2008 14:33
Wohnort: Augsburg

Re: Formular global anlegen

Beitrag von eBayer »

Hallo Bert,
entschuldige meine "dumme" Frage..... aber warum willst Du denn gleich beim Start die Formulare global hinterlegen? Einen Zeitgewinn wirst Du dadurch im Programmablauf nicht bekommen, denn der Aufruf des Formulars ist auch so schon kaum messbar. Bedenke bitte auch, daß Du mit dem öffen auf Vorrat jede Menge Ressourcen verbrätst - mal abgesehen von der Datenkonsistenz, wenn ein Absturz bei vielen gleichzeitig geöffneten Formularen erfolgt. Das mag bei einer richtigen Datenbank noch funktionieren. Habe bei MySql schonmal mitten in der Erfassung der Daten den Rechner ausgeschaltet (zum Test) - die Daten waren danach sauber verfügbar. Das Gleiche mit der internen HSQLDB ist tödlich!
Solltest Du nicht doch nochmal Dein Konzept überdenken und dann einen Kompromiss aus den Vor- und Nachteilen erarbeiten?
Ich will Dir gerne bei Deinen Überlegungen helfen, wenn Du Wert darauf legst - und vielleicht finden wir ja eine gute Lösung als Mittelweg.
Gruß eBayer
Intel(R) Core(TM)2 Quad CPU Q8200 @ 2.33GHz mit 4 GB Memory (3,2 GB aktiv)
Vista Home Premium 32 Bit
openOffice 3.1.1 mit Sun Report Builder 1.1.0 und MySql 5.1
Hauptinteresse ooBase seit 12.2008
Antworten