GELÖST Error Handling

Antwort erstellen


BBCode ist eingeschaltet
[img] ist ausgeschaltet
[url] ist eingeschaltet
Smileys sind ausgeschaltet

Die letzten Beiträge des Themas
   

Ansicht erweitern Die letzten Beiträge des Themas: GELÖST Error Handling

Re: Error Handling

von WSO » Sa, 03.05.2014 20:23

genial einfach und effektiv!
Vielen, vielen Dank,
Wolfram

Re: Error Handling

von DPunch » Sa, 03.05.2014 18:00

Servus

Du könntest z.B. eine Funktion wie die folgende an das Formularereignis "Vor der Datensatzaktion" hängen

Code: Alles auswählen

Function Validate as Boolean
	Validate = True
	
	REM ***
	REM Auf Fehler testen
	REM ***
	
	If Fehler Then
		MsgBox "Es ist ein Fehler aufgetreten (...)"
		Validate = False
	End If
End Function

Re: Error Handling

von WSO » Sa, 03.05.2014 15:20

geht leider nicht wie erwartet.
habe diese Makro beim als Ereignis "vor der Datensatzaktion" eigehängt.

Bei Insert wird der update verhindert, allerdings wird die Fehlermeldung zweimal ausgegeben.

Bei Datensatzänderung oder Löschung geht es nicht.
Nach zweimaliger Bestätigung der msgbox wir die Datensatzverarbeitung durchgeführt.

Könnte natürlich die gesamte Datenmanipulation in Makros verlegen, das wäre aber ein zu aufwendiger workaround.

Code: Alles auswählen

sub xDEL

        DIM oDoc AS OBJECT
	DIM oDrawpage AS OBJECT
	DIM oBearbForm AS OBJECT    

	oDoc=thisComponent	
	oDrawpage=oDoc.drawpage
	oBearbForm = oDoc.drawpage.forms.getbyindex(0)
		
	msgbox ("Abbruch wegen Userfehler")	

	oBearbForm.MoveToCurrentRow
   
end sub

Re: Error Handling

von WSO » Sa, 03.05.2014 12:48

ja, und wie ist das update und delete von einen Datensatz?
Gruss
Wolfram (sonnig 25 Grad)

Re: Error Handling

von RobertG » Sa, 03.05.2014 09:21

Hallo Wolfram,

genau das habe ich an der entsprechenden Stelle doch geschrieben - aber vielleicht klappt das ja bei Dir nicht:
Mit oForm.MoveToCurrentRow verhindere ich, dass ein Datensatz abgespeichert wird, wenn er neu erstellt wird und noch Eingaben erforderlich sind.
Gruß

Robert

Re: Error Handling

von WSO » Sa, 03.05.2014 01:14

Hi Robert,
Hmm, vielleicht habe ich mich falsch ausgedrückt.
In dem Thread war ich zuvor schon drin um zu lernen, dass der ErrorListneter das nicht kann.

Ein Makro zue Eingabedatenprüfung, ist ja irgentwann mit der Fehlerpüfung durch, gibt z.B. die Fehlereldung über ungültige Dateneingaben aus,
der Anwender drückt ok und schon habe ich den Schrott in der Datenbank.

Es geht hier nicht um Mussfelder, sondern um kontextsensitive Abhängigkeiten zwischen den Datenfeldern.
Praxisbeispiel:
Feld "Summe_bisheriger_Umsatz"
Feld "Kauf_auf_Rechnug" (J/N)
Jetzt soll die Anwendung verhindern, dass ein Kauf auf Rechnung durc hgeführt bwird, wenn der bisherige Umsatz < x ist.

Es muss einen Befehl geben, der das Formular zwingt die weitere Verarbeitung (die Datensatzaktion) abzubrechen und mit dem Einlesen der Formulardaten erneut zu beginnen,
sonst machen Fehlerprüfungen doch keinen Sinn.

Genau diesen Befehl suche ich, in der Doku konnte ich dazu nichts finden.

Macht sonst keiner sowas?

Gruss,
Wolfram

Re: Error Handling

von RobertG » Fr, 02.05.2014 21:20

Hallo Wolfram,

zuerst einmal musst Du beim Formular an die Eigenschaft "Vor der Datensatzaktion" gehen.
Dann ist Dir vielleicht dieser Thread nützlich, in dem ich auch nach etwas gesucht habe, wie ich Fehler abfangen kann:
viewtopic.php?f=8&t=63400#p242354

Gruß

Robert

GELÖST Error Handling

von WSO » Fr, 02.05.2014 20:45

Haallo Zusammen,
ich suche nach Beispielen für ein Error handling für die Feldprüfungen via Makro vor der Verarbeitung (update, delete, insert).
Die Updates der Datenbank für die nach der fehlerfrei durchlaufenen Prüfung soll Base übernehmen.

Falls das Makro Fehler bei der Eingabedatenprüfung feststellt, soll:

der Cursor neu positioniert werden (wie?)
die weitere Veratbeitung durch das Formular (update, delete, inset) soll nicht ausgeführt werden (wie?)
der Fehlertext aus der Fehlertabelle geholt werden (funktioniert)
der varibale Fehlertext per msgbox ausgegeben werden (funktioniert)

Systemfehlermeldungen möchte ich global an/ausschalten können und wenn ausgeschlatet durch eine eigene Meldung ersetzen,
z.B.: ("Systemfehler in Modul: " +modul + "Die aktuelle Verarbeitung wurde abgrbrochen, bitte wenden Sie sich an den Systemadministrator"

Danke für alle Anregungen,
Wolfram

Nach oben