⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ganttimport.pas

📁 Gantt source file example to use in delphi 7
💻 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 + -