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

292 lines
6.5 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_GlideHelp;
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
TfrmGlideHelp = 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);
private
{ Private declarations }
load_flag :Boolean;
this_code :string;
procedure DoQuery();
procedure IntiTree();
procedure DoFilter(mDept:string);
public
{ Public declarations }
end;
var
frmGlideHelp: TfrmGlideHelp;
implementation
{$R *.dfm}
uses
U_global;
type
PMyRec = ^TMyRec;
TMyRec = record
wbcode: string;
Tvtem_str: string;
end;
procedure TfrmGlideHelp.FormCreate(Sender: TObject);
begin
load_flag := False;
//inti_node();
IntiTree();
load_flag := True;
Panel2.Align := AlClient;
DoQuery();
with AD_Sub do
begin
Disablecontrols;
Active:=False;
Active:=True;
Enablecontrols;
end;
end;
procedure TfrmGlideHelp.Edit1KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if Key = VK_RETURN then
BtnFindClick(Sender);
end;
procedure TfrmGlideHelp.BtnCloseClick(Sender: TObject);
begin
Close;
end;
procedure TfrmGlideHelp.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 TfrmGlideHelp.BtnFindClick(Sender: TObject);
begin
DoFilter('');
end;
procedure TfrmGlideHelp.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 TfrmGlideHelp.DG_SubDblClick(Sender: TObject);
begin
if Ad_Sub.IsEmpty then exit;
try
dg_Sub.SetFocus;
Ad_Sub.Delete;
except
//
end;
end;
procedure TfrmGlideHelp.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 TfrmGlideHelp.TreeView1Click(Sender: TObject);
begin
try
this_code := trim(PMyRec(TreeView1.Selected.Data).wbcode);
Dofilter(this_code);
except
//
end;
end;
procedure TfrmGlideHelp.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 TfrmGlideHelp.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 TfrmGlideHelp.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;
end.