Hallo,
ich habe ein Tabellen-Steuerelement, wo ich eine neue Zeile erstelle und Werte eingebe. Eines der Felder ist ein AutoFeld. Habe ich alle restlichen Felder bearbeitet und führe dann einen Bericht aus, der eben diese eingegebene Zeile ausgeben soll, bekomme ich eine Fehlermeldung, da im AutoFeld noch <AutoFeld> anstelle des AutoWerts steht. Dieser Wert ist nämlich der Suchwert eines SQL Statements.
Wie kann man die Zeile per Makro aktualisieren so daß vor der Berichtserstellung der entsprechende AutoWert erstellt wird?
Ich habe schon diverse Tipps ausprobiert (oForm.unload()/.load(); .updateRow usw.) komme allerdings auf keinen grünen Zweig.
Gruß
Michael
🙏 Helfen Sie jetzt mit, unser LibreOffice Forum zu erhalten! 🙏
Mit Ihrer Spende sichern Sie den Fortbestand, den Ausbau und die laufenden Kosten dieses Forums. 🌱
🍀 Jeder Beitrag zählt – vielen Dank für Ihre Unterstützung!🍀
>> Dank Ihrer Unterstützung -> Keine Werbung für alle registrierten LibreOffice-Forum User! <<
🤗 Als Dankeschön werden Sie im Forum als LO-SUPPORTER gekennzeichnet. 🤗
GELÖST: GridControl: frischer Eintrag aktualisieren
GELÖST: GridControl: frischer Eintrag aktualisieren
Zuletzt geändert von ms-fu! am Mi 19. Jun 2013, 08:13, insgesamt 1-mal geändert.
Re: GridControl: frischer Eintrag aktualisieren
Hallo Michael,
das hattest Du doch eigentlich schon gelöst:
Filtern_und_Drucken wird gestartet, nachdem der Datensatz geschrieben wurde (in NewRecord). Bei mir klappt das mit einem Tabellenkontrollfeld und der obigen Makrofolge tadellos.
Gruß
Robert
das hattest Du doch eigentlich schon gelöst:
Code: Alles auswählen
Sub NewRecord (oEv as object)
dim oForm as object
oForm = oEv.source.model.parent
Rem Akutelle Zeile speichern
If oForm.IsNew then
oForm.InsertRow
Else
oForm.UpdateRow
End if
Filtern_und_Drucken
Rem Zur aktuellen Zeile springen
oForm.MoveToInsertRow
End sub
SUB Filtern_und_Drucken
DIM oDoc AS OBJECT
DIM oDrawpage AS OBJECT
DIM oForm AS OBJECT
DIM oFeld AS OBJECT
DIM oDatenquelle AS OBJECT
DIM oVerbindung AS OBJECT
DIM oSQL_Anweisung AS OBJECT
DIM stSQL AS STRING
oDoc = thisComponent
oDrawpage = oDoc.Drawpage
oForm = oDrawpage.Forms.getByName("MainForm")
oFeld = oForm.getByName("MainForm_Grid")
oDatenquelle = ThisComponent.Parent.CurrentController
If NOT (oDatenquelle.isConnected()) THEN
oDatenquelle.connect()
END IF
oVerbindung = oDatenquelle.ActiveConnection()
oSQL_Anweisung = oVerbindung.createStatement()
stSql = "UPDATE ""Filter"" SET ""Integer"" = '"+oFeld.GetByIndex(4).GetCurrentValue()+"' WHERE ""ID"" = TRUE"
oSQL_Anweisung.executeUpdate(stSql)
ThisDatabaseDocument.ReportDocuments.getByName("Werkstoff_Bericht").open
END SUB
Gruß
Robert
https://de.libreoffice.org/get-help/documentation/
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=base_handbuch
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=xml_formulare
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=base_handbuch
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=xml_formulare
Re: GridControl: frischer Eintrag aktualisieren
Guten Morgen Robert,
meine Güte! Mal wieder ein typische "Layer 8" Problem.
Tatsächlich hatte ich irgendwann am Anfang die "New Record" Routine umgangen weil ich keinen Sinn darin sah und ich griff direkt auf "Filtern_und_Drucken" zu.
Entschuldigung für diesen unnötigen Thread!
Gruß
Michael
meine Güte! Mal wieder ein typische "Layer 8" Problem.

Tatsächlich hatte ich irgendwann am Anfang die "New Record" Routine umgangen weil ich keinen Sinn darin sah und ich griff direkt auf "Filtern_und_Drucken" zu.
Entschuldigung für diesen unnötigen Thread!
Gruß
Michael
An alle, die das LibreOffice-Forum gern nutzen und unterstützen wollen:
Bitte helfen Sie uns mit 7 Euro pro Monat.
Durch Ihren Beitrag tragen Sie dazu bei, unsere laufenden Kosten für die kommenden Monate zu decken.
Unkompliziert per Kreditkarte oder PayPal.
Als ein kleines Dankeschön werden Sie im LO-Forum als SUPPORTER gekennzeichnet.