F12-Maske
JS
//##############################################################################
//##############################################################################
// Beschreibung:
//
// Mögliche Aufrufe:
// Als MDI-Child: GFU_ShowMDIChild('REFKEY', 'ORDNER\PROGRAMM')
// Als MDI-Child (mit Parameter): GFU_ShowMDIChild_CustomInfo('REFKEY', 'ORDNER\PROGRAMM', aCustomInfoArray)
// Als modales Fenster: GFU_ShowModal('MASTERTABLE', 'ORDNER\PROGRAMM'),
// Als modales Fenster (mit Parameter): GFU_ShowModal_CustomInfo('MASTERTABLE', 'ORDNER\PROGRAMM', aCustomInfoArray),
//##############################################################################
//##############################################################################
|
m_oOwner:P1,
m_cFormRefKey:P2,
m_oMasterTable:P3,
m_aCustomInfoArray:P4,
m_cFormID, m_cPositionSaveID,
m_cBrowserID,
m_oDM,
// @VDB@ der nachfolgende Teil wird automatisch gepflegt
// @VDE@ der vorangehende Teil wird automatisch gepflegt
|
//##############################################################################
//##############################################################################
// Konstanten
//##############################################################################
//##############################################################################
m_cFormID := '@', // ID der zugewiesenen F12-Maske
m_cPositionSaveID := '@', // ID zum Speichern der Fenster-Position/-Größe
m_cBrowserID := '@', // ID des Browsers
//##############################################################################
//##############################################################################
// Funktionen
//##############################################################################
//##############################################################################
//******************************************************************************
// Parameter Verarbeiten
// @Result: null
//******************************************************************************
function ParseParams()
m_cParameter := KVU_Get(m_aCustomInfoArray, "KEY", ""), // m_cParameter anpassen
end,
//******************************************************************************
// Zentrale Steuerung des "Enabled-Zustand" aller Actions
//******************************************************************************
function ActionsEnabled()
end,
//******************************************************************************
// Alle Standard-Einstellungen setzen z. B. Dynamische Captions eines
// Labels o. ä.
//******************************************************************************
function SetDefaults()
ActionsEnabled(),
end,
//******************************************************************************
// Eigenes Datenmodul erstellen, benötigte Tabellen öffnen und mit GUI verbinden
//******************************************************************************
function OpenDataBaseAndLinkToGUI()
// Eigenes Datenmodul erstellen
// m_oDM := CreateObject('TBeDbGet', 'ALIAS', oForm),
// Tabelle(n) öffnen
// m_oDAB000 := DBGetTable(m_oDM, waDAB000),
// m_oDAB000.IndexName := 'ID', // ID
// MemTables erstellen
// m_oMemMainTable := CreateObject('TbeMemTable', 'ALIAS', m_oDM),
// Feldstruktur der MemTables erstellen
// CreateMainMemStruc(),
// MemTables befüllen
// FillMainMemTable(),
// Tabelle mit Dataset und Grid verbinden
// GU_LinkTableToGUI(m_oMemMainTable, ds_MemMain, grd_MemMain, m_cBrowserID, true),
// Übergebene Mastertable mit lokalem Datasource verbinden
// GFU_Docking_LinkMasterTableToLocalDatasource(m_oMasterTable, ds_MasterTable, waDABXXX, 'TbeRightsTable')
// Ggfs. Events zuweisen
// AssignEvent(...)
end,
//##############################################################################
//##############################################################################
// Eventhandler
//##############################################################################
//##############################################################################
//******************************************************************************
// Event: Vor dem Schließen prüfen, ob die Haupttabelle noch in Bearbeitung ist
// und ggf. rückfragen.
//******************************************************************************
function FormExCloseQuery( Sender, bCanClose )
if not m_oDM.CbTransaction_Active() or
JN('Ein Datensatz befindet sich noch in Bearbeitung.' + crlf +
'Möchten Sie die Bearbeitung abbrechen und das Fenster schließen?') then
ActionExecute(a_Cancel),
bCanClose := true,
else
bCanClose := false,
endif,
end,
//******************************************************************************
// Event: Beim Schließen des Formulars
//******************************************************************************
function FormExClose( Sender, Action )
Action := caFree, // = Form zerstören
end,
//******************************************************************************
// Event: Beim Zerstören des Formulars
//******************************************************************************
function FormExDestroy( Sender )
GFU_MDIChild_Destroyed(oForm, m_cFormRefKey), // MDI-Child aus Form-Ref-Array austragen
// GFU_DockingForm_Destroyed(oForm, m_cFormRefKey), // Docking aus Form-Ref-Array austragen
end,
//##############################################################################
//##############################################################################
// Actionhandler
//##############################################################################
//##############################################################################
//##############################################################################
//##############################################################################
// Oberflächen-Funktionen
//##############################################################################
//##############################################################################
//******************************************************************************
// InitForm lädt das Formular in Abhängigkeit des Owners
// @Result: null
//******************************************************************************
function InitForm()
if empty(m_oOwner) then
oForm := LoadForm(m_cFormID, Application),
oForm.FormStyle := fsNormal,
else
oForm := LoadForm(m_cFormID, m_oOwner),
// oForm.BorderStyle := bsSizeToolWin, // wichtig für die Dockbarkeit
oForm.FormStyle := fsMdiChild,
oForm.Windowstate := wsMaximized,
endif,
oForm.PositionSaveID := m_cPositionSaveID,
oForm.ImageIndex := -1, // Image-Index für den Window-Navigator setzen
oForm.KeyPreview := True, // Sorgt dafür, dass z.B. die ESC-Taste beim
// Fenster ankommt und ein Schließen auslöst.
oForm.Name := GFU_CalcFormularName(m_cFormRefKey, oForm, m_oOwnerForm),
// Events zuweisen
// - Wird hier per Code gemacht, damit man es beim Kopieren der Vorlage nicht
// per Designer vergisst.
AssignEvent(oForm, 'OnCloseQuery', 'FormExCloseQuery'),
AssignEvent(oForm, 'OnClose', 'FormExClose'),
AssignEvent(oForm, 'OnDestroy', 'FormExDestroy'),
end,
//******************************************************************************
// LoadGUI lädt sämtliche Komponenten die für die Oberfläche benötigt werden
// @Result: null
//******************************************************************************
function LoadGUI()
// @VZB@ der nachfolgende Teil wird automatisch gepflegt
// @VZE@ der vorangehende Teil wird automatisch gepflegt
end,
//******************************************************************************
// ShowGUI() zeigt das GUI an, das vorher mit LoadGUI() geladen werden muss.
// @Result: null
//******************************************************************************
function ShowGUI()
if Empty(m_oOwner) then
ShowModal(oForm),
else
Show(oForm),
endif,
end,
//##############################################################################
//##############################################################################
// Hauptprogramm
//##############################################################################
//##############################################################################
startseq
InitForm(),
LoadGUI(),
ParseParams(),
OpenDataBaseAndLinkToGUI(),
SetDefaults(),
ShowGUI(),
onerror
GU_ShowStdErrorMessage(GetErrorText(), GetErrorObj()),
DestroyObject(oForm),
stopseq,
oForm