386 lines
9.0 KiB
ObjectPascal
386 lines
9.0 KiB
ObjectPascal
![]() |
unit U_GetGlide10;
|
|||
|
|
|||
|
interface
|
|||
|
|
|||
|
uses
|
|||
|
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
|
|||
|
Dialogs, DB, ADODB, StdCtrls, Grids, DBGrids, ExtCtrls, ComCtrls, ToolWin,
|
|||
|
cxStyles, cxCustomData, cxGraphics, cxFilter, cxData, cxDataStorage,
|
|||
|
cxEdit, cxDBData, cxGridCustomTableView, cxGridTableView,
|
|||
|
cxGridDBTableView, cxGridLevel, cxClasses, cxControls, cxGridCustomView,
|
|||
|
cxGrid,StrUtils, ImgList;
|
|||
|
|
|||
|
type
|
|||
|
TfrmGetGlide10 = class(TForm)
|
|||
|
ADOQuery1: TADOQuery;
|
|||
|
DataSource1: TDataSource;
|
|||
|
ADOQuery1GlideNo: TStringField;
|
|||
|
ADOQuery1GlideName: TStringField;
|
|||
|
ADOQuery1GlidePara: TStringField;
|
|||
|
ADOQuery1GlideNote: TStringField;
|
|||
|
AD_sub: TADODataSet;
|
|||
|
Ds_sub: TDataSource;
|
|||
|
AD_GY_Fllb: TADODataSet;
|
|||
|
Ds_Gy_Fllb: TDataSource;
|
|||
|
Splitter2: TSplitter;
|
|||
|
Panel1: TPanel;
|
|||
|
Label1: TLabel;
|
|||
|
Edit1: TEdit;
|
|||
|
ToolBar1: TToolBar;
|
|||
|
BtnFind: TToolButton;
|
|||
|
BtnOk: TToolButton;
|
|||
|
BtnClose: TToolButton;
|
|||
|
TreeView1: TTreeView;
|
|||
|
Panel2: TPanel;
|
|||
|
Splitter1: TSplitter;
|
|||
|
Panel5: TPanel;
|
|||
|
dbGrid1: TcxGrid;
|
|||
|
tv1: TcxGridDBTableView;
|
|||
|
dbGrid1Level1: TcxGridLevel;
|
|||
|
tv1glideNo: TcxGridDBColumn;
|
|||
|
tv1glideName: TcxGridDBColumn;
|
|||
|
tv1glidePara: TcxGridDBColumn;
|
|||
|
tv1glideNote: TcxGridDBColumn;
|
|||
|
Panel3: TPanel;
|
|||
|
Panel6: TPanel;
|
|||
|
DG_Sub: TDBGrid;
|
|||
|
ADOConnection1: TADOConnection;
|
|||
|
ImageList24: TImageList;
|
|||
|
cxStyleRepository1: TcxStyleRepository;
|
|||
|
cxStyle1: TcxStyle;
|
|||
|
cxStyle2: TcxStyle;
|
|||
|
cxStyle_gridRow: TcxStyle;
|
|||
|
cxStyle_gridFoot: TcxStyle;
|
|||
|
cxStyle_gridHead: TcxStyle;
|
|||
|
cxStyle_gridGroupBox: TcxStyle;
|
|||
|
cxStyle_yellow: TcxStyle;
|
|||
|
cxStyle_Red: TcxStyle;
|
|||
|
procedure Edit1KeyDown(Sender: TObject; var Key: Word;
|
|||
|
Shift: TShiftState);
|
|||
|
procedure BtnCloseClick(Sender: TObject);
|
|||
|
procedure BtnOkClick(Sender: TObject);
|
|||
|
procedure BtnFindClick(Sender: TObject);
|
|||
|
procedure FormCreate(Sender: TObject);
|
|||
|
procedure DBGrid1DblClick(Sender: TObject);
|
|||
|
procedure DG_SubDblClick(Sender: TObject);
|
|||
|
procedure TreeView1Click(Sender: TObject);
|
|||
|
procedure tv1DblClick(Sender: TObject);
|
|||
|
procedure FormShow(Sender: TObject);
|
|||
|
private
|
|||
|
this_code :string;
|
|||
|
procedure DoQuery();
|
|||
|
procedure IntiTree();
|
|||
|
procedure DoFilter(mDept:string);
|
|||
|
procedure IntiGroupTree();
|
|||
|
public
|
|||
|
fSysCode:string;
|
|||
|
fGroupType:string;
|
|||
|
end;
|
|||
|
|
|||
|
var
|
|||
|
frmGetGlide10: TfrmGetGlide10;
|
|||
|
|
|||
|
implementation
|
|||
|
|
|||
|
{$R *.dfm}
|
|||
|
|
|||
|
uses
|
|||
|
U_global;
|
|||
|
|
|||
|
type
|
|||
|
PMyRec = ^TMyRec;
|
|||
|
TMyRec = record
|
|||
|
wbcode: string;
|
|||
|
Tvtem_str: string;
|
|||
|
end;
|
|||
|
|
|||
|
procedure TfrmGetGlide10.FormCreate(Sender: TObject);
|
|||
|
begin
|
|||
|
Panel2.Align := AlClient;
|
|||
|
fGroupType:='ZDY';
|
|||
|
with ADOConnection1 do
|
|||
|
begin
|
|||
|
Connected:=false;
|
|||
|
ConnectionString:=gConString;
|
|||
|
Connected:=true;
|
|||
|
end;
|
|||
|
|
|||
|
|
|||
|
end;
|
|||
|
|
|||
|
procedure TfrmGetGlide10.Edit1KeyDown(Sender: TObject; var Key: Word;
|
|||
|
Shift: TShiftState);
|
|||
|
begin
|
|||
|
if Key = VK_RETURN then
|
|||
|
BtnFindClick(Sender);
|
|||
|
end;
|
|||
|
|
|||
|
procedure TfrmGetGlide10.BtnCloseClick(Sender: TObject);
|
|||
|
begin
|
|||
|
Close;
|
|||
|
end;
|
|||
|
|
|||
|
procedure TfrmGetGlide10.BtnOkClick(Sender: TObject);
|
|||
|
var
|
|||
|
i :integer;
|
|||
|
begin
|
|||
|
if AD_sub.IsEmpty then
|
|||
|
begin
|
|||
|
application.MessageBox('<27><>ѡ<EFBFBD><D1A1><EFBFBD><EFBFBD>Ҫ<EFBFBD>Ĺ<EFBFBD><C4B9><EFBFBD>!','<27><>ʾ<EFBFBD><CABE>Ϣ',0);
|
|||
|
exit;
|
|||
|
end;
|
|||
|
ModalResult:=1;
|
|||
|
end;
|
|||
|
|
|||
|
procedure TfrmGetGlide10.BtnFindClick(Sender: TObject);
|
|||
|
begin
|
|||
|
DoFilter('');
|
|||
|
end;
|
|||
|
|
|||
|
procedure TfrmGetGlide10.DBGrid1DblClick(Sender: TObject);
|
|||
|
var
|
|||
|
i :integer;
|
|||
|
begin
|
|||
|
if not ADOQuery1.Active then exit;
|
|||
|
if ADOQuery1.RecordCount = 0 then exit;
|
|||
|
with Ad_Sub,dg_Sub do
|
|||
|
begin
|
|||
|
DisableControls;
|
|||
|
SetFocus;
|
|||
|
append;
|
|||
|
for i := 0 to Columns.Count -1 do
|
|||
|
begin
|
|||
|
Columns[i].Field.ReadOnly := False;
|
|||
|
Fieldvalues[Columns[i].FieldName] := ADOQuery1.Fieldbyname(Columns[i].FieldName).Value;
|
|||
|
end;
|
|||
|
SelectedField.FocusControl;
|
|||
|
update();
|
|||
|
EnableControls;
|
|||
|
end;
|
|||
|
Ad_Sub.Post;
|
|||
|
dg_Sub.Refresh;
|
|||
|
end;
|
|||
|
|
|||
|
procedure TfrmGetGlide10.DG_SubDblClick(Sender: TObject);
|
|||
|
begin
|
|||
|
if Ad_Sub.IsEmpty then exit;
|
|||
|
try
|
|||
|
dg_Sub.SetFocus;
|
|||
|
Ad_Sub.Delete;
|
|||
|
except
|
|||
|
//
|
|||
|
end;
|
|||
|
end;
|
|||
|
|
|||
|
procedure TfrmGetGlide10.IntiTree();
|
|||
|
var
|
|||
|
MyRecPtr: PMyRec;
|
|||
|
tmpstr :string;
|
|||
|
begin
|
|||
|
try
|
|||
|
New(MyRecPtr);
|
|||
|
MyRecPtr^.wbcode := 'R';
|
|||
|
MyRecPtr^.Tvtem_str := 'ȫ<><C8AB>';
|
|||
|
with TreeView1 do
|
|||
|
begin
|
|||
|
Items.Clear;
|
|||
|
Items.AddObject(nil, MyRecPtr^.Tvtem_str, MyRecPtr);
|
|||
|
end;
|
|||
|
with TreeView1,AD_GY_Fllb do
|
|||
|
begin
|
|||
|
tmpstr := 'select distinct deptOrderid, isnull(glideDept,''<27><><EFBFBD><EFBFBD>'') as glideDept,'+
|
|||
|
'isnull(glideDeptName,''<27><><EFBFBD><EFBFBD>'') as glideDeptName from V_MC_glide';
|
|||
|
tmpstr := tmpstr +' order by deptOrderid,glidedept';
|
|||
|
active := false;
|
|||
|
CommandText := tmpstr;
|
|||
|
active := true;
|
|||
|
if recordcount = 0 then exit;
|
|||
|
first;
|
|||
|
while not Eof do
|
|||
|
begin
|
|||
|
New(MyRecPtr);
|
|||
|
MyRecPtr^.wbcode := trim(fieldbyname('glidedept').Asstring);
|
|||
|
MyRecPtr^.Tvtem_str := trim(fieldbyname('glideDeptName').Asstring);
|
|||
|
Items.AddChildObject(Items[0],MyRecPtr^.Tvtem_str, MyRecPtr);
|
|||
|
Next;
|
|||
|
end;
|
|||
|
close;
|
|||
|
Items[0].Selected := True;
|
|||
|
Items[0].Expand(true);
|
|||
|
end;
|
|||
|
except
|
|||
|
//
|
|||
|
end;
|
|||
|
|
|||
|
end;
|
|||
|
|
|||
|
procedure TfrmGetGlide10.IntiGroupTree();
|
|||
|
var
|
|||
|
MyRecPtr: PMyRec;
|
|||
|
tmpstr :string;
|
|||
|
begin
|
|||
|
try
|
|||
|
{
|
|||
|
New(MyRecPtr);
|
|||
|
MyRecPtr^.wbcode := 'R';
|
|||
|
MyRecPtr^.Tvtem_str := 'ȫ<><C8AB>';
|
|||
|
}
|
|||
|
with TreeView1 do
|
|||
|
begin
|
|||
|
Items.Clear;
|
|||
|
//Items.AddObject(nil, MyRecPtr^.Tvtem_str, MyRecPtr);
|
|||
|
end;
|
|||
|
|
|||
|
with TreeView1,AD_GY_Fllb do
|
|||
|
begin
|
|||
|
tmpstr := 'select code ,Name from xc_custcode';
|
|||
|
tmpstr := tmpstr +' where flag =''GlideGROUP'' and valid = ''Y''';
|
|||
|
if trim(fSysCode)<>'' then
|
|||
|
tmpstr:=tmpstr+' and Note= '+quotedStr(trim(fSysCode));
|
|||
|
|
|||
|
tmpstr := tmpstr +' order by orderNo';
|
|||
|
active := false;
|
|||
|
CommandText := tmpstr;
|
|||
|
active := true;
|
|||
|
if recordcount = 0 then exit;
|
|||
|
first;
|
|||
|
while not Eof do
|
|||
|
begin
|
|||
|
New(MyRecPtr);
|
|||
|
MyRecPtr^.wbcode := trim(fieldbyname('code').Asstring);
|
|||
|
MyRecPtr^.Tvtem_str := trim(fieldbyname('Name').Asstring);
|
|||
|
Items.AddChildObject(nil,MyRecPtr^.Tvtem_str, MyRecPtr);
|
|||
|
Next;
|
|||
|
end;
|
|||
|
close;
|
|||
|
//Items[0].Selected := True;
|
|||
|
//Items[0].Expand(true);
|
|||
|
end;
|
|||
|
except
|
|||
|
//
|
|||
|
end;
|
|||
|
|
|||
|
end;
|
|||
|
procedure TfrmGetGlide10.TreeView1Click(Sender: TObject);
|
|||
|
begin
|
|||
|
try
|
|||
|
this_code := trim(PMyRec(TreeView1.Selected.Data).wbcode);
|
|||
|
Dofilter(this_code);
|
|||
|
except
|
|||
|
//
|
|||
|
end;
|
|||
|
end;
|
|||
|
|
|||
|
procedure TfrmGetGlide10.tv1DblClick(Sender: TObject);
|
|||
|
var
|
|||
|
i :integer;
|
|||
|
begin
|
|||
|
if ADOQuery1.IsEmpty then exit;
|
|||
|
with Ad_Sub,dg_Sub do
|
|||
|
begin
|
|||
|
DisableControls;
|
|||
|
SetFocus;
|
|||
|
append;
|
|||
|
for i := 0 to Columns.Count -1 do
|
|||
|
begin
|
|||
|
Columns[i].Field.ReadOnly := False;
|
|||
|
Fieldvalues[Columns[i].FieldName] := ADOQuery1.Fieldbyname(Columns[i].FieldName).Value;
|
|||
|
end;
|
|||
|
SelectedField.FocusControl;
|
|||
|
update();
|
|||
|
EnableControls;
|
|||
|
end;
|
|||
|
Ad_Sub.Post;
|
|||
|
dg_Sub.Refresh;
|
|||
|
end;
|
|||
|
////////////////////////////////////////////////////////////
|
|||
|
//
|
|||
|
////////////////////////////////////////////////////////////
|
|||
|
procedure TfrmGetGlide10.DoQuery();
|
|||
|
begin
|
|||
|
try
|
|||
|
ADOQuery1.DisableControls ;
|
|||
|
with ADOQuery1 do
|
|||
|
begin
|
|||
|
close;
|
|||
|
sql.clear;
|
|||
|
filtered:=false;
|
|||
|
if fGroupType<>'ZDY' THEN
|
|||
|
BEGIN
|
|||
|
sql.Add('select *,isnull(glideDept,''<27><><EFBFBD><EFBFBD>'') as dept from V_MC_glide');
|
|||
|
sql.Add('order By orderid,glideNo');
|
|||
|
END
|
|||
|
ELSE
|
|||
|
BEGIN
|
|||
|
sql.Add('select A.*,B.glideGroup,B.glidegroupName,C.Note as sysCode');
|
|||
|
sql.Add('from MC_glide A');
|
|||
|
sql.Add('left join mc_group_glide B on A.glideNO=B.glideNo');
|
|||
|
sql.Add('INNER join xc_custCode C on C.code=B.glideGroup and flag=''GLIDEGROUP''');
|
|||
|
if trim(fSysCode)<>'' then
|
|||
|
sql.Add('and C.Note= '+quotedStr(trim(fSysCode)));
|
|||
|
sql.Add('order By B.orderid');
|
|||
|
END;
|
|||
|
Open;
|
|||
|
end;
|
|||
|
finally
|
|||
|
ADOQuery1.EnableControls ;
|
|||
|
end;
|
|||
|
end;
|
|||
|
/////////////////////////////////////////
|
|||
|
procedure TfrmGetGlide10.DoFilter(mDept:string);
|
|||
|
var
|
|||
|
filterStr:string;
|
|||
|
begin
|
|||
|
if fGroupType='ZDY' then
|
|||
|
begin
|
|||
|
filterStr:=' and glideGroup= '+quotedStr(trim(mDept));
|
|||
|
end
|
|||
|
else
|
|||
|
begin
|
|||
|
if mDept<>'R' then
|
|||
|
filterStr:=' and Dept= '+quotedStr(trim(mDept));
|
|||
|
end;
|
|||
|
|
|||
|
if trim(edit1.Text)<>'' then
|
|||
|
filterStr:=filterStr+' and glideName like '+quotedStr('%'+trim(edit1.Text)+'%');
|
|||
|
|
|||
|
//if (fGroupType='ZDY') and (trim(fSysCode)<>'') then
|
|||
|
// filterStr:=filterStr+' and sysCode= '+quotedStr(trim(fSysCode));
|
|||
|
|
|||
|
try
|
|||
|
ADOQuery1.DisableControls ;
|
|||
|
filterStr:=trim(RightBStr(filterStr,length(filterStr)-4));
|
|||
|
with ADOQuery1 do
|
|||
|
begin
|
|||
|
filtered:=false;
|
|||
|
if trim(filterStr)<>'' then
|
|||
|
begin
|
|||
|
filter:=filterStr;
|
|||
|
filtered:=true;
|
|||
|
end;
|
|||
|
end;
|
|||
|
finally
|
|||
|
ADOQuery1.EnableControls ;
|
|||
|
end;
|
|||
|
end;
|
|||
|
|
|||
|
procedure TfrmGetGlide10.FormShow(Sender: TObject);
|
|||
|
begin
|
|||
|
IntiGroupTree();
|
|||
|
if TreeView1.Items.Count <=0 then
|
|||
|
begin
|
|||
|
fGroupType:='DEPT';
|
|||
|
IntiTree();
|
|||
|
end;
|
|||
|
DoQuery();
|
|||
|
with AD_Sub do
|
|||
|
begin
|
|||
|
Disablecontrols;
|
|||
|
Active:=False;
|
|||
|
Active:=True;
|
|||
|
Enablecontrols;
|
|||
|
end;
|
|||
|
end;
|
|||
|
|
|||
|
end.
|