📄 ganttimport.pas
字号:
{-----------------------------------------------------------------------------
Unit Name: GanttImport
Author: paul fisher
Purpose: Helps with importing older versions of the Gantt chart
History: Version1
-----------------------------------------------------------------------------}
unit GanttImport;
interface
Uses windows, GanttUnit, Graphics, DateUtils, SysUtils, GanttDataBinder5, MiscHelpFunctions;
Function ImportGanttChart(var Chart : TBaseGanttChart; RootXML : IXMLRoot_ElementType):Boolean;
procedure ReLoadObjectListVer6(var Chart : TBaseGanttChart; FXMLRoot_ElementType : IXMLRoot_ElementType);
implementation
Function ImportGanttChart(var Chart : TBaseGanttChart; RootXML : IXMLRoot_ElementType):Boolean;
begin
Result := true;
try
ReLoadObjectListVer6(Chart, RootXML); // load Basic Gantt from ver 1.1.0.8 and below
except
Result := False;
end;
end;
procedure ReLoadObjectListVer6(var Chart : TBaseGanttChart; FXMLRoot_ElementType : IXMLRoot_ElementType);
var
ProjectIndex, ItemCount: Integer;
ProjectNumber, ItemNumber: Integer;
TempProject: TGanttProject;
TempGanttItem: TGanttItem;
GanttItem: IXMLProject_ItemType; //items
GanttProject: IXMLGantt_ProjectType; //projects
ThisStaff : TStaffResource;
ThisLink : TGanttItemLink;
begin
Chart.ClearProjects;
Chart.GanttTitle := FXMLRoot_ElementType.Gantt_Chart.Gantt_Chart_Details.Gantt_Title;
Chart.StartMonth := FXMLRoot_ElementType.Gantt_Chart.Gantt_Chart_Details.Start_Month;
Chart.NumberofMonths := FXMLRoot_ElementType.Gantt_Chart.Gantt_Chart_Details.Number_of_Months;
Chart.ProjectTitleColour := StringtoColor(FXMLRoot_ElementType.Gantt_Chart.Gantt_Chart_Details.Project_Title_Colour);
Chart.ShadowColour := StringtoColor(FXMLRoot_ElementType.Gantt_Chart.Gantt_Chart_Details.Shadow_Colour);
Chart.ProjectHeight := FXMLRoot_ElementType.Gantt_Chart.Gantt_Chart_Details.Project_Height;
Chart.DayWidth := FXMLRoot_ElementType.Gantt_Chart.Gantt_Chart_Details.Day_Width;
ProjectNumber := FXMLRoot_ElementType.Gantt_Chart.Gantt_Projects.Count;
// projects
for ProjectIndex := 0 to ProjectNumber - 1 do
begin
GanttProject := FXMLRoot_ElementType.Gantt_Chart.Gantt_Projects.Gantt_Project[ProjectIndex];
TempProject := TGanttProject.Create(nil);
Chart.AddNewProject(TempProject);
TempProject.ProjectName := GanttProject.Gantt_Project_Name;
ThisStaff.Resource_name := GanttProject.Gantt_Project_Resource1.Resource_Name;
TempProject.ProjectResource1 := ThisStaff;
ThisStaff.Resource_name := GanttProject.Gantt_Project_Resource2.Resource_Name;
TempProject.ProjectResource2 := ThisStaff;
ItemNumber := GanttProject.Gantt_Project_Items.Count;
// project items
for ItemCount := 0 to ItemNumber - 1 do
begin
GanttItem := GanttProject.Gantt_Project_Items.Project_Item[ItemCount];
TempGanttItem := TGanttItem.Create(nil);
TempProject.AddGanttItem(TempGanttItem);
TempGanttItem.ItemName := GanttItem.Item_Name;
TempGanttItem.itemType := StringtoItemType(GanttItem.Item_Type);
TempGanttItem.ItemStatus := StringToStatusType(GanttItem.Item_Status);
TempGanttItem.PercentCompleted := GanttItem.Item_Percent_Completed;
TempGanttItem.ItemColour := StringtoColor(GanttItem.Item_Colour);
{$IFDEF VER150}
//### Fix For Locale
TempGanttItem.StartDate := StrtoDateTime(GanttItem.Item_Start_Date, Chart.GanttLocaleFormat); // fix for locale
{$ELSE}
DateSeparator := '/';
Shortdateformat := FShortDateFormat;
TempGanttItem.StartDate := StrtoDateTime(GanttItem.Item_Start_Date);
{$ENDIF}
TempGanttItem.Days := GanttItem.Item_Days;
TempGanttItem.ItemBrush.Color := StringtoColor(GanttItem.Item_Brush.Item_Brush_Colour);
TempGanttItem.ItemBrush.Style := StringtoBrushStyle(GanttItem.Item_Brush.Item_Brush_Style);
TempGanttItem.ItemPen.Color := StringtoColor(GanttItem.Item_Pen.Item_Pen_Colour);
TempGanttItem.ItemPen.Width := GanttItem.Item_Pen.Item_Pen_Size;
ThisLink.ProjectID := GanttItem.Item_Link.Project_ID;
ThisLink.ItemID := GanttItem.Item_Link.Item_ID;
ThisLink.LinkType := StringToLinkType(GanttItem.Item_Link.Link_Type);
TempGanttItem.ItemLink := ThisLink;
end; // items
TempProject.RefreshAfterImport;
end; // projects
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -