RtTool/Delphi7/开发档案/马国钢开发代码/ThreeFun/helpForm/U_GetGlide.pas
2025-01-08 11:55:07 +08:00

314 lines
7.0 KiB
ObjectPascal
Raw Permalink 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_GetGlide;
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;
type
TfrmGetGlide = 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;
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
{ Private declarations }
load_flag :Boolean;
this_code :string;
procedure DoQuery();
procedure IntiTree();
procedure DoFilter(mDept:string);
public
strGlideNameList:string;
fISGlideGroup:Boolean;
{ Public declarations }
end;
var
frmGetGlide: TfrmGetGlide;
implementation
{$R *.dfm}
uses
U_adodbmd,U_global;
type
PMyRec = ^TMyRec;
TMyRec = record
wbcode: string;
Tvtem_str: string;
end;
procedure TfrmGetGlide.FormCreate(Sender: TObject);
begin
load_flag := False;
with ADOConnection1 do
begin
Connected:=false;
ConnectionString:=gConString;
Connected:=true;
end;
//inti_node();
IntiTree();
load_flag := True;
Panel2.Align := AlClient;
DoQuery();
end;
procedure TfrmGetGlide.Edit1KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if Key = VK_RETURN then
BtnFindClick(Sender);
end;
procedure TfrmGetGlide.BtnCloseClick(Sender: TObject);
begin
Close;
end;
procedure TfrmGetGlide.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 TfrmGetGlide.BtnFindClick(Sender: TObject);
begin
DoFilter('');
end;
procedure TfrmGetGlide.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 TfrmGetGlide.DG_SubDblClick(Sender: TObject);
begin
if Ad_Sub.IsEmpty then exit;
try
dg_Sub.SetFocus;
Ad_Sub.Delete;
except
//
end;
end;
procedure TfrmGetGlide.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 isnull(glideDept,''<27><><EFBFBD><EFBFBD>'') as glideDept,'+
'isnull(glideDeptName,''<27><><EFBFBD><EFBFBD>'') as glideDeptName from V_MC_glide';
tmpstr := tmpstr +' order by 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 TfrmGetGlide.TreeView1Click(Sender: TObject);
begin
try
this_code := trim(PMyRec(TreeView1.Selected.Data).wbcode);
Dofilter(this_code);
except
//
end;
end;
procedure TfrmGetGlide.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 TfrmGetGlide.DoQuery();
begin
try
ADOQuery1.DisableControls ;
with ADOQuery1 do
begin
close;
sql.clear;
filtered:=false;
sql.Add('select *,isnull(glideDept,''<27><><EFBFBD><EFBFBD>'') as dept from V_MC_glide');
sql.Add('order By glideNo');
Open;
end;
finally
ADOQuery1.EnableControls ;
end;
end;
/////////////////////////////////////////
procedure TfrmGetGlide.DoFilter(mDept:string);
var
filterStr:string;
begin
if mDept<>'R' then
filterStr:=' and Dept= '+quotedStr(trim(mDept));
if trim(edit1.Text)<>'' then
filterStr:=filterStr+' and glideName like '+quotedStr('%'+trim(edit1.Text)+'%');
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 TfrmGetGlide.FormShow(Sender: TObject);
var
strsql:string;
begin
strsql:=' SELECT * FROM MC_Glide WHERE 1 = 1 ';
if trim(strGlideNameList)<>'' then
strsql:=strsql+trim(strGlideNameList)
else
strsql:=strsql+' and 1=2 ';
AD_Sub.CommandText:=strsql;
with AD_Sub do
begin
Disablecontrols;
Active:=False;
Active:=True;
Enablecontrols;
end;
end;
end.