D7myYunxiang/Z99Dependency/ThreeFun/helpForm/U_PbProductHelp10.pas
DESKTOP-E401PHE\Administrator 914ef198d5 Apply new .gitignore
2025-07-19 16:54:23 +08:00

416 lines
11 KiB
ObjectPascal
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

unit U_PbProductHelp10;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, DB, ADODB, Grids, DBGrids, ExtCtrls, ComCtrls, ImgList, ToolWin,
StdCtrls, cxControls, cxPC,StrUtils, cxStyles, cxCustomData, cxGraphics,
cxFilter, cxData, cxDataStorage, cxEdit, cxDBData, cxGridLevel,
cxGridCustomTableView, cxGridTableView, cxGridDBTableView, cxClasses,
cxGridCustomView, cxGrid, cxGridCustomPopupMenu, cxGridPopupMenu,
cxSplitter;
type
PMyRec = ^TMyRec;
TMyRec = record
wbcode: string;
Tvtem_str: string;
end;
type
TfrmPbProductHelp10 = class(TForm)
Panel1: TPanel;
Label1: TLabel;
ImageList24: TImageList;
DataSource1: TDataSource;
ADOQueryTmp: TADOQuery;
ADOQueryHelp: TADOQuery;
ToolBar2: TToolBar;
ToolButton1: TToolButton;
ToolButton2: TToolButton;
cxTabControl1: TcxTabControl;
Edit2: TEdit;
cxGrid1: TcxGrid;
tv1: TcxGridDBTableView;
tv1p_Code: TcxGridDBColumn;
tv1P_chnName: TcxGridDBColumn;
tv1P_engName: TcxGridDBColumn;
tv1P_spec: TcxGridDBColumn;
tv1P_gram: TcxGridDBColumn;
tv1P_Breadth: TcxGridDBColumn;
tv1P_upBreadth: TcxGridDBColumn;
tv1P_typeName: TcxGridDBColumn;
cxGridLevel1: TcxGridLevel;
tv1Quantity: TcxGridDBColumn;
tv1P_Breadthp: TcxGridDBColumn;
tv1P_upBreadthp: TcxGridDBColumn;
tv1rollUnit: TcxGridDBColumn;
tv1RollNum: TcxGridDBColumn;
cxGridPopupMenu1: TcxGridPopupMenu;
TreeView1: TTreeView;
cxSplitter1: TcxSplitter;
ADOQueryChild: TADOQuery;
AD_Rhl_Fllb: TADODataSet;
ADOConnection1: TADOConnection;
Label2: TLabel;
edt_spec: TEdit;
tv1store: TcxGridDBColumn;
cxStyleRepository1: TcxStyleRepository;
cxStyle1: TcxStyle;
cxStyle2: TcxStyle;
cxStyle_gridRow: TcxStyle;
cxStyle_gridFoot: TcxStyle;
cxStyle_gridHead: TcxStyle;
cxStyle_gridGroupBox: TcxStyle;
cxStyle_yellow: TcxStyle;
cxStyle_Red: TcxStyle;
cxStyle_fontBlack: TcxStyle;
cxStyle_clFuchsia: TcxStyle;
cxStyle_fontclPurple: TcxStyle;
cxStyle_fontclGreen: TcxStyle;
cxStyle_fontclBlue: TcxStyle;
tv1Packs: TcxGridDBColumn;
tv1packUnit: TcxGridDBColumn;
tv1ShortName: TcxGridDBColumn;
tv1UnitName: TcxGridDBColumn;
tv1P_Color: TcxGridDBColumn;
CheckBox1: TCheckBox;
procedure BtnOkClick(Sender: TObject);
procedure BtnCancelClick(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure cxTabControl1Change(Sender: TObject);
procedure tv1DblClick(Sender: TObject);
procedure TreeView1Click(Sender: TObject);
procedure Edit2Change(Sender: TObject);
procedure CheckBox1Click(Sender: TObject);
private
fClassType:string;
LoadFlag:boolean;
SortID: Integer;
SortCaption, SortField, SortOrder: String;
procedure DoQuery();
procedure Dofilter();
procedure InitTree();
procedure AddChildNode(parentNode:TtreeNode;mNo:string);
public
fCustomNo:string;
fSysCode:string;
fPbCtrl:integer;
fBaseNode:integer;
end;
var
frmPbProductHelp10: TfrmPbProductHelp10;
implementation
uses
U_global,U_cxGridSet;
{$R *.dfm}
procedure TfrmPbProductHelp10.BtnOkClick(Sender: TObject);
begin
if ADOQueryHelp.IsEmpty then exit;
ModalResult := 1;
end;
procedure TfrmPbProductHelp10.BtnCancelClick(Sender: TObject);
begin
{if trim(self.Caption)='' then
WriteCxGrid(trim(self.Name),tv1,'<27><>Ⱦ<EFBFBD><C8BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>')
else
WriteCxGrid(trim(self.Caption),tv1,'<27><>Ⱦ<EFBFBD><C8BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>'); }
WriteCxGrid('<27><><EFBFBD><EFBFBD>ѡ<EFBFBD><D1A1>',tv1,'<27><>Ⱦ<EFBFBD><C8BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>');
ModalResult := -1;
end;
///////////////////////////////////////////
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
///////////////////////////////////////////
procedure TfrmPbProductHelp10.DoQuery();
var
mstore:string;
begin
//<2F><><EFBFBD><EFBFBD>
try
LoadFlag:=false;
if trim(fSysCode)='RZ' then
mstore:= 'JRPC'
else if trim(fSysCode)='ZR' then
mstore:= 'GRPC'
else if (trim(fSysCode)='YH') or (trim(fSysCode)='YR') then
mstore:= 'YHPC';
ADOQueryHelp.DisableControls ;
with ADOQueryHelp Do
Begin
close;
filtered:=false;
SQL.Clear;
sql.Add('exec P_Calc_PBKC_CHANGE10');
sql.Add(quotedStr(fSysCode));
sql.Add(','+QuotedStr(mstore)); //<2F>ֿ<EFBFBD>
sql.Add(','+QuotedStr(fCustomNo));
sql.Add(','+intTostr(fPbCtrl));
sql.Add(','+intTostr(fBaseNode));
sql.Add(','+quotedStr(fClassType));
Open;
end;
finally
LoadFlag:=true;
ADOQueryHelp.EnableControls ;
end;
end;
procedure TfrmPbProductHelp10.FormCreate(Sender: TObject);
begin
cxgrid1.Align:=alClient;
with ADOConnection1 do
begin
Connected:=false;
ConnectionString:=gConString;
Connected:=true;
end;
InitTree();
end;
procedure TfrmPbProductHelp10.FormShow(Sender: TObject);
begin
if fpbCtrl>0 then tv1store.Visible :=true
else tv1store.Visible :=false;
{if trim(self.Caption)='' then
ReadCxGrid(trim(self.Name),tv1,'<27><>Ⱦ<EFBFBD><C8BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>')
else
ReadCxGrid(trim(self.Caption),tv1,'<27><>Ⱦ<EFBFBD><C8BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>'); }
readCxGrid('<27><><EFBFBD><EFBFBD>ѡ<EFBFBD><D1A1>',tv1,'<27><>Ⱦ<EFBFBD><C8BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>');
DoQuery();
Edit2.SetFocus;
end;
procedure TfrmPbProductHelp10.cxTabControl1Change(Sender: TObject);
begin
DoQuery();
end;
procedure TfrmPbProductHelp10.tv1DblClick(Sender: TObject);
begin
if ADOQueryHelp.IsEmpty then exit;
ModalResult := 1;
end;
/////////////////////////////////////////////////////////
//
/////////////////////////////////////////////////////////
procedure TfrmPbProductHelp10.Dofilter();
var
filterStr:string;
begin
filterStr:='';
if trim(edit2.Text)<>'' then
begin
filterStr:=' and (P_code like '+quotedStr('%'+trim(edit2.text)+'%')
+' or P_chnName like '+quotedStr('%'+trim(edit2.text)+'%')
+' or P_spec like '+quotedStr('%'+trim(edit2.text)+'%')
+')';
end;
////////////////////////
if trim(edt_spec.Text)<>'' then
begin
filterStr:=' or P_spec like '+quotedStr('%'+trim(edt_spec.text)+'%');
end;
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;
////////////////////////////////////////////////////////
procedure TfrmPbProductHelp10.InitTree();
var
MyRecPtr: PMyRec;
tmpstr :string;
i:integer;
mNode,RootNode :TTreeNode;
array_Node:array of TTreeNOde;
begin
try
New(MyRecPtr);
MyRecPtr^.wbcode := 'ALL';
MyRecPtr^.Tvtem_str := <><C8AB><EFBFBD><EFBFBD>Ʒ';
//treetop := 'ALL';
with TreeView1 do
begin
Items.Clear;
RootNode := Items.AddObject(nil, MyRecPtr^.Tvtem_str, MyRecPtr);
RootNode.ImageIndex := 1;
RootNode.SelectedIndex := 2;
end;
with TreeView1,AD_Rhl_Fllb do
begin
tmpstr := 'select code,name from xc_code where flag = ''CATLOGTYPE'' and valid = ''Y''';
tmpstr := tmpstr +' order by code';
active := false;
CommandText := tmpstr;
active := true;
if recordcount = 0 then
begin
application.MessageBox('<27>Բ<EFBFBD><D4B2><EFBFBD>,<2C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>δ<EFBFBD><CEB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ʒ<EFBFBD><C6B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:CATLOGTYPE!','<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)
+'('+trim(fieldbyname('code').Asstring)+')';
mNode := Items.AddChildObject(RootNode, MyRecPtr^.Tvtem_str, MyRecPtr);
mNode.ImageIndex := 1;
mNode.SelectedIndex := 2;
array_Node[i]:=mNode;
INC(i);
Next;
end;
Close;
end;
///////////////////////////////////////
with ADOQueryChild do
begin
close;
filtered:=false;
sql.Clear ;
sql.Add('select * from xc_code');
sql.Add('where 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].Expanded:=true;
except
end;
end;
//////////////////////////////////////////////////////////////////
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ܣ<EFBFBD><DCA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ӽڵ<D3BD>
//////////////////////////////////////////////////////////////////
procedure TfrmPbProductHelp10.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;
procedure TfrmPbProductHelp10.TreeView1Click(Sender: TObject);
var
NodeXX:TTreeNode;
begin
if not LoadFlag then exit;
NodeXX := TreeView1.Selected;
fClassType := trim(PMyRec(NodeXX.Data).wbcode);
fBaseNode:=0;
if (fClassType <> 'ALL') then //<2F><><EFBFBD><EFBFBD>ȫ<EFBFBD><C8AB><EFBFBD><EFBFBD>Ʒ
begin
with ADOQueryTmp do
begin
Close;
SQL.Clear;
SQL.Add('select flag from xc_code where code = '''+fClassType+''' and valid = ''Y'' ' );
Open;
if trim(fieldbyname('flag').asstring) = 'CATLOGTYPE' then //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ʒ
begin
fBaseNode:=1;
end
else //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ʒ
begin
fBaseNode:=2;
end;
end;
end
else
fClassType:='';
DoQuery();
end;
procedure TfrmPbProductHelp10.Edit2Change(Sender: TObject);
begin
Dofilter();
end;
procedure TfrmPbProductHelp10.CheckBox1Click(Sender: TObject);
begin
if CheckBox1.Checked=True then
begin
fPbCtrl:=1;
fBaseNode:=0;
fSysCode:='';
DoQuery();
end else
begin
fPbCtrl:=0;
fBaseNode:=0;
fSysCode:='';
DoQuery();
end;
end;
end.