Zitat von
Phoenix:
Sehr, sehr, sehr unschön: Alle Funktionalitäten in ein Programm einbauen und je nach Konfiguration im Programmverlauf eben anstelle von Form X halt Form Y laden...
Das ist aber der Weg, den wir erfolgreich gehen.
Es gibt eben zunehmend mehr Optionen, die steuern wie sich das Programm verhalten soll.
Allerdings wird von uns nicht jeder Firlefanz eingebaut, sondern vorher nachgebohrt,
warum ein Kunde diese oder jene Funktion haben möchte.
Wenn man verstanden hat, warum ein Kunde etwas haben möchte, kommt man häufig auf eine allgemeingültige
Lösung.
Beispiel: der Kunde möchte in einem
DB-Grid ein bestimmtes Feld nicht sehen; es stört ihn.
die allgemeine Lösung: ALLE DBGrids lassen sich nun konfigurieren auf Sichtbarkeit und Reihenfolge der Felder.
Die Konfiguration wird in einer INI-Datei gespeichert.
Für ganz "krumme Dinger" kann der Endkunde seine Spezialitäten in
VB- oder Javascript abhandeln.
Dazu wird der Windows Scripting Host verwendet.
Es gibt vordefinierte Script-Funktionen mit Übergabeparametern.
Wenn die Scriptfunktion in der Datei vorhanden ist, dann wird sie ausgeführt.
Die Übergabeparameter sind
COM/
DCOM-Interfacezeiger; damit kann man relativ komplexe Dinge erledigen.
Code:
' VB-Script Beispiel
' Kunde möchte Lieferschein-Nr eingeben und mit der Orginal-Lieferscheinnummer vergleichen
' falls unterschiedlich muss ein Freigabepasswort eingegeben werden
' oder der Vorgang wird geblockt
Function NachAuftragLaden2(Application, Auftrag, AuftragDetail)
Input = InputBox("Bitte Lieferscheinnr. eingeben", "Lieferscheinnr-Eingabe")
' MsgBox "NachAuftragLaden (Eingabe: "& Input &")"
if Auftrag.LieferNr <> Input then
if Application.QueryUnlockPW = False then 'Freigabepasswort OK ?
' err.Raise 99, "User Script", "Lieferscheinnummer und Passwort falsch!"
Application.Exception.Init "Lieferscheinnummer und Freigabe-Passwort falsch!"
end if
end if