RtTool/Delphi7/开发档案/马国钢开发代码/ThreeFun/helpForm/U_GetGlide10.pas

386 lines
9.0 KiB
ObjectPascal
Raw Permalink Normal View History

2025-01-08 11:55:07 +08:00
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.