123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224 |
- unit ScStdBillsCtrl;
- interface
- uses
- StdBillsLibDM,
- StdBillsLibForm,
- ZjLists,
- ScProjectManager,
- Controls,
- FXQDManagerUnit,
- LocateBillsDM;
- type
- TStdBillsCtrl = class
- private
- FDMStdBillsLib: TDMStdBillsLib;
- FStdBillsLibFrm: TStdBillsLibFrm;
- FBillsLocateDM: TBillsLocateDM;
- FFXQDManager: TFXQDManager;
- procedure SetIncStep(const Value: Integer);
- public
- constructor Create(AProjMgr: TProjectManager);
- destructor Destroy; override;
- {open new std lib}
- procedure LoadNewStdLib(const ALibName: string);
- procedure LoadBillsQtyLib(const ALibName: string);
- {add items to cur project}
- function AddItems(ASelList: TIntegerSList): Boolean;
- procedure AddItem;
- {add billsQty items}
- function AddBillsQtyItems(aSelList: TIntegerSList): Boolean;
- procedure AddBillsQtyItem;
- { locatebills }
- procedure FindFirstBills(const aCode: string);
- procedure FindNextBills;
- procedure LocateBills;
- procedure RefreshBills;
- {control ui refresh}
- procedure BeginUpdateUI(aType: Integer);
- procedure EndUpdateUI(aType: Integer);
- // Added by GiLi 2012-3-20 10:10:04
- // Add begin
- // 当表格改变的时候,对界面需要的刷新操作
- procedure BeginUpdateView;
- procedure EndUpdateView;
- // 表示项目表显示的层数
- procedure ShowLevel(ALevel: Integer);
- // 是否可以反向定位清单
- function CanLocateAtStdBills: Boolean;
- // 定位清单当前节点到标准清单中
- procedure LocateAtStdBills;
- // Add end
- property StdBillsLibFrm: TStdBillsLibFrm read FStdBillsLibFrm;
- property DMStdBillsLib: TDMStdBillsLib read FDMStdBillsLib;
- property BillsLocateDM: TBillsLocateDM read FBillsLocateDM;
- property FXQDManager: TFXQDManager read FFXQDManager;
- property IncStep: Integer write SetIncStep;
- end;
- implementation
- uses SysUtils;
- { TStdBillsCtrl }
- procedure TStdBillsCtrl.AddBillsQtyItem;
- begin
- FDMStdBillsLib.AddBillsQtyItem;
- end;
- function TStdBillsCtrl.AddBillsQtyItems(aSelList: TIntegerSList): Boolean;
- begin
- FDMStdBillsLib.AddBillsQtyItems(aSelList);
- end;
- procedure TStdBillsCtrl.AddItem;
- begin
- FDMStdBillsLib.AddItem;
- end;
- function TStdBillsCtrl.AddItems(ASelList: TIntegerSList): Boolean;
- begin
- // Modified by GiLi 2012-3-19 18:52:39
- // 添加清单失败,因为没有返回值
- Result := FDMStdBillsLib.AddItems(ASelList);
- end;
- procedure TStdBillsCtrl.BeginUpdateUI(aType: Integer);
- begin
- FStdBillsLibFrm.BeginUpdateUI(aType);
- end;
- procedure TStdBillsCtrl.BeginUpdateView;
- begin
- FStdBillsLibFrm.zgBillsLib.BeginUpdate;
- FStdBillsLibFrm.zgDrawingQuantity.BeginUpdate;
- end;
- function TStdBillsCtrl.CanLocateAtStdBills: Boolean;
- begin
- {
- if StdBillsLibFrm.zgBillsLib.ColCount = 0 then
- begin
- Result := False;
- Exit;
- end;
- }
- // 没有导入数据,不能反向定位
- if not DMStdBillsLib.cdsBillsLib.Active then
- begin
- Result := False;
- Exit;
- end;
- // 清单界面表格没有数据,不能反向定位
- if DMStdBillsLib.cdsBillsLib.IsEmpty then
- begin
- Result := False;
- Exit;
- end;
- Result := True;
- end;
- constructor TStdBillsCtrl.Create(AProjMgr: TProjectManager);
- begin
- FDMStdBillsLib := TDMStdBillsLib.Create(AProjMgr);
- FBillsLocateDM := TBillsLocateDM.Create(AProjMgr);
- FStdBillsLibFrm := TStdBillsLibFrm.Create(nil);
- FStdBillsLibFrm.ZgIDTree := FDMStdBillsLib.StdBillsTree;
- FStdBillsLibFrm.DQDataSet := FDMStdBillsLib.cdsDrawQView;
- FStdBillsLibFrm.BillsQtyTree := FDMStdBillsLib.BillsQtyTree;
- FStdBillsLibFrm.QtyDQDataSet := FDMStdBillsLib.cdsBQDrawingQtyView;
- FStdBillsLibFrm.StdBillsCtrl := Self;
- FDMStdBillsLib.StdBillsCtrl := Self;
- FFXQDManager := TFXQDManager.Create(AProjMgr);
- FStdBillsLibFrm.LoadLibNames;
- FStdBillsLibFrm.QtyItemDataSet := FBillsLocateDM.cdsQBItems;
- FDMStdBillsLib.LoadCustomStep(ExtractFilePath(ParamStr(0)) + {$I CustomStep.inc});
- end;
- destructor TStdBillsCtrl.Destroy;
- begin
- FDMStdBillsLib.Save;
- FStdBillsLibFrm.Free;
- FBillsLocateDM.Free;
- FFXQDManager.Free;
- FDMStdBillsLib.Free;
- inherited;
- end;
- procedure TStdBillsCtrl.EndUpdateUI(aType: Integer);
- begin
- FStdBillsLibFrm.EndUpdateUI(aType);
- end;
- procedure TStdBillsCtrl.EndUpdateView;
- begin
- FStdBillsLibFrm.zgBillsLib.EndUpdate;
- FStdBillsLibFrm.zgDrawingQuantity.EndUpdate;
- end;
- procedure TStdBillsCtrl.FindFirstBills(const aCode: string);
- begin
- FBillsLocateDM.FindFirstBills(aCode);
- end;
- procedure TStdBillsCtrl.FindNextBills;
- begin
- FBillsLocateDM.NextBills;
- end;
- procedure TStdBillsCtrl.LoadBillsQtyLib(const ALibName: string);
- begin
- if FileExists(ALibName) then
- FDMStdBillsLib.LoadBillsQtyLib(ALibName);
- end;
- procedure TStdBillsCtrl.LoadNewStdLib(const ALibName: string);
- begin
- if FileExists(ALibName) then
- FDMStdBillsLib.LoadNewStdLib(ALibName);
- end;
- procedure TStdBillsCtrl.LocateAtStdBills;
- begin
- FDMStdBillsLib.LocateCurBillsToStdBills;
- end;
- procedure TStdBillsCtrl.LocateBills;
- begin
- FBillsLocateDM.LocateBills;
- end;
- procedure TStdBillsCtrl.RefreshBills;
- begin
- FBillsLocateDM.RefreshBills;
- end;
- procedure TStdBillsCtrl.SetIncStep(const Value: Integer);
- begin
- FStdBillsLibFrm.IncStep := Value;
- end;
- procedure TStdBillsCtrl.ShowLevel(ALevel: Integer);
- begin
- BeginUpdateView;
- try
- FDMStdBillsLib.StdBillsTree.ExpandLevel := ALevel;
- finally
- EndUpdateView;
- end;
- end;
- end.
|