314 lines
7.0 KiB
ObjectPascal
314 lines
7.0 KiB
ObjectPascal
![]() |
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.
|