Skip to main content
Skip table of contents

TBePlanningChartComp

TBePlanningChartComp

Klasse zur Darstellung des Planungs-Charts auf einem Formular, Panel o.ä.

Eigenschaften

Allgemeine-EigenschaftenBeschreibung
PlanningChart:OVerweis auf das zugehörige Planungs-Chart (TBePlanningChart)
OptionControl:O Zuweisbare-Komponente welche oben links im Planungs-Chart angezeigt wird
WinPosID:CWinPosition-ID unter welche die letzte Ansicht des Planungs-Chart gespeichert wird
WinPosParamID:CWinPosition-ID unter welche die Planungs-Chart Parameter gespeichert werden
WinPosResID:CWinPosition-ID unter welche die zuletzt angezeigten Resourcen gespeichert werden
WinPosDataID:CWinPosition-ID unter welche die zuletzt angezeigten Termin-Einträge gespeichert werden


Aktive-Eigenschaften (Methoden)Beschreibung
CBInitChart:LInitialisiert das Planungs-Chart (Aufruf nachdem alle Einstellungen getroffen wurden)
CBInitFormHook:LInitialisiert 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:Lspeichert die letzte Ansicht des Planungs-Chart Parameter (siehe WinPosID)
CBSaveParamConfig:Lspeichert die Planungs-Chart Parameter (siehe WinPosParamID)
CBSaveResConfig:Lspeichert die Planungs-Chart Resourcen (siehe WinPosResID)
CBSaveDataConfig:Lspeichert die Planungs-Chart Termin-Einträge (siehe WinPosDataID)
CBLoadConfig:Lläd die letzte Ansicht des Planungs-Chart Parameter (siehe WinPosID)
CBLoadParamConfig:Lläd die Planungs-Chart Parameter (siehe WinPosParamID)
CBLoadResConfig:Lläd die Planungs-Chart Resourcen (siehe WinPosResID)
CBLoadDataConfig:Llä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,

Weitere Verknüpfungen

JavaScript errors detected

Please note, these errors can depend on your browser setup.

If this problem persists, please contact our support.