BASE: Tabellenkontrollfeld / TableGrid

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

Moderator: Moderatoren

Benutzeravatar
komma4
********
Beiträge: 5332
Registriert: Mi, 03.05.2006 23:29
Wohnort: Chon Buri Thailand Asia
Kontaktdaten:

BASE: Tabellenkontrollfeld / TableGrid

Beitrag von komma4 »

Moderation,4: abgetrennte Beiträge des Threads "Makro im Makro verwenden" von MrSir zum Thema "Tabellenkontrollfeld"



MrSir hat geschrieben:denn zu dem Tabellen - Kontrollfeld findet man keine Dokus.
Unsinn.
http://development.openoffice.org/
http://wiki.services.openoffice.org/wik ... pers_Guide

MrSir hat geschrieben:wo finde ich Dokus dazu?
Ebenfalls da.
Die "Reihenfolge" von Ereignissen ist auch schon in der F1 - Onlinehilfe beschrieben


MrSir hat geschrieben:bei euch OpenOffie 3.3 ebenfalls verbuggt?
Keine Ahnung. Verwende Linux und eine (relativ stabile) 3.2.1. Habe keine Zeit für Windows und Abstürze 8)
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)
MrSir
**
Beiträge: 35
Registriert: Fr, 03.06.2011 18:28

Re: Makro im Makro verwenden

Beitrag von MrSir »

Danke, aber ich konnte zum Tabellen - Kontrollfeld nichts finden.
Das Problem was ich mit dem Tabellen - Kontrollfeld habe, ist die Iteration über den Inhalt.
Derzeit mache ich das wie folgt:
Hole mir das RowSet unt iteriere darüber mit Next.
Jetzt ist das so, dass ich in einer anderen Methode, die von einem Textchanged-Event aufgerufen wird, den Inhalt des Tabellen - Kontrollfeld mit RowSet.updateInt ... ändere, dabei erhalte ich einen
Fehler "Falshe Sql- Rheienfolge ...".
Ich könnte zwar eine seprate Sql-Anfrage über die Tabelle des Tabellen - Kontrollfeldes starten und darüber iterrieren, leider ist die neue Zeile des Tabellen-Kontrollfeldes in der Datenbank noch nicht enthalen.
Gibt es die Möglichkeit über Zeilen der "View" zu iterieren?
Benutzeravatar
komma4
********
Beiträge: 5332
Registriert: Mi, 03.05.2006 23:29
Wohnort: Chon Buri Thailand Asia
Kontaktdaten:

Re: Makro im Makro verwenden

Beitrag von komma4 »

MrSir hat geschrieben:leider ist die neue Zeile des Tabellen-Kontrollfeldes in der Datenbank noch nicht enthalen.
Setze ein oForm.reload() nach Updates oder Inserts ab, dann ist der Inhalt aktuell.


In meiner (lokalen Kopie) des SDK unter docs/common/ref/com/sun/star/form/control/GridControl.html bzw.
Kapitel 13.2.2 und 13.4.1 des DeveloperGuides


Besser, ich trenne das mal auf, neuer Thread...
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)
DPunch
*******
Beiträge: 1112
Registriert: Mo, 02.11.2009 16:16
Wohnort: Marburg

Re: BASE: Tabellenkontrollfeld / TableGrid

Beitrag von DPunch »

Aloha
MrSir hat geschrieben:den Inhalt des Tabellen - Kontrollfeld mit RowSet.updateInt ... ändere, dabei erhalte ich einen
Fehler "Falshe Sql- Rheienfolge ...".
Wenn Du tatsächlich Hilfe benötigst, solltest Du etwas präziser werden.
Wie lautet die Fehlermeldung genau?
In welchem Zusammenhang tritt sie auf (Codeausschnitt)?
MrSir
**
Beiträge: 35
Registriert: Fr, 03.06.2011 18:28

Re: BASE: Tabellenkontrollfeld / TableGrid

Beitrag von MrSir »

Habe da etwas gefunden was helfen könnte, aber leider weiß ich nicht, wie ich die Funktion verwende.

sdk/docs/common/ref/com/sun/star/form/XGridFieldDataSupplier.html#queryFieldData
Die Funktion sieht wie folgt aus:

Und macht folgendes:

Code: Alles auswählen

queryFieldData( 	[in] long 	 nRow,
	[in] type 	 xType );
"Description
retrieves the actual column data for the given row"

Der Parameter long nRow ist klar, aber type xType.
Habe es schon mit String und Interger, erhalte immer den Fehler:
Bild
Zuletzt geändert von MrSir am Di, 07.06.2011 16:13, insgesamt 2-mal geändert.
Benutzeravatar
komma4
********
Beiträge: 5332
Registriert: Mi, 03.05.2006 23:29
Wohnort: Chon Buri Thailand Asia
Kontaktdaten:

Re: BASE: Tabellenkontrollfeld / TableGrid

Beitrag von komma4 »

a) Dein Bild bei IMAGESCHACK ist nicht überall zu sehen: diese Firma verlangt die Registrierung (des Providers meiner Internetverbindung). Suche Dir besser einen wirklich freien Anbieter. Wüsste nicht, wie ich bspw. Telecom of Thailand dazu bringen könnte sich dort anzumelden :lol:

b) wie die Dokumentation sagt ist der Parameter vom Typ INTEGER

