📄 saleunit.pas
字号:
begin
if (qrySaleUnit.State in[dsEdit,dsInsert]) and(cxlcbSaleBookingId.Text<>'') and(edtNumber.Text<>'') then
with qrySaleUnit 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('Memo').AsString :=edtMemo.Text;
Post;
if (qrySaleSubs.State in[dsEdit,dsInsert]) then
qrySaleSubs.Post;
end;
end;
procedure TfrmSaleUnit.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 tbSaleUnit where SaleId='''+tempstr+'''';
ExecSQL;
dsdbEdit.DataSet :=nil;
edtNumber.Text :='';
GetPH(cbWholeBooking);
cxlcbSaleBookingId.Text :='';
end;
with qrySaleSubs do
begin
First;
while not Eof do
Delete;
end;
end;
procedure TfrmSaleUnit.cxlcbSaleBookingIdPropertiesChange(
Sender: TObject);
begin
if qryClient.Locate('ClientId',cxlcbSaleBookingId.Text,[loCaseInsensitive]) then
dsdbEdit.DataSet :=qryClient;
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 TfrmSaleUnit.dxBarLargeButton4Click(Sender: TObject);
begin
Close;
end;
procedure TfrmSaleUnit.qrySaleSubsBeforePost(DataSet: TDataSet);
begin
with qrySaleSubs 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 TfrmSaleUnit.FormDestroy(Sender: TObject);
begin
qryClient.Close;
end;
procedure TfrmSaleUnit.edtOtherMoneyKeyPress(Sender: TObject;
var Key: Char);
begin
if not (key in['0'..'9','.',#8]) then
Key :=#0;
end;
procedure TfrmSaleUnit.qrySaleSubsAfterOpen(DataSet: TDataSet);
begin
//qryBookingSubs.FieldByName('BookCount').OnValidate :=GetTotalMoney;
qrySaleSubs.FieldByName('Discount').OnGetText :=dmData.kkg;
end;
procedure TfrmSaleUnit.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 TfrmSaleUnit.qrySaleSubsAfterPost(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 tbSaleSubs Where SaleId='''+edtNumber.text+'''';
Open;
AVgDiscount :=Fields[0].AsFloat;
AvgBookPrice:=Fields[1].AsFloat;
SumBookCount:=Fields[2].AsFloat;
SumTotalMoney:=Fields[3].AsFloat;
SumRealMoney:=Fields[4].AsFloat;
edtAVgDiscount.Text :=FormatFloat('0',AVgDiscount*100)+'%';
edtAvgBookPrice.Text :=FormatFloat('0.00',AvgBookPrice);
edtSumBookCount.Text :=FloatToStr(SumBookCount);
edtSumTotalMoney.Text :=FormatFloat('0.00',SumTotalMoney);
edtSumRealMoney.Text :=FormatFloat('0.00',SumRealMoney);
edtTaxMoney.Text := FormatFloat('0.00',SumRealMoney/1.13*0.13);
edtNotax.Text :=FormatFloat('0.00',SumRealMoney-strtofloat(edtTaxMoney.Text));
edtzkMoney.Text := FormatFloat('0.00',SumTotalMoney-SumRealMoney);
edtGetMoney.Text :=edtSumRealMoney.Text;
end;
end;
procedure TfrmSaleUnit.bbtnEditClick(Sender: TObject);
var HouseName :string;
begin
if qrySaleSubs.IsEmpty then Abort;
frmSaleEdit :=TfrmSaleEdit.Create(self);
with frmSaleEdit do
begin
try
Tag :=0; //修改标志
qrySaleSubs.Edit;
frmSaleEdit.cxlcbBookId.Text :=qrySaleSubs.fieldbyname('BookId').AsString;
HouseName :=qrySaleSubs.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 TfrmSaleUnit.dxBarLargeButton6Click(Sender: TObject);
begin
if not qrySaleSubs.IsEmpty then
with frReport1,qryClient 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['Discounts'] :=edtAVgDiscount.Text ;
frVariables['AvgPrices'] :=edtAvgBookPrice.Text; ;
frVariables['TaxMoneys'] :=edtTaxMoney.Text ;
frVariables['Bank'] :=fieldbyname('ClientBank').AsString;
frVariables['BondMan'] := fieldbyname('BondMan').AsString;
frVariables['Memo'] :=edtMemo.Text ;
frVariables['UnitName'] :=edtUnitName.Text ;
frVariables['TotalCounts'] :=edtSumBookCount.Text ;
frVariables['DisCountMoneys'] :=edtzkMoney.Text ;
frVariables['NOTaxMoneys'] :=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['GetMoneys'] := edtGetMoney.Text;
frVariables['MoneyCode'] :=fieldbyname('MoneyCode').AsString ;
//frVariables[''] :=dbedtAddress.Text ;
frVariables['SumSort'] :=qrySaleSubs.RecordCount;
frVariables['CreatMan'] :='';
frVariables['PageMemo'] :=strmemo;
ShowReport;
end;
end;
procedure TfrmSaleUnit.qrySaleUnitAfterPost(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;
qrySaleSubs.DisableControls;
Try
qrySaleSubs.First;
for i:=0 to qrySaleSubs.RecordCount-1 do
begin
if not DmData.qryHouseSave.Locate('BookId;HousePos',VarArrayOf([qrySaleSubs.fieldbyname('BookId').AsString,qrySaleSubs.fieldbyname('HousePos').AsString]),[loCaseInsensitive]) then
begin
With DmData.qryHouseSave do
begin
Append;
FieldByName('BookId').AsString :=qrySaleSubs.fieldbyname('BookId').AsString;
FieldByName('BookName').AsString :=qrySaleSubs.fieldbyname('BookName').AsString;
FieldByName('BookEdition').AsString :=qrySaleSubs.fieldbyname('BookEdition').AsString;
FieldByName('BookCount').AsInteger :=0-qrySaleSubs.fieldbyname('BookCount').AsInteger;
FieldByName('BookPrice').AsString :=qrySaleSubs.fieldbyname('BookPrice').AsString;
FieldByName('AddBook').AsInteger :=0-qrySaleSubs.fieldbyname('AddBook').AsInteger;
FieldByName('TotalMoney').AsFloat :=0-qrySaleSubs.fieldbyname('TotalMoney').AsFloat;
FieldByName('HousePos').AsString :=qrySaleSubs.fieldbyname('HousePos').AsString;
//FieldByName('').AsString :=qrySaleSubs.fieldbyname('').AsString;
end;
end else
With DmData.qryHouseSave do
begin
Edit;
FieldByName('BookCount').AsInteger :=FieldByName('BookCount').AsInteger - qrySaleSubs.fieldbyname('BookCount').AsInteger;
FieldByName('AddBook').AsInteger := FieldByName('AddBook').AsInteger- qrySaleSubs.fieldbyname('AddBook').AsInteger;
FieldByName('TotalMoney').AsFloat :=FieldByName('TotalMoney').AsFloat - qrySaleSubs.fieldbyname('TotalMoney').AsFloat;
end;
qrySaleSubs.Next;
end;
if DmData.qryHouseSave.State in [dsInsert,dsEdit] then
DmData.qryHouseSave.Post;
finally
qrySaleSubs.EnableControls;
end;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -