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

531 lines
13 KiB
ObjectPascal
Raw Permalink 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_BpRklist;
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, cxPC;
type
TfrmBpRklist = 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;
Label2: TLabel;
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;
v1P_Code: TcxGridDBColumn;
TBAddSM: TToolButton;
v1INoutNo: TcxGridDBColumn;
Label7: TLabel;
ywy: TEdit;
v1ywy: TcxGridDBColumn;
v1Column1: TcxGridDBColumn;
kuwei: TEdit;
Label8: TLabel;
v1Column3: TcxGridDBColumn;
v1Column4: TcxGridDBColumn;
v1Column2: TcxGridDBColumn;
v1Column5: TcxGridDBColumn;
cxTabControl1: TcxTabControl;
v1editer: TcxGridDBColumn;
v1editTime: TcxGridDBColumn;
v1DefStr6: TcxGridDBColumn;
Label9: TLabel;
factoryName: TEdit;
P_Color: TEdit;
Label10: TLabel;
Tchk: TToolButton;
Tnochk: TToolButton;
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 TBAddSMClick(Sender: TObject);
procedure cxTabControl1Change(Sender: TObject);
procedure TchkClick(Sender: TObject);
procedure TnochkClick(Sender: TObject);
procedure TBFindClick(Sender: TObject);
private
procedure InitGrid();
procedure SetComboBox();
procedure Setstatus();
{ Private declarations }
public
fCKName:string;
canshu1:string;
{ Public declarations }
end;
var
frmBpRklist: TfrmBpRklist;
implementation
uses
U_DataLink,U_Fun10,U_ZDYHelp, U_BpRk, U_BpSmRk;
{$R *.dfm}
procedure TfrmBpRklist.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 TfrmBpRklist.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=''YPRKTYPE''');
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 TfrmBpRklist.InitGrid();
begin
try
with adoqueryTmp do
begin
close;
sql.Clear;
sql.Add('select A.*,B.CYMF,B.CYKZ,B.defnote5,B.defstr6 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 TfrmBpRklist.FormClose(Sender: TObject;
var Action: TCloseAction);
begin
writeCxGrid(self.Caption,Tv1,'<27><>Ʒ<EFBFBD>ֿ<EFBFBD>');
Action:=cafree;
end;
procedure TfrmBpRklist.FormDestroy(Sender: TObject);
begin
frmBpRklist:=nil;
end;
procedure TfrmBpRklist.TBAddClick(Sender: TObject);
begin
frmbpRk:=TfrmbpRk.create(self);
with frmbpRk do
begin
fkeyNo:='';
fType:=0;
fckName:=self.fckName;
if showmodal=1 then
begin
TBRafresh.Click;
self.CDS_Main.Locate('crNo',trim(fkeyNo),[]) ;
end;
free;
end;
end;
procedure TfrmBpRklist.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 TfrmBpRklist.FormShow(Sender: TObject);
begin
readCxGrid(self.Caption,Tv1,'<27><>Ʒ<EFBFBD>ֿ<EFBFBD>');
SetComboBox();
SetStatus();
InitGrid();
end;
procedure TfrmBpRklist.FormCreate(Sender: TObject);
begin
BegDate.Date:=DServerDate-7;
EndDate.Date:=DServerDate;
cxGrid1.Align:=alclient;
end;
procedure TfrmBpRklist.TBCloseClick(Sender: TObject);
begin
close;
end;
procedure TfrmBpRklist.TBEditClick(Sender: TObject);
var
rkNum,ckNum:double;
begin
if CDS_Main.IsEmpty then Exit;
{ if Trim(CDS_Main.fieldbyname('Filler').AsString)<>Trim(DName) then
begin
Application.MessageBox('<27><><EFBFBD>ܲ<EFBFBD><DCB2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˵<EFBFBD><CBB5><EFBFBD><EFBFBD><EFBFBD>!','<27><>ʾ',0);
Exit;
end; }
rkNum:=0.0;
ckNum:=0.0;
with ADOQueryCmd do
begin
Close;
sql.Clear;
sql.Add('select sum(Qty)as Qty from YP_InOut A');
SQL.Add('where A.P_Code='''+Trim(CDS_Main.fieldbyname('P_Code').AsString)+''' ');
SQL.Add('and A.CRNO<'''+Trim(CDS_Main.fieldbyname('CRNO').AsString)+''' ');
sQL.Add('and A.CRFlag=''<27><><EFBFBD><EFBFBD>''');
sQL.Add('and A.valid=''Y''');
Open;
end;
if not ADOQueryCmd.IsEmpty then
begin
rkNum:= ADOQueryCmd.fieldbyname('Qty').AsFloat;
end;
with ADOQueryCmd do
begin
Close;
sql.Clear;
sql.Add('select sum(Qty)as Qty from YP_InOut A');
SQL.Add('where A.P_Code='''+Trim(CDS_Main.fieldbyname('P_Code').AsString)+''' ');
sQL.Add('and A.CRFlag=''<27><><EFBFBD><EFBFBD>''');
sQL.Add('and A.valid=''Y''');
Open;
end;
if not ADOQueryCmd.IsEmpty then
begin
ckNum:= ADOQueryCmd.fieldbyname('Qty').AsFloat;
end;
IF rkNum< ckNum 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;
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;
frmbpRk:=TfrmbpRk.create(self);
with frmbpRk 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 TfrmBpRklist.TBDelClick(Sender: TObject);
var
rkNum,ckNum:double;
begin
if CDS_Main.IsEmpty then Exit;
{ if Trim(CDS_Main.fieldbyname('Filler').AsString)<>Trim(DName) then
begin
Application.MessageBox('<27><><EFBFBD>ܲ<EFBFBD><DCB2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˵<EFBFBD><CBB5><EFBFBD><EFBFBD><EFBFBD>!','<27><>ʾ',0);
Exit;
end; }
rkNum:=0.0;
ckNum:=0.0;
with ADOQueryCmd do
begin
Close;
sql.Clear;
sql.Add('select sum(Qty)as Qty from YP_InOut A');
SQL.Add('where A.P_Code='''+Trim(CDS_Main.fieldbyname('P_Code').AsString)+''' ');
SQL.Add('and A.CRNO<'''+Trim(CDS_Main.fieldbyname('CRNO').AsString)+''' ');
sQL.Add('and A.CRFlag=''<27><><EFBFBD><EFBFBD>''');
sQL.Add('and A.valid=''Y''');
Open;
end;
if not ADOQueryCmd.IsEmpty then
begin
rkNum:= ADOQueryCmd.fieldbyname('Qty').AsFloat;
end;
with ADOQueryCmd do
begin
Close;
sql.Clear;
sql.Add('select sum(Qty)as Qty from YP_InOut A');
SQL.Add('where A.P_Code='''+Trim(CDS_Main.fieldbyname('P_Code').AsString)+''' ');
sQL.Add('and A.CRFlag=''<27><><EFBFBD><EFBFBD>''');
sQL.Add('and A.valid=''Y''');
Open;
end;
if not ADOQueryCmd.IsEmpty then
begin
ckNum:= ADOQueryCmd.fieldbyname('Qty').AsFloat;
end;
IF rkNum< ckNum then
begin
Application.MessageBox('<27>Ѳ<EFBFBD><D1B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݣ<EFBFBD><DDA3><EFBFBD><EFBFBD><EFBFBD>ɾ<EFBFBD><C9BE><EFBFBD><EFBFBD>','<27><>ʾ',0);
exit;
end;
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('and CRID='''+Trim(CDS_Main.fieldbyname('CRID').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)+''' ');
{ sql.Add('delete from YP_InOut ');
SQL.Add('where CRNO='''+Trim(CDS_Main.fieldbyname('CRNO').AsString)+''' ');
SQL.Add('and CRID='''+Trim(CDS_Main.fieldbyname('CRID').AsString)+''' ');
sql.Add('delete from YP_kc ');
SQL.Add('where CRNO='''+Trim(CDS_Main.fieldbyname('CRNO').AsString)+''' '); }
execsql;
end;
TBRafresh.Click;
except
Application.MessageBox('<27><><EFBFBD><EFBFBD>ɾ<EFBFBD><C9BE>ʧ<EFBFBD>ܣ<EFBFBD>','<27><>ʾ<EFBFBD><CABE>Ϣ',0);
end;
end;
procedure TfrmBpRklist.TBRafreshClick(Sender: TObject);
begin
initGrid();
end;
procedure TfrmBpRklist.TBPrintClick(Sender: TObject);
begin
if CDS_Main.IsEmpty then Exit;
TcxGridToExcel(self.Caption,cxgrid1);
end;
procedure TfrmBpRklist.TBExportClick(Sender: TObject);
begin
if CDS_Main.IsEmpty then Exit;
TcxGridToExcel(self.Caption,cxgrid1);
end;
procedure TfrmBpRklist.TBAddSMClick(Sender: TObject);
begin
frmBpSmRk:=TfrmBpSmRk.create(self);
with frmBpSmRk do
begin
fkeyNo:='';
fType:=0;
fckName:=self.fckName;
if showmodal=1 then
begin
TBRafresh.Click;
// self.CDS_Main.Locate('crNo',trim(fkeyNo),[]) ;
end;
free;
end;
end;
procedure TfrmBpRklist.cxTabControl1Change(Sender: TObject);
begin
SetStatus();
initGrid();
end;
procedure TfrmBpRklist.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 TfrmBpRklist.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 TfrmBpRklist.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.