BITTE helfen Sie uns HEUTE mit einer SPENDE
Helfen Sie das LibreOffice Forum zu erhalten!
> KEINE WERBUNG FÜR REGISTRIERTE BENUTZER!<
Ihre Spende wird für die Deckung der laufenden Kosten sowie den Erhalt und Ausbau 🌱 des LibreOffice Forums verwendet.
🤗 Als Dankeschön werden Sie im Forum als LO-SUPPORTER gekennzeichnet. 🤗
Base Datensatz von Formular zu Report
-
- Beiträge: 2
- Registriert: Fr 19. Apr 2019, 15:40
Base Datensatz von Formular zu Report
Hallo ,
ich habe das mit den Berichten wohl noch nicht genau verstanden
per Google wird immer auf MacroProgrammierung verwiesen
wenn geziehlt ein Datensatz vom Formular an den Report übergeben werden soll
gibt es keinen einfachen Weg ?
BSP
ich habe eine Tabelle T1 mit den Feldern
ID / Name / Vorname / Tel
Diese werden im Formular Form1 angezeigt :
ID wird im Form1 nicht angezeigt
Name wird im Textfeld TXT1 angezeigt
Vorname wird im Textfeld TXT2 angezeigt
Tel wird im Textfel TXT3 angezeigt
Nun möchte ich einen Report öffnen und einfach
nur das der Report den Datensatz anzeigt
der auch aktuell im Formular angeigt wird
also der Report ungefähr folgendes SQL aufruft
"select * from T1 where Name = Form1.TXT1 "
Das geht doch bestimmt auch ohne Macro oder ??
Leider muss ich zugeben das ich noch nicht lange mit LibreOffice
arbeite und die Programmierung noch nicht ganz verstehe
ich habe das mit den Berichten wohl noch nicht genau verstanden
per Google wird immer auf MacroProgrammierung verwiesen
wenn geziehlt ein Datensatz vom Formular an den Report übergeben werden soll
gibt es keinen einfachen Weg ?
BSP
ich habe eine Tabelle T1 mit den Feldern
ID / Name / Vorname / Tel
Diese werden im Formular Form1 angezeigt :
ID wird im Form1 nicht angezeigt
Name wird im Textfeld TXT1 angezeigt
Vorname wird im Textfeld TXT2 angezeigt
Tel wird im Textfel TXT3 angezeigt
Nun möchte ich einen Report öffnen und einfach
nur das der Report den Datensatz anzeigt
der auch aktuell im Formular angeigt wird
also der Report ungefähr folgendes SQL aufruft
"select * from T1 where Name = Form1.TXT1 "
Das geht doch bestimmt auch ohne Macro oder ??
Leider muss ich zugeben das ich noch nicht lange mit LibreOffice
arbeite und die Programmierung noch nicht ganz verstehe
grüße euer
Biertrinker
Biertrinker
Re: Base Datensatz von Formular zu Report
Moin,
In diese Filtertabelle schreibt man im Formular "Adressenverwaltung_mit_Filter" per Listenfeld die ID des gewünschten Datensatzes.
Mit Hilfe der Abfrage "qAdressen" wird nun der Datensatz zu dieser ID gefunden:
Die gleiche Abfrage ist wiederum Datengrundlage des Berichtes "Bericht_Adresse_gefiltert" der bei Ausführung den im Formular gewählten Datensatz zeigt.
Viel Spaß beim Forschen
Gruß R
Ja, das geht, allerdings nicht ganz banal. Mit Hilfe einer einzeiligen Filtertabelle, im Beispiel anbei "Filter".
In diese Filtertabelle schreibt man im Formular "Adressenverwaltung_mit_Filter" per Listenfeld die ID des gewünschten Datensatzes.
Mit Hilfe der Abfrage "qAdressen" wird nun der Datensatz zu dieser ID gefunden:
Code: Alles auswählen
SELECT
"ID",
"Nachname",
"Vorname",
"Nachname" || ', ' || "Vorname" AS "Name",
"Strasse",
"PLZ",
"Ort"
FROM
"Adressen"
WHERE
( "ID" = ( SELECT "F_ID_ADDRESS" FROM "Filter" )
OR
( SELECT "F_ID_ADDRESS" FROM "Filter" ) IS NULL )
Viel Spaß beim Forschen
Gruß R
- Dateianhänge
-
- Einzeiliger_Bericht.zip
- nur entpacken
- (73.52 KiB) 137-mal heruntergeladen
Windows 10: AOO, LO Linux Mint: AOO, LO
Re: Base Datensatz von Formular zu Report
Es geht auch mit der BaseReportExtension, die geht aber NICHT mit der Firebird-Datenbank, da der Firebird-Treiber einen ganzen Haufen an Methoden (noch?) nicht unterstützt.
Weiters wäre es noch denkbar in der Tabelle ein Ja/Nein Feld zu machen, das vor dem Öffnen des Reports auf true gesetzt wird (während alle anderen Sätze auf false stehen) und dieses Feld wäre dann das Kriterium für die Report-Abfrage...
D.h. die Abfrage für den Report wäre dann etwa: "Select * from TabelleX where ReportJN = true" und das Makro das man dem Button zuordnen müsste wäre dann etwa so:
Weiters wäre es noch denkbar in der Tabelle ein Ja/Nein Feld zu machen, das vor dem Öffnen des Reports auf true gesetzt wird (während alle anderen Sätze auf false stehen) und dieses Feld wäre dann das Kriterium für die Report-Abfrage...
D.h. die Abfrage für den Report wäre dann etwa: "Select * from TabelleX where ReportJN = true" und das Makro das man dem Button zuordnen müsste wäre dann etwa so:
Code: Alles auswählen
sub OpenReportXYZ(oEvent)
' ermittelt die ID des aktuellen Datensatzes
ID_aktueller_Datensatz = oEvent.Source.Model.Parent.getByName("NameDesSteuerelementsInDemDieDatensatzIdSteht").text()
' erstellt ein Statement-Objekt mit dem man SQL-Queries ausfuehren kann
oStatement = ThisDatabaseDocument.CurrentController.ActiveConnection.createStatement
' fuehrt die Statements aus
oStatement.executeUpdate( "UPDATE TabelleX set ReportJN = false" )
oStatement.executeUpdate( "UPDATE TabelleX set ReportJN = true WHERE IDDatensatz = " & ID_aktueller_Datensatz & ";" )
' oeffnet den Report
ThisDatabaseDocument.ReportDocuments.getByName("BerichtXYZ").open
end sub
g
2008 LucidL./MaverickM./WinXP LibreOffice 3.3.2 > 02/13 LinuxMint13/Xubuntu > 09/13 Debian Wheezy+LO3.5.4.2 > 01/15 Debian Jessie KDE+LO4.3.3.2/Mint17 openbox auf USB+LO4.2.8.2 > 03/16 ArchLin & LO5.1+ff > 02/18 Kubuntu
2008 LucidL./MaverickM./WinXP LibreOffice 3.3.2 > 02/13 LinuxMint13/Xubuntu > 09/13 Debian Wheezy+LO3.5.4.2 > 01/15 Debian Jessie KDE+LO4.3.3.2/Mint17 openbox auf USB+LO4.2.8.2 > 03/16 ArchLin & LO5.1+ff > 02/18 Kubuntu
-
- Beiträge: 2
- Registriert: Fr 19. Apr 2019, 15:40
Re: Base Datensatz von Formular zu Report
Hallo,
erstmal vielen Dank für die Tips
beide Wege werde ich mal ausprobieren
erstmal vielen Dank für die Tips
beide Wege werde ich mal ausprobieren
grüße euer
Biertrinker
Biertrinker
Re: Base Datensatz von Formular zu Report
Tja,
wann denn? Bisher hast du die Beispieldatei ja nicht einmal heruntergeladen.
R
wann denn? Bisher hast du die Beispieldatei ja nicht einmal heruntergeladen.
R
An alle, die das LibreOffice-Forum nutzen:
Bitte beteiligen Sie sich mit 7 Euro pro Monat und helfen uns bei unserem Budget für das Jahr 2024.
Einfach per Kreditkarte oder PayPal.
Als Dankeschön werden Sie im Forum als LO-SUPPORTER gekennzeichnet.
❤️ Vielen lieben Dank für Ihre Unterstützung ❤️