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. 🤗
Seminarverwaltung - Teilnahmebestätigung pro Mitarbeiter u. Seminar
Re: Seminarverwaltung - Teilnahmebestätigung pro Mitarbeiter u. Seminar
Hi,
die beiden Felder "Veranstaltungsort" und "Bezeichnung" wollte ich aus der Tabelle "Schulungen" heraus nehmen.
Möchte eigentlich per separatem Formular zunächst die Seminarbezeichnungen pro Veranstalter pflegen, ebenso die möglichen Veranstaltungsorte pro Veranstalter.
Im "Hauptformular" möchte ich dann eben den Veranstalter per Listenfeld auswählen, und dazu ebenfalls per Listenfeld die Seminarbezeichnung und der Veranstaltungsort.
Ist das machbar und wie?
Hylli
die beiden Felder "Veranstaltungsort" und "Bezeichnung" wollte ich aus der Tabelle "Schulungen" heraus nehmen.
Möchte eigentlich per separatem Formular zunächst die Seminarbezeichnungen pro Veranstalter pflegen, ebenso die möglichen Veranstaltungsorte pro Veranstalter.
Im "Hauptformular" möchte ich dann eben den Veranstalter per Listenfeld auswählen, und dazu ebenfalls per Listenfeld die Seminarbezeichnung und der Veranstaltungsort.
Ist das machbar und wie?
Hylli
Geschäftlich: LibreOffice 7.2.x(als Citrix-Anwendung)
Privat: LibreOffice 7.3.x unter Linux Mint Cinnamon 64bit (jeweils aktuelle Version)
Privat: LibreOffice 7.3.x unter Linux Mint Cinnamon 64bit (jeweils aktuelle Version)
Re: Seminarverwaltung - Teilnahmebestätigung pro Mitarbeiter u. Seminar
Hallo Hylli,
vermutlich wäre es am Besten, die DB, ggf. verfremdet hier hochzuladen. Wenn ich dich richtig verstehe, willst du einem Ort und einer Seminarbezeichnung nur die ID des Veranstalters zuordnen, und die Werte dann mittels Listenfeld in die Tabelle Schulungen schreiben, wobei das Listenfeld cascadierend sein soll, also nur die entsprechende Auswahl an Orten und Seminarbezeichnungen des gerade gewählten Veranstalters anzeigen soll. Geht, auf alle Fälle per Makro.
Anbei ein Beispiel für den Ort, das Makro ist kurz, hat es aber in sich:
vermutlich wäre es am Besten, die DB, ggf. verfremdet hier hochzuladen. Wenn ich dich richtig verstehe, willst du einem Ort und einer Seminarbezeichnung nur die ID des Veranstalters zuordnen, und die Werte dann mittels Listenfeld in die Tabelle Schulungen schreiben, wobei das Listenfeld cascadierend sein soll, also nur die entsprechende Auswahl an Orten und Seminarbezeichnungen des gerade gewählten Veranstalters anzeigen soll. Geht, auf alle Fälle per Makro.
Anbei ein Beispiel für den Ort, das Makro ist kurz, hat es aber in sich:
Code: Alles auswählen
Sub S_SET_CURRENT_ID_V_LISTBOX_ORT
Dim sListsource(0)as String
oF_SCHULUNGEN = ThisComponent.Drawpage.Forms.F_SCHULUNGEN 'Zugriff auf Formular F_SCHULUNGEN
nFK_ID_V = oF_SCHULUNGEN.Columns.FK_ID_V.getint 'auslesen der aktuellen ID des Veranstalters
olstFK_ID_ORT = oF_SCHULUNGEN.lstFK_ID_ORT 'Zugriff auf Listbox Ort
sListsource(0) = "SELECT ORT, ID_ORT FROM ORTE WHERE ORTE.FK_ID_V = " & nFK_ID_V 'Schreiben des Listboxinhaltes (SQL) in ein Array
olstFK_ID_ORT.Listsource = sListsource 'Setzen des Listboxinhaltes
olstFK_ID_ORT.refresh 'Aktualisierung der Listbox
End Sub
- Dateianhänge
-
- Hylli_Listbox.zip
- (11.54 KiB) 159-mal heruntergeladen
Windows 10: AOO, LO Linux Mint: AOO, LO
Re: Seminarverwaltung - Teilnahmebestätigung pro Mitarbeiter u. Seminar
Hi,
wie kriege ich die DB am schnellsten leer, so dass ich nur ein paar Musterdaten einfügen muss, um diese hier zur Verfügung stellen zu können?
Eine Makro-freie Lösung wäre mir auch lieber.
Hylli
wie kriege ich die DB am schnellsten leer, so dass ich nur ein paar Musterdaten einfügen muss, um diese hier zur Verfügung stellen zu können?
Eine Makro-freie Lösung wäre mir auch lieber.
Hylli
Geschäftlich: LibreOffice 7.2.x(als Citrix-Anwendung)
Privat: LibreOffice 7.3.x unter Linux Mint Cinnamon 64bit (jeweils aktuelle Version)
Privat: LibreOffice 7.3.x unter Linux Mint Cinnamon 64bit (jeweils aktuelle Version)
Re: Seminarverwaltung - Teilnahmebestätigung pro Mitarbeiter u. Seminar
OK, im Anhang mal die anonymisierte Datenbank.
Hylli
Hylli
- Dateianhänge
-
- Schulungsdatenbank_LO.zip
- Anonymisierte DB "neu"
- (68.03 KiB) 136-mal heruntergeladen
Geschäftlich: LibreOffice 7.2.x(als Citrix-Anwendung)
Privat: LibreOffice 7.3.x unter Linux Mint Cinnamon 64bit (jeweils aktuelle Version)
Privat: LibreOffice 7.3.x unter Linux Mint Cinnamon 64bit (jeweils aktuelle Version)
Re: Seminarverwaltung - Teilnahmebestätigung pro Mitarbeiter u. Seminar
Hi,
ich habe mal die Makro Lösung in deine DB eingebaut, wieso sie noch nie heruntergelden wurde, ist mir schleierhaft, oder hast du sie noch einmal ersetzt?
Das Makro S_SET_CURRENT_ID_V_LISTBOX wird ausgeführt, wenn du einen Veranstalter wählst, es setzt dann den Inhalt der Listboxen dazu passend.
Das Makro S_SET_CURRENT_LISTBOX_ON_ROWCHANGE wird ausgeführt wenn du den Datensatz wechselst, es ließt vorhandene Veranstalter aus und setzt wieder den Inhalt der Listboxen dazu passend.
Gruß R
ich habe mal die Makro Lösung in deine DB eingebaut, wieso sie noch nie heruntergelden wurde, ist mir schleierhaft, oder hast du sie noch einmal ersetzt?
Das Makro S_SET_CURRENT_ID_V_LISTBOX wird ausgeführt, wenn du einen Veranstalter wählst, es setzt dann den Inhalt der Listboxen dazu passend.
Das Makro S_SET_CURRENT_LISTBOX_ON_ROWCHANGE wird ausgeführt wenn du den Datensatz wechselst, es ließt vorhandene Veranstalter aus und setzt wieder den Inhalt der Listboxen dazu passend.
Code: Alles auswählen
Sub S_SET_CURRENT_ID_V_LISTBOX
Dim sListsourceOrt(0)as String
Dim sListsourceBezeichnung(0)as String
oF_SCHULUNGEN = ThisComponent.Drawpage.Forms.F_SCHULUNGEN 'Zugriff auf Formular F_SCHULUNGEN
olstFK_ID_Veranstalter = oF_SCHULUNGEN.lstFK_ID_Veranstalter
olstFK_ID_Veranstalter.commit
if oF_SCHULUNGEN.isnew then
oF_SCHULUNGEN.insertrow
else
oF_SCHULUNGEN.Updaterow
endif
nFK_ID_Veranstalter = oF_SCHULUNGEN.Columns.FK_ID_Veranstalter.getint 'auslesen der aktuellen ID des Veranstalters
olstVeranstaltungsort = oF_SCHULUNGEN.lstVeranstaltungsort 'Zugriff auf Listbox "lstVeranstaltungsort"
olstSeminarbezeichnung = oF_SCHULUNGEN.lstSeminarbezeichnung
sListsourceOrt(0) = "SELECT ""Veranstaltungsort"", ""ID_Veranstaltungsort"" FROM ""V_Orte"" WHERE ""FK_ID_Veranstalter"" = " & nFK_ID_Veranstalter 'Schreiben des Listboxinhaltes in ein Array
sListsourceBezeichnung(0) = "SELECT ""Seminarbezeichnung"", ""ID_Seminarbezeichnung"" FROM ""V_Seminarbezeichnung"" WHERE ""FK_ID_Veranstalter"" = "& nFK_ID_Veranstalter 'Schreiben des Listboxinhaltes in ein Array
olstVeranstaltungsort.Listsource = sListsourceOrt 'Setzen des Listboxinhaltes
olstVeranstaltungsort.refresh 'Aktualisierung der Listbox
olstSeminarbezeichnung.Listsource = sListsourceBezeichnung 'Setzen des Listboxinhaltes
olstSeminarbezeichnung.refresh 'Aktualisierung der Listbox
End Sub
Sub S_SET_CURRENT_LISTBOX_ON_ROWCHANGE
Dim sListsourceOrt(0)as String
Dim sListsourceBezeichnung(0)as String
oF_SCHULUNGEN = ThisComponent.Drawpage.Forms.F_SCHULUNGEN 'Zugriff auf Formular F_SCHULUNGEN
if oF_SCHULUNGEN.ISNEW then
sAppend = ""
else
nFK_ID_Veranstalter = oF_SCHULUNGEN.Columns.FK_ID_Veranstalter.getint
sAppend = " WHERE ""FK_ID_Veranstalter"" = " & nFK_ID_Veranstalter
endif
olstVeranstaltungsort = oF_SCHULUNGEN.lstVeranstaltungsort 'Zugriff auf Listbox "lstVeranstaltungsort"
olstSeminarbezeichnung = oF_SCHULUNGEN.lstSeminarbezeichnung
sListsourceOrt(0) = "SELECT ""Veranstaltungsort"", ""ID_Veranstaltungsort"" FROM ""V_Orte""" & sAppend
sListsourceBezeichnung(0) = "SELECT ""Seminarbezeichnung"", ""ID_Seminarbezeichnung"" FROM ""V_Seminarbezeichnung""" & sAppend
olstVeranstaltungsort.Listsource = sListsourceOrt 'Setzen des Listboxinhaltes
olstVeranstaltungsort.refresh 'Aktualisierung der Listbox
olstSeminarbezeichnung.Listsource = sListsourceBezeichnung 'Setzen des Listboxinhaltes
olstSeminarbezeichnung.refresh 'Aktualisierung der Listbox
End Sub
- Dateianhänge
-
- Schulungsdatenbank_LO_F3K.zip
- (74.39 KiB) 133-mal heruntergeladen
Windows 10: AOO, LO Linux Mint: AOO, LO
Re: Seminarverwaltung - Teilnahmebestätigung pro Mitarbeiter u. Seminar
Hi,
ich habe die Datenbank heute Morgen nochmals kurz ersetzt. Sie war aber nur wenige Minuten nicht da.
Bis dahin wurde die Datenbank nur einmal von Dir heruntergeladen ("...wurde 1-mal heruntergeladen..."), seither auch von niemandem mehr.
Danke an der Stelle für die Makro-Lösung.
Da ich - bekanntlich oder auch nicht - nicht so sehr der Makro-Freund bin: Wäre es denkbar bzw. ist es auch möglich, eine Makro-freie Lösung dafür zu basteln? Wo/Wie müsste man da ansetzen?
Hylli
ich habe die Datenbank heute Morgen nochmals kurz ersetzt. Sie war aber nur wenige Minuten nicht da.
Bis dahin wurde die Datenbank nur einmal von Dir heruntergeladen ("...wurde 1-mal heruntergeladen..."), seither auch von niemandem mehr.
Danke an der Stelle für die Makro-Lösung.
Da ich - bekanntlich oder auch nicht - nicht so sehr der Makro-Freund bin: Wäre es denkbar bzw. ist es auch möglich, eine Makro-freie Lösung dafür zu basteln? Wo/Wie müsste man da ansetzen?
Hylli
Geschäftlich: LibreOffice 7.2.x(als Citrix-Anwendung)
Privat: LibreOffice 7.3.x unter Linux Mint Cinnamon 64bit (jeweils aktuelle Version)
Privat: LibreOffice 7.3.x unter Linux Mint Cinnamon 64bit (jeweils aktuelle Version)
Re: Seminarverwaltung - Teilnahmebestätigung pro Mitarbeiter u. Seminar
Hi,
anbei ein Vorschlag ohne Makro, mit einer einzeiligen Filtertabelle. Durch das Setzen eines Veranstalters, wird dessen ID in die Zeile der Tabelle Filter geschrieben und das Formular F_SCHULUNGEN im gleichen Augenblick aktualisiert. Das Formular F_FILTER ist ein Hauptformular, F_SCHULUNGEN das Unterformular, verknüpft über die ID_Veranstalter. Also können jetzt auf F_SCHULUNGEN nur Veranstaltungen des gewählten Veranstalters gesehen und geschrieben werden. Schau dir den SQL-Inhalt der Listenfelder Ort und Bezeichnung an, dort wird die ID des Veranstalters zum Filtern des Inhaltes der Listenfelder ausgelesen.
Gruß R
anbei ein Vorschlag ohne Makro, mit einer einzeiligen Filtertabelle. Durch das Setzen eines Veranstalters, wird dessen ID in die Zeile der Tabelle Filter geschrieben und das Formular F_SCHULUNGEN im gleichen Augenblick aktualisiert. Das Formular F_FILTER ist ein Hauptformular, F_SCHULUNGEN das Unterformular, verknüpft über die ID_Veranstalter. Also können jetzt auf F_SCHULUNGEN nur Veranstaltungen des gewählten Veranstalters gesehen und geschrieben werden. Schau dir den SQL-Inhalt der Listenfelder Ort und Bezeichnung an, dort wird die ID des Veranstalters zum Filtern des Inhaltes der Listenfelder ausgelesen.
Gruß R
- Dateianhänge
-
- Schulungsdatenbank_LO_F3K_ohne_Makros.zip
- (79.4 KiB) 136-mal heruntergeladen
Windows 10: AOO, LO Linux Mint: AOO, LO
Re: Seminarverwaltung - Teilnahmebestätigung pro Mitarbeiter u. Seminar
Hi,
Klasse!!! Danke für Deine Hilfe.
Die Makro-Lösung ist zwar mit Sicherheit die elegantere Lösung, aber mir ist diese Lösung trotzdem lieber.
So einigermaßen steige ich dahinter, aber ich muss mir das nochmals genauer anschauen.
Hylli
Klasse!!! Danke für Deine Hilfe.
Die Makro-Lösung ist zwar mit Sicherheit die elegantere Lösung, aber mir ist diese Lösung trotzdem lieber.
So einigermaßen steige ich dahinter, aber ich muss mir das nochmals genauer anschauen.
Hylli
Geschäftlich: LibreOffice 7.2.x(als Citrix-Anwendung)
Privat: LibreOffice 7.3.x unter Linux Mint Cinnamon 64bit (jeweils aktuelle Version)
Privat: LibreOffice 7.3.x unter Linux Mint Cinnamon 64bit (jeweils aktuelle Version)
Re: Seminarverwaltung - Teilnahmebestätigung pro Mitarbeiter u. Seminar
@F3K Total:
Leider funktioniert die Variante ohne Makros nicht so wie gewünscht.
Wenn ich eine neue Veranstaltung einpflegen möchte und als erstes den Veranstalter setze, wird mir der bestehende Datensatz einfach überschrieben, statt ein neuer Datensatz angelegt. Wenn ich gleichen Veranstalter setze, werden automatisch die Daten des bereits erfassten Datensatzes geladen, welche dann ebenfalls überschrieben werden.
Liegt also noch ein kleiner aber feiner Fehler vor, ich komme allerdings nicht dahinter, wo der Fehler dabei liegen soll?
Die Makrovariante scheint hier korrekt zu arbeiten.
Hylli
Leider funktioniert die Variante ohne Makros nicht so wie gewünscht.
Wenn ich eine neue Veranstaltung einpflegen möchte und als erstes den Veranstalter setze, wird mir der bestehende Datensatz einfach überschrieben, statt ein neuer Datensatz angelegt. Wenn ich gleichen Veranstalter setze, werden automatisch die Daten des bereits erfassten Datensatzes geladen, welche dann ebenfalls überschrieben werden.
Liegt also noch ein kleiner aber feiner Fehler vor, ich komme allerdings nicht dahinter, wo der Fehler dabei liegen soll?
Die Makrovariante scheint hier korrekt zu arbeiten.
Hylli
Geschäftlich: LibreOffice 7.2.x(als Citrix-Anwendung)
Privat: LibreOffice 7.3.x unter Linux Mint Cinnamon 64bit (jeweils aktuelle Version)
Privat: LibreOffice 7.3.x unter Linux Mint Cinnamon 64bit (jeweils aktuelle Version)
Re: Seminarverwaltung - Teilnahmebestätigung pro Mitarbeiter u. Seminar
Hallo Hylli,
das stimmt so nicht ganz, ich denke du bist nicht richtig vorgegangen.
Wenn du den Veranstalter auswählst und dann IMMER den Button "Veranstalter setzen" drückst, zeigt dir das Formular alle bereits erfassten Datensätze des gewählten Veranstalters, ohne irgendetwas zu überschreiben.
Nur beim ersten Datensatz zu diesem Veranstalter sind die unteren Felder leer. Wenn du nun eine neue Veranstaltung erzeugen möchtest, nimm die untere Navigationsleiste und klicke auf "Neuer Datensatz", der Veranstalter bleibt stehen, die grauen Felder leeren sich und können nun beschrieben werden. Sind sie gefüllt, speichere die Veranstaltung mit der Diskette. Zu diesem Veranstalter gibt es dann in der Navigationsleiste eine Zeile mehr.
Ich habe dir in der angehängten Version noch ein paar Buttons mit eben den gleichen Funktionen (neuer Datensatz, Datensatz speichern) eingebaut ... sollte selbsterklärend sein, hangele dich an den Zahlen entlang.
Gruß R
das stimmt so nicht ganz, ich denke du bist nicht richtig vorgegangen.
Wenn du den Veranstalter auswählst und dann IMMER den Button "Veranstalter setzen" drückst, zeigt dir das Formular alle bereits erfassten Datensätze des gewählten Veranstalters, ohne irgendetwas zu überschreiben.
Nur beim ersten Datensatz zu diesem Veranstalter sind die unteren Felder leer. Wenn du nun eine neue Veranstaltung erzeugen möchtest, nimm die untere Navigationsleiste und klicke auf "Neuer Datensatz", der Veranstalter bleibt stehen, die grauen Felder leeren sich und können nun beschrieben werden. Sind sie gefüllt, speichere die Veranstaltung mit der Diskette. Zu diesem Veranstalter gibt es dann in der Navigationsleiste eine Zeile mehr.
Ich habe dir in der angehängten Version noch ein paar Buttons mit eben den gleichen Funktionen (neuer Datensatz, Datensatz speichern) eingebaut ... sollte selbsterklärend sein, hangele dich an den Zahlen entlang.
Gruß R
- Dateianhänge
-
- Schulungsdatenbank_LO_F3K_ohne_Makros_2.zip
- (82.87 KiB) 141-mal heruntergeladen
Windows 10: AOO, LO Linux Mint: AOO, LO
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 ❤️