Seite 1 von 1

Re: Meldung aus Formular gewünscht

Verfasst: Fr 6. Sep 2019, 07:14
von gogo
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

Re: Meldung aus Formular gewünscht

Verfasst: Mo 9. Sep 2019, 08:33
von gogo
man glaubt es nicht - da hat mich jemand mit meiner Antwort in dem Tread alleinegelassen...

Re: Meldung aus Formular gewünscht

Verfasst: Mo 9. Sep 2019, 12:55
von HeiDieLX2
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.

Re: Meldung aus Formular gewünscht

Verfasst: Mo 9. Sep 2019, 21:53
von gogo
war ja keine Kritik - fand's nur komisch dass man den Erstellungspost löschen kann, bzw. ist das vllt. im Zuge der Verspammung passiert...

Re: Meldung aus Formular gewünscht

Verfasst: Di 10. Sep 2019, 11:47
von HeiDieLX2
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?

Re: Meldung aus Formular gewünscht

Verfasst: Mi 11. Sep 2019, 11:20
von gogo

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.

Re: Meldung aus Formular gewünscht

Verfasst: Mi 11. Sep 2019, 16:22
von F3K Total
Moin,
versuch mal

Code: Alles auswählen

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

Re: Meldung aus Formular gewünscht

Verfasst: Do 12. Sep 2019, 18:17
von HeiDieLX2
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.

Re: Meldung aus Formular gewünscht

Verfasst: Do 12. Sep 2019, 20:11
von RobertG
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