bas_itemclass_qry.pas
来自「一个MRPII系统源代码版本」· PAS 代码 · 共 217 行
PAS
217 行
unit Bas_ItemClass_Qry;
Interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
Base_Panel, ActnList, Db, AdODB, ExtCtrls, ComCtrls, ToolWin, StdCtrls,
jpeg;
Type
TFrm_Bas_ItemClass_Qry = Class(TFrm_Base_Panel)
Treeview: TTreeview;
AdoQry_Main: TAdoQuery;
ToolButton1: TToolButton;
ToolButton2: TToolButton;
Action4: TAction;
Panel1: TPanel;
procedure TreeviewEnter(Sender: TObject);
procedure TreeviewKeyUp(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure TreeviewExpanded(Sender: TObject; Node: TTreeNode);
private
{ Private declarations }
function HaveSlave(r_Code:string):boolean;
procedure InitTreeview;
procedure Expand(node:TtreeNode);
procedure ExpandNext(aNode:TtreeNode;MasterCode:string);
public
{ Public declarations }
procedure InitForm(AdoConnection:TAdoConnection);
//function haveslave(r_Code:string):boolean;
end;
var
Frm_Bas_ItemClass_Qry: TFrm_Bas_ItemClass_Qry;
implementation
uses Sys_Global;
{$R *.DFM}
{ TFrm_Base_BomTreeview }
procedure TFrm_Bas_ItemClass_Qry.expandnext(aNode: Ttreenode;
MasterCode: string);
procedure expandnext1(node:ttreenode;s:string);
var
Mynode:Ttreenode;
Icstring:string;
i:integer;
begin
i:=0;
with AdoQry_tmp do
begin
Close;
sql.clear;
sql.Add('select * '+
'from ItemClass '+
'where pClassCode='''+s+''' '+
'Order by ClassCode ');
open;
while not eof do
begin
IcString:=fieldbyname('ClassCode').asstring+' '+fieldbyname('ClassName').asstring;
MyNode:=Treeview.Items.AddChild(Node,IcString);
next;
end;
for i:=0 to node.Count-1 do
begin
IcString:=getCode(node.Item[i].Text);
if HaveSlave(Icstring) then
expandnext1(node.Item[i],icstring);
end;
end;
end;
var
Mynode:Ttreenode;
Icstring:string;
j:integer;
begin
j:=0;
try
Screen.Cursor:=CrSQLWait;
with AdoQry_Main do
begin
Close;
if MasterCode<>'' then
begin
sql.clear;
sql.Add('select * '+
'from ItemClass '+
'where pClassCode='''+MasterCode+''' '+
'Order by ClassCode ');
end
else
begin
sql.clear;
sql.Add('select * '+
'from ItemClass '+
'where pClassCode='''+''+''' '+
'Order by ClassCode ');
end;
open;
while not eof do
begin
IcString:=fieldbyname('ClassCode').asstring+' '+fieldbyname('ClassName').asstring;
MyNode:=Treeview.Items.AddChild(aNode,IcString);
IcString:=fieldbyname('ClassCode').asstring;
if HaveSlave(Icstring) then
expandnext1(mynode,icstring);
next;
end;
end;
finally
Screen.Cursor:=crDefault;
end;
end;
procedure TFrm_Bas_ItemClass_Qry.initform(AdoConnection: TAdoConnection);
begin
SetDBConnect(AdoConnection);
AdoQry_Main.Connection:=AdoConnection;
InitTreeview;
Treeview.ReadOnly :=True;
Treeview.FullExpand ;
end;
procedure TFrm_Bas_ItemClass_Qry.InitTreeview;
var
LocalNode:TtreeNode;
LocalString:string;
T_Sql:string;
begin
T_Sql:='';
LocalNode:=nil;
LocalString:='';
ExpandNext(LocalNode,LocalString);
end;
function TFrm_Bas_ItemClass_Qry.haveslave( r_Code: string): boolean;
begin
with AdoQry_Tmp do
begin
Close;
sql.clear;
sql.Add('select Count(*) as a'+
' from ItemClass '+
' where pClassCode='''+r_Code+'''');
open;
if fieldbyname('a').Value>0 then
Result:=True
else
Result:=False;
end;
end;
procedure TFrm_Bas_ItemClass_Qry.Expand(Node: TTreeNode);
var
S:string;
begin
if (node.haSchildren) and (node.Item[0].text='') then
begin
node.Item[0].Delete;
s:=Trim(copy(node.text,1,pos(' ',node.text)-1));
Expandnext(Node,S);
end;
end;
procedure TFrm_Bas_ItemClass_Qry.TreeviewEnter(Sender: TObject);
begin
inherited;
Treeview.ReadOnly:=True;
end;
procedure TFrm_Bas_ItemClass_Qry.TreeviewKeyUp(Sender: TObject;
var Key: Word; Shift: TShiftState);
var
SelNode: TTreeNode;
ParentNode: TTreeNode;
SlaveCode,MasterCode:string;
begin
inherited;
SelNode:=Treeview.selected ;
if SelNode<>nil then
begin
SlaveCode:=Trim(copy(SelNode.text,1,pos(' ',SelNode.text)-1));
ParentNode :=SelNode.Parent;
// if ParentNode<>nil then
// MasterCode:=Trim(copy(ParentNode.text,1,pos(' ',ParentNode.text)-1))
// else
// MasterCode:=Trim(Edt_ItemCode.text);
end;
end;
procedure TFrm_Bas_ItemClass_Qry.FormClose(Sender: TObject;
var Action: TCloseAction);
begin
inherited;
Action:=CaFree;
end;
procedure TFrm_Bas_ItemClass_Qry.TreeviewExpanded(Sender: TObject;
Node: TTreeNode);
begin
inherited;
Expand(Node);
end;
end.
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?