TDbEditAnyNo
TDbEditAnyNo - Eingabefeld mit eigener Suchfunktion
Diese Eingabefeldklasse ist dafür vorgesehen, eigene Suchfunktionen zu implementieren. Das Erscheinungsbild des Controls entspricht dem eines Eingabefeldes für Kunden-, Lieferanten- oder Artikelnummern, also ein Edit-Feld mit Such-Button.
Verwendung
Die Zuweisung der Klasse zu einem Datenfeld erfolgt über Datenbankverwaltung / Felder / Optionen / Controltyp / TDbEditAnyNo. Die Suchfunktion muss im Masken-Designer über die Eigenschaft BlockStr als Codeblock realisiert werden. Hier ist natürlich auch die Nutzung bestehender BE-Fenster-Klassen möglich.
Beispiel
// Suchfunktion im Feld Kostenstelle der Eingabemaske FiBu-Sachkonten, realisiert
// über die vorhandene BE-Fensterklasse 'TSachKtoWahl'.
| oObj, oSachKtoWahl, aOldCursor |
aOldCursor:= SetCursor(crHourGlass),
StartSeq
oSachKtoWahl:= CreateObject('TSachKtoWahl',, Application, Application),
If !Empty(oSachKtoWahl) then // Suchfenster erzeugen
StartSeq
oSachKtoWahl.KontoTyp:= 'A', // Vorgabe 'Kostenstelle'
If Df010:KostenSt > 0 then
oSachKtoWahl.Konto:= Df010:KostenSt // DB-Tabelle positionieren
EndIf,
If ShowModal(oSachKtoWahl) = mrOk then // Fenster anzeigen
oObj:= GetOwner(Self),
If ClassName(oObj) <> 'TBeMaskDesigner' then // <ac:emoticon ac:name="sad" /> geht nicht anders
If (DbState(Df010) = dsBrowse) and
not (BoF(Df010) and EoF(Df010)) then
DbEdit(Df010),
EndIf,
Df010:KostenSt:= oSachKtoWahl.Konto, // Auswahl holen
EndIf
EndIf
Always
DestroyObject(oSachKtoWahl) // Suchfenster schliessen
StopSeq,
EndIf
Always
SetCursor(aOldCursor)
StopSeq