c) ausserdem ist das Interface als DEPRECATED gekennzeichnet. Deren korrektes Funktionieren ist demnach nicht gewährleistet.
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)
MrSir
**
Beiträge: 35
Registriert: Fr, 03.06.2011 18:28

Re: BASE: Tabellenkontrollfeld / TableGrid

Beitrag von MrSir »

Habe Hosting Service gewechselt.

"b) wie die Dokumentation sagt ist der Parameter vom Typ INTEGER
Könntest du mir bitte ein Beispiel für einen korrekten Aufruf der Funktion geben?"

"c)ausserdem ist das Interface als DEPRECATED gekennzeichnet. Deren korrektes Funktionieren ist demnach nicht gewährleistet."
Man könnte zwar über das RowSet des Models iterrieren, aber Einträge, die noch nicht in die Datenbank geschrieben wurden sind da noch nicht drin.
Gibt es keine Möglichkeit direkt auf die View zuzugreifen um den Inhalt auszulesen?
DPunch
*******
Beiträge: 1112
Registriert: Mo, 02.11.2009 16:16
Wohnort: Marburg

Re: BASE: Tabellenkontrollfeld / TableGrid

Beitrag von DPunch »

Aloha
komma4 hat geschrieben:wie die Dokumentation sagt ist der Parameter vom Typ INTEGER
Nicht eher ein INput-Parameter vom Typ "Type"? ;)
MrSir hat geschrieben:Gibt es keine Möglichkeit direkt auf die View zuzugreifen um den Inhalt auszulesen?
Was meinst Du mit "View" in diesem Zusammenhang?
Wenn Dein Problem ist, dass neue Zeilen irgendwo noch nicht enthalten sind, dann schreib sie doch einfach vorher.
MrSir
**
Beiträge: 35
Registriert: Fr, 03.06.2011 18:28

Re: BASE: Tabellenkontrollfeld / TableGrid

Beitrag von MrSir »

Was meinst Du mit "View" in diesem Zusammenhang?
Bei MVC ist die View, die Komponente, die die Daten darstellt.
DPunch
*******
Beiträge: 1112
Registriert: Mo, 02.11.2009 16:16
Wohnort: Marburg

Re: BASE: Tabellenkontrollfeld / TableGrid

Beitrag von DPunch »

MrSir hat geschrieben:Bei MVC ist die View, die Komponente, die die Daten darstellt.
Oha, vielen Dank für die Erklärung.
MrSir
**
Beiträge: 35
Registriert: Fr, 03.06.2011 18:28

Re: BASE: Tabellenkontrollfeld / TableGrid

Beitrag von MrSir »

DPunch hat geschrieben:Oha, vielen Dank für die Erklärung.
Was hast du den gedacht, was mit View gemeint ist?

Es gibt nur Probleme mit OpenOffice Base und Formularen.
Könnte sich bitte jemand das Formular "Rechnung" in meinem Base - Dokument anschauen?
Habe ein Makro im Container des Dokumentes unter dem Modul Rechnung namens "update_Endsumme".
Wenn ich den Wert der Feldes Endsumme über das Model oder die View ändere steht da immernoch 0.
Nur wenn man direkt nach dem Setzen des Wertes eine Ausgabe mit Print macht ist kurzfristig der neue Wert im Feld zu sehen.

Dokument:
http://www.file-upload.net/download-348 ... -.odb.html
DPunch
*******
Beiträge: 1112
Registriert: Mo, 02.11.2009 16:16
Wohnort: Marburg

Re: BASE: Tabellenkontrollfeld / TableGrid

Beitrag von DPunch »

Aloha
MrSir hat geschrieben:Was hast du den gedacht, was mit View gemeint ist?
Gar nichts, deshalb habe ich nachgefragt. Es werden oft genug Begriffe durcheinander geworfen, bevor ich mir da das Hirn zermartere, warum der Fragesteller jetzt gerade diesen Begriff unbedingt verwenden will, frage ich lieber nach.
Im Übrigen bei Dir mit dem durchaus essenziellen Zusatz "in diesem Zusammenhang".
MrSir hat geschrieben:Dokument:
Wenn das tatsächlich nicht nur eine reine Beispieldatei ist, sondern prinzipiell das Projekt, mit dem Du Dich momentan beschäftigst, dann würde ich Dir als gut gemeinten Tip nahelegen, den Aufbau der Datenbank nochmal zu überarbeiten.
MrSir_ hat geschrieben:Es funktioniert wirder, nachdem ich jedes einzelne Kontrollfeld in ein eigenes Subformular gepackt habe.
Dann sind ja alle zufrieden.
MrSir
**
Beiträge: 35
Registriert: Fr, 03.06.2011 18:28

Re: BASE: Tabellenkontrollfeld / TableGrid

Beitrag von MrSir »

MrSir hat geschrieben:Dokument:
Wenn das tatsächlich nicht nur eine reine Beispieldatei ist, sondern prinzipiell das Projekt, mit dem Du Dich momentan beschäftigst, dann würde ich Dir als gut gemeinten Tip nahelegen, den Aufbau der Datenbank nochmal zu überarbeiten.
Ist ok so, danke :), soviele Artikel werden es sowieso nicht.
Die Tabellen zu normalisieren(1-5NF, BCNF ...) ist einfach unnötige Arbeit.
Antworten