395 lines
10 KiB
ObjectPascal
395 lines
10 KiB
ObjectPascal
![]() |
unit U_JXFPHx;
|
|||
|
|
|||
|
interface
|
|||
|
|
|||
|
uses
|
|||
|
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
|
|||
|
Dialogs, cxStyles, cxCustomData, cxGraphics, cxFilter, cxData,
|
|||
|
cxDataStorage, cxEdit, DB, cxDBData, cxGridLevel, cxClasses, cxControls,
|
|||
|
cxGridCustomView, cxGridCustomTableView, cxGridTableView,
|
|||
|
cxGridDBTableView, cxGrid, StdCtrls, ComCtrls, ToolWin, DBClient, ADODB,
|
|||
|
cxCurrencyEdit, cxCheckBox, ExtCtrls, cxGridCustomPopupMenu,
|
|||
|
cxGridPopupMenu;
|
|||
|
|
|||
|
type
|
|||
|
TfrmJXFPHx = class(TForm)
|
|||
|
ToolBar1: TToolBar;
|
|||
|
TBSave: TToolButton;
|
|||
|
TBClose: TToolButton;
|
|||
|
GroupBox1: TGroupBox;
|
|||
|
Label1: TLabel;
|
|||
|
factoryName: TEdit;
|
|||
|
Label2: TLabel;
|
|||
|
Money: TEdit;
|
|||
|
Label3: TLabel;
|
|||
|
curHsNum: TEdit;
|
|||
|
Tv1: TcxGridDBTableView;
|
|||
|
cxGrid1Level1: TcxGridLevel;
|
|||
|
cxGrid1: TcxGrid;
|
|||
|
hxNum: TEdit;
|
|||
|
Label4: TLabel;
|
|||
|
NhxNum: TEdit;
|
|||
|
Label5: TLabel;
|
|||
|
ADOQueryTmp: TADOQuery;
|
|||
|
DS_ysk: TDataSource;
|
|||
|
cdsYsk: TClientDataSet;
|
|||
|
ADOQueryYsk: TADOQuery;
|
|||
|
v1Column1: TcxGridDBColumn;
|
|||
|
v1Column2: TcxGridDBColumn;
|
|||
|
v1Column3: TcxGridDBColumn;
|
|||
|
v1Column4: TcxGridDBColumn;
|
|||
|
v1Column5: TcxGridDBColumn;
|
|||
|
v1Column6: TcxGridDBColumn;
|
|||
|
v1Column7: TcxGridDBColumn;
|
|||
|
v1Column9: TcxGridDBColumn;
|
|||
|
CheckBox1: TCheckBox;
|
|||
|
v1OrderNO: TcxGridDBColumn;
|
|||
|
v1PBNote: TcxGridDBColumn;
|
|||
|
Panel1: TPanel;
|
|||
|
Label7: TLabel;
|
|||
|
OrderNo: TEdit;
|
|||
|
Label8: TLabel;
|
|||
|
Label9: TLabel;
|
|||
|
begdate: TDateTimePicker;
|
|||
|
Enddate: TDateTimePicker;
|
|||
|
v1Column8: TcxGridDBColumn;
|
|||
|
v1Column10: TcxGridDBColumn;
|
|||
|
v1Column11: TcxGridDBColumn;
|
|||
|
v1Column12: TcxGridDBColumn;
|
|||
|
v1Column13: TcxGridDBColumn;
|
|||
|
v1Column14: TcxGridDBColumn;
|
|||
|
ADOQueryCmd: TADOQuery;
|
|||
|
cxGridPopupMenu2: TcxGridPopupMenu;
|
|||
|
v1Column15: TcxGridDBColumn;
|
|||
|
procedure FormDestroy(Sender: TObject);
|
|||
|
procedure FormCreate(Sender: TObject);
|
|||
|
|
|||
|
procedure FormShow(Sender: TObject);
|
|||
|
procedure TBCloseClick(Sender: TObject);
|
|||
|
procedure v1Column7PropertiesEditValueChanged(Sender: TObject);
|
|||
|
procedure CheckBox1Click(Sender: TObject);
|
|||
|
procedure TBSaveClick(Sender: TObject);
|
|||
|
procedure OrderNoKeyPress(Sender: TObject; var Key: Char);
|
|||
|
procedure EnddateChange(Sender: TObject);
|
|||
|
procedure begdateChange(Sender: TObject);
|
|||
|
procedure Tv1DblClick(Sender: TObject);
|
|||
|
|
|||
|
private
|
|||
|
procedure InitYsk();
|
|||
|
procedure Initsk();
|
|||
|
procedure SellRec(mFlag:integer);
|
|||
|
function savedata():Boolean;
|
|||
|
{ Private declarations }
|
|||
|
public
|
|||
|
fKeyNo:string;
|
|||
|
ffactoryName,FKPNO:string;
|
|||
|
{ Public declarations }
|
|||
|
end;
|
|||
|
|
|||
|
var
|
|||
|
frmJXFPHx: TfrmJXFPHx;
|
|||
|
|
|||
|
implementation
|
|||
|
uses
|
|||
|
U_DataLink,U_Fun10,U_ZDYHelp;
|
|||
|
{$R *.dfm}
|
|||
|
function TfrmJXFPHx.savedata():Boolean;
|
|||
|
var
|
|||
|
PZNo: String;
|
|||
|
begin
|
|||
|
result:=false;
|
|||
|
try
|
|||
|
if GetLSNo(ADOQueryTmp,PZNo,'HX','YF_log',4,1)=False then
|
|||
|
begin
|
|||
|
Application.MessageBox('ȡ<><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʧ<EFBFBD>ܣ<EFBFBD>','<27><>ʾ',0);
|
|||
|
Exit;
|
|||
|
end;
|
|||
|
|
|||
|
with ADOQueryCmd do
|
|||
|
begin
|
|||
|
close;
|
|||
|
sql.Clear;
|
|||
|
sql.Add(' insert into YF_log(AutoID,FromNo,ToNo,Num,Type,Filler)');
|
|||
|
sql.Add('values('+quotedstr(trim(PZNo))
|
|||
|
+','+quotedstr(trim(fkeyNO))
|
|||
|
+','+quotedstr(trim(cdsYsk.FieldByName('YFSID').AsString))
|
|||
|
+','+trim(floattostr(cdsYsk.FieldByName('curHxNum').AsFloat))
|
|||
|
+','+quotedstr(trim('JXFP'))
|
|||
|
+','+quotedstr(trim(DName))+')');
|
|||
|
execsql;
|
|||
|
end;
|
|||
|
|
|||
|
|
|||
|
with AdoqueryCmd do
|
|||
|
begin
|
|||
|
Close;
|
|||
|
SQL.Clear;
|
|||
|
SQL.Add('exec P_Do_HxJXFP @PZNo= ' + QuotedStr(PZNo));
|
|||
|
SQL.Add(',@CZType= ''<27><><EFBFBD><EFBFBD>''');
|
|||
|
execsql;
|
|||
|
end;
|
|||
|
|
|||
|
except
|
|||
|
result:=false;
|
|||
|
end;
|
|||
|
result:=true;
|
|||
|
end;
|
|||
|
|
|||
|
procedure TfrmJXFPHx.SellRec(mFlag:integer);
|
|||
|
var
|
|||
|
tmpSum:double;
|
|||
|
begin
|
|||
|
tmpSum:=0.0;
|
|||
|
try
|
|||
|
cdsYsk.DisableControls;
|
|||
|
with cdsYsk do
|
|||
|
begin
|
|||
|
first;
|
|||
|
while not eof do
|
|||
|
begin
|
|||
|
tmpSum:=tmpSum+FieldByName('NHxNum').asFloat;
|
|||
|
edit;
|
|||
|
if mFlag=0 then
|
|||
|
begin
|
|||
|
FieldByName('ssel').value:=False;
|
|||
|
FieldByName('curHxNum').value:=0;
|
|||
|
end
|
|||
|
else
|
|||
|
begin
|
|||
|
FieldByName('ssel').value:=True;
|
|||
|
if (tmpSum-StrToFloatDef(curHsNum.Text,0))>0 then
|
|||
|
FieldByName('curHxNum').value:=FieldByName('NHxNum').asFloat-(tmpSum-StrToFloatDef(curHsNum.Text,0))
|
|||
|
else
|
|||
|
FieldByName('curHxNum').value:=FieldByName('NHxNum').asFloat;
|
|||
|
end;
|
|||
|
post;
|
|||
|
//////////////
|
|||
|
if (mFlag=1) and ((tmpSum-StrToFloatDef(curHsNum.Text,0))>0) then
|
|||
|
break;
|
|||
|
/////////////////////
|
|||
|
next;
|
|||
|
end;
|
|||
|
end;
|
|||
|
cdsYsk.EnableControls ;
|
|||
|
except
|
|||
|
cdsYsk.EnableControls ;
|
|||
|
end;
|
|||
|
end;
|
|||
|
|
|||
|
procedure TfrmJXFPHx.InitYsk();
|
|||
|
begin
|
|||
|
try
|
|||
|
ADOQueryTmp.DisableControls;
|
|||
|
with ADOQueryTmp do
|
|||
|
begin
|
|||
|
Close;
|
|||
|
SQL.Clear;
|
|||
|
Filtered:=False;
|
|||
|
sql.Add('select *,NhxNum=MXMoney-isnull(FPHX,0),curHxNum=0.00 ');
|
|||
|
sql.Add('from YF_Money_CR A inner join YF_Money_CR_Sub B on A.YFID=B.YFID');
|
|||
|
sql.Add('where A.factoryName='+quotedstr(trim(ffactoryName)));
|
|||
|
sql.Add(' and A.CRType='+quotedstr(trim('Ӧ<><D3A6><EFBFBD><EFBFBD><EFBFBD>Ǽ<EFBFBD>')));
|
|||
|
sql.Add(' and A.status=''1''');
|
|||
|
sql.Add(' and MXMoney-isnull(FPHX,0)<>0');
|
|||
|
if trim(OrderNo.Text)<>'' then
|
|||
|
sql.Add(' and OrderNo like ''%'+trim(OrderNo.Text)+'%'' ');
|
|||
|
sql.Add('and A.CRTime>='''+FormatDateTime('yyyy-MM-dd',begdate.DateTime)+''' ');
|
|||
|
sql.Add(' and CRTime<'''+FormatDateTime('yyyy-MM-dd',Enddate.DateTime+1)+''' ');
|
|||
|
sql.Add(' order by CRTime ');
|
|||
|
Open;
|
|||
|
end;
|
|||
|
SCreateCDS20(ADOQueryTmp,cdsYsk);
|
|||
|
SInitCDSData20(ADOQueryTmp,cdsYsk);
|
|||
|
finally;
|
|||
|
ADOQueryTmp.EnableControls;
|
|||
|
end;
|
|||
|
end;
|
|||
|
|
|||
|
procedure TfrmJXFPHx.Initsk();
|
|||
|
begin
|
|||
|
try
|
|||
|
ADOQueryTmp.DisableControls;
|
|||
|
with ADOQueryTmp do
|
|||
|
begin
|
|||
|
Close;
|
|||
|
SQL.Clear;
|
|||
|
Filtered:=False;
|
|||
|
sql.Add('select * ');
|
|||
|
sql.Add(' ,taxMoney=(select SUM(taxMoney) from FD_Invoicesub X where X.invoiceNo=A.invoiceNo) ');
|
|||
|
sql.Add(' ,NhxNum=(select SUM(taxMoney) from FD_Invoicesub X where X.invoiceNo=A.invoiceNo)-isnull(HZFPHX,0) ');
|
|||
|
sql.Add('from FD_Invoice A where InvoiceNo='+quotedstr(trim(fkeyNO)));
|
|||
|
Open;
|
|||
|
end;
|
|||
|
IF not ADOQueryTmp.IsEmpty then
|
|||
|
begin
|
|||
|
factoryName.Text:=trim(ffactoryName);
|
|||
|
money.Text:=trim(ADOQueryTmp.fieldbyname('taxMoney').AsString);
|
|||
|
hxNUm.Text:=trim(ADOQueryTmp.fieldbyname('HZFPHX').AsString);
|
|||
|
NhxNUm.Text:=trim(ADOQueryTmp.fieldbyname('NhxNUm').AsString);
|
|||
|
curHsNum.Text:=NhxNUm.Text;
|
|||
|
end;
|
|||
|
finally;
|
|||
|
ADOQueryTmp.EnableControls;
|
|||
|
end;
|
|||
|
end;
|
|||
|
|
|||
|
procedure TfrmJXFPHx.FormDestroy(Sender: TObject);
|
|||
|
begin
|
|||
|
frmJXFPHx:=nil;
|
|||
|
end;
|
|||
|
|
|||
|
procedure TfrmJXFPHx.FormCreate(Sender: TObject);
|
|||
|
begin
|
|||
|
cxGrid1.Align:=alclient;
|
|||
|
end;
|
|||
|
|
|||
|
procedure TfrmJXFPHx.FormShow(Sender: TObject);
|
|||
|
begin
|
|||
|
ReadCxGrid(self.Caption,Tv1,'<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>');
|
|||
|
Enddate.DateTime:=SGetServerDate(ADOQueryTmp);
|
|||
|
begdate.DateTime:=Enddate.DateTime-30;
|
|||
|
initsk();
|
|||
|
initysk();
|
|||
|
end;
|
|||
|
|
|||
|
procedure TfrmJXFPHx.TBCloseClick(Sender: TObject);
|
|||
|
begin
|
|||
|
WriteCxGrid(self.Caption,Tv1,'<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>');
|
|||
|
close;
|
|||
|
end;
|
|||
|
|
|||
|
procedure TfrmJXFPHx.v1Column7PropertiesEditValueChanged(Sender: TObject);
|
|||
|
begin
|
|||
|
try
|
|||
|
cdsYsk.DisableControls;
|
|||
|
if TcxCurrencyEdit(sender).EditValue >cdsYsk.FieldByName('NHxNum').AsFloat then
|
|||
|
begin
|
|||
|
Application.MessageBox('<27><><EFBFBD>κ<EFBFBD><CEBA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ܲ<EFBFBD><DCB2><EFBFBD><EFBFBD><EFBFBD>δ<EFBFBD><CEB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!','<27><>ʾ<EFBFBD><CABE>Ϣ',0);
|
|||
|
TcxCurrencyEdit(sender).EditValue:=null;
|
|||
|
with cdsYsk do
|
|||
|
begin
|
|||
|
edit;
|
|||
|
FieldByName('ssel').value:=False;
|
|||
|
FieldByName('curHxNum').value:=0;
|
|||
|
Post;
|
|||
|
end;
|
|||
|
Exit;
|
|||
|
end;
|
|||
|
|
|||
|
with cdsYsk do
|
|||
|
begin
|
|||
|
edit;
|
|||
|
if TcxCurrencyEdit(sender).EditValue=0 then
|
|||
|
FieldByName('ssel').value:=False
|
|||
|
else
|
|||
|
FieldByName('ssel').value:=True;
|
|||
|
FieldByName('curHxNum').value:=TcxCurrencyEdit(sender).EditValue;
|
|||
|
Post;
|
|||
|
end;
|
|||
|
finally
|
|||
|
cdsYsk.EnableControls ;
|
|||
|
end;
|
|||
|
end;
|
|||
|
|
|||
|
procedure TfrmJXFPHx.CheckBox1Click(Sender: TObject);
|
|||
|
begin
|
|||
|
if checkBox1.Checked then SellRec(1)
|
|||
|
else SellRec(0);
|
|||
|
end;
|
|||
|
|
|||
|
procedure TfrmJXFPHx.TBSaveClick(Sender: TObject);
|
|||
|
begin
|
|||
|
if cdsYsk.IsEmpty then
|
|||
|
begin
|
|||
|
Application.MessageBox('û<>ж<EFBFBD>Ӧ<EFBFBD>ĸ<EFBFBD><C4B8>տ<EFBFBD><D5BF><EFBFBD>¼!','<27><>ʾ<EFBFBD><CABE>Ϣ',0);
|
|||
|
Exit;
|
|||
|
end;
|
|||
|
if Abs((tv1.DataController.Summary.FooterSummaryValues[3])) <= 0.000001 then
|
|||
|
begin
|
|||
|
Application.MessageBox('δѡ<CEB4><D1A1><EFBFBD><EFBFBD>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ӧ<EFBFBD><D3A6><EFBFBD><EFBFBD><EFBFBD><EFBFBD>¼!','<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ',0);
|
|||
|
Exit;
|
|||
|
end;
|
|||
|
if (tv1.DataController.Summary.FooterSummaryValues[3]-StrToFloatDef(curHsNum.Text,0))>0.0 then
|
|||
|
begin
|
|||
|
Application.MessageBox('<27><><EFBFBD>κ<EFBFBD><CEBA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڵ<EFBFBD>ǰ<EFBFBD>ɺ<EFBFBD><C9BA><EFBFBD><EFBFBD><EFBFBD>Ʊ<EFBFBD>ܽ<EFBFBD><DCBD><EFBFBD>!','<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ',0);
|
|||
|
Exit;
|
|||
|
end;
|
|||
|
|
|||
|
ADOQueryCmd.Connection.BeginTrans;
|
|||
|
try
|
|||
|
cdsYsk.First ;
|
|||
|
while not cdsYsk.Eof do
|
|||
|
begin
|
|||
|
if cdsYsk.FieldByName('ssel').AsBoolean and (Abs(cdsYsk.FieldByName('curHxNum').AsFloat) > 0.001) then
|
|||
|
begin
|
|||
|
if not savedata() then
|
|||
|
begin
|
|||
|
ADOQueryCmd.Connection.RollbackTrans;
|
|||
|
Exit;
|
|||
|
end;
|
|||
|
end;
|
|||
|
cdsYsk.Next ;
|
|||
|
end;
|
|||
|
ADOQueryCmd.Connection.CommitTrans;
|
|||
|
finally
|
|||
|
Initysk();
|
|||
|
initsk();
|
|||
|
end;
|
|||
|
|
|||
|
end;
|
|||
|
|
|||
|
procedure TfrmJXFPHx.OrderNoKeyPress(Sender: TObject; var Key: Char);
|
|||
|
begin
|
|||
|
if key=#13 then
|
|||
|
begin
|
|||
|
InitYsk();
|
|||
|
end;
|
|||
|
end;
|
|||
|
|
|||
|
procedure TfrmJXFPHx.EnddateChange(Sender: TObject);
|
|||
|
begin
|
|||
|
InitYsk();
|
|||
|
end;
|
|||
|
|
|||
|
procedure TfrmJXFPHx.begdateChange(Sender: TObject);
|
|||
|
begin
|
|||
|
InitYsk();
|
|||
|
end;
|
|||
|
|
|||
|
procedure TfrmJXFPHx.Tv1DblClick(Sender: TObject);
|
|||
|
var
|
|||
|
MZZHX,McurHxNum,MYXHX,MDDHX,MDHX:Double;
|
|||
|
begin
|
|||
|
McurHxNum:=StrToFloatDef(curHsNum.Text,0); //<2F>ɺ<EFBFBD><C9BA><EFBFBD><EFBFBD>ܽ<EFBFBD><DCBD><EFBFBD>
|
|||
|
MYXHX:=tv1.DataController.Summary.FooterSummaryValues[3]; //<2F><>ѡ<EFBFBD><D1A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
MDHX:=cdsYsk.FieldByName('curHxNum').asFloat; //<><D7BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
MDDHX:=cdsYsk.FieldByName('NhxNum').asFloat; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
|||
|
if MDHX>0 then
|
|||
|
begin
|
|||
|
cdsYsk.edit;
|
|||
|
cdsYsk.FieldByName('curHxNum').value:=0;
|
|||
|
cdsYsk.FieldByName('Ssel').value:=False;
|
|||
|
cdsYsk.Post;
|
|||
|
end
|
|||
|
else
|
|||
|
begin
|
|||
|
if McurHxNum-MYXHX<=0 then Exit;
|
|||
|
MZZHX:= McurHxNum-MYXHX-MDDHX;
|
|||
|
cdsYsk.edit;
|
|||
|
if MZZHX>=0 then
|
|||
|
begin
|
|||
|
cdsYsk.FieldByName('curHxNum').value:=MDDHX;
|
|||
|
cdsYsk.FieldByName('Ssel').value:=True;
|
|||
|
end
|
|||
|
else
|
|||
|
begin
|
|||
|
cdsYsk.FieldByName('curHxNum').value:=McurHxNum-MYXHX;
|
|||
|
cdsYsk.FieldByName('Ssel').value:=True;
|
|||
|
end;
|
|||
|
cdsYsk.Post;
|
|||
|
end;
|
|||
|
end;
|
|||
|
|
|||
|
end.
|