Re: Meldung aus Formular gewünscht

Base ermöglicht es Ihnen, Ihre Daten in einer Datenbank direkt mit LibreOffice zu bearbeiten.
Antworten
gogo
Beiträge: 875
Registriert: Sa 5. Feb 2011, 19:07

Re: Meldung aus Formular gewünscht

Beitrag von gogo » Fr 6. Sep 2019, 07:14

es gibt da kein eleganteres Verfahren sofern die Buttons ausschließlich mit vordefinierten Aktionen belegt sind und sofern es keine Aktion <prüfen und speichern> gibt.
Du kannst aber die Speichern-Buttons disablen und erst wenn sich in den erforderlichen Feldern eine Eingabe befindet sie enablen. Dazu einfach ein Makro an das Ereignis "Text modifiziert" binden.
Etwa so:

Code: Alles auswählen

sub AllesDa_JN(oEvent)
  f = oEvent.source.model.parent
  if f.Adresse.text = "" then goto NichtsZulassen
  if f.FamilienName.text = "" then goto NichtsZulassen
  '...
  '...

  f.SpeichernButton.enabled = true
  exit sub
NichtsZulassen:
  f.SpeichernButton.enabled = false
end sub
Zuletzt geändert von gogo am Mo 9. Sep 2019, 08:35, insgesamt 2-mal geändert.
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

gogo
Beiträge: 875
Registriert: Sa 5. Feb 2011, 19:07

Re: Meldung aus Formular gewünscht

Beitrag von gogo » Mo 9. Sep 2019, 08:33

man glaubt es nicht - da hat mich jemand mit meiner Antwort in dem Tread alleinegelassen...
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

HeiDieLX2
Beiträge: 3
Registriert: Mo 9. Sep 2019, 12:50

Re: Meldung aus Formular gewünscht

Beitrag von HeiDieLX2 » Mo 9. Sep 2019, 12:55

Hallo gogo,
ich habe am Freitag bereits geantwortet.
Kann mich jedoch heute nicht mit HeiDieLX anmelden. Meine Beiträge sind auch weg :-((

Habe nun mal eine neue Anmeldung gemacht HeiDieLX2

Mal sehen ob meine Beiträge wieder auftauchen...

Habe über das Kontaktformular mal laut gegeben.
MfG
HeiDieLx vom Bienwald

opensuse 15.0
postgreSQL 11.3
LibreOffice 6.2.6.2

gogo
Beiträge: 875
Registriert: Sa 5. Feb 2011, 19:07

Re: Meldung aus Formular gewünscht

Beitrag von gogo » Mo 9. Sep 2019, 21:53

war ja keine Kritik - fand's nur komisch dass man den Erstellungspost löschen kann, bzw. ist das vllt. im Zuge der Verspammung passiert...
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

HeiDieLX2
Beiträge: 3
Registriert: Mo 9. Sep 2019, 12:50

Re: Meldung aus Formular gewünscht

Beitrag von HeiDieLX2 » Di 10. Sep 2019, 11:47

Hallo gogo,
war ja keine Kritik -
hatte ich auch nicht als solche aufgefasst.
Ist nur megablöd gelaufen.

Jedoch zurück zum Thema.
Dein Code funktioniert sehr gut. Jedoch so nur bei Textfeldern.
Eines der Felder (das wichtigste) ist ein Listenfeld. Ich habe da bislang keine Möglichkeit gefunden zu prüfen ob das Feld leer oder mit Inhalt ist.
SelectedValue (Variant/Empty) Wenn Feld leer, hier auch leer. Wenn Inhalt dann steht in SelectedValue die ID der ausgewählten Adresse also eine Zahl von 0 bis n.
Wie prüfe ich das nun auf leer? oder gibt es da noch einen anderen Weg?
MfG
HeiDieLx vom Bienwald

opensuse 15.0
postgreSQL 11.3
LibreOffice 6.2.6.2

gogo
Beiträge: 875
Registriert: Sa 5. Feb 2011, 19:07

Re: Meldung aus Formular gewünscht

Beitrag von gogo » Mi 11. Sep 2019, 11:20

Code: Alles auswählen

if f.ListenfeldXYZ.value = "" then goto NichtsZulassen
... wenn ich mich richtig erinnere, aber es könnte auch .item, .items, .activevaule, activeItem .... sein.
Listenfelder sind ja "immer voll" aber nicht immer ausgewählt.
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

F3K Total
Beiträge: 1856
Registriert: So 10. Apr 2011, 10:10

Re: Meldung aus Formular gewünscht

Beitrag von F3K Total » Mi 11. Sep 2019, 16:22

Moin,
versuch mal

Code: Alles auswählen

if f.ListenfeldXYZ.CurrentValue = "" then goto NichtsZulassen
Gruß R

HeiDieLX2
Beiträge: 3
Registriert: Mo 9. Sep 2019, 12:50

Re: Meldung aus Formular gewünscht

Beitrag von HeiDieLX2 » Do 12. Sep 2019, 18:17

Hallo gogo, hallo F3K Total,

nachdem das Forum nun wieder funktioniert... Meine Beiträge als HeiDieLX fehlen noch immer...

Ich habe die Lösung gefunden, eigentlich trivial.

Code: Alles auswählen

sub AllesDa_JN(oEvent)
	DIM oForm1_1 AS OBJECT
	'
	oForm1_1 = oEvent.source.model.parent
	if oForm1_1.txtKunr.text = "" then goto NichtsZulassen
	if oForm1_1.txtadr3.text = "" then goto NichtsZulassen
	if oForm1_1.txtname.text = "" then goto NichtsZulassen
	if TRIM(oForm1_1.txtmaskSuchNa.text) = "" then goto NichtsZulassen
	if oForm1_1.lftxt_adr.CurrentValue = 0 then goto NichtsZulassen
	oForm1_1.btnPersSave.enabled = true
	exit sub
	NichtsZulassen:
	oForm1_1.btnPersSave.enabled = false
end sub
so funktioniert es wie ich es möchte. Mir war nicht klar, das 0 auch auf eigentlich leeren Inhalt funktioniert. In der DB gibt es ja einen klaren Unterschied zwischen leer und 0.
In Source oben ist "lftxt_adr" (Listenfeld_Adresse) und "txtmaskSuchNa" (Maskiertes Feld_Suchname). Den Trim() brauche ich weil mir die Maske dort Leerzeichen rein zaubert.

Vielen Dank für den Input.
MfG
HeiDieLx vom Bienwald

opensuse 15.0
postgreSQL 11.3
LibreOffice 6.2.6.2

RobertG
Beiträge: 1937
Registriert: Sa 19. Mai 2012, 17:37
Kontaktdaten:

Re: Meldung aus Formular gewünscht

Beitrag von RobertG » Do 12. Sep 2019, 20:11

Hallo heiDieLx,

die '0' erscheint nur als Standardwert, wenn Du ein Feld als Zahlenfeld definiert hast. Und dann kannst Du bei Listenfeldern schnell einen falschen Schluss ziehen. Denn zumindest bei der internen HSQLDB beginnt die Autowert-Zählung mit 0 - und dann steckt eben hinter der 0 ein entsprechender Datensatz. Ich habe das entweder mit einer Anfangsdefinition eines sicher nicht vorkommenden Wertes (meistens -1) gelöst oder beim Auslesen von Werten diese Werte zuerst als Text ausgelesen.

Gruß

Robert

Antworten