D7wmleixiaofu/应收应付/样品仓库/U_BpCklist.pas

497 lines
12 KiB
ObjectPascal
Raw Normal View History

2025-04-30 16:04:42 +08:00
unit U_BpCklist;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ComCtrls, ToolWin, StdCtrls, ExtCtrls, cxStyles, cxCustomData,
cxGraphics, cxFilter, cxData, cxDataStorage, cxEdit, DB, cxDBData,
cxButtonEdit, cxDropDownEdit, cxGridLevel, cxGridCustomTableView,
cxGridTableView, cxGridDBTableView, cxClasses, cxControls,
cxGridCustomView, cxGrid, DBClient, ADODB, cxGridCustomPopupMenu,
cxGridPopupMenu, RM_Common, RM_Class, RM_e_Xls, RM_GridReport, RM_System,
RM_Dataset, cxPC;
type
TfrmBpCklist = class(TForm)
ToolBar1: TToolBar;
TBRafresh: TToolButton;
TBFind: TToolButton;
TBAdd: TToolButton;
TBEdit: TToolButton;
TBDel: TToolButton;
TBExport: TToolButton;
TBPrint: TToolButton;
TBClose: TToolButton;
Panel1: TPanel;
Label1: TLabel;
BegDate: TDateTimePicker;
EndDate: TDateTimePicker;
cxGrid1: TcxGrid;
Tv1: TcxGridDBTableView;
v1P_CodeName: TcxGridDBColumn;
v1P_SPEC: TcxGridDBColumn;
v1P_MF: TcxGridDBColumn;
v1P_KZ: TcxGridDBColumn;
v1RollNum: TcxGridDBColumn;
v1Qty: TcxGridDBColumn;
v1QtyUnit: TcxGridDBColumn;
v1Note: TcxGridDBColumn;
cxGrid1Level1: TcxGridLevel;
v1CRType: TcxGridDBColumn;
v1CRTime: TcxGridDBColumn;
v1Filler: TcxGridDBColumn;
v1FillTime: TcxGridDBColumn;
Label3: TLabel;
Label4: TLabel;
P_CodeName: TEdit;
P_Code: TEdit;
CRType: TComboBox;
Label5: TLabel;
ADOQueryCmd: TADOQuery;
ADOQueryTmp: TADOQuery;
DataSource1: TDataSource;
CDS_Main: TClientDataSet;
cxGridPopupMenu1: TcxGridPopupMenu;
v1CPTYPE: TcxGridDBColumn;
ckName: TComboBox;
Label6: TLabel;
v1P_Color: TcxGridDBColumn;
ADOPrint: TADOQuery;
RMDB_MD: TRMDBDataSet;
RMGridReport1: TRMGridReport;
RMXLSExport1: TRMXLSExport;
v1P_Code: TcxGridDBColumn;
v1inoutNO: TcxGridDBColumn;
TBsmADD: TToolButton;
ywy: TEdit;
Label7: TLabel;
v1custName: TcxGridDBColumn;
TbPrint1: TToolButton;
v1Column1: TcxGridDBColumn;
kuwei: TEdit;
Label8: TLabel;
v1Column3: TcxGridDBColumn;
v1Column4: TcxGridDBColumn;
v1Column5: TcxGridDBColumn;
v1defnote5: TcxGridDBColumn;
v1Column2: TcxGridDBColumn;
cxTabControl1: TcxTabControl;
v1Column6: TcxGridDBColumn;
v1Column7: TcxGridDBColumn;
P_Color: TEdit;
Label9: TLabel;
custName: TEdit;
Label2: TLabel;
Tchk: TToolButton;
Tnochk: TToolButton;
v1Column8: TcxGridDBColumn;
v1Column9: TcxGridDBColumn;
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure FormDestroy(Sender: TObject);
procedure TBAddClick(Sender: TObject);
procedure P_CodeNameChange(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure TBCloseClick(Sender: TObject);
procedure TBEditClick(Sender: TObject);
procedure TBDelClick(Sender: TObject);
procedure TBRafreshClick(Sender: TObject);
procedure TBPrintClick(Sender: TObject);
procedure TBExportClick(Sender: TObject);
procedure TBsmADDClick(Sender: TObject);
procedure TbPrint1Click(Sender: TObject);
procedure cxTabControl1Change(Sender: TObject);
procedure TchkClick(Sender: TObject);
procedure TnochkClick(Sender: TObject);
private
procedure InitGrid();
procedure SetComboBox();
procedure SetStatus();
{ Private declarations }
public
fCKName:string;
canshu1:string;
{ Public declarations }
end;
var
frmBpCklist: TfrmBpCklist;
implementation
uses
U_DataLink,U_Fun10,U_ZDYHelp, U_BpCk, U_BpSmCk;
{$R *.dfm}
procedure TfrmBpCklist.SetStatus();
begin
TBedit.Visible:=false;
Tbdel.Visible:=false;
Tchk.Visible:=false;
Tnochk.Visible:=false;
IF trim(canshu1)='' then
begin
case cxTabControl1.TabIndex of
0:begin
TBedit.Visible:=true;
Tbdel.Visible:=true;
end;
1:begin
// tbcdel.Visible:=true;
end;
end;
end
else
begin
case cxTabControl1.TabIndex of
0:begin
TBedit.Visible:=true;
Tbdel.Visible:=true;
Tchk.Visible:=true;
end;
1:begin
Tnochk.Visible:=true;
end;
end;
end;
end;
procedure TfrmBpCklist.SetComboBox();
begin
ckName.Items.Clear;
with adoQueryTmp do
begin
close;
sql.Clear;
sql.Add('select * from KH_ZDY where Type=''YPCK'' ');
if trim(fCKName)<>'' then
sql.Add('and zdyName='+quotedstr(trim(fCKName)));
open;
while not eof do
begin
ckName.Items.Add(trim(fieldbyname('zdyName').AsString));
next;
end;
end;
if ckName.Items.Count>0 then ckName.ItemIndex:=0;
CRType.Items.Clear;
CRType.Items.Add('');
with adoQueryTmp do
begin
close;
sql.Clear;
sql.Add('select * from KH_ZDY where Type=''YPCKTYPE''');
if trim(fCKName)<>'' then
sql.Add('and note='+quotedstr(trim(fCKName)));
open;
while not eof do
begin
CRType.Items.Add(trim(fieldbyname('zdyName').AsString));
next;
end;
end;
if CRType.Items.Count>0 then CRType.ItemIndex:=0;
end;
procedure TfrmBpCklist.InitGrid();
begin
try
with adoqueryTmp do
begin
close;
sql.Clear;
sql.Add('select A.*,B.CYMF,B.CYKZ,B.defnote5 from YP_InOut A');
sql.Add('left join CP_YDang B on B.CYNO=A.P_Code');
sql.Add('where CRTime>='''+formatdateTime('yyyy-MM-dd',begdate.Date)+''' ');
sql.Add('and CRTime<'''+formatdateTime('yyyy-MM-dd',enddate.Date+1)+''' ');
sql.Add('and CRFlag=''<27><><EFBFBD><EFBFBD>'' ');
sql.Add('and valid=''Y'' ');
if trim(FckName)<>'' then
sql.Add('and ckName='+quotedstr(trim(FckName)) );
if cxTabControl1.TabIndex<2 then
sql.Add('and A.status='''+inttostr(cxTabControl1.TabIndex)+''' ');
open;
end;
SCreateCDS20(adoqueryTmp,CDS_Main);
SInitCDSData20(adoqueryTmp,CDS_Main);
finally
end;
end;
procedure TfrmBpCklist.FormClose(Sender: TObject;
var Action: TCloseAction);
begin
writeCxGrid(self.Caption,Tv1,'<27><>Ʒ<EFBFBD>ֿ<EFBFBD>');
Action:=cafree;
end;
procedure TfrmBpCklist.FormDestroy(Sender: TObject);
begin
frmBpCklist:=nil;
end;
procedure TfrmBpCklist.TBAddClick(Sender: TObject);
begin
frmbpck:=Tfrmbpck.create(self);
with frmbpck do
begin
fkeyNo:='';
fType:=0;
fckName:=self.fckName;
IF trim(self.canshu1)=<><D2B5>Ա'then
begin
ywy.text:=trim(Dname);
ywy.Enabled:=false;
end;
if showmodal=1 then
begin
TBRafresh.Click;
self.CDS_Main.Locate('crNo',trim(fkeyNo),[]) ;
end;
free;
end;
end;
procedure TfrmBpCklist.P_CodeNameChange(Sender: TObject);
begin
if ADOQueryTmp.Active=False then Exit;
SDofilter(ADOQueryTmp,SGetFilters(Panel1,1,2));
SCreateCDS20(ADOQueryTmp,CDS_Main);
SInitCDSData20(ADOQueryTmp,CDS_Main);
end;
procedure TfrmBpCklist.FormShow(Sender: TObject);
begin
readCxGrid(self.Caption,Tv1,'<27><>Ʒ<EFBFBD>ֿ<EFBFBD>');
SetComboBox();
SetStatus();
InitGrid();
end;
procedure TfrmBpCklist.FormCreate(Sender: TObject);
begin
BegDate.Date:=DServerDate-7;
EndDate.Date:=DServerDate;
cxGrid1.Align:=alclient;
end;
procedure TfrmBpCklist.TBCloseClick(Sender: TObject);
begin
close;
end;
procedure TfrmBpCklist.TBEditClick(Sender: TObject);
begin
if cds_main.IsEmpty then exit;
{ with ADOQueryCmd do
begin
Close;
sql.Clear;
sql.Add('select * from BP_InOut A');
SQL.Add('where A.kcid='''+Trim(CDS_Main.fieldbyname('kcid').AsString)+''' ');
sQL.Add('and A.CRFlag=''<27><><EFBFBD><EFBFBD>''');
Open;
end;
if not ADOQueryCmd.IsEmpty then
begin
Application.MessageBox('<27>Ѳ<EFBFBD><D1B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݣ<EFBFBD><DDA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>޸ģ<DEB8>','<27><>ʾ',0);
Exit;
end; }
frmbpck:=Tfrmbpck.create(self);
with frmbpck do
begin
fkeyNo:=self.cds_main.fieldbyname('CRNO').AsString;
fType:=1;
fckName:=self.fckName;
if showmodal=1 then
begin
TBRafresh.Click;
self.CDS_Main.Locate('crNo',trim(fkeyNo),[]) ;
end;
free;
end;
end;
procedure TfrmBpCklist.TBDelClick(Sender: TObject);
var
YFID,CRID:string;
begin
if CDS_Main.IsEmpty then Exit;
if Application.MessageBox(<><C8B7>Ҫɾ<D2AA><C9BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>','<27><>ʾ',32+4)<>IDYES then Exit;
try
with ADOQueryCmd do
begin
Close;
sql.Clear;
sql.Add('update YP_InOut SET valid=''N'' ');
sql.Add(',editer='+quotedstr(trim(DName)));
sql.Add(',edittime=getdate()');
SQL.Add('where CRNO='''+Trim(CDS_Main.fieldbyname('CRNO').AsString)+''' ');
sql.Add('delete from YF_money_CR ');
SQL.Add('where mainID='''+Trim(CDS_Main.fieldbyname('CRNO').AsString)+''' ');
SQL.Add('and subID='''+Trim(CDS_Main.fieldbyname('CRID').AsString)+''' ');
execsql;
end;
TBRafresh.Click;
except
Application.MessageBox('<27><><EFBFBD><EFBFBD>ɾ<EFBFBD><C9BE>ʧ<EFBFBD>ܣ<EFBFBD>','<27><>ʾ<EFBFBD><CABE>Ϣ',0);
end;
end;
procedure TfrmBpCklist.TBRafreshClick(Sender: TObject);
begin
initGrid();
end;
procedure TfrmBpCklist.TBPrintClick(Sender: TObject);
var
filepath:string;
begin
if CDS_Main.IsEmpty then exit;
with AdoPrint do
begin
close;
sql.Clear;
sql.Add('exec P_Print_cpCkMd ');
sql.Add('@inoutNo='+quotedstr(trim(CDS_Main.fieldbyname('inoutNO').AsString)));
sql.Add(',@flag='+quotedstr(trim('')));
open;
end;
try
filepath:=ExtractFilePath(Application.ExeName) + 'report\<5C><><EFBFBD><EFBFBD><EFBFBD>뵥.rmf';
if not FileExists(Pchar(filepath)) then
begin
application.MessageBox(pchar('<27>ļ<EFBFBD>['+filepath+']<5D><><EFBFBD><EFBFBD><EFBFBD>ڣ<EFBFBD>'),'<27><>ʾ<EFBFBD><CABE>Ϣ',MB_IConError);
exit;
end;
RMVariables['dtxz'] :=FormatDateTime('yyyy-mm-dd',date());
RMVariables['zdr'] :=trim(DName);
RMVariables['Filler'] :=trim(CDS_Main.fieldbyname('Filler').AsString);
RMGridReport1.LoadFromFile(filepath);
RMGridReport1.ShowReport;
finally
end;
end;
procedure TfrmBpCklist.TBExportClick(Sender: TObject);
begin
if CDS_Main.IsEmpty then Exit;
TcxGridToExcel(self.Caption,cxgrid1);
end;
procedure TfrmBpCklist.TBsmADDClick(Sender: TObject);
begin
frmbpsmck:=Tfrmbpsmck.create(self);
with frmbpsmck do
begin
fkeyNo:='';
fType:=0;
fckName:=self.fckName;
if showmodal=1 then
begin
TBRafresh.Click;
// self.CDS_Main.Locate('crNo',trim(fkeyNo),[]) ;
end;
TBRafresh.Click;
free;
end;
end;
procedure TfrmBpCklist.TbPrint1Click(Sender: TObject);
var
filepath:string;
begin
if CDS_Main.IsEmpty then exit;
with AdoPrint do
begin
close;
sql.Clear;
sql.Add(' select A.*,B.CYMF,B.CYKZ,B.defnote5, ');
sql.Add(' FilesOther=(select top 1 X1.FilesOther from TP_File X1,CP_YDang X2 where X1.WBID=X2.CYID and X2.CYNo=A.P_Code and X1.TFType=''<27><>Ʒ'') ');
sql.Add(' from YP_INout A ');
sql.Add(' left join CP_YDang B on B.CYNO=A.P_Code');
sql.Add(' where A.inoutNo='+quotedstr(trim(CDS_Main.fieldbyname('inoutNO').AsString)));
open;
end;
try
filepath:=ExtractFilePath(Application.ExeName) + 'report\<5C><>Ʒ<EFBFBD><C6B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.rmf';
if not FileExists(Pchar(filepath)) then
begin
application.MessageBox(pchar('<27>ļ<EFBFBD>['+filepath+']<5D><><EFBFBD><EFBFBD><EFBFBD>ڣ<EFBFBD>'),'<27><>ʾ<EFBFBD><CABE>Ϣ',MB_IConError);
exit;
end;
RMVariables['dtxz'] :=FormatDateTime('yyyy-mm-dd',date());
RMVariables['zdr'] :=trim(DName);
RMVariables['Filler'] :=trim(CDS_Main.fieldbyname('Filler').AsString);
RMGridReport1.LoadFromFile(filepath);
RMGridReport1.ShowReport;
finally
end;
end;
procedure TfrmBpCklist.cxTabControl1Change(Sender: TObject);
begin
SetStatus();
initGrid();
end;
procedure TfrmBpCklist.TchkClick(Sender: TObject);
begin
if CDS_Main.IsEmpty then exit;
try
with ADOQueryCmd do
begin
close;
sql.Clear;
sql.Add('update YP_InOut SET status=''1'' ');
sql.Add('where CRNO='+quotedstr(trim(CDS_Main.fieldbyname('CRNO').AsString)));
execsql;
end;
application.MessageBox('<27><><EFBFBD>˳ɹ<CBB3><C9B9><EFBFBD>','<27><>ʾ<EFBFBD><CABE>Ϣ');
TBRafresh.Click;
except
application.MessageBox('<27><><EFBFBD><EFBFBD>ʧ<EFBFBD>ܣ<EFBFBD>','<27><>ʾ<EFBFBD><CABE>Ϣ',0);
end;
end;
procedure TfrmBpCklist.TnochkClick(Sender: TObject);
begin
if CDS_Main.IsEmpty then exit;
try
with ADOQueryCmd do
begin
close;
sql.Clear;
sql.Add('update YP_InOut SET status=''0'' ');
sql.Add('where CRNO='+quotedstr(trim(CDS_Main.fieldbyname('CRNO').AsString)));
execsql;
end;
application.MessageBox('<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˳ɹ<CBB3><C9B9><EFBFBD>','<27><>ʾ<EFBFBD><CABE>Ϣ');
TBRafresh.Click;
except
application.MessageBox('<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʧ<EFBFBD>ܣ<EFBFBD>','<27><>ʾ<EFBFBD><CABE>Ϣ',0);
end;
end;
end.