📄 ca020.pas
字号:
begin
inherited;
with qyDetail do
begin
FieldByName('OutCode').AsString := qyMaster.FieldByName('OutCode').AsString;
if gdDetail.Columns[2].PickList.Count > 0 then
FieldByName('CardType').AsString := gdDetail.Columns[2].PickList.strings[0]
else
FieldByName('CardType').AsString := Space(3);
FieldByName('Amount').AsFloat := 0;
qyDetailCARDTYPEChange(qyDetailCARDTYPE);
//FieldByName('CardParValue').AsFloat := 0;
FieldByName('CardQuantity').AsFloat := 0;
end;
end;
procedure TfmCA020.qyDetailBeforePost(DataSet: TDataSet);
var
fNotSaleCardQuantity : real;
begin
inherited;
fNotSaleCardQuantity := GetNotSaleCardQuantuty( qyDetail.fieldbyname('cardtype').AsString,qyDetail.fieldbyname('cardparvalue').AsFloat );
if fNotSaleCardQuantity < qyDetail.FieldByName('CardQuantity').AsFloat then
begin
MyWarning('卡库存不足!面值'
+ floattostr( qyDetail.fieldbyname('cardparvalue').AsFloat)
+ '元的' + qyDetail.fieldbyname('cardtype').AsString
+ '只有' + floattostr(fNotSaleCardQuantity)+'张');
abort;
end;
CalcSalesAmount;
if qyDetail.State = dsInsert then
begin
qyDetail.FieldByName('ID').AsFloat := GetSerialID('Pwpt_CardOutDetail_ID');
end;
end;
procedure TfmCA020.CalcSalesAmount;
begin
qyDetail.FieldByName('Amount').AsFloat :=
qyDetail.FieldByName('CardParValue').AsFloat *
qyDetail.FieldByName('CardQuantity').AsFloat;
// qyDetail.FieldByName('Amount').AsFloat:=FormatFloat(qyDetail.FieldByName('Amount').AsFloat,0);
end;
procedure TfmCA020.dsMasterStateChange(Sender: TObject);
begin
inherited;
//ED2.ReadOnly := (qyMaster.State <> dsInsert);
end;
procedure TfmCA020.InsertIntoSaleCardStock(fPayCode: Extended);
begin
with qyTemp do
begin
Close;
SQL.Clear;
SQL.Add('insert into Pwpt_SaleCardStock (CardCode,CardType,CardParValue, ');
SQL.Add('PublishCode,SerialNumber,CardNo,PassWord,EndDate,CheckCode, ');
SQL.Add('CreateMan,CreateDate,bOut,PayCode,SaleCode ) ');
SQL.Add('select CardCode,CardType,CardParValue,PublishCode, ');
SQL.Add('SerialNumber,CardNo,PassWord,EndDate,CheckCode,OutMan,');
SQL.Add('OutDate,''0'',PayCode,SaleCode from Pwpt_CardStock');
SQL.Add(' where PayCode = :PayCode');
ParamByName('PayCode').AsFloat := fPayCode;
ExecSql;
end;
end;
procedure TfmCA020.UpdatePayCite(fPayCode: Extended);
begin
with qyTemp do
begin
Close;
SQL.Clear;
SQL.Add('Update Pwpt_Pay Set bCite =''1'' ');
SQL.Add(' where PayCode = :PayCode');
ParamByName('PayCode').AsFloat := fPayCode;
ExecSql;
end;
end;
procedure TfmCA020.gdDetailEditButtonClick(Sender: TObject);
begin
inherited;
{
if (gdDetail.SelectedField.FieldName = 'ProductID') and
(qyDetail.State in [dsInsert, dsEdit]) then
qyDetail.FieldByName('ProductName').AsString := SearchData(edProductID, DM.qyProduct);
}
end;
procedure TfmCA020.sbOutCodeClick(Sender: TObject);
begin
inherited;
DBEdit8.Text := SearchData(ED1, DM.qySale);
end;
procedure TfmCA020.sbPayCodeClick(Sender: TObject);
begin
inherited;
qyPay.Close;
qyPay.Open;
DBEdit4.Text := SearchData(ED2, qyPay);
end;
procedure TfmCA020.qyDetailAfterInsert(DataSet: TDataSet);
begin
inherited;
gdDetail.SelectedField := qyDetailCardType;
end;
procedure TfmCA020.qyDetailUpdateRecord(DataSet: TDataSet;
UpdateKind: TUpdateKind; var UpdateAction: TUpdateAction);
var
fNewQuantity, fOldQuantity : Extended;
fNewAmount, fOldAmount : Extended;
sNewCardType : string;
fNewCardParValue, fNewCardQuantity : Extended;
begin
inherited;
if ReSortting then Exit;
fNewQuantity := 0;
fOldQuantity := 0;
fNewAmount := 0;
fOldAmount := 0;
fNewCardParValue := 0;
fNewCardQuantity :=0;
case UpdateKind of
ukInsert :
begin
sNewCardType :=DataSet.FieldByName('CardType').NewValue;
fNewCardParValue := DataSet.FieldByName('CardParValue').NewValue;
fNewCardQuantity :=DataSet.FieldByName('CardQuantity').NewValue;
//修改卡资源表未出库状态,填入缴费编号、销售点编号、出库人及日期
UpdateCardStock(sNewCardType,sSaleCode,fNewCardParValue,rPrevPayCode,fNewCardQuantity);
end;
ukModify :
begin
end;
ukDelete :
begin
end;
end;
end;
procedure TfmCA020.GetPrevValue;
begin
inherited;
rPrevPayCode := qyMaster.FieldByName('PayCode').AsFloat ;
sSaleCode := qyMaster.FieldByName('SaleCode').AsString;
end;
procedure TfmCA020.qyMasterUpdateRecord(DataSet: TDataSet;
UpdateKind: TUpdateKind; var UpdateAction: TUpdateAction);
var
fNewAmount, fOldAmount,fPayCode : Extended;
sLastDeliveryDate, sCustomerID : String;
begin
inherited;
fNewAmount := 0;
fOldAmount := 0;
case UpdateKind of
ukInsert :
begin
fPayCode := DataSet.FieldByName('PayCode').NewValue;
InsertIntoSaleCardStock(fPayCode); //复制到销售点卡数据苦
UpdatePayCite(fPayCode); //修改缴费编号,使之不能被引用
end;
ukModify :
begin
end;
ukDelete :
begin
end;
end;
end;
procedure TfmCA020.sbSelectClick(Sender: TObject);
begin
inherited;
//
end;
procedure TfmCA020.qyDetailCARDPARVALUEValidate(Sender: TField);
begin
inherited;
//CalcSalesAmount;
end;
procedure TfmCA020.qyDetailCARDQUANTITYValidate(Sender: TField);
begin
inherited;
//CalcSalesAmount;
end;
procedure TfmCA020.qyDetailAMOUNTValidate(Sender: TField);
begin
inherited;
//CalcSalesAmount;
end;
procedure TfmCA020.qyPayBeforeOpen(DataSet: TDataSet);
begin
inherited;
with qyPay do
begin
ParamByName('SaleCode').AsString :=
qyMaster.FieldByName('SaleCode').AsString;
ParamByName('bCite').AsString := '0';
end;
end;
procedure TfmCA020.qyDetailAfterPost(DataSet: TDataSet);
begin
inherited;
CalcAmount;
end;
procedure TfmCA020.qyDetailAfterDelete(DataSet: TDataSet);
begin
inherited;
CalcAmount;
end;
procedure TfmCA020.ED2Exit(Sender: TObject);
begin
inherited;
DBEdit4.Text := floattostr(GetPayMoney( ED2.Field.AsFloat));
end;
procedure TfmCA020.ED1Exit(Sender: TObject);
begin
inherited;
DBEdit8.Text := GetSaleName(ED1.Text);
end;
procedure TfmCA020.qyMasterAfterPost(DataSet: TDataSet);
begin
inherited;
//sbAppendClick(sbAppend);
end;
procedure TfmCA020.qyDetailCARDTYPEChange(Sender: TField);
begin
inherited;
//面值
gdDetail.Columns[3].PickList.Clear;
with qyTemp do
begin
Close;
SQL.Clear;
SQL.Add('select CardParValue from Pwpt_CardType where bused = ''1'' ');
SQL.Add(' and CardType = :CardType order by CardParValue');
parambyname('CardType').AsString := qyDetail.fieldbyname('CardType').AsString;
Open;
end;
while not qyTemp.Eof do
begin
gdDetail.Columns[3].PickList.Add(qyTemp.fieldbyname('CardParValue').AsString);
qyTemp.Next;
end;
if gdDetail.Columns[3].PickList.Count > 0 then
qyDetail.FieldByName('CardParValue').AsString := gdDetail.Columns[3].PickList.strings[0]
else
qyDetail.FieldByName('CardParValue').AsFloat := 0;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -