📄 backpbunit.pas
字号:
end;
procedure TfrmBackPBUnit.dxBarLargeButton2Click(Sender: TObject);
begin
if (qryBackUnit.State in[dsEdit,dsInsert]) and(cxlcbSaleBookingId.Text<>'') and(edtNumber.Text<>'') then
with qryBackUnit do
begin
FieldByName('SaleId').AsString :=edtNumber.Text;
FieldByName('WholeSaling').AsString :=cbWholeBooking.Text;
FieldByName('SaleDate').AsDateTime :=dtpDateNow.DateTime;
FieldByName('Unitid').AsString :=cxlcbSaleBookingId.Text;
FieldByName('UnitName').AsString :=edtUnitName.Text;
FieldByName('OtherFee').AsString :=edtOtherMoney.Text;
FieldByName('BackType').AsString :='2';
FieldByName('Memo').AsString :=edtMemo.Text;
Post;
if (qryBackSubs.State in[dsEdit,dsInsert]) then
qryBackSubs.Post;
end;
end;
procedure TfrmBackPBUnit.dxBarLargeButton3Click(Sender: TObject);
var tempstr:string;
begin
if edtNumber.Text<>'' then
if Application.MessageBox('真的要删除销售订单吗?',Title,MB_ICONQUESTION+MB_YESNO)=Idyes then
with dmData.qryTemp do
begin
tempstr :=edtNumber.Text;
Close;
SQL.Text :='Delete From tbBackUnit where (SaleId='''+tempstr+''') and (BackType=''2'')';
ExecSQL;
dsdbEdit.DataSet :=nil;
edtNumber.Text :='';
GetPH(cbWholeBooking);
cxlcbSaleBookingId.Text :='';
end;
with qryBackSubs do
begin
First;
while not Eof do
Delete;
end;
end;
procedure TfrmBackPBUnit.cxlcbSaleBookingIdPropertiesChange(
Sender: TObject);
begin
if qryPublish.Locate('ClientId',cxlcbSaleBookingId.Text,[loCaseInsensitive]) then
dsdbEdit.DataSet :=qryPublish;
if (edtNumber.Text ='') or(cxlcbSaleBookingId.Text='') then
begin
dxDBGrid1.Enabled :=False;
bbtnAdd.Enabled :=False;
bbtnDelete.Enabled :=False;
bbtnEdit.Enabled :=False;
end else
begin
dxDBGrid1.Enabled :=True;
bbtnAdd.Enabled :=True;
bbtnDelete.Enabled :=True;
bbtnEdit.Enabled :=True;
end;
end;
procedure TfrmBackPBUnit.dxBarLargeButton4Click(Sender: TObject);
begin
Close;
end;
procedure TfrmBackPBUnit.qryBackSubsBeforePost(DataSet: TDataSet);
begin
with qryBackSubs do
begin
if FieldByName('UnitId').AsString='' then
FieldByName('UnitId').AsString :=cxlcbSaleBookingId.Text;
if FieldByName('SaleId').AsString ='' then
FieldByName('SaleId').AsString :=edtNumber.Text;
end;
end;
procedure TfrmBackPBUnit.FormDestroy(Sender: TObject);
begin
qryPublish.Close;
end;
procedure TfrmBackPBUnit.edtOtherMoneyKeyPress(Sender: TObject;
var Key: Char);
begin
if not (key in['0'..'9','.',#8]) then
Key :=#0;
end;
procedure TfrmBackPBUnit.qryBackSubsAfterOpen(DataSet: TDataSet);
begin
qryBackSubs.FieldByName('Discount').Ongettext :=dmData.kkg;
end;
procedure TfrmBackPBUnit.dxDBGrid1BookIdChange(Sender: TObject);
begin
//qryBookingSubs.FieldByName('BookName').AsString :=qryBookClass.fieldbyname('BookName').AsString;
//qryBookingSubs.FieldByName('BookEdition').AsString :=qryBookClass.fieldbyname('BookEdition').AsString;
//qryBookingSubs.FieldByName('BookPrice').AsString :=qryBookClass.fieldbyname('BookPrice').AsString;
end;
procedure TfrmBackPBUnit.qryBackSubsAfterPost(DataSet: TDataSet);
var AVgDiscount,AvgBookPrice,SumBookCount,SumRealMoney,SumTotalMoney :Real;
begin
with dmData.qryTemp do
begin
Close;
Sql.Text :='Select Avg(Discount),Avg(BookPrice),Sum(BookCount),Sum(TotalMoney),Sum(RealMoney) From tbBackSubs Where SaleId='''+edtNumber.text+''' and BackType=''2''';
Open;
AVgDiscount :=Fields[0].AsFloat;
AvgBookPrice:=Fields[1].AsFloat;
SumBookCount:=Fields[2].AsFloat;
SumTotalMoney:=Fields[3].AsFloat;
SumRealMoney:=Fields[4].AsFloat;
edtAVgDiscount.Text :=Floattostr(AVgDiscount);
edtAvgBookPrice.Text :=FloatToStr(AvgBookPrice);
edtSumBookCount.Text :=FloatToStr(SumBookCount);
edtSumTotalMoney.Text :=FloatToStr(SumTotalMoney);
edtSumRealMoney.Text :=FloatToStr(SumRealMoney);
edtTaxMoney.Text := FormatFloat('0.00',SumRealMoney/1.13*0.13);
edtNotax.Text :=floattostr(SumRealMoney-strtofloat(edtTaxMoney.Text));
edtzkMoney.Text := FloatToStr(SumTotalMoney-SumRealMoney);
end;
end;
procedure TfrmBackPBUnit.bbtnEditClick(Sender: TObject);
var HouseName :string;
begin
if qryBackSubs.IsEmpty then Abort;
frmBackPBEdit :=TfrmBackPBEdit.Create(self);
with frmBackPBEdit do
begin
try
Tag :=0; //修改标志
qryBackSubs.Edit;
frmBackPBEdit.cxlcbBookId.Text :=qryBackSubs.fieldbyname('BookId').AsString;
HouseName :=qryBackSubs.fieldbyname('HousePos').AsString;
if not qryHouse.Active then qryHouse.Open;
//cxcbPosHouse.Text :=HouseName;//qryHouse.Lookup('HouseName',HouseName,'HouseId');
ShowModal;
finally
Free;
end;
end;
end;
procedure TfrmBackPBUnit.dxBarLargeButton6Click(Sender: TObject);
begin
if not qryBackSubs.IsEmpty then
with frReport1,qryPublish do
begin
frVariables['BookingId'] :=edtNumber.Text;
frVariables['WholeBooking'] :=cbWholeBooking.Text ;
frVariables['DATE'] :=dtpDateNow.Date ;
frVariables['publish'] :=sysname ;
frVariables['Address'] :=sysaddress ;
frVariables['telphone'] :=systl ;
frVariables['UnitId'] :=cxlcbSaleBookingId.Text ;
frVariables['Discount'] :=edtAVgDiscount.Text ;
frVariables['AvgPrice'] :=edtAvgBookPrice.Text; ;
frVariables['TaxMoney'] :=edtTaxMoney.Text ;
frVariables['Bank'] :=fieldbyname('ClientBank').AsString;
frVariables['BondMan'] := fieldbyname('BondMan').AsString;
frVariables['Memo'] :=edtMemo.Text ;
frVariables['UnitName'] :=edtUnitName.Text ;
frVariables['TotalCount'] :=edtSumBookCount.Text ;
frVariables['DisCountMoney'] :=edtzkMoney.Text ;
frVariables['NOTaxMoney'] :=edtNotax.Text ;
frVariables['TaxNumber'] :=fieldbyname('ClientTax').AsString;
frVariables['Telphonel'] :=fieldbyname('Telphone').AsString;
frVariables['TotalMoneys'] :=edtSumTotalMoney.Text ;
frVariables['RealMoneys'] :=edtSumRealMoney.Text ;
frVariables['OtherMoney'] := edtOtherMoney.Text;
frVariables['GetMoney'] := edtGetMoney.Text;
frVariables['MoneyCode'] :=fieldbyname('MoneyCode').AsString ;
//frVariables[''] :=dbedtAddress.Text ;
frVariables['SumSort'] :=qryBackSubs.RecordCount;
frVariables['CreatMan'] :='';
frVariables['PageMemo'] :=strmemo;
ShowReport;
end;
end;
procedure TfrmBackPBUnit.qryBackUnitAfterPost(DataSet: TDataSet);
var i:integer ;
begin
if not DmData.qryHouseSave.Active then
begin
DmData.qryHouseSave.Close;
DmData.qryHouseSave.SQL.Text :='Select * From tbHouseSave';
DmData.qryHouseSave.Open;
end;
qryBackSubs.DisableControls;
Try
qryBackSubs.First;
for i:=0 to qryBackSubs.RecordCount-1 do
begin
if not DmData.qryHouseSave.Locate('BookId;HousePos',VarArrayOf([qryBackSubs.fieldbyname('BookId').AsString,qryBackSubs.fieldbyname('HousePos').AsString]),[loCaseInsensitive]) then
begin
With DmData.qryHouseSave do
begin
Append;
FieldByName('BookId').AsString :=qryBackSubs.fieldbyname('BookId').AsString;
FieldByName('BookName').AsString :=qryBackSubs.fieldbyname('BookName').AsString;
FieldByName('BookEdition').AsString :=qryBackSubs.fieldbyname('BookEdition').AsString;
FieldByName('BookCount').AsInteger :=0-qryBackSubs.fieldbyname('BookCount').AsInteger;
FieldByName('BookPrice').AsString :=qryBackSubs.fieldbyname('BookPrice').AsString;
FieldByName('AddBook').AsInteger :=0-qryBackSubs.fieldbyname('AddBook').AsInteger;
FieldByName('TotalMoney').AsFloat :=0-qryBackSubs.fieldbyname('TotalMoney').AsFloat;
FieldByName('HousePos').AsString :=qryBackSubs.fieldbyname('HousePos').AsString;
//FieldByName('').AsString :=qrySaleSubs.fieldbyname('').AsString;
end;
end else
With DmData.qryHouseSave do
begin
Edit;
FieldByName('BookCount').AsInteger :=FieldByName('BookCount').AsInteger - qryBackSubs.fieldbyname('BookCount').AsInteger;
FieldByName('AddBook').AsInteger := FieldByName('AddBook').AsInteger - qryBackSubs.fieldbyname('AddBook').AsInteger;
FieldByName('TotalMoney').AsFloat :=FieldByName('TotalMoney').AsFloat - qryBackSubs.fieldbyname('TotalMoney').AsFloat;
end;
qryBackSubs.Next;
end;
if DmData.qryHouseSave.State in [dsInsert,dsEdit] then
DmData.qryHouseSave.Post;
finally
qryBackSubs.EnableControls;
end;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -