🙏 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. 🤗
Markierten Datensatz eines Tabellen-Kontrollfeldes ins Makro
Markierten Datensatz eines Tabellen-Kontrollfeldes ins Makro
Hallo,
für eine kleine Goldschmiede bastele ich auf Calc Sheets eine Datenbank-Anwendung, welches Kunden und dessen Aufträge verwaltet. Mit Makros habe ich kaum Erfahrung, aber ich übe mich dran:-) Ich würde gerne folgendes einbauen:
Der Benutzer soll aus einem Tabellen-Kontrollfeld einen Datensatz (Kunde) markieren. Dann kann er auf eine Schaltfläche klicken. Das Makro müsste nun das Tabellenblatt wechseln (wurde bereits gelöst) und im neuen Tabellenblatt zu dem vorher markierten Datensatz ( Entsprechend der KundenNr) springen.
Der Punkt wo ich im Internet keinen Ansatz finde liegt darin, den markierten Datensatz des Tabellen-Kontrollfeldes aus dem Makro heraus auszulesen.
Hat jemand eine Idee?
danke, Andreas
für eine kleine Goldschmiede bastele ich auf Calc Sheets eine Datenbank-Anwendung, welches Kunden und dessen Aufträge verwaltet. Mit Makros habe ich kaum Erfahrung, aber ich übe mich dran:-) Ich würde gerne folgendes einbauen:
Der Benutzer soll aus einem Tabellen-Kontrollfeld einen Datensatz (Kunde) markieren. Dann kann er auf eine Schaltfläche klicken. Das Makro müsste nun das Tabellenblatt wechseln (wurde bereits gelöst) und im neuen Tabellenblatt zu dem vorher markierten Datensatz ( Entsprechend der KundenNr) springen.
Der Punkt wo ich im Internet keinen Ansatz finde liegt darin, den markierten Datensatz des Tabellen-Kontrollfeldes aus dem Makro heraus auszulesen.
Hat jemand eine Idee?
danke, Andreas
- Dateianhänge
-
- Goldschmiede.zip
- (31.39 KiB) 245-mal heruntergeladen
Re: Markierten Datensatz eines Tabellen-Kontrollfeldes ins M
Hi,
das auslesen der Kundennummer geht mit diesem Makro:
Viel erfolg
R
das auslesen der Kundennummer geht mit diesem Makro:
Code: Alles auswählen
sub S_Find_KD_ID
oForm = thisComponent.sheets(0).Drawpage.Forms.getByName("Formular")
ncolumn = oform.findcolumn("KundenNr")
nKundennummer = oform.getint(ncolumn)
msgbox nKundennummer
end sub
R
Windows 11: AOO, LO Linux Mint: AOO, LO
Re: Markierten Datensatz eines Tabellen-Kontrollfeldes ins M
Hi,
ich habe dir noch das "rüberhüpfen" eingebaut:
Das Makro ließt die Kundennummer aus und übergibt sie mit dem Aufruf
an das Makro Tabellenwechsel, welches die Kundennummer mit diesem Aufruf
wiederum an das Makro übergibt.
Die Übergabe an habe ich optional gestaltet, so funktioniert die ursprüngliche Suche aus dem Textfeld weiterhin weil mit dieser Unterscheidung
ermittelt wird, ob die Kundennummer übergeben wurde. Wenn nicht (ismissing), wird der Inhalt des Textfeldes als Filter verwendet.
Viel Erfolg
Gruß R
ich habe dir noch das "rüberhüpfen" eingebaut:
Das Makro
Code: Alles auswählen
S_Find_KD_ID
Code: Alles auswählen
Tabellenwechsel(nKundennummer)
Code: Alles auswählen
KundenNrSuche(Kundennummer)
Code: Alles auswählen
KundenNrSuche
Die Übergabe an
Code: Alles auswählen
KundenNrSuche(optional Kundennummer)
Code: Alles auswählen
if ismissing(Kundennummer) then
sFilter = (oTextfeld.Text) 'Suchtext aus Textbox
else
sFilter = Kundennummer
endif
Viel Erfolg
Gruß R
- Dateianhänge
-
- Kundenverwaltung.zip
- (17.97 KiB) 233-mal heruntergeladen
Windows 11: AOO, LO Linux Mint: AOO, LO
Re: Markierten Datensatz eines Tabellen-Kontrollfeldes ins M
Ganz ehrlich, ich bin Baff. Es funktioniert. Ich werde mir jetzt Deinen Code ganz in Ruhe ansehen. Danke!
Re: Markierten Datensatz eines Tabellen-Kontrollfeldes ins M
Hallo aglori,
ich hätte da noch drei Vorschläge für Dich:
Gruß R
ich hätte da noch drei Vorschläge für Dich:
- Du hast die Formulare in Calc erstellt, warum? Sie könnten auch innerhalb von Base liegen. So hättest du nur eine Datei.
- Die drei Foto Spalten sind nicht so gut, besser wäre eine eigene Fototabelle mit den vier Spalten
- "ID_Foto" INTEGER AUTOINCREMENT
- "FK_ID_Tuete" INTEGER
- "Name" VARCHAR[255]
- "URL" VARCHAR[255]
- Jetzt noch ein Dateiauswahlkontrollfeld zum Einlesen des Foto-URL, mit dem folgenden kleinen Makro und die Welt ist in Ordnung
Code: Alles auswählen
sub S_pick_File
oform = thisComponent.drawpage.forms.Kunden.Auftraege.Fotos
ofilepicker = oform.filepicker
sURL = converttourl(ofilepicker.Text)
sfilename = inputbox ("Bitte Benennung eingeben","Foto einlesen",sURL)
if ofilepicker.Text = "" then exit sub
if not oform.isnew then oform.movetoinsertRow
oform.updatestring(3,sfilename)
oform.updatestring(4,sURL)
oform.insertRow()
end sub
Windows 11: AOO, LO Linux Mint: AOO, LO
Re: Markierten Datensatz eines Tabellen-Kontrollfeldes ins M
Hallo F3K Total,
vielen Dank noch einmal für die weiteren Tipps. Ich habe erst jetzt wieder ins Forum geschaut. Ich finde es recht praktisch, dass man in Calc so einfach zwischen den Formularen bzw. Sheets wechseln kann. In Base muss man immer erst die Base - Datei und dann auf das entsprechende Formular klicken. Wahrscheinlich war ich aber auch einfach zu faul, mich damit zu beschäftigen, wie man innerhalb von Base Formularen wechselt.
Ja, mit den Foto Spalten hast Du recht, das hätte ich machen sollen. Ich werde mal sehen, was ich davon noch umsetzen kann.
Danke nochmal!
vielen Dank noch einmal für die weiteren Tipps. Ich habe erst jetzt wieder ins Forum geschaut. Ich finde es recht praktisch, dass man in Calc so einfach zwischen den Formularen bzw. Sheets wechseln kann. In Base muss man immer erst die Base - Datei und dann auf das entsprechende Formular klicken. Wahrscheinlich war ich aber auch einfach zu faul, mich damit zu beschäftigen, wie man innerhalb von Base Formularen wechselt.
Ja, mit den Foto Spalten hast Du recht, das hätte ich machen sollen. Ich werde mal sehen, was ich davon noch umsetzen kann.
Danke nochmal!
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.