📄 fccell.pas
字号:
unit FCCell;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, BaseInfoBase, wwDialog, wwidlg, DB, ADODB, ActnList, ComCtrls,
ToolWin, Grids, DBGrids, ExtCtrls, StdCtrls, DBCtrls, Mask, wwdblook,
wwdbedit, fcTreeView, dxdbtrel, dxExEdtr, dxTL, dxDBCtrl, dxCntner,
dxDBTL;
type
TfrmFCCell = class(TfrmBaseInfoBase)
Panel1: TPanel;
Splitter1: TSplitter;
qProcess: TADOQuery;
dsProcess: TDataSource;
Panel3: TPanel;
Label10: TLabel;
Label5: TLabel;
wwDBEditCost: TwwDBEdit;
Label4: TLabel;
wwDBEditName: TwwDBEdit;
Label2: TLabel;
Label1: TLabel;
wwDBLPro: TwwDBLookupCombo;
QBaseInfofID: TAutoIncField;
QBaseInfofProID: TIntegerField;
QBaseInfofName: TWideStringField;
QBaseInfofRoleID: TIntegerField;
QBaseInfofCost: TBCDField;
QBaseInfofNotes: TWideStringField;
QBaseInfosProName: TStringField;
QMaster: TADOQuery;
dsMaster: TDataSource;
DBMemo1: TDBMemo;
qDep: TADOQuery;
dsDep: TDataSource;
QBaseInfosDepName: TStringField;
DBGrid1: TDBGrid;
QMasterAID: TAutoIncField;
QMasterAName: TWideStringField;
QMasterBID: TAutoIncField;
QMasterBName: TWideStringField;
dxDBLookupTreeView1: TdxDBLookupTreeView;
Panel2: TPanel;
tvMaster: TfcTreeView;
qProcessfID: TAutoIncField;
qProcessfName: TWideStringField;
QMasterCID: TAutoIncField;
QMasterCName: TWideStringField;
ADOQuery1: TADOQuery;
ADOQuery1sID: TStringField;
ADOQuery1sParentID: TStringField;
ADOQuery1fID: TIntegerField;
ADOQuery1fParentID: TIntegerField;
ADOQuery1fName: TWideStringField;
dxDBTreeList1: TdxDBTreeList;
dxDBTreeList1fID: TdxDBTreeListMaskColumn;
dxDBTreeList1fParentID: TdxDBTreeListMaskColumn;
dxDBTreeList1fName: TdxDBTreeListColumn;
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure FormCreate(Sender: TObject);
procedure tvMasterChange(TreeView: TfcCustomTreeView;
Node: TfcTreeNode);
procedure dsBaseInfoStateChange(Sender: TObject);
procedure QBaseInfoAfterInsert(DataSet: TDataSet);
procedure dxDBLookupTreeView1DropDown(Sender: TObject);
private
iProcessID:integer;
procedure DrawTree();
{ Private declarations }
public
{ Public declarations }
end;
var
frmFCCell: TfrmFCCell;
implementation
Uses DataModule,Global;
{$R *.dfm}
procedure TfrmFCCell.DrawTree();
begin
With QMaster do
begin
first;
//写树
tvMaster.items.BeginUpdate;
tvMaster.Items.Clear ;
while not eof do
begin
GFTreeAddItem(3,False,QMaster,tvMaster);
next;
end;
tvMaster.items.Endupdate;
if tvMaster.Items.Count >0 then
tvMaster.Items[0].Selected :=True;
//tvMaster.FullExpand ;
end;
end;
procedure TfrmFCCell.FormClose(Sender: TObject; var Action: TCloseAction);
begin
inherited;
frmFCCell:=nil;
end;
procedure TfrmFCCell.FormCreate(Sender: TObject);
begin
inherited;
if Not qMaster.Active then QMaster.Open ;
if not qProcess.Active then qProcess.Open;
if not qDep.Active then qDep.Open;
drawTree();
end;
procedure TfrmFCCell.tvMasterChange(TreeView: TfcCustomTreeView;
Node: TfcTreeNode);
var
ChildNode:TfcTreeNode;
begin
inherited;
if Node.level<>0 then
iProcessID:=Integer(node.data^)
else
begin
ChildNode:=node.GetFirstChild;
iProcessID:=Integer(ChildNode.Data^);
end;
With QBaseInfo do
Begin
Parameters.ParamValues['ProcessID']:=iProcessID;
if Active then Requery else Open;
end;
end;
procedure TfrmFCCell.dsBaseInfoStateChange(Sender: TObject);
var
i:Integer;
begin
inherited;
With Panel3 do
for i:= 0 to ControlCount-1 do
if Controls[i] is TDBEdit then
(Controls[i] as TDBEdit).ReadOnly := Not acSave.Enabled
else if Controls[i] is TDBMemo then
(Controls[i] as TDBMemo).ReadOnly := Not acSave.Enabled;
dbGrid1.ReadOnly := Not acSave.Enabled ;
tvMaster.Enabled := Not acSave.Enabled ;
end;
procedure TfrmFCCell.QBaseInfoAfterInsert(DataSet: TDataSet);
begin
inherited;
QBaseInfo.FieldByName('fProID').asInteger:=iProcessID;
end;
procedure TfrmFCCell.dxDBLookupTreeView1DropDown(Sender: TObject);
begin
inherited;
if Not acSave.Enabled then abort;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -