Prüfungen vor dem Datensatz-Speichern

Datenbanklösungen mit AOO/LO

Moderator: Moderatoren

Daimonion
*
Beiträge: 15
Registriert: Mi, 02.05.2007 15:15

Prüfungen vor dem Datensatz-Speichern

Beitrag von Daimonion »

Moderation,4: Fortsetzung des Threads Button mit mehreren Aktionen programmieren




Danke für die Antwort.

Was ich wie geprüft haben möchte:

Die Felder sind ja Strings (Bis vielleicht auf das Kalender/Datumsfeld)

Ich möchte zum einen prüfen ob in jedem Feld was drin steht (String.length >0 ) und zum anderen, dass in dem Feld für einen Http Link auch wirklich ein HTTP Link steht (kann ich reguläre Ausdrücke in OO-Base verwenden?). Weiterhin sollte dann im Feld Datum natürlich ein gültiges Datum zu prüfen sein.

Wenn ich mal mehr in dem Skripting drin bin, werde ich vielleicht noch so Dinge einbauen, mit dem Überprüft wird, ob ein ähnlicher Eintrag schon in der DB existiert, aber das möchte ich zunächst mal hinten an stellen.
Benutzeravatar
komma4
********
Beiträge: 5332
Registriert: Mi, 03.05.2006 23:29
Wohnort: Chon Buri Thailand Asia
Kontaktdaten:

Re: Prüfungen vor dem Datensatz-Speichern

Beitrag von komma4 »

Daimonion hat geschrieben:Was ich wie geprüft haben möchte:

Die Felder sind ja Strings (Bis vielleicht auf das Kalender/Datumsfeld)

Ich möchte zum einen prüfen ob in jedem Feld was drin steht (String.length >0 ) und zum anderen, dass in dem Feld für einen Http Link auch wirklich ein HTTP Link steht (kann ich reguläre Ausdrücke in OO-Base verwenden?). Weiterhin sollte dann im Feld Datum natürlich ein gültiges Datum zu prüfen sein.

Den Zwang zu einer Eingabe in einem Textfeld kann mit der Datenbank erreicht werden (CONSTRAINT).

Das hast Du in Deiner Filmdatenbank.odb für „Titel“ schon gemacht [Eingabe erforderlich=Ja].



Ein Kontrollfeld vom Typ DATUM (gebunden an „Hinzugefügt“) akzeptiert von Haus aus nur gültige Werte.



HTTP-Link: hier kann beim Ereignis "Modifiziert" des Kontrollfelds eine Routine aufgerufen werden, welche die Syntax prüft. Voraussichtlich kann ich noch während des laufenden Wochenendes ein Codefragment beisteuern.
Cheers
Winfried
aktuell: LO 5.3.5.2 30m0(Build:2) SUSE rpm, unter Linux openSuSE Leap 42.3 x86_64/KDE5
DateTime2 Einfügen von Datum/Zeit/Zeitstempel (als OOo Extension)
Benutzeravatar
komma4
********
Beiträge: 5332
Registriert: Mi, 03.05.2006 23:29
Wohnort: Chon Buri Thailand Asia
Kontaktdaten:

Re: Prüfungen vor dem Datensatz-Speichern

Beitrag von komma4 »

Habe mal kurz was gebastelt.

Die FUNCTION in einem Modul des Formulars speichern und an das Ereignis MODIFIZIERT des Eingabefeldes "IMDB" Deines Formulars hängen

Code: Alles auswählen

Function de39959( oEvent as Object )
' Version 1   2010-07-10
'
' Prüfung der Eingaben eines Formulars
sMakroName = "de39959"

If oEvent.Source.Text = "" Then
   de39959 = TRUE
   Exit Function
End If

' benötigter Service und Struktur
URLService = createUnoService( "com.sun.star.util.URLTransformer" )
URLStruktur = createUnoStruct( "com.sun.star.util.URL" )

' Eingabetext
URLStruktur.Complete = oEvent.Source.Text

If URLService.parseStrict( URLStruktur ) = TRUE Then
   'MsgBox URLService.getPresentation( URLStruktur, FALSE )
   de39959 = TRUE
Else
   MsgBox "Die Eingabe wurde nicht als gültige URL erkannt" & _
    CHR(10) & _
    oEvent.Source.Text, _
    16, sMakroName
   de39959 = FALSE
Endif 

End Function

Es werden noch nicht alle Fehleingaben abgefragt (bspw. http://x wird akzeptiert) - aber vielleicht reicht Dir das schon?



Suchbegriffe für die Forensuche: validation, Eingabeprüfung, Formular, URL
Cheers
Winfried
aktuell: LO 5.3.5.2 30m0(Build:2) SUSE rpm, unter Linux openSuSE Leap 42.3 x86_64/KDE5
DateTime2 Einfügen von Datum/Zeit/Zeitstempel (als OOo Extension)
Antworten