D7myYunxiang/合同管理(Contract.dll)/U_ZHCPViewList.pas
DESKTOP-E401PHE\Administrator 1011cb7292 1
2025-01-20 13:04:03 +08:00

513 lines
14 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_ZHCPViewList;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls, ComCtrls, ToolWin, cxStyles, cxCustomData,
cxGraphics, cxFilter, cxData, cxDataStorage, cxEdit, DB, cxDBData, ADODB,
cxGridCustomPopupMenu, cxGridPopupMenu, cxGridLevel, cxClasses,
cxControls, cxGridCustomView, cxGridCustomTableView, cxGridTableView,
cxGridDBTableView, cxGrid, DBClient, cxCheckBox, cxCalendar, cxSplitter,
RM_Dataset, RM_System, RM_Common, RM_Class, RM_GridReport, RM_e_Xls,
Menus, cxButtonEdit, cxDropDownEdit, cxPC, Buttons, cxTextEdit, cxImage,StrUtils;
type
TfrmZHCPViewList = class(TForm)
ToolBar1: TToolBar;
TBRafresh: TToolButton;
TBFind: TToolButton;
TBClose: TToolButton;
Tv1: TcxGridDBTableView;
cxGrid1Level1: TcxGridLevel;
cxGrid1: TcxGrid;
cxGridPopupMenu1: TcxGridPopupMenu;
ADOQueryCmd: TADOQuery;
ADOQueryMain: TADOQuery;
ADOQueryTemp: TADOQuery;
DataSource1: TDataSource;
TBExport: TToolButton;
Order_Main: TClientDataSet;
ToolButton1: TToolButton;
Panel11: TPanel;
v1Column1: TcxGridDBColumn;
v1Column7: TcxGridDBColumn;
v1Column9: TcxGridDBColumn;
RM1: TRMGridReport;
RMDBMain: TRMDBDataSet;
RMXLSExport2: TRMXLSExport;
CDS_PRT: TClientDataSet;
v1Column4: TcxGridDBColumn;
v1Column6: TcxGridDBColumn;
v1Column3: TcxGridDBColumn;
v1Column5: TcxGridDBColumn;
v1Column2: TcxGridDBColumn;
v1Column8: TcxGridDBColumn;
Panel2: TPanel;
cxTabControl2: TcxTabControl;
v1Column10: TcxGridDBColumn;
v1Column11: TcxGridDBColumn;
v1Column12: TcxGridDBColumn;
v1Column13: TcxGridDBColumn;
Panel4: TPanel;
Label9: TLabel;
YeHZ: TEdit;
Label10: TLabel;
CPHZ: TEdit;
Label11: TLabel;
GGHZ: TEdit;
Label12: TLabel;
Panel1: TPanel;
Label2: TLabel;
Label6: TLabel;
Label7: TLabel;
Label8: TLabel;
Label1: TLabel;
Label5: TLabel;
ZIID: TEdit;
ZIName: TEdit;
ZIGY: TEdit;
Editer: TEdit;
Filler: TEdit;
Note: TEdit;
PopupMenu1: TPopupMenu;
KWView: TMenuItem;
LabKWName: TLabel;
procedure FormDestroy(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure FormCreate(Sender: TObject);
procedure TBCloseClick(Sender: TObject);
procedure TBFindClick(Sender: TObject);
procedure TBExportClick(Sender: TObject);
procedure TBRafreshClick(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure CheckBox1Click(Sender: TObject);
procedure CheckBox2Click(Sender: TObject);
procedure ToolButton1Click(Sender: TObject);
procedure CustomerNoNameChange(Sender: TObject);
procedure cxTabControl1Change(Sender: TObject);
procedure ZJStatusChange(Sender: TObject);
procedure Tv1DblClick(Sender: TObject);
procedure cxTabControl2Change(Sender: TObject);
procedure ZIIDKeyPress(Sender: TObject; var Key: Char);
procedure KWViewClick(Sender: TObject);
private
canshu1:string;
DQdate:TDateTime;
procedure InitGrid();
procedure InitForm();
procedure IntTab();
function GetFiltersGY(TMPanel:TPanel;EquTag,LikeTag:Integer):string;
function StrFenHang(FStr:string;var FHStr:String):Boolean;
{ Private declarations }
public
FFInt,FCloth:Integer;
FKWID:String;
{ Public declarations }
end;
var
frmZHCPViewList:TfrmZHCPViewList;
implementation
uses
U_DataLink,U_RTFun,U_ZHCPInPut,U_KWView,U_CPInPutDML;
{$R *.dfm}
procedure TfrmZHCPViewList.FormDestroy(Sender: TObject);
begin
frmZHCPViewList:=nil;
end;
procedure TfrmZHCPViewList.FormClose(Sender: TObject;
var Action: TCloseAction);
begin
Action:=caFree;
end;
procedure TfrmZHCPViewList.FormCreate(Sender: TObject);
begin
cxgrid1.Align:=alClient;
canshu1:=Trim(DParameters1);
end;
procedure TfrmZHCPViewList.TBCloseClick(Sender: TObject);
begin
WriteCxGrid('<27>ҹ<EFBFBD><D2B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѯMX',Tv1,<><D5B9><EFBFBD><EFBFBD>Ʒ<EFBFBD><C6B7><EFBFBD><EFBFBD>');
Close;
end;
function TfrmZHCPViewList.GetFiltersGY(TMPanel:TPanel;EquTag,LikeTag:Integer):string;
var
i,j,k:Integer;
fsj,fsj1:String;
begin
Result:='';
with TMPanel do
begin
for i:=0 to ControlCount-1 do
begin
if Controls[i] is TLabel then Continue;
if Controls[i] is TEdit then
begin
if Trim(TEdit(Controls[i]).Text)<>'' then
begin
if Trim(TEdit(Controls[i]).Name)='ZIID' then
begin
if Copy(Trim(TEdit(Controls[i]).Text),1,2)='DY' then
begin
with ADOQueryTemp do
begin
Close;
sql.Clear;
sql.Add('select * from ZH_CP_Info_KC where DYID='''+Trim(TEdit(Controls[i]).Text)+'''');
Open;
end;
TEdit(Controls[i]).Text:=Trim(ADOQueryTemp.fieldbyname('ZIID').AsString);
Controls[i].Tag:=1;
end else
begin
Controls[i].Tag:=2;
end;
end;
if Controls[i].Tag=EquTag then
Result:=Result+'and A.'+Controls[i].Hint+Controls[i].Name+'='+QuotedStr(Trim(TEdit(Controls[i]).Text))
else if Controls[i].Tag=LikeTag then
begin
j:=Pos(' ',Trim(TEdit(Controls[i]).Text));
if j>0 then
begin
Result:=Result+'and A.'+Controls[i].Hint+Controls[i].Name+' like '+QuotedStr('%'+Copy(Trim(TEdit(Controls[i]).Text),1,j-1 )+'%');
fsj1:=Copy(Trim(TEdit(Controls[i]).Text),j+1,Length(Trim(TEdit(Controls[i]).Text)));
while Trim(fsj1)<>'' do
begin
j:=Pos(' ',Trim(fsj1));
if j>0 then
begin
Result:=Result+'and A.'+Controls[i].Hint+Controls[i].Name+' like '+QuotedStr('%'+Copy(Trim(fsj1),1,j-1 )+'%');
fsj1:=Copy(Trim(fsj1),j+1,Length(Trim(fsj1)));
end else
begin
Result:=Result+'and A.'+Controls[i].Hint+Controls[i].Name+' like '+QuotedStr('%'+Trim(fsj1)+'%');
fsj1:='';
end;
end;
end else
Result:=Result+'and A.'+Controls[i].Hint+Controls[i].Name+' like '+QuotedStr('%'+Trim(TEdit(Controls[i]).Text)+'%');
end;
end;
end else
if Controls[i] is TComboBox then
begin
if Trim(TComboBox(Controls[i]).Text)<>'' then
if Controls[i].Tag=EquTag then
Result:=Result+'and A.'+Controls[i].Hint+Controls[i].Name+'='+QuotedStr(Trim(TComboBox(Controls[i]).Text))
else if Controls[i].Tag=LikeTag then
Result:=Result+'and A.'+Controls[i].Hint+Controls[i].Name+' like '+QuotedStr('%'+Trim(TComboBox(Controls[i]).Text)+'%');
end;
end;
end;
if Trim(Result)<>'' then
Result:=Trim(RightBStr(Result,Length(Result)-4));
end;
procedure TfrmZHCPViewList.InitGrid();
var
fsj10:String;
begin
fsj10:=GetFiltersGY(Panel1,1,2);
if Trim(fsj10)<>'' then
begin
fsj10:=' and '+fsj10;
end else
begin
fsj10:='';
end;
Panel2.Visible:=True;
Panel2.Refresh;
cxTabControl2.Enabled:=False;
try
ADOQueryMain.DisableControls;
with ADOQueryMain do
begin
Filtered:=False;
Close;
sql.Clear;
sql.Add('Select AA.* From(');
sql.Add(' select A.*,Cast(ROW_NUMBER() OVER(order by A.ZIID) as int) as RowNum ');
sql.Add(' ,ImageFileTP=(select ImageFile from Image_Info B inner join Image_File C on B.IMID=C.IMID ');
sql.Add(' where B.WBID=A.ZIID and B.IMNO=''ͼƬ'' and B.Valid=''Y'' and C.Valid=''Y'' and C.IFType=''С'' )');
sql.Add(' ,ImageFileNR=(select ImageFile from Image_Info B inner join Image_File C on B.IMID=C.IMID ');
sql.Add(' where B.WBID=A.ZIID and B.IMNO=''<27><><EFBFBD><EFBFBD>'' and B.Valid=''Y'' and C.Valid=''Y'' and C.IFType=''С'' )');
sql.Add(',GS=KC.GGQty');
sql.Add('From(');
sql.Add(' select ZIID,GGQty=sum(GGQty) from ZH_CP_Info_KC where isnull(GGQty,0)>0 and KWID='''+Trim(FKWID)+'''');
sql.Add(' and Valid=''Y'' Group by ZIID) KC');
sql.Add(' inner join ZH_CP_Info A on KC.ZIID=A.ZIID');
sql.Add(' where A.Valid=''Y'' ');
sql.Add(fsj10);
sql.Add(')AA');
sql.Add(' where RowNum>='+inttostr(cxTabControl2.TabIndex*30+1));
sql.Add(' and RowNum<='+inttostr((cxTabControl2.TabIndex+1)*30));
Open;
end;
SCreateCDS20(ADOQueryMain,Order_Main);
SInitCDSData20(ADOQueryMain,Order_Main);
with ADOQueryTemp do
begin
Close;
sql.Clear;
sql.Add(' select AA=count(*) ');
sql.Add(' from ZH_CP_Info A ');
sql.Add(' where Valid=''Y'' ');
sql.Add(' and exists(select ZIID from ZH_CP_Info_KC KC where KC.ZIID=A.ZIID and KWID='''+Trim(FKWID)+'''');
SQL.Add(' and isnull(KC.GGQty,0)>0 and KC.Valid=''Y'' )');
sql.Add(fsj10);
Open;
end;
CPHZ.Text:=Trim(ADOQueryTemp.fieldbyname('AA').AsString);
with ADOQueryTemp do
begin
Close;
sql.Clear;
sql.Add(' select AA=sum(GGQty) ');
sql.Add(' from ZH_CP_Info A ');
sql.Add(' inner join ZH_CP_Info_KC KC on A.ZIID=KC.ZIID');
sql.Add(' where KC.KWID='''+Trim(FKWID)+''' and A.Valid=''Y'' and KC.Valid=''Y'' ');
sql.Add(fsj10);
Open;
end;
GGHZ.Text:=Trim(ADOQueryTemp.fieldbyname('AA').AsString);
finally
ADOQueryMain.EnableControls;
end;
Panel2.Visible:=False;
cxTabControl2.Enabled:=True;
end;
procedure TfrmZHCPViewList.InitForm();
begin
ReadCxGrid('<27>ҹ<EFBFBD><D2B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѯMX',Tv1,<><D5B9><EFBFBD><EFBFBD>Ʒ<EFBFBD><C6B7><EFBFBD><EFBFBD>');
TBRafresh.Click;
end;
procedure TfrmZHCPViewList.TBFindClick(Sender: TObject);
begin
if ADOQueryMain.Active=False then Exit;
SDofilter(ADOQueryMain,SGetFilters(Panel1,1,2));
SCreateCDS20(ADOQueryMain,Order_Main);
SInitCDSData20(ADOQueryMain,Order_Main);
end;
function TfrmZHCPViewList.StrFenHang(FStr:string;var FHStr:String):Boolean;
var
i,j:Integer;
LSStr:String;
begin
Result:=False;
FStr:=Trim(FStr);
FHStr:='';
j:=1;
i:=Pos(' ',FStr);
while i>0 do
begin
if j=1 then
begin
LSStr:=Copy(FStr,1,i-1); //'1234 5678 456'
FHStr:='1:'+LSStr;
end else
begin
LSStr:=Copy(FStr,1,i-1);
if Trim(LSStr)='' then
begin
Fstr:=Copy(Fstr,i+1,Length(Fstr)-i);
end else
FHStr:=FHStr+#13+#10+inttostr(j)+':'+LSStr;
end;
if Trim(LSStr)<>'' then
begin
j:=j+1;
Fstr:=Copy(Fstr,i+1,Length(Fstr)-i);
end;
i:=Pos(' ',FStr);
end;
if j=1 then
begin
FHStr:=FStr;
end else
begin
if Trim(FStr)<>'' then
begin
FHStr:=FHStr+#13+#10+inttostr(j)+':'+FStr;
end;
end;
Result:=True;
end;
procedure TfrmZHCPViewList.TBExportClick(Sender: TObject);
begin
if ADOQueryMain.IsEmpty then Exit;
TcxGridToExcel(Self.Caption,cxGrid1);
end;
procedure TfrmZHCPViewList.TBRafreshClick(Sender: TObject);
begin
IntTab();
InitGrid();
end;
procedure TfrmZHCPViewList.IntTab();
var
JLInt,YeInt,i:Integer;
fsj,fsj10:String;
begin
fsj10:=GetFiltersGY(Panel1,1,2);
if Trim(fsj10)<>'' then
begin
fsj10:=' and '+fsj10;
end else
begin
fsj10:='';
end;
with ADOQueryTemp do
begin
Close;
sql.Clear;
sql.Add('select JLInt=isnull(Count(*),0) ');
sql.Add(' from ZH_CP_Info A ');
sql.Add(' where Valid=''Y'' ');
sql.Add(' and exists(select ZIID from ZH_CP_Info_KC KC where KC.ZIID=A.ZIID and isnull(KC.GGQty,0)>0 ');
sql.Add(' and KWID='''+Trim(FKWID)+''' and KC.Valid=''Y'' )');
sql.Add(fsj10);
Open;
end;
JLInt:=ADOQueryTemp.fieldbyname('JLInt').AsInteger;
YeInt:=JLInt div 30;
YeInt:=YeInt+1;
cxTabControl2.Tabs.Clear;
for i:=1 to YeInt do
begin
fsj:='<27><>'+IntToStr(i)+'ҳ';
cxTabControl2.Tabs.Add(fsj);
end;
YeHZ.Text:=IntToStr(YeInt);
end;
procedure TfrmZHCPViewList.FormShow(Sender: TObject);
begin
InitForm();
end;
procedure TfrmZHCPViewList.CheckBox1Click(Sender: TObject);
begin
InitGrid();
end;
procedure TfrmZHCPViewList.CheckBox2Click(Sender: TObject);
begin
TBRafresh.Click;
end;
procedure TfrmZHCPViewList.ToolButton1Click(Sender: TObject);
begin
if Order_Main.IsEmpty then Exit;
if Trim(Order_Main.fieldbyname('ZIType').AsString)='<27><>Ʒ' then
begin
try
frmZHCPInPut:=TfrmZHCPInPut.Create(Application);
with frmZHCPInPut do
begin
PState:=1;
FMainId:=Trim(Order_Main.fieldbyname('ZIID').AsString);
TBSave.Visible:=False;
if ShowModal=1 then
begin
//InitGrid();
end;
end;
finally
frmZHCPInPut.Free;
end;
end else
if Trim(Order_Main.fieldbyname('ZIType').AsString)='<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>' then
begin
try
frmCPInPutDML:=TfrmCPInPutDML.Create(Application);
with frmCPInPutDML do
begin
PState:=1;
FMainId:=Trim(Order_Main.fieldbyname('ZIID').AsString);
TBSave.Visible:=False;
if ShowModal=1 then
begin
//InitGrid();
end;
end;
finally
frmCPInPutDML.Free;
end;
end;
end;
procedure TfrmZHCPViewList.CustomerNoNameChange(Sender: TObject);
begin
if ADOQueryMain.Active=False then Exit;
SDofilter(ADOQueryMain,SGetFilters(Panel1,1,2));
SCreateCDS20(ADOQueryMain,Order_Main);
SInitCDSData20(ADOQueryMain,Order_Main);
end;
procedure TfrmZHCPViewList.cxTabControl1Change(Sender: TObject);
begin
InitGrid();
end;
procedure TfrmZHCPViewList.ZJStatusChange(Sender: TObject);
begin
TBFind.Click;
end;
procedure TfrmZHCPViewList.Tv1DblClick(Sender: TObject);
begin
ToolButton1.Click;
end;
procedure TfrmZHCPViewList.cxTabControl2Change(Sender: TObject);
begin
InitGrid();
end;
procedure TfrmZHCPViewList.ZIIDKeyPress(Sender: TObject; var Key: Char);
begin
if Key=#13 then
begin
IntTab();
InitGrid();
if Trim(TEdit(Sender).Name)='ZIID' then
begin
ZIID.Text:='';
end;
end;
end;
procedure TfrmZHCPViewList.KWViewClick(Sender: TObject);
begin
try
frmKWView:=TfrmKWView.Create(Application);
with frmKWView do
begin
FZIID:=Trim(Self.Order_Main.fieldbyname('ZIID').AsString);
FFKWID:=Self.FKWID;
if ShowModal=1 then
begin
end;
end;
finally
frmKWView.Free;
end;
end;
end.