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

216 lines
5.8 KiB
ObjectPascal
Raw Permalink Normal View History

2025-01-08 11:55:07 +08:00
unit U_StuffHelp;
2024-12-23 17:08:59 +08:00
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, cxGraphics, cxCustomData, cxStyles, cxTL, cxMaskEdit, cxFilter,
cxData, cxDataStorage, cxEdit, DB, cxDBData, StdCtrls, cxGridLevel,
cxGridCustomTableView, cxGridTableView, cxGridDBTableView, cxClasses,
cxControls, cxGridCustomView, cxGrid, cxInplaceContainer, cxDBTL,
cxTLData, ComCtrls, ToolWin, ADODB, ImgList,StrUtils, ExtCtrls;
type
2025-01-08 11:55:07 +08:00
TfrmStuffHelp = class(TForm)
2024-12-23 17:08:59 +08:00
ToolBar2: TToolBar;
TOk: TToolButton;
TBClose: TToolButton;
cxDBTreeList1: TcxDBTreeList;
cxDBTreeList1cxDBTreeListColumn2: TcxDBTreeListColumn;
cxGrid1: TcxGrid;
tv1: TcxGridDBTableView;
tv1Code: TcxGridDBColumn;
tv1Name: TcxGridDBColumn;
DBGrid1Level1: TcxGridLevel;
GroupBox1: TGroupBox;
ADOQueryDept: TADOQuery;
DataSource1: TDataSource;
ADOConnection1: TADOConnection;
tv1Column1: TcxGridDBColumn;
cxStyleRepository1: TcxStyleRepository;
cxStyle1: TcxStyle;
cxStyle2: TcxStyle;
cxStyle_gridRow: TcxStyle;
cxStyle_gridFoot: TcxStyle;
cxStyle_gridHead: TcxStyle;
cxStyle_gridGroupBox: TcxStyle;
cxStyle_yellow: TcxStyle;
cxStyle_Red: TcxStyle;
ADOQueryHelp: TADOQuery;
DataSource2: TDataSource;
Label1: TLabel;
Edt_name: TEdit;
ImageList1: TImageList;
cxStyleTree: TcxStyle;
Label2: TLabel;
Edt_Code: TEdit;
Splitter1: TSplitter;
procedure FormShow(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure TBCloseClick(Sender: TObject);
procedure TOkClick(Sender: TObject);
procedure tv1DblClick(Sender: TObject);
procedure Edt_nameChange(Sender: TObject);
procedure cxDBTreeList1Click(Sender: TObject);
private
procedure InitTree();
procedure DoQuery();
procedure FilterData(strdepotno,strcode,strname:string);
public
fFrameNo:string;
fFrameName:string;
fIsYwy:boolean;
end;
var
2025-01-08 11:55:07 +08:00
frmStuffHelp: TfrmStuffHelp;
2024-12-23 17:08:59 +08:00
implementation
uses
2025-01-08 11:55:07 +08:00
U_global;
2024-12-23 17:08:59 +08:00
{$R *.dfm}
///////////////////////////////////////////////////////////
//////<2F><><EFBFBD>ܣ<EFBFBD><DCA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
///////////////////////////////////////////////////////////
2025-01-08 11:55:07 +08:00
procedure TfrmStuffHelp.FilterData(strdepotno,strcode,strname:string);
2024-12-23 17:08:59 +08:00
var
filterStr:string;
begin
filterStr:='';
if trim(strdepotno)<>'' then
filterStr:=filterStr+' and dept like '+quotedstr('%'+trim(strdepotno)+'%');
if trim(strcode)<>'' then
2025-01-08 11:55:07 +08:00
filterStr:=filterStr+' and code like '+quotedstr('%'+trim(strcode)+'%');
2024-12-23 17:08:59 +08:00
if trim(strname)<>'' then
2025-01-08 11:55:07 +08:00
filterStr:=filterStr+' and name like '+quotedstr('%'+trim(strname)+'%');
2024-12-23 17:08:59 +08:00
try
ADOQueryHelp.DisableControls ;
if trim(filterStr)='' then
begin
ADOQueryHelp.Filtered:=false;
ADOQueryHelp.EnableControls;
exit;
end;
filterStr:=trim(RightBStr(filterStr,length(filterStr)-5));
// showmessage(filterStr);
with ADOQueryHelp do
begin
filtered:=false;
filter:=filterStr;
filtered:=true;
end;
finally
ADOQueryHelp.EnableControls;
end;
end;
//////////////////////////////////////////////////////
2025-01-08 11:55:07 +08:00
procedure TfrmStuffHelp.InitTree();
2024-12-23 17:08:59 +08:00
var
strsql,strwhere:string;
begin
2025-01-08 11:55:07 +08:00
strsql:=' SELECT distinct frameNo,frameTop,frameName,Framelevel '+
' from YC_frame '+
' where Framelevel=''0'' and Valid=''Y'' '+
2024-12-23 17:08:59 +08:00
' union '+
2025-01-08 11:55:07 +08:00
' SELECT distinct B.frameNo,B.frameTop,B.frameName,Framelevel '+
' FROM YC_stuff A '+
' INNER JOIN YC_frame B on A.dept=B.frameNo and B.Valid=''Y'' ';
2024-12-23 17:08:59 +08:00
strwhere:=' where A.Valid=''Y'' ';
2025-01-08 11:55:07 +08:00
if fIsYwy then
strwhere:=strwhere+' and A.YWYFlag=''Y'' ';
2024-12-23 17:08:59 +08:00
if trim(fFrameNo)<>'' then
2025-01-08 11:55:07 +08:00
strwhere:=strwhere+' and A.dept like '+quotedstr(trim(fFrameNo)+'%');
2024-12-23 17:08:59 +08:00
if trim(fFrameName)<>'' then
strwhere:=strwhere+' and B.frameName like '+quotedstr('%'+trim(fFrameName)+'%');
2025-01-08 11:55:07 +08:00
strsql:=strsql+ strwhere;
2024-12-23 17:08:59 +08:00
with ADOQueryDept do
begin
close;
sql.Clear ;
sql.Add( strsql);
Open;
end;
cxDBTreeList1.FullExpand;
DoQuery();
end;
2025-01-08 11:55:07 +08:00
procedure TfrmStuffHelp.FormShow(Sender: TObject);
2024-12-23 17:08:59 +08:00
begin
InitTree();
end;
2025-01-08 11:55:07 +08:00
procedure TfrmStuffHelp.FormCreate(Sender: TObject);
2024-12-23 17:08:59 +08:00
begin
cxGrid1.Align :=alclient;
with ADOConnection1 do
begin
Connected:=false;
2025-01-08 11:55:07 +08:00
ConnectionString:=gConString;
2024-12-23 17:08:59 +08:00
Connected:=true;
end;
end;
//////////////////////////////////////////////////
//
//////////////////////////////////////////////////
2025-01-08 11:55:07 +08:00
procedure TfrmStuffHelp.DoQuery();
2024-12-23 17:08:59 +08:00
var
strsql,strwhere:string;
begin
2025-01-08 11:55:07 +08:00
strsql:=' select A.code,A.Name,A.dept,A.ywyflag,A.Duties,Case A.Sex when ''F'' then ''Ů'' else ''<27><>'' end as Sex,A.Intime '+
' from YC_stuff A ';
strwhere:=' where A.Valid=''Y'' ';
2024-12-23 17:08:59 +08:00
if fIsYwy then
2025-01-08 11:55:07 +08:00
strwhere:=strwhere+' and A.YWYFlag=''Y'' ';
if trim(fFrameNo)<>'' then
strwhere:=strwhere+' and A.dept like '+quotedstr(trim(fFrameNo)+'%');
strsql:=strsql+ strwhere +' order by A.Code ';
2024-12-23 17:08:59 +08:00
with ADOQueryHelp do
begin
close;
sql.Clear ;
sql.Add( strsql);
Open;
end;
end;
2025-01-08 11:55:07 +08:00
procedure TfrmStuffHelp.TBCloseClick(Sender: TObject);
2024-12-23 17:08:59 +08:00
begin
close;
end;
2025-01-08 11:55:07 +08:00
procedure TfrmStuffHelp.TOkClick(Sender: TObject);
2024-12-23 17:08:59 +08:00
begin
if ADOQueryHelp.IsEmpty then
begin
ModalResult:=-1
end
else
ModalResult:=1;
end;
2025-01-08 11:55:07 +08:00
procedure TfrmStuffHelp.tv1DblClick(Sender: TObject);
2024-12-23 17:08:59 +08:00
begin
Tok.Click ;
end;
2025-01-08 11:55:07 +08:00
procedure TfrmStuffHelp.Edt_nameChange(Sender: TObject);
2024-12-23 17:08:59 +08:00
begin
FilterData('',edt_code.Text,Edt_name.Text);
end;
2025-01-08 11:55:07 +08:00
procedure TfrmStuffHelp.cxDBTreeList1Click(Sender: TObject);
2024-12-23 17:08:59 +08:00
begin
if ADOQueryDept.IsEmpty then exit;
if trim(ADOQueryDept.FieldByName('Framelevel').AsString)='0' then
FilterData('','','')
else
2025-01-08 11:55:07 +08:00
FilterData(ADOQueryDept.FieldByName('Frameno').AsString,'','');
2024-12-23 17:08:59 +08:00
end;
end.