TBePlanningChartComp
TBePlanningChartComp
Klasse zur Darstellung des Planungs-Charts auf einem Formular, Panel o.ä.
Eigenschaften
Allgemeine-Eigenschaften | Beschreibung |
---|---|
PlanningChart:O | Verweis auf das zugehörige Planungs-Chart (TBePlanningChart) |
OptionControl:O | Zuweisbare-Komponente welche oben links im Planungs-Chart angezeigt wird |
WinPosID:C | WinPosition-ID unter welche die letzte Ansicht des Planungs-Chart gespeichert wird |
WinPosParamID:C | WinPosition-ID unter welche die Planungs-Chart Parameter gespeichert werden |
WinPosResID:C | WinPosition-ID unter welche die zuletzt angezeigten Resourcen gespeichert werden |
WinPosDataID:C | WinPosition-ID unter welche die zuletzt angezeigten Termin-Einträge gespeichert werden |
Aktive-Eigenschaften (Methoden) | Beschreibung |
---|---|
CBInitChart:L | Initialisiert das Planungs-Chart (Aufruf nachdem alle Einstellungen getroffen wurden) |
CBInitFormHook:L | Initialisiert alle Maus-Optionen fürs Planungs-Chart wie "Scrollen/Zoomen per Mausrad"Vorsicht: hierbei werden einige Events des Formulars auf dem sich das Planungs-Chartbefindet überschrieben (OnKeyDown, OnKeyUp, OnMouseWheel, OnDeactivate).Überschriebende Events werden dennoch ausgeführt. |
CBSaveConfig:L | speichert die letzte Ansicht des Planungs-Chart Parameter (siehe WinPosID) |
CBSaveParamConfig:L | speichert die Planungs-Chart Parameter (siehe WinPosParamID) |
CBSaveResConfig:L | speichert die Planungs-Chart Resourcen (siehe WinPosResID) |
CBSaveDataConfig:L | speichert die Planungs-Chart Termin-Einträge (siehe WinPosDataID) |
CBLoadConfig:L | läd die letzte Ansicht des Planungs-Chart Parameter (siehe WinPosID) |
CBLoadParamConfig:L | läd die Planungs-Chart Parameter (siehe WinPosParamID) |
CBLoadResConfig:L | läd die Planungs-Chart Resourcen (siehe WinPosResID) |
CBLoadDataConfig:L | läd die Planungs-Chart Termin-Einträge (siehe WinPosDataID) |
Verwendung
- Erzeugung per Codeblock-Funktion CreateObject
- (optional) setzen der WinPos... Eigenschaften, falls nicht gesetzt werden keine Einstellungen gespeichert
- (optional) setzten des OptionControls
- Aufruf von CBInitChart
- (optional) Aufruf von CBInitFormHook
Beispiel
CODE
|oForm, oChartComp, oChart, oMenuMgr, oParam, oData, oRes, oOptionCtrl|
//******************************************************************************
function InitRes()
|oItem, oItem2|
oRes.CBClear,
oItem := oRes.CBNewItem,
oItem.ResType := rtKategoriePerson,
oItem.ResID := 100,
oItem.Caption := 'Dreher',
oItem.SelectedColor := clLime,
oItem2 := oItem.CBNewItem,
oItem2.ResType := rtPerson,
oItem2.ResID := 101,
oItem2.Caption := 'Dieter',
oItem2 := oItem.CBNewItem,
oItem2.ResType := rtPerson,
oItem2.ResID := 102,
oItem2.Caption := 'Hans',
oItem := oRes.CBNewItem,
oItem.ResType := rtKategorieMaschine,
oItem.ResID := 200,
oItem.Caption := 'Drehmaschinen',
oItem.SelectedColor := clLime,
oItem2 := oItem.CBNewItem,
oItem2.ResType := rtMaschine,
oItem2.ResID := 201,
oItem2.Caption := 'DM 201',
oItem := oItem.CBNewItem,
oItem.ResType := rtKategorieMaschine,
oItem.ResID := 300,
oItem.Caption := 'Drehmaschinen XXL',
oItem.SelectedColor := clLime,
oItem2 := oItem.CBNewItem,
oItem2.ResType := rtMaschine,
oItem2.ResID := 301,
oItem2.Caption := 'DM XXL 301',
end,
//******************************************************************************
function AddData(aResType, aResID, aID, aStart, aDuration, aCaption, aIsSum)
Result := oData.CBNewItem,
Result.ResType := aResType,
Result.ResID := aResID,
Result.HierarchyID := StrZero(aID, 10),
Result.StartTime := aStart,
Result.EndTime := aStart + aDuration,
Result.Caption := aCaption,
Result.Hint := FormatDateTime('dd.mm.yy hh:nn', Result.StartTime) + ' - ' +
FormatDateTime('dd.mm.yy hh:nn', Result.EndTime) + CRLF +
aCaption,
Result.Color := GetBeDesignColor(dcbGreen, dcgLevel2),
Result.OffsetTop := 2,
Result.OffsetBottom := 2,
if aIsSum then
Result.Color := GetBeDesignColor(dcbOrange, dcgLevel2),
Result.Selectable := False,
Result.ShowHint := False,
endif,
end,
//******************************************************************************
function InitData()
|oItem, aNow, i, aDow|
oData.CBBeginUpdate,
startseq
oData.CBClear,
AddData(rtPerson, 101, 1, Now(), 1, 'Arbeit1',),
AddData(rtMaschine, 201, 1, Now(), 1, 'Arbeit1',),
AddData(rtPerson, 101, 2, Now() + 3, 1, 'Arbeit2',),
AddData(rtMaschine, 201, 2, Now() + 3, 1, 'Arbeit2',),
AddData(rtPerson, 102, 3, Now() + 2, 1, 'Arbeit3',),
AddData(rtMaschine, 301, 3, Now() + 2, 2, 'Arbeit3',),
AddData(rtMaschine, 301, 3, Now() + 4.2, 1, 'Arbeit3',),
AddData(rtMaschine, 301, 3, Now(), 1, 'Arbeit3',),
AddData(rtPerson, 101, 4, Now() + 5, 1, 'Arbeit4',),
AddData(rtPerson, 102, 4, Now() + 5, 1.5, 'Arbeit4',),
AddData(rtMaschine, 201, 4, Now() + 5, 1.2, 'Arbeit4',),
aNow := Trunc(Now()),
for i := 0 to 6 do
aDow := Dow(aNow + i),
if (aDow > 1 and aDow < 7) then
AddData(rtKategoriePerson, 100, 100, aNow + i, 1, '', True),
AddData(rtKategorieMaschine, 200, 200, aNow + i, 1, '', True),
AddData(rtKategorieMaschine, 300, 300, aNow + i, 1, '', True),
endif,
next,
always
oData.CBEndUpdate,
stopseq,
end,
//******************************************************************************
function InitMenus()
oMenuMgr.MainMenu_mnuRes.Visible := False,
oMenuMgr.MainMenu_mnuView.Visible := False,
oMenuMgr.DefaultChartPopupMode := 0,
end,
//******************************************************************************
function DoOnBtnClearClick()
oData.CBClear,
oChart.CBRefresh,
end,
//******************************************************************************
function DoOnBtnLoadClick()
InitData(),
oChart.CBRefresh,
end,
//******************************************************************************
function InitOptionControl()
|oButton|
oOptionCtrl := CreateObject('TPanel',, oForm),
oOptionCtrl.Align := alClient,
oButton := CreateObject('TBeBitBtn',, oOptionCtrl, oOptionCtrl),
oButton.ImageIndex.IndexNormal := 6,
oButton.Caption := 'Daten löschen',
oButton.Width := 150,
oButton.Top := 10,
oButton.Left := Round((oOptionCtrl.Width - oButton.Width) / 2, 0),
AssignEvent(oButton, 'OnClick', 'DoOnBtnClearClick'),
oButton := CreateObject('TBeBitBtn',, oOptionCtrl, oOptionCtrl),
oButton.ImageIndex.IndexNormal := 12,
oButton.Caption := 'Daten laden',
oButton.Width := 150,
oButton.Top := 35,
oButton.Left := Round((oOptionCtrl.Width - oButton.Width) / 2, 0),
AssignEvent(oButton, 'OnClick', 'DoOnBtnLoadClick'),
end,
//******************************************************************************
oForm := CreateObject('TFormEx'),
oChartComp := CreateObject('TBePlanningChartComp',, oForm, oForm),
oData := CreateObject('TBePlanningDataContainer'),
oRes := CreateObject('TBePlanningResContainer'),
startseq
oChart := oChartComp.PlanningChart,
oMenuMgr := oChart.MenuManager,
oParam := oChart.ChartParameter,
oData.CBDataItemClass := 2,
oChart.DataContainer := oData,
oChart.ResContainer := oRes,
oParam.ShowNaviOnMouse := False,
oForm.Width := 800,
oForm.Height := 600,
InitOptionControl(),
oChartComp.Align := alClient,
oChartComp.WinPosID := 'CBPCHT1',
oChartComp.WinPosParamID := 'CBPCHP1',
oChartComp.WinPosResID := 'CBPCHR1',
oChartComp.WinPosDataID := 'CBPCHD1',
oChartComp.OptionControl := oOptionCtrl,
oChartComp.CBInitChart, // erst nach dem Setzen der WinPos-IDs ausführen
// damit Einstellungen automatisch geladen werden
oChartComp.CBInitFormHook,
InitRes(),
InitData(),
InitMenus(),
oChart.CBIntervalType := 2,
oChart.StartTime := Now(),
oChart.EndTime := oChart.StartTime + 6,
ShowModal(oForm),
always
DestroyObject(oChartComp),
DestroyObject(oForm),
DestroyObject(oData),
DestroyObject(oRes),
stopseq,