406 lines
10 KiB
ObjectPascal
406 lines
10 KiB
ObjectPascal
unit U_FKHx;
|
||
|
||
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,U_BaseInput, System.ImageList, Vcl.ImgList;
|
||
|
||
type
|
||
TfrmFKHx = class(TFrmBaseInput)
|
||
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;
|
||
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;
|
||
v1PBNote: TcxGridDBColumn;
|
||
v1KPNO: TcxGridDBColumn;
|
||
Panel1: TPanel;
|
||
Label7: TLabel;
|
||
KHConNo: TEdit;
|
||
Label8: TLabel;
|
||
Label9: TLabel;
|
||
begdate: TDateTimePicker;
|
||
Enddate: TDateTimePicker;
|
||
v1Column8: TcxGridDBColumn;
|
||
v1Column10: TcxGridDBColumn;
|
||
v1Column11: TcxGridDBColumn;
|
||
Label6: TLabel;
|
||
P_CodeName: TEdit;
|
||
Label10: TLabel;
|
||
IVNO: TEdit;
|
||
GPM_1: TcxGridPopupMenu;
|
||
Button1: TButton;
|
||
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);
|
||
procedure Button1Click(Sender: TObject);
|
||
private
|
||
procedure InitYsk();
|
||
procedure Initsk();
|
||
procedure SellRec(mFlag: integer);
|
||
function savedata(mtype: integer): Boolean;
|
||
{ Private declarations }
|
||
public
|
||
fKeyNo: string;
|
||
ffactoryNO, FKPNO,FComTaiTou: string;
|
||
{ Public declarations }
|
||
end;
|
||
|
||
var
|
||
frmFKHx: TfrmFKHx;
|
||
|
||
implementation
|
||
|
||
uses
|
||
U_DataLink, U_RTFun, U_ZDYHelp;
|
||
{$R *.dfm}
|
||
|
||
function TfrmFKHx.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_FK');
|
||
SQL.Add(' @ToID = ' + QuotedStr(Trim(cdsYsk.FieldByName('CWID').AsString)));
|
||
SQL.Add(',@FromID = ' + QuotedStr(Trim(fkeyNO)));
|
||
SQL.Add(',@hxMoney = ' + FloatToStr(cdsYsk.FieldByName('curHxNum').AsFloat));
|
||
SQL.Add(',@UserID = ' + QuotedStr(Trim(DName)));
|
||
Open;
|
||
if FieldByName('Result').AsInteger <> 0 then
|
||
begin
|
||
Application.MessageBox(PChar(FieldByName('ShowMsg').AsString), '<27><>ʾ', MB_ICONSTOP);
|
||
end
|
||
else
|
||
begin
|
||
Result := True;
|
||
end;
|
||
end;
|
||
end;
|
||
|
||
procedure TfrmFKHx.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 TfrmFKHx.InitYsk();
|
||
begin
|
||
try
|
||
ADOQueryTmp.DisableControls;
|
||
with ADOQueryTmp do
|
||
begin
|
||
Close;
|
||
SQL.Clear;
|
||
Filtered := False;
|
||
sql.Add('select *,NhxNum=Money-isnull(hxNum,0),curHxNum=0.00 ');
|
||
sql.Add('from CW_Money_CR A ');
|
||
sql.Add('where factoryNo=' + quotedstr(trim(ffactoryNo)));
|
||
sql.Add('and ComTaiTou=' + quotedstr(trim(FComTaiTou)));
|
||
sql.Add(' and CRType=' + quotedstr(trim('Ӧ<><D3A6><EFBFBD><EFBFBD><EFBFBD>Ǽ<EFBFBD>')));
|
||
sql.Add(' and Money-isnull(hxNum,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(IVNO.Text) <> '' then
|
||
sql.Add(' and P_KuanNO like ''%' + trim(IVNO.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,CWID ');
|
||
// ShowMessage(SQL.Text);
|
||
Open;
|
||
end;
|
||
SCreateCDS(ADOQueryTmp, cdsYsk);
|
||
SInitCDSData(ADOQueryTmp, cdsYsk);
|
||
finally
|
||
;
|
||
ADOQueryTmp.EnableControls;
|
||
end;
|
||
end;
|
||
|
||
procedure TfrmFKHx.Initsk();
|
||
begin
|
||
try
|
||
ADOQueryTmp.DisableControls;
|
||
with ADOQueryTmp do
|
||
begin
|
||
Close;
|
||
SQL.Clear;
|
||
Filtered := False;
|
||
sql.Add('select *,NhxNum=Money-isnull(hxNum,0) from CW_Money_CR A ');
|
||
sql.Add('where CWID=' + quotedstr(trim(fkeyNO)));
|
||
Open;
|
||
end;
|
||
if not ADOQueryTmp.IsEmpty then
|
||
begin
|
||
factoryName.Text := trim(ADOQueryTmp.fieldbyname('factoryName').AsString);
|
||
money.Text := trim(ADOQueryTmp.fieldbyname('Money').AsString);
|
||
hxNUm.Text := trim(ADOQueryTmp.fieldbyname('hxNUm').AsString);
|
||
NhxNUm.Text := trim(ADOQueryTmp.fieldbyname('NhxNUm').AsString);
|
||
curHsNum.Text := NhxNUm.Text;
|
||
end;
|
||
finally
|
||
;
|
||
ADOQueryTmp.EnableControls;
|
||
end;
|
||
end;
|
||
|
||
procedure TfrmFKHx.FormDestroy(Sender: TObject);
|
||
begin inherited;
|
||
frmFKHx := nil;
|
||
end;
|
||
|
||
procedure TfrmFKHx.FormCreate(Sender: TObject);
|
||
begin inherited;
|
||
cxGrid1.Align := alclient;
|
||
end;
|
||
|
||
procedure TfrmFKHx.FormShow(Sender: TObject);
|
||
begin inherited;
|
||
ReadCxGrid(self.Caption, Tv1, '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>');
|
||
Enddate.DateTime := SGetServerDate(ADOQueryTmp);
|
||
begdate.DateTime := Enddate.DateTime - 30;
|
||
initsk();
|
||
initysk();
|
||
end;
|
||
|
||
procedure TfrmFKHx.TBCloseClick(Sender: TObject);
|
||
begin
|
||
WriteCxGrid(self.Caption, Tv1, '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>');
|
||
close;
|
||
end;
|
||
|
||
procedure TfrmFKHx.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 TfrmFKHx.Button1Click(Sender: TObject);
|
||
var
|
||
tmpSum: double;
|
||
begin
|
||
tmpSum := 0.0;
|
||
try
|
||
cdsYsk.DisableControls;
|
||
with cdsYsk do
|
||
begin
|
||
first;
|
||
while not eof do
|
||
begin
|
||
|
||
if FieldByName('ssel').AsBoolean then
|
||
begin
|
||
tmpSum := tmpSum + FieldByName('NHxNum').asFloat;
|
||
edit;
|
||
if (tmpSum - StrToFloatDef(curHsNum.Text, 0)) > 0 then
|
||
begin
|
||
FieldByName('curHxNum').value := FieldByName('NHxNum').asFloat - (tmpSum - StrToFloatDef(curHsNum.Text, 0))
|
||
end
|
||
else
|
||
begin
|
||
FieldByName('curHxNum').value := FieldByName('NHxNum').asFloat;
|
||
end;
|
||
|
||
end
|
||
else
|
||
begin
|
||
edit;
|
||
FieldByName('curHxNum').value := 0;
|
||
end;
|
||
|
||
post;
|
||
if FieldByName('ssel').AsBoolean and ((tmpSum - StrToFloatDef(curHsNum.Text, 0)) > 0) then
|
||
break;
|
||
next;
|
||
end;
|
||
end;
|
||
cdsYsk.Locate('SSel', True, []);
|
||
cdsYsk.EnableControls;
|
||
except
|
||
cdsYsk.EnableControls;
|
||
end;
|
||
end;
|
||
|
||
procedure TfrmFKHx.CheckBox1Click(Sender: TObject);
|
||
begin
|
||
if checkBox1.Checked then
|
||
SellRec(1)
|
||
else
|
||
SellRec(0);
|
||
end;
|
||
|
||
procedure TfrmFKHx.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('curHxNum').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 TfrmFKHx.KHConNoKeyPress(Sender: TObject; var Key: Char);
|
||
begin
|
||
if Key = #13 then
|
||
begin
|
||
InitYsk();
|
||
end;
|
||
end;
|
||
|
||
procedure TfrmFKHx.EnddateChange(Sender: TObject);
|
||
begin
|
||
InitYsk();
|
||
end;
|
||
|
||
procedure TfrmFKHx.begdateChange(Sender: TObject);
|
||
begin
|
||
InitYsk();
|
||
end;
|
||
|
||
end.
|
||
|