311 lines
8.4 KiB
ObjectPascal
311 lines
8.4 KiB
ObjectPascal
unit U_StuffHelp_db;
|
||
|
||
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, DBClient,
|
||
Menus, cxGridCustomPopupMenu, cxGridPopupMenu;
|
||
|
||
type
|
||
TfrmStuffHelp_db = class(TForm)
|
||
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;
|
||
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;
|
||
DS_sel: TDataSource;
|
||
CDS_sel: TClientDataSet;
|
||
cxGrid2: TcxGrid;
|
||
tv2: TcxGridDBTableView;
|
||
cxGridDBColumn1: TcxGridDBColumn;
|
||
cxGridDBColumn2: TcxGridDBColumn;
|
||
cxGridDBColumn3: TcxGridDBColumn;
|
||
cxGridLevel1: TcxGridLevel;
|
||
CDS_selcode: TStringField;
|
||
CDS_selName: TStringField;
|
||
PopupMenu1: TPopupMenu;
|
||
N1: TMenuItem;
|
||
tv1gwName: TcxGridDBColumn;
|
||
tv1duties: TcxGridDBColumn;
|
||
tv1kqDeptName: TcxGridDBColumn;
|
||
cxGridPopupMenu1: TcxGridPopupMenu;
|
||
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);
|
||
procedure tv2DblClick(Sender: TObject);
|
||
procedure N1Click(Sender: TObject);
|
||
private
|
||
procedure InitTree();
|
||
procedure DoQuery();
|
||
procedure FilterData(strdepotno,strcode,strname:string);
|
||
procedure InitTree20();
|
||
public
|
||
fFrameNo:string;
|
||
fFrameName:string;
|
||
fIsYwy:boolean;
|
||
fWhereStr:string;
|
||
end;
|
||
|
||
var
|
||
frmStuffHelp_db: TfrmStuffHelp_db;
|
||
|
||
implementation
|
||
uses
|
||
U_global;
|
||
{$R *.dfm}
|
||
///////////////////////////////////////////////////////////
|
||
//////<2F><><EFBFBD>ܣ<EFBFBD><DCA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||
///////////////////////////////////////////////////////////
|
||
procedure TfrmStuffHelp_db.FilterData(strdepotno,strcode,strname:string);
|
||
var
|
||
filterStr:string;
|
||
begin
|
||
filterStr:='';
|
||
if trim(strdepotno)<>'' then
|
||
filterStr:=filterStr+' and dept like '+quotedstr(trim(strdepotno)+'%');
|
||
if trim(strcode)<>'' then
|
||
filterStr:=filterStr+' and code like '+quotedstr('%'+trim(strcode)+'%');
|
||
if trim(strname)<>'' then
|
||
filterStr:=filterStr+' and name like '+quotedstr('%'+trim(strname)+'%');
|
||
|
||
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;
|
||
//////////////////////////////////////////////////////
|
||
procedure TfrmStuffHelp_db.InitTree();
|
||
var
|
||
strsql,strwhere:string;
|
||
begin
|
||
strsql:=' SELECT distinct frameNo,frameTop,frameName,Framelevel '+
|
||
' from YC_frame '+
|
||
' where Framelevel=''0'' and Valid=''Y'' '+
|
||
' union '+
|
||
' 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'' ';
|
||
|
||
strwhere:=' where A.Valid=''Y'' ';
|
||
if fIsYwy then
|
||
strwhere:=strwhere+' and A.YWYFlag=''Y'' ';
|
||
if trim(fFrameNo)<>'' then
|
||
strwhere:=strwhere+' and A.dept='+quotedstr(trim(fFrameNo));
|
||
if trim(fFrameName)<>'' then
|
||
strwhere:=strwhere+' and B.frameName like '+quotedstr('%'+trim(fFrameName)+'%');
|
||
strsql:=strsql+ strwhere;
|
||
|
||
with ADOQueryDept do
|
||
begin
|
||
close;
|
||
sql.Clear ;
|
||
sql.Add( strsql);
|
||
Open;
|
||
end;
|
||
cxDBTreeList1.FullExpand;
|
||
|
||
DoQuery();
|
||
end;
|
||
procedure TfrmStuffHelp_db.InitTree20();
|
||
var
|
||
strsql,strwhere:string;
|
||
begin
|
||
|
||
strsql:=' select * from Yc_Frame order by framelevel ';
|
||
if trim(fFrameNo)<>'' then
|
||
strwhere:=strwhere+' and frameno='+quotedstr(trim(fFrameNo));
|
||
if trim(fFrameName)<>'' then
|
||
strwhere:=strwhere+' and frameName like '+quotedstr('%'+trim(fFrameName)+'%');
|
||
strsql:=strsql+ strwhere;
|
||
|
||
with ADOQueryDept do
|
||
begin
|
||
close;
|
||
sql.Clear ;
|
||
sql.Add( strsql);
|
||
Open;
|
||
end;
|
||
cxDBTreeList1.Items[0].Expand(false);
|
||
|
||
DoQuery();
|
||
end;
|
||
|
||
procedure TfrmStuffHelp_db.FormShow(Sender: TObject);
|
||
begin
|
||
//InitTree();
|
||
InitTree20();
|
||
end;
|
||
|
||
procedure TfrmStuffHelp_db.FormCreate(Sender: TObject);
|
||
begin
|
||
cxGrid2.Align :=alclient;
|
||
with ADOConnection1 do
|
||
begin
|
||
Connected:=false;
|
||
ConnectionString:=gConString;
|
||
Connected:=true;
|
||
end;
|
||
cds_sel.Close;
|
||
cds_sel.CreateDataSet ;
|
||
end;
|
||
//////////////////////////////////////////////////
|
||
//
|
||
//////////////////////////////////////////////////
|
||
procedure TfrmStuffHelp_db.DoQuery();
|
||
var
|
||
strwhere:string;
|
||
begin
|
||
if fIsYwy then
|
||
strwhere:=strwhere+' and A.YWYFlag=''Y''';
|
||
if trim(fFrameNo)<>'' then
|
||
strwhere:=strwhere+' and A.dept='+quotedstr(trim(fFrameNo));
|
||
try
|
||
ADOQueryHelp.DisableControls ;
|
||
with ADOQueryHelp do
|
||
begin
|
||
close;
|
||
sql.Clear ;
|
||
sql.Add('select A.code,A.Name,A.dept,A.ywyflag,A.duties,'); //A.workerPostion,
|
||
sql.Add('kqDeptName=(select Name from XC_Custcode where code=B.kqdept),');
|
||
sql.Add('gwName=(select name from xc_custcode where code=A.gangwei and flag=''gangwei'')');
|
||
sql.Add('from YC_stuff A');
|
||
sql.Add('left join YC_kqDeptStuff B on A.code=B.userId');
|
||
sql.Add('where A.Valid=''Y''');
|
||
sql.Add(strwhere);
|
||
sql.Add(fWhereStr);
|
||
sql.Add('and A.Name<>''''');
|
||
sql.Add('order by A.Code');
|
||
Open;
|
||
end;
|
||
finally
|
||
ADOQueryHelp.EnableControls ;
|
||
end;
|
||
end;
|
||
|
||
procedure TfrmStuffHelp_db.TBCloseClick(Sender: TObject);
|
||
begin
|
||
close;
|
||
end;
|
||
|
||
procedure TfrmStuffHelp_db.TOkClick(Sender: TObject);
|
||
begin
|
||
if ADOQueryHelp.IsEmpty then
|
||
begin
|
||
ModalResult:=-1
|
||
end
|
||
else
|
||
ModalResult:=1;
|
||
end;
|
||
|
||
procedure TfrmStuffHelp_db.tv1DblClick(Sender: TObject);
|
||
begin
|
||
with CDS_sel do
|
||
begin
|
||
if locate('code', trim(ADOQueryHelp.fieldByName('code').AsString),[]) then exit;
|
||
Append;
|
||
fieldByName('code').Value :=trim(ADOQueryHelp.fieldByName('code').AsString);
|
||
fieldByName('Name').Value :=trim(ADOQueryHelp.fieldByName('Name').AsString);
|
||
Post;
|
||
end;
|
||
end;
|
||
|
||
procedure TfrmStuffHelp_db.Edt_nameChange(Sender: TObject);
|
||
begin
|
||
FilterData('',edt_code.Text,Edt_name.Text);
|
||
end;
|
||
|
||
procedure TfrmStuffHelp_db.cxDBTreeList1Click(Sender: TObject);
|
||
begin
|
||
if ADOQueryDept.IsEmpty then exit;
|
||
if trim(ADOQueryDept.FieldByName('Framelevel').AsString)='0' then
|
||
FilterData('','','')
|
||
else
|
||
FilterData(ADOQueryDept.FieldByName('Frameno').AsString,'','');
|
||
end;
|
||
|
||
procedure TfrmStuffHelp_db.tv2DblClick(Sender: TObject);
|
||
begin
|
||
CDS_sel.Delete ;
|
||
end;
|
||
|
||
procedure TfrmStuffHelp_db.N1Click(Sender: TObject);
|
||
begin
|
||
try
|
||
ADOQueryHelp.DisableControls ;
|
||
CDS_sel.DisableControls ;
|
||
ADOQueryHelp.First ;
|
||
while not ADOQueryHelp.Eof do
|
||
begin
|
||
with CDS_sel do
|
||
begin
|
||
if locate('code', trim(ADOQueryHelp.fieldByName('code').AsString),[]) then
|
||
begin
|
||
ADOQueryHelp.Next ;
|
||
continue;
|
||
end;
|
||
Append;
|
||
fieldByName('code').Value :=trim(ADOQueryHelp.fieldByName('code').AsString);
|
||
fieldByName('Name').Value :=trim(ADOQueryHelp.fieldByName('Name').AsString);
|
||
Post;
|
||
end;
|
||
ADOQueryHelp.Next ;
|
||
end;
|
||
finally
|
||
ADOQueryHelp.EnableControls;
|
||
CDS_sel.EnableControls ;
|
||
end;
|
||
end;
|
||
|
||
end.
|