365 lines
9.4 KiB
ObjectPascal
365 lines
9.4 KiB
ObjectPascal
![]() |
unit U_JwlKcWlHelp;
|
|||
|
|
|||
|
interface
|
|||
|
|
|||
|
uses
|
|||
|
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
|
|||
|
Dialogs, cxStyles, cxCustomData, cxGraphics, cxFilter, cxData,
|
|||
|
cxDataStorage, cxEdit, DB, cxDBData, cxTextEdit, cxGridLevel,strUtils,
|
|||
|
cxGridCustomTableView, cxGridTableView, cxGridDBTableView, cxClasses,
|
|||
|
cxControls, cxGridCustomView, cxGrid, StdCtrls, ComCtrls, ToolWin,
|
|||
|
ImgList, DBClient, ADODB;
|
|||
|
type
|
|||
|
PMyRec = ^TMyRec;
|
|||
|
TMyRec = record
|
|||
|
wbcode: string;
|
|||
|
Tvtem_str: string;
|
|||
|
end;
|
|||
|
type
|
|||
|
TfrmJwlKcWlHelp = class(TForm)
|
|||
|
ToolBar1: TToolBar;
|
|||
|
Tok: TToolButton;
|
|||
|
Tclose: TToolButton;
|
|||
|
GroupBox2: TGroupBox;
|
|||
|
Label1: TLabel;
|
|||
|
Label2: TLabel;
|
|||
|
edttj: TEdit;
|
|||
|
edtSpec: TEdit;
|
|||
|
CheckBox1: TCheckBox;
|
|||
|
dbGrid1: TcxGrid;
|
|||
|
tv1: TcxGridDBTableView;
|
|||
|
tv1mnumber1: TcxGridDBColumn;
|
|||
|
tv1mname1: TcxGridDBColumn;
|
|||
|
tv1model1: TcxGridDBColumn;
|
|||
|
tv1mareaname1: TcxGridDBColumn;
|
|||
|
tv1batchnum1: TcxGridDBColumn;
|
|||
|
tv1caizhi1: TcxGridDBColumn;
|
|||
|
tv1factoryName: TcxGridDBColumn;
|
|||
|
tv1endquan1: TcxGridDBColumn;
|
|||
|
tv1primaryunitname1: TcxGridDBColumn;
|
|||
|
dbGrid1Level1: TcxGridLevel;
|
|||
|
GroupBox1: TGroupBox;
|
|||
|
cxGrid2: TcxGrid;
|
|||
|
Tv2: TcxGridDBTableView;
|
|||
|
Tv2mnumber1: TcxGridDBColumn;
|
|||
|
Tv2mname1: TcxGridDBColumn;
|
|||
|
Tv2model1: TcxGridDBColumn;
|
|||
|
Tv2mareaname1: TcxGridDBColumn;
|
|||
|
Tv2batchnum1: TcxGridDBColumn;
|
|||
|
Tv2caizhi1: TcxGridDBColumn;
|
|||
|
Tv2factoryName: TcxGridDBColumn;
|
|||
|
Tv2primaryunitname1: TcxGridDBColumn;
|
|||
|
Tv2endquan1: TcxGridDBColumn;
|
|||
|
cxGrid2Level1: TcxGridLevel;
|
|||
|
ImageList24: TImageList;
|
|||
|
DataSource1: TDataSource;
|
|||
|
ADOQueryHelp: TADOQuery;
|
|||
|
CDS_sel: TClientDataSet;
|
|||
|
DataSourceSel: TDataSource;
|
|||
|
ADOConnection1: TADOConnection;
|
|||
|
Label3: TLabel;
|
|||
|
edt_zjm: TEdit;
|
|||
|
TreeView1: TTreeView;
|
|||
|
ADOQueryTmp: TADOQuery;
|
|||
|
ADOQueryChild: TADOQuery;
|
|||
|
procedure TokClick(Sender: TObject);
|
|||
|
procedure TcloseClick(Sender: TObject);
|
|||
|
procedure tv1DblClick(Sender: TObject);
|
|||
|
procedure Tv2DblClick(Sender: TObject);
|
|||
|
procedure FormCreate(Sender: TObject);
|
|||
|
procedure FormShow(Sender: TObject);
|
|||
|
procedure edttjChange(Sender: TObject);
|
|||
|
private
|
|||
|
procedure DoQuery();
|
|||
|
procedure DoFilter();
|
|||
|
procedure AddSelRow();
|
|||
|
procedure InitTree();
|
|||
|
procedure AddChildNode(parentNode:TtreeNode;mNo:string);
|
|||
|
public
|
|||
|
FStoreCode:string;
|
|||
|
fIsRhl:Boolean;
|
|||
|
end;
|
|||
|
|
|||
|
var
|
|||
|
frmJwlKcWlHelp: TfrmJwlKcWlHelp;
|
|||
|
|
|||
|
implementation
|
|||
|
uses
|
|||
|
U_formPas,U_global;
|
|||
|
{$R *.dfm}
|
|||
|
//////////////////////////////////////////////////////
|
|||
|
//
|
|||
|
//////////////////////////////////////////////////////
|
|||
|
procedure TfrmJwlKcWlHelp.DoQuery();
|
|||
|
begin
|
|||
|
try
|
|||
|
adoqueryHelp.DisableControls ;
|
|||
|
with adoqueryHelp do
|
|||
|
begin
|
|||
|
close;
|
|||
|
sql.Clear;
|
|||
|
sql.Add('select distinct A.factory,A.factoryName,B.mNumber,B.mName,');
|
|||
|
sql.Add(''''' as BatchNum,C.zjm,');
|
|||
|
sql.Add('B.Model,B.primaryUnit,B.primaryUnitName');
|
|||
|
sql.Add('from kf_nowQuan A');
|
|||
|
sql.Add('inner join gy_material B on A.mNumber=B.mNumber');
|
|||
|
if fIsRhl then
|
|||
|
sql.Add('inner join sc_dyeInfo C on A.mNumber=C.dyeCode');
|
|||
|
if trim(FStoreCode)<>'' then
|
|||
|
sql.Add('where A.whcode='+quotedStr(trim(FStoreCode)));
|
|||
|
if not CheckBox1.Checked then
|
|||
|
sql.Add('and A.endQuan>0');
|
|||
|
//sql.Add('order by A.Mnumber');
|
|||
|
open;
|
|||
|
end;
|
|||
|
CreateCDS(adoqueryHelp,cds_sel);
|
|||
|
finally
|
|||
|
adoqueryHelp.EnableControls ;
|
|||
|
end;
|
|||
|
end;
|
|||
|
|
|||
|
////////////////////////////////////////////////////
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
////////////////////////////////////////////////////
|
|||
|
procedure TfrmJwlKcWlHelp.DoFilter();
|
|||
|
var
|
|||
|
filterStr:string;
|
|||
|
begin
|
|||
|
filterStr:='';
|
|||
|
//
|
|||
|
if trim(edttj.Text) <>'' then
|
|||
|
filterStr:=filterStr+' and mName like '+quotedStr('%'+trim(edttj.Text)+'%');
|
|||
|
//<2F><><EFBFBD><EFBFBD>
|
|||
|
if trim(edtSpec.Text)<>'' then
|
|||
|
filterStr:=filterStr+' and model like '+quotedStr('%'+trim(edtSpec.Text)+'%');
|
|||
|
//xjm
|
|||
|
if trim(edt_zjm.Text)<>'' then
|
|||
|
filterStr:=filterStr+' and zjm like '+quotedStr('%'+trim(edt_zjm.Text)+'%');
|
|||
|
|
|||
|
try
|
|||
|
ADOQueryHelp.DisableControls ;
|
|||
|
if trim(filterStr)='' then
|
|||
|
begin
|
|||
|
ADOQueryHelp.Filtered:=false;
|
|||
|
ADOQueryHelp.EnableControls;
|
|||
|
exit;
|
|||
|
end;
|
|||
|
filterStr:=trim(RightBStr(filterStr,length(filterStr)-4));
|
|||
|
with ADOQueryHelp do
|
|||
|
begin
|
|||
|
filtered:=false;
|
|||
|
filter:=filterStr;
|
|||
|
filtered:=true;
|
|||
|
end;
|
|||
|
finally
|
|||
|
ADOQueryHelp.EnableControls;
|
|||
|
end;
|
|||
|
end;
|
|||
|
/////////////////////////////////////////////////////
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ܣ<EFBFBD><DCA3><EFBFBD><EFBFBD><EFBFBD>ѡ<EFBFBD><D1A1><EFBFBD>ļ<EFBFBD>¼
|
|||
|
////////////////////////////////////////////////////
|
|||
|
procedure TfrmJwlKcWlHelp.AddSelRow();
|
|||
|
var
|
|||
|
i:integer;
|
|||
|
begin
|
|||
|
if CDS_Sel.Locate('mNumber;factory',VarArrayOf([trim(ADOQueryHelp.fieldbyname('mNumber').AsString),
|
|||
|
// trim(ADOQueryHelp.fieldbyname('BatchNum').AsString),
|
|||
|
trim(ADOQueryHelp.fieldbyname('factory').AsString)]),
|
|||
|
[]) then
|
|||
|
begin
|
|||
|
application.MessageBox(pchar('<27>Ѵ<EFBFBD><D1B4><EFBFBD>ͬ<EFBFBD><CDAC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>εġ<CEB5>'+trim(ADOQueryHelp.fieldbyname('mname').AsString)+'<27><><EFBFBD><EFBFBD><EFBFBD>ϼ<EFBFBD>¼!'),'<27><>ʾ<EFBFBD><CABE>Ϣ',0);
|
|||
|
exit;
|
|||
|
end;
|
|||
|
|
|||
|
with CDS_Sel do
|
|||
|
begin
|
|||
|
CDS_Sel.append;
|
|||
|
for i:=0 to ADOQueryHelp.FieldCount-1 do
|
|||
|
begin
|
|||
|
fields[i].Value:=ADOQueryHelp.Fields[i].Value;
|
|||
|
end;
|
|||
|
CDS_Sel.Post;
|
|||
|
end;
|
|||
|
|
|||
|
end;
|
|||
|
procedure TfrmJwlKcWlHelp.TokClick(Sender: TObject);
|
|||
|
begin
|
|||
|
if adoqueryHelp.IsEmpty then
|
|||
|
ModalResult:=-1
|
|||
|
else
|
|||
|
modalResult:=1;
|
|||
|
end;
|
|||
|
|
|||
|
procedure TfrmJwlKcWlHelp.TcloseClick(Sender: TObject);
|
|||
|
begin
|
|||
|
close;
|
|||
|
end;
|
|||
|
|
|||
|
procedure TfrmJwlKcWlHelp.tv1DblClick(Sender: TObject);
|
|||
|
begin
|
|||
|
AddSelRow();
|
|||
|
end;
|
|||
|
|
|||
|
procedure TfrmJwlKcWlHelp.Tv2DblClick(Sender: TObject);
|
|||
|
begin
|
|||
|
if CDS_Sel.IsEmpty then exit;
|
|||
|
CDS_sel.Delete;
|
|||
|
end;
|
|||
|
|
|||
|
procedure TfrmJwlKcWlHelp.FormCreate(Sender: TObject);
|
|||
|
begin
|
|||
|
groupBox1.Align :=alClient;
|
|||
|
CDS_Sel.Close;
|
|||
|
with ADOConnection1 do
|
|||
|
begin
|
|||
|
Connected:=false;
|
|||
|
ConnectionString:=gConString;
|
|||
|
Connected:=true;
|
|||
|
end;
|
|||
|
end;
|
|||
|
|
|||
|
procedure TfrmJwlKcWlHelp.FormShow(Sender: TObject);
|
|||
|
begin
|
|||
|
DoQuery();
|
|||
|
edttj.SetFocus ;
|
|||
|
end;
|
|||
|
|
|||
|
procedure TfrmJwlKcWlHelp.edttjChange(Sender: TObject);
|
|||
|
begin
|
|||
|
Dofilter();
|
|||
|
end;
|
|||
|
|
|||
|
procedure TfrmJwlKcWlHelp.InitTree();
|
|||
|
var
|
|||
|
MyRecPtr: PMyRec;
|
|||
|
tmpstr :string;
|
|||
|
NodeXX,CNode :TTreeNode;
|
|||
|
array_Node:array of TTreeNOde;
|
|||
|
i:integer;
|
|||
|
begin
|
|||
|
try
|
|||
|
New(MyRecPtr);
|
|||
|
MyRecPtr^.wbcode := 'ALL';
|
|||
|
MyRecPtr^.Tvtem_str := 'ȫ<><C8AB>';
|
|||
|
with TreeView1 do
|
|||
|
begin
|
|||
|
Items.Clear;
|
|||
|
CNode := Items.AddObject(nil, MyRecPtr^.Tvtem_str, MyRecPtr);
|
|||
|
CNode.ImageIndex := 1;
|
|||
|
CNode.SelectedIndex := 2;
|
|||
|
end;
|
|||
|
|
|||
|
with TreeView1 do
|
|||
|
begin
|
|||
|
Items.Clear;
|
|||
|
CNode := Items.AddObject(nil, MyRecPtr^.Tvtem_str, MyRecPtr);
|
|||
|
CNode.ImageIndex := 1;
|
|||
|
CNode.SelectedIndex := 2;
|
|||
|
end;
|
|||
|
with TreeView1,ADOQueryTmp do
|
|||
|
begin
|
|||
|
close;
|
|||
|
sql.clear;
|
|||
|
sql.Add('select code,name from xc_code');
|
|||
|
sql.Add('where flag = ''DYETYPE'' AND valid = ''Y''');
|
|||
|
sql.Add('order by code');
|
|||
|
Open;
|
|||
|
if recordcount = 0 then
|
|||
|
begin
|
|||
|
application.MessageBox('<27>Բ<EFBFBD><D4B2><EFBFBD>,<2C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>δ<EFBFBD><CEB4><EFBFBD><EFBFBD>Ⱦ<EFBFBD><C8BE><EFBFBD>ϻ<EFBFBD><CFBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:DYETYPE!','<27><>ʾ<EFBFBD><CABE>Ϣ',0);
|
|||
|
exit;
|
|||
|
end;
|
|||
|
|
|||
|
setLength(array_Node, RecordCount);
|
|||
|
i:=0;
|
|||
|
while not Eof do
|
|||
|
begin
|
|||
|
New(MyRecPtr);
|
|||
|
MyRecPtr^.wbcode := trim(fieldbyname('code').Asstring);
|
|||
|
MyRecPtr^.Tvtem_str := trim(fieldbyname('name').Asstring);
|
|||
|
NodeXX := Items.AddChildObject(TreeView1.Items[0], MyRecPtr^.Tvtem_str, MyRecPtr);
|
|||
|
NodeXX.ImageIndex := 1;
|
|||
|
NodeXX.SelectedIndex := 2;
|
|||
|
array_Node[i]:=NodeXX;
|
|||
|
INC(i);
|
|||
|
next;
|
|||
|
end;
|
|||
|
Close;
|
|||
|
end;
|
|||
|
|
|||
|
///////////////////////////////////////
|
|||
|
with ADOQueryChild do
|
|||
|
begin
|
|||
|
close;
|
|||
|
filtered:=false;
|
|||
|
sql.Clear ;
|
|||
|
sql.Add('select * from xc_code'); //
|
|||
|
sql.Add('where CLASSFLAG=''DYECLASS'' and valid=''Y''');
|
|||
|
Open;
|
|||
|
end;
|
|||
|
for i:=0 to Length(array_Node)-1 do
|
|||
|
begin
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>䷽
|
|||
|
AddChildNode(array_Node[i],PMyRec(array_Node[i].Data)^.wbcode);
|
|||
|
end;
|
|||
|
|
|||
|
TreeView1.Items[0].Selected := True;
|
|||
|
TreeView1.Items[0].Expand(true);
|
|||
|
//InitGrid();
|
|||
|
except
|
|||
|
;
|
|||
|
end;
|
|||
|
|
|||
|
end;
|
|||
|
//////////////////////////////////////////////////////////////////
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ܣ<EFBFBD><DCA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ӽڵ<D3BD>
|
|||
|
//////////////////////////////////////////////////////////////////
|
|||
|
procedure TfrmJwlKcWlHelp.AddChildNode(parentNode:TtreeNode;mNo:string);
|
|||
|
var
|
|||
|
NodeInfo: PMyRec;
|
|||
|
mNode:TtreeNode;
|
|||
|
i:integer;
|
|||
|
array_Node:array of TTreeNOde;
|
|||
|
begin
|
|||
|
with ADOQueryChild do
|
|||
|
begin
|
|||
|
|
|||
|
filtered:=false;
|
|||
|
filter:='flag ='''+PMyRec(parentNode.Data)^.wbcode+'''';
|
|||
|
filtered:=true;
|
|||
|
Open;
|
|||
|
|
|||
|
if RecordCount<=0 then exit;
|
|||
|
//////////////////////
|
|||
|
setLength(array_Node, RecordCount);
|
|||
|
i:=0;
|
|||
|
while not Eof do
|
|||
|
begin
|
|||
|
with treeView1 do
|
|||
|
begin
|
|||
|
New(NodeInfo);
|
|||
|
|
|||
|
//<2F><><EFBFBD><EFBFBD>
|
|||
|
NodeInfo^.wbcode:=trim(fieldByName('code').AsString);
|
|||
|
//<2F><><EFBFBD><EFBFBD>
|
|||
|
NodeInfo^.Tvtem_str :=fieldByName('Name').AsString
|
|||
|
+'('+trim(fieldByName('code').AsString)+')';
|
|||
|
mNode:=Items.AddChildObject(parentNode, NodeInfo^.Tvtem_str, NodeInfo);
|
|||
|
array_Node[i]:=mNode;
|
|||
|
INC(i);
|
|||
|
end;
|
|||
|
Next;
|
|||
|
end;
|
|||
|
|
|||
|
for i:=0 to Length(array_Node)-1 do
|
|||
|
begin
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
AddChildNode(array_Node[i],PMyRec(array_Node[i].Data)^.wbcode);
|
|||
|
end;
|
|||
|
end;
|
|||
|
|
|||
|
end;
|
|||
|
|
|||
|
|
|||
|
end.
|