git-svn-id: https://192.168.0.254/svn/Componentes.Terceros.DevExpressVCL@31 05c56307-c608-d34a-929d-697000501d7a
142 lines
4.1 KiB
ObjectPascal
142 lines
4.1 KiB
ObjectPascal
unit OrgChartRLMain;
|
|
|
|
interface
|
|
|
|
uses
|
|
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
|
|
Menus, checklst, StdCtrls, Grids, ComCtrls, ShellAPI, ToolWin, Db, DBTables, Buttons,
|
|
dxPSdxDBOCLnk, dxPSCore, dxPSdxOCLnk, dxdborgc, dxorgchr, dxPSGlbl,
|
|
dxPSUtl, dxPSEngn, dxPrnPg, dxBkgnd, dxWrap, dxPrnDev, ImgList,
|
|
{dxPSPrVwAdv,} // enable for use of ExpressBars in PrintPreview
|
|
dxPSGraphicLnk, dxPSCompsProvider, dxPSFillPatterns, dxPSEdgePatterns;
|
|
|
|
type
|
|
TOrgChartRLMainForm = class(TForm)
|
|
MainMenu: TMainMenu;
|
|
miFile: TMenuItem;
|
|
miDesigner: TMenuItem;
|
|
miHelp: TMenuItem;
|
|
miPageSetup: TMenuItem;
|
|
miPrintPreview: TMenuItem;
|
|
miPrint: TMenuItem;
|
|
N1: TMenuItem;
|
|
miExit: TMenuItem;
|
|
miDX: TMenuItem;
|
|
dxComponentPrinter1: TdxComponentPrinter;
|
|
ToolBar1: TToolBar;
|
|
tbSetup: TToolButton;
|
|
tbPreview: TToolButton;
|
|
tbPrint: TToolButton;
|
|
tbDevider: TToolButton;
|
|
tbDesigner: TToolButton;
|
|
tbDX: TToolButton;
|
|
tbSeparator: TToolButton;
|
|
tbExit: TToolButton;
|
|
ilButtons: TImageList;
|
|
PageControl1: TPageControl;
|
|
tsOrgChart: TTabSheet;
|
|
tsDBOrgChart: TTabSheet;
|
|
dxOrgChart: TdxOrgChart;
|
|
dxComponentPrinter1Link1: TdxOrgChartReportLink;
|
|
dxDBOrgChart: TdxDbOrgChart;
|
|
ImageList1: TImageList;
|
|
OCTable: TTable;
|
|
dsOCTable: TDataSource;
|
|
dxComponentPrinter1Link2: TdxDBOrgChartReportLink;
|
|
ImageList2: TImageList;
|
|
procedure miDXClick(Sender: TObject);
|
|
procedure miPageSetupClick(Sender: TObject);
|
|
procedure miPrintPreviewClick(Sender: TObject);
|
|
procedure miPrintClick(Sender: TObject);
|
|
procedure miDesignerClick(Sender: TObject);
|
|
procedure miExitClick(Sender: TObject);
|
|
procedure PageControl1Change(Sender: TObject);
|
|
procedure FormCreate(Sender: TObject);
|
|
procedure dxDBOrgChartCreateNode(Sender: TObject; Node: TdxOcNode);
|
|
private
|
|
function GetShape(ShapeName : String) : TdxOcShape;
|
|
public
|
|
{ Public declarations }
|
|
end;
|
|
|
|
var
|
|
OrgChartRLMainForm: TOrgChartRLMainForm;
|
|
|
|
implementation
|
|
|
|
{$R *.DFM}
|
|
|
|
procedure TOrgChartRLMainForm.miDXClick(Sender: TObject);
|
|
begin
|
|
ShellExecute(Handle, PChar('OPEN'), PChar('http://www.devexpress.com'), Nil, Nil, SW_SHOWMAXIMIZED);
|
|
end;
|
|
|
|
procedure TOrgChartRLMainForm.miPageSetupClick(Sender: TObject);
|
|
begin
|
|
dxComponentPrinter1.PageSetup(nil);
|
|
end;
|
|
|
|
procedure TOrgChartRLMainForm.miPrintPreviewClick(Sender: TObject);
|
|
begin
|
|
dxComponentPrinter1.Preview(True,nil);
|
|
end;
|
|
|
|
procedure TOrgChartRLMainForm.miPrintClick(Sender: TObject);
|
|
begin
|
|
dxComponentPrinter1.Print(True,nil,nil);
|
|
end;
|
|
|
|
procedure TOrgChartRLMainForm.miDesignerClick(Sender: TObject);
|
|
begin
|
|
dxComponentPrinter1.DesignReport(nil);
|
|
end;
|
|
|
|
procedure TOrgChartRLMainForm.miExitClick(Sender: TObject);
|
|
begin
|
|
Close;
|
|
end;
|
|
|
|
procedure TOrgChartRLMainForm.PageControl1Change(Sender: TObject);
|
|
begin
|
|
dxComponentPrinter1.CurrentLink := dxComponentPrinter1.ReportLink[TPageControl(Sender).ActivePage.PageIndex];
|
|
end;
|
|
|
|
procedure TOrgChartRLMainForm.FormCreate(Sender: TObject);
|
|
begin
|
|
OCTable.DataBaseName := ExtractFilePath(Application.ExeName);
|
|
if not OCTable.Active then OCTable.Open;
|
|
|
|
dxOrgChart.FullExpand;
|
|
dxDBOrgChart.FullExpand;
|
|
PageControl1Change(PageControl1);
|
|
end;
|
|
|
|
procedure TOrgChartRLMainForm.dxDBOrgChartCreateNode(Sender: TObject;
|
|
Node: TdxOcNode);
|
|
begin
|
|
with Node, OCTable do
|
|
begin
|
|
if FindField('width').AsInteger > 50 then
|
|
Width := FindField('width').AsInteger;
|
|
if FindField('height').AsInteger > 50 then
|
|
Height := FindField('height').AsInteger;
|
|
Shape := GetShape(FindField('type').AsString);
|
|
Color := FindField('color').AsInteger;
|
|
end;
|
|
end;
|
|
|
|
function TOrgChartRLMainForm.GetShape(ShapeName : String) : TdxOcShape;
|
|
const ShapeArray: array[0..3] of string = ('Rectange', 'Round Rect', 'Ellipse', 'Diamond');
|
|
var i : integer;
|
|
begin
|
|
Result := TdxOcShape(0);
|
|
for i := 0 to 3 do
|
|
if AnsiUpperCase(ShapeArray[i]) = AnsiUpperCase(ShapeName) then begin
|
|
Result := TdxOcShape(i);
|
|
break;
|
|
end;
|
|
end;
|
|
|
|
|
|
end.
|