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

185 lines
4.6 KiB
ObjectPascal
Raw Normal View History

2025-01-08 11:55:07 +08:00
unit U_custHelpPS;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, cxPC, cxControls, ImgList, ComCtrls, ToolWin, StdCtrls, ExtCtrls,
U_LeftHelptree, DB, ADODB, cxStyles, cxCustomData, cxGraphics, cxFilter,
cxData, cxDataStorage, cxEdit, cxDBData, cxGridCustomTableView,
cxGridTableView, cxGridDBTableView, cxGridLevel, cxClasses,
cxGridCustomView, cxGrid, cxTL, cxMaskEdit, cxInplaceContainer, cxDBTL,
cxTLData;
type
PMyRec = ^TMyRec;
TMyRec = record
wbcode: string;
Tvtem_str: string;
end;
type
TfrmCustHelpPS = class(TForm)
Panel1: TPanel;
Label1: TLabel;
Edit1: TEdit;
ImageList24: TImageList;
ADOQueryTmp: TADOQuery;
ADOConnection1: TADOConnection;
ADOQueryHelp: TADOQuery;
DS_Help: TDataSource;
tv1: TcxGridDBTableView;
cxGrid1Level1: TcxGridLevel;
cxGrid1: TcxGrid;
tv1customNo: TcxGridDBColumn;
tv1shortName: TcxGridDBColumn;
ToolBar1: TToolBar;
BtnOk: TToolButton;
BtnCancel: TToolButton;
tv1customName: TcxGridDBColumn;
DataSource1: TDataSource;
ADOQueryChild: TADOQuery;
cxDBTreeList1: TcxDBTreeList;
cxDBTreeList1cxDBTreeListColumn2: TcxDBTreeListColumn;
procedure FormCreate(Sender: TObject);
procedure BtnCancelClick(Sender: TObject);
procedure BtnOkClick(Sender: TObject);
procedure Edit1Change(Sender: TObject);
procedure tv1DblClick(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure cxDBTreeList1Click(Sender: TObject);
private
LoadFlag:Boolean;
fSqlStr:string;
procedure InitTree();
procedure InitGrid(mSql:string);
public
fValidCustFlag:Boolean; //<2F>Ƿ<EFBFBD><C7B7><EFBFBD>ʾ<EFBFBD><CABE>Ч<EFBFBD>ͻ<EFBFBD>
fDispCustomName:Boolean; //<2F>Ƿ<EFBFBD><C7B7><EFBFBD>ʾȫ<CABE><C8AB>
end;
var
frmCustHelpPS: TfrmCustHelpPS;
implementation
uses
U_global;
{$R *.dfm}
procedure TfrmCustHelpPS.FormCreate(Sender: TObject);
begin
with ADOConnection1 do
begin
Connected:=false;
ConnectionString:=gConString;
Connected:=true;
end;
fSqlStr:='select a.CustomNo,a.ShortName,a.CustomName,a.CustomNameEn,'+
'a.Contactor,ywyCode from V_BC_customer10 A where 1=1 ';
InitTree();
cxGrid1.Align :=alClient;
InitGrid(fSqlStr);
end;
procedure TfrmCustHelpPS.BtnCancelClick(Sender: TObject);
begin
close;
end;
procedure TfrmCustHelpPS.InitTree();
var
fsj:String;
begin
fsj:='select frameNo,frameName,TopFrameNo='''''+
' from YC_Frame A '+
' where exists(select Code from YC_Stuff X where X.dept=A.frameNo and X.ywyFlag=''Y'' and valid=''Y'')'+
' union all '+
' select frameNo=Code,frameName=name,TopFrameNo=dept '+
' from YC_Stuff A '+
' where A.YWYFlag=''Y'' and A.Valid=''Y'' ';
with ADOQueryChild do
begin
Close;
sql.Clear;
sql.Add(fsj);
Open;
end;
cxDBTreeList1.FullExpand;
end;
procedure TfrmCustHelpPS.BtnOkClick(Sender: TObject);
begin
if ADOQueryHelp.IsEmpty then exit;
ModalResult := 1;
end;
procedure TfrmCustHelpPS.InitGrid(mSql:string);
begin
try
with ADOQueryHelp do
begin
close;
sql.Clear ;
sql.Add(mSql);
if gIsYwy then
sql.Add('and A.contactor='+quotedStr(guserName));
if fValidCustFlag then
sql.Add('and A.valid=''Y''');
sql.Add('order by CustomNoId');
Open;
end;
finally
end;
end;
procedure TfrmCustHelpPS.Edit1Change(Sender: TObject);
var
TmpSql:string;
begin
TmpSql := 'SELECT CustomNo,ShortName,CustomName,a.Contactor,ywyCode FROM V_BC_Customer10 A'
+ ' where (A.CustomName Like '+quotedStr('%'+trim(edit1.Text)+'%')+
' or A.ShortName Like '+quotedStr('%'+trim(edit1.Text)+'%')+
' or A.CustomNo Like '+quotedStr('%'+trim(edit1.Text)+'%')+ ')';
InitGrid(TmpSql);
end;
procedure TfrmCustHelpPS.tv1DblClick(Sender: TObject);
begin
BtnOk.Click ;
end;
procedure TfrmCustHelpPS.FormShow(Sender: TObject);
begin
tv1customName.Visible := fDispCustomName;
end;
procedure TfrmCustHelpPS.cxDBTreeList1Click(Sender: TObject);
var
fSqlStr:string;
begin
if ADOQueryHelp.Active then
begin
if Trim(ADOQueryChild.fieldbyname('frameno').AsString)<>'' then
begin
fSqlStr:=' ywyCode='+quotedStr(Trim(ADOQueryChild.fieldbyname('frameno').AsString));
try
ADOQueryHelp.DisableControls;
with ADOQueryHelp do
begin
if Trim(fSqlStr)='' then
begin
Filtered:=False;
end else
begin
Filtered:=False;
Filter:=fSqlStr;
Filtered:=True;
end;
end;
finally
ADOQueryHelp.EnableControls;
end;
end;
end;
end;
end.