D7YPbaoying/样品仓库/U_BpCklist.pas
DESKTOP-E401PHE\Administrator e505f1d7a5 ~
2025-04-30 16:02:03 +08:00

540 lines
13 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_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;
v1BZType: TcxGridDBColumn;
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure FormDestroy(Sender: TObject);
procedure TBAddClick(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);
procedure CRTypeChange(Sender: TObject);
procedure TBFindClick(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
IF trim(canshu1)=<><D2B5>Ա' 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 A.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.FormShow(Sender: TObject);
begin
readCxGrid(self.Caption,Tv1,'<27><>Ʒ<EFBFBD>ֿ<EFBFBD>');
SetComboBox();
SetStatus();
InitGrid();
IF trim(self.canshu1)=<><D2B5>Ա'then
begin
ywy.text:=trim(Dname);
ywy.Enabled:=false;
end;
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 YF_money_CR A');
SQL.Add('where A.mainID='''+Trim(CDS_Main.fieldbyname('CRNO').AsString)+''' ');
sQL.Add('and A.status>=''1'' ');
Open;
end;
if not ADOQueryCmd.IsEmpty then
begin
Application.MessageBox(<>տ<EFBFBD><D5BF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ˣ<EFBFBD><CBA3><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;
with ADOQueryCmd do
begin
Close;
sql.Clear;
sql.Add('select * from YF_money_CR A');
SQL.Add('where A.mainID='''+Trim(CDS_Main.fieldbyname('CRNO').AsString)+''' ');
sQL.Add('and A.status>=''1'' ');
Open;
end;
if not ADOQueryCmd.IsEmpty then
begin
Application.MessageBox(<>տ<EFBFBD><D5BF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ˣ<EFBFBD><CBA3><EFBFBD><EFBFBD><EFBFBD>ɾ<EFBFBD><C9BE><EFBFBD><EFBFBD>','<27><>ʾ',0);
Exit;
end;
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 inoutNo,custName,TocustName,P_Code,P_CodeName,P_Spec,sum(RollNum) as RollNum,sum(Qty) as Qty from CP_INout A ');
sql.Add('where A.inoutNo='+quotedstr(trim(CDS_Main.fieldbyname('inoutNO').AsString)));
sql.Add('group by inoutNo,custName,TocustName,P_Code,P_CodeName,P_Spec ');
sql.Add('order by inoutNo,custName,TocustName,P_Code ');
open;
end;
try
filepath:=ExtractFilePath(Application.ExeName) + 'report\<5C><><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;
procedure TfrmBpCklist.CRTypeChange(Sender: TObject);
begin
TBFind.Click;
end;
procedure TfrmBpCklist.TBFindClick(Sender: TObject);
begin
if ADOQueryTmp.Active=False then Exit;
SDofilter(ADOQueryTmp,SGetFilters(Panel1,1,2));
SCreateCDS20(ADOQueryTmp,CDS_Main);
SInitCDSData20(ADOQueryTmp,CDS_Main);
end;
end.