351 lines
9.0 KiB
ObjectPascal
351 lines
9.0 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,
|
|||
|
cxTextEdit, cxLookAndFeels, cxLookAndFeelPainters, cxNavigator, dxSkinsCore,
|
|||
|
dxSkinsDefaultPainters, dxDateRanges, dxBarBuiltInMenu, 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;
|
|||
|
FPhxNum: TEdit;
|
|||
|
Label4: TLabel;
|
|||
|
NFPhxNum: TEdit;
|
|||
|
Label5: TLabel;
|
|||
|
ADOQueryCmd: TADOQuery;
|
|||
|
ADOQueryTmp: TADOQuery;
|
|||
|
DS_ysk: TDataSource;
|
|||
|
cdsYsk: TClientDataSet;
|
|||
|
ADOQueryYsk: TADOQuery;
|
|||
|
v1Column1: TcxGridDBColumn;
|
|||
|
v1Column3: TcxGridDBColumn;
|
|||
|
v1Column4: TcxGridDBColumn;
|
|||
|
v1Column5: TcxGridDBColumn;
|
|||
|
v1Column6: TcxGridDBColumn;
|
|||
|
v1Column7: TcxGridDBColumn;
|
|||
|
v1Column9: TcxGridDBColumn;
|
|||
|
CheckBox1: TCheckBox;
|
|||
|
VC_ORDERNO: TcxGridDBColumn;
|
|||
|
v1KPNO: TcxGridDBColumn;
|
|||
|
Panel1: TPanel;
|
|||
|
Label7: TLabel;
|
|||
|
KHConNo: TEdit;
|
|||
|
v1Column8: TcxGridDBColumn;
|
|||
|
v1Column10: TcxGridDBColumn;
|
|||
|
v1Column11: TcxGridDBColumn;
|
|||
|
Label6: TLabel;
|
|||
|
P_CodeName: TEdit;
|
|||
|
Label10: TLabel;
|
|||
|
edtZPID: TEdit;
|
|||
|
Tv1Column1: TcxGridDBColumn;
|
|||
|
GPM_1: TcxGridPopupMenu;
|
|||
|
Label8: TLabel;
|
|||
|
ZPID: TEdit;
|
|||
|
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 KHConNoKeyPress(Sender: TObject; var Key: Char);
|
|||
|
procedure EnddateChange(Sender: TObject);
|
|||
|
procedure begdateChange(Sender: TObject);
|
|||
|
private
|
|||
|
procedure InitYsk();
|
|||
|
procedure Initsk();
|
|||
|
procedure SellRec(mFlag: integer);
|
|||
|
function savedata(mtype: integer): Boolean;
|
|||
|
{ Private declarations }
|
|||
|
public
|
|||
|
fKeyNo: string;
|
|||
|
ffactoryNO, FKPNO: string;
|
|||
|
{ Public declarations }
|
|||
|
end;
|
|||
|
|
|||
|
var
|
|||
|
frmJXFPHx: TfrmJXFPHx;
|
|||
|
|
|||
|
implementation
|
|||
|
|
|||
|
uses
|
|||
|
U_DataLink, U_RTFun, U_ZDYHelp;
|
|||
|
{$R *.dfm}
|
|||
|
|
|||
|
function TfrmJXFPHx.savedata(mtype: integer): Boolean;
|
|||
|
var
|
|||
|
PZNo: string;
|
|||
|
begin
|
|||
|
result := false;
|
|||
|
if GetLSNo(ADOQueryCmd, 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('EXEC P_CW_HX_JXFP');
|
|||
|
SQL.Add(' @ToID = ' + QuotedStr(Trim(cdsYsk.FieldByName('CWID').AsString)));
|
|||
|
SQL.Add(',@FromID = ' + QuotedStr(Trim(fkeyNO)));
|
|||
|
SQL.Add(',@hxMoney = ' + FloatToStr(cdsYsk.FieldByName('curFPhxNum').AsFloat));
|
|||
|
SQL.Add(',@UserID = ' + QuotedStr(Trim(DName)));
|
|||
|
Open;
|
|||
|
|
|||
|
end;
|
|||
|
if AdoqueryCmd.FieldByName('Result').AsInteger <> 0 then
|
|||
|
begin
|
|||
|
Application.MessageBox(PChar(AdoqueryCmd.FieldByName('ShowMsg').AsString), '<27><>ʾ', MB_ICONSTOP);
|
|||
|
end
|
|||
|
else
|
|||
|
begin
|
|||
|
Result := True;
|
|||
|
end;
|
|||
|
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('NFPhxNum').asFloat;
|
|||
|
edit;
|
|||
|
if mFlag = 0 then
|
|||
|
begin
|
|||
|
FieldByName('ssel').value := False;
|
|||
|
FieldByName('curFPhxNum').value := 0;
|
|||
|
end
|
|||
|
else
|
|||
|
begin
|
|||
|
FieldByName('ssel').value := True;
|
|||
|
if (tmpSum - StrToFloatDef(curHsNum.Text, 0)) > 0 then
|
|||
|
FieldByName('curFPhxNum').value := FieldByName('NFPhxNum').asFloat - (tmpSum - StrToFloatDef(curHsNum.Text, 0))
|
|||
|
else
|
|||
|
FieldByName('curFPhxNum').value := FieldByName('NFPhxNum').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 *,NFPhxNum=Money-isnull(FPhxNum,0),curFPhxNum=0.00 ');
|
|||
|
sql.Add('from CW_Money_CR A ');
|
|||
|
sql.Add('where factoryNo=' + quotedstr(trim(ffactoryNo)));
|
|||
|
sql.Add(' and CRType=' + quotedstr(trim('Ӧ<><D3A6><EFBFBD><EFBFBD><EFBFBD>Ǽ<EFBFBD>')));
|
|||
|
sql.Add(' and Money-isnull(FPhxNum,0)<>0');
|
|||
|
sql.Add(' and A.status=''1'' ');
|
|||
|
if trim(KHConNo.Text) <> '' then
|
|||
|
sql.Add(' and KHConNo like ''%' + trim(KHConNo.Text) + '%'' ');
|
|||
|
if trim(P_CodeName.Text) <> '' then
|
|||
|
sql.Add(' and P_CodeName like ''%' + trim(P_CodeName.Text) + '%'' ');
|
|||
|
if trim(edtZPID.Text) <> '' then
|
|||
|
sql.Add(' and ZPID like ''%' + trim(edtZPID.Text) + '%'' ');
|
|||
|
sql.Add(' order by CRTime,CWID ');
|
|||
|
// ShowMessage(SQL.Text);
|
|||
|
Open;
|
|||
|
end;
|
|||
|
SCreateCDS(ADOQueryTmp, cdsYsk);
|
|||
|
SInitCDSData(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 *,NFPhxNum=TaxMoney-isnull(FPhxNum,0) from CW_Invoice A ');
|
|||
|
sql.Add('where IVId=' + quotedstr(trim(fkeyNO)));
|
|||
|
Open;
|
|||
|
end;
|
|||
|
if not ADOQueryTmp.IsEmpty then
|
|||
|
begin
|
|||
|
factoryName.Text := trim(ADOQueryTmp.fieldbyname('factoryName').AsString);
|
|||
|
money.Text := trim(ADOQueryTmp.fieldbyname('TaxMoney').AsString);
|
|||
|
FPhxNum.Text := trim(ADOQueryTmp.fieldbyname('FPhxNum').AsString);
|
|||
|
NFPhxNum.Text := trim(ADOQueryTmp.fieldbyname('NFPhxNum').AsString);
|
|||
|
curHsNum.Text := NFPhxNum.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>');
|
|||
|
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('NFPhxNum').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('curFPhxNum').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('curFPhxNum').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><D3A6>Ӧ<EFBFBD><D3A6><EFBFBD><EFBFBD><EFBFBD><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><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('curFPhxNum').AsFloat) > 0.001) then
|
|||
|
begin
|
|||
|
if not savedata(1) then
|
|||
|
begin
|
|||
|
ADOQueryCmd.Connection.RollbackTrans;
|
|||
|
Exit;
|
|||
|
end;
|
|||
|
end;
|
|||
|
cdsYsk.Next;
|
|||
|
end;
|
|||
|
ADOQueryCmd.Connection.CommitTrans;
|
|||
|
finally
|
|||
|
Initysk();
|
|||
|
initsk();
|
|||
|
end;
|
|||
|
|
|||
|
end;
|
|||
|
|
|||
|
procedure TfrmJXFPHx.KHConNoKeyPress(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;
|
|||
|
|
|||
|
end.
|
|||
|
|