📄 uoutputreimburse.pas
字号:
BillKeyDown(Key, BillBodyData, 15);
end;
procedure TfrmOutPutReimburse.UnitDBEditKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if key=13 then
begin
DBCtrlGrid.SetFocus;
DepotPlaceDBEdit.SetFocus;
end;
BillKeyDown(Key, BillBodyData, 15);
end;
procedure TfrmOutPutReimburse.DepotPlaceDBEditKeyDown(Sender: TObject;
var Key: Word; Shift: TShiftState);
begin
if key=13 then
begin
DBCtrlGrid.SetFocus;
QuantityDBEdit.SetFocus;
end;
BillKeyDown(Key, BillBodyData, 15);
end;
procedure TfrmOutPutReimburse.QuantityDBEditKeyDown(Sender: TObject;
var Key: Word; Shift: TShiftState);
begin
if key=13 then
begin
DBCtrlGrid.SetFocus;
PriceDBEdit.SetFocus;
end;
BillKeyDown(Key, BillBodyData, 15);
end;
procedure TfrmOutPutReimburse.PriceDBEditKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if key=13 then
begin
DBCtrlGrid.SetFocus;
AgioDBEdit.SetFocus;
end;
BillKeyDown(Key, BillBodyData, 15);
end;
procedure TfrmOutPutReimburse.AgioDBEditKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if key=13 then
begin
DBCtrlGrid.SetFocus;
CessDBEdit.SetFocus;
end;
BillKeyDown(Key, BillBodyData, 15);
end;
procedure TfrmOutPutReimburse.CessDBEditKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
BillKeyDown(Key, BillBodyData, 15);
if key=13 then
begin
DBCtrlGrid.SetFocus;
if BillBodyData.Fieldbyname('PartCode').asstring='' then
begin
PartCodeDBEdit.SetFocus;
Exit;
end;
if not isStateEdit then
begin
if BillBodyData.RecordCount>BillBodyData.RecNo then
BillBodyData.Next;
PartCodeDBEdit.SetFocus;
Exit;
end;
BillBodyData.Next;
PartCodeDBEdit.SetFocus;
if BillBodyData.Eof then
begin
BillBodyData.Append;
BillBodyData.Fieldbyname('BillCode').asstring:='新单据';
BillBodyData.Fieldbyname('ID').asinteger:=BillBodyData.RecordCount+1;
BillBodyData.Post;
end;
end;
end;
procedure TfrmOutPutReimburse.QuantityDBEditExit(Sender: TObject);
begin
if not isStateEdit then Exit;
if Trim(QuantityDBEdit.Text)='' then QuantityDBEdit.Text:='0';
if StrTOFloat(QuantityDBEdit.Text)>BillBodyData.Fieldbyname('REIMBURSEQRY').asfloat then
begin
Application.MessageBox('退货数量不可大于收货数量。',Hintinfo,$30);
BillBodyData.Edit;
BillBodyData.FieldByName('Quantity').asfloat:=OldSaleQty;
BillBodyData.Post;
Exit;
end;
OpenData('select PartCode, BillQuantity From StockPart where PartCode='+
#39+Trim(PartCodeDBEdit.Text)+#39+' and DepotCode='+
#39+BillHandData.Fieldbyname('DepotCode').asstring+#39, dmData.sdsPublic);
if dmData.sdsPublic.FieldByName('BillQuantity').asfloat<StrTOFloat(QuantityDBEdit.Text) then
if Application.MessageBox('库存数量不足,是否继续?',Hintinfo,$24)=idNo then
begin
BillBodyData.Edit;
BillBodyData.FieldByName('Quantity').asfloat:=OldSaleQty;
BillBodyData.Post;
end;
GetSum;
end;
procedure TfrmOutPutReimburse.AgioDBEditExit(Sender: TObject);
begin
if isStateEdit then
begin
if Trim(AgioDBEdit.Text)='' then
begin
BillBodyData.Edit;
BillBodyData.Fieldbyname('Agio').asfloat:=0;
end;
if (StrToFloat(AgioDBEdit.Text)>=10)or(StrToFloat(AgioDBEdit.Text)<0) then
begin
Application.MessageBox('折扣率只能是小于“10”和大于“0”之间的数字。',Hintinfo,$30);
BillBodyData.Edit;
BillBodyData.Fieldbyname('Agio').asfloat:=0;
end;
GetSum;
end;
end;
procedure TfrmOutPutReimburse.CessDBEditExit(Sender: TObject);
begin
if isStateEdit then
begin
if Trim(CessDBEdit.Text)='' then
begin
BillBodyData.Edit;
BillBodyData.Fieldbyname('Cess').asfloat:=0;
end;
if StrToFloat(CessDBEdit.Text)<0 then
begin
Application.MessageBox('税率只能是大于“0”的数字。',Hintinfo,$30);
BillBodyData.Edit;
BillBodyData.Fieldbyname('Cess').asfloat:=0;
end;
GetSum;
end;
end;
procedure TfrmOutPutReimburse.BillNextButtonClick(Sender: TObject);
begin
if isStateEdit then Exit;
BillHandData.Next;
if BillHandData.RecNo=1 then
BillHandData.Next;
if BillHandData.RecordCount=BillHandData.RecNo then
begin
if BillHandData.GetNextPacket=0 then
BillInfoLabel.Caption:='已经是移到第一张单据了!'
else
BillInfoLabel.Caption:='';
BillHandData.Next;
end
else
BillInfoLabel.Caption:='';
end;
procedure TfrmOutPutReimburse.BillPriorButtonClick(Sender: TObject);
begin
if isStateEdit then Exit;
BillHandData.Prior;
if BillHandData.RecNo=1 then
BillHandData.Prior;
if BillHandData.Bof then
BillInfoLabel.Caption:='已经是移到最后一张单据了!'
else
BillInfoLabel.Caption:='';
end;
procedure TfrmOutPutReimburse.BillDateDBEditKeyDown(Sender: TObject;
var Key: Word; Shift: TShiftState);
begin
if (ssCtrl in Shift) and (Key=13) then
begin
LBEditButton2Click(Nil);
Exit;
end;
if key=13 then Perform(WM_NEXTDLGCTL,0,0);
end;
procedure TfrmOutPutReimburse.FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if key=27 then Close;
if not isStateEdit then
begin
if key=VK_LEFT then BillNextButtonClick(Sender);
if key=VK_RIGHT then BillPriorButtonClick(Sender);
end;
end;
procedure TfrmOutPutReimburse.DepotDBEditKeyDown(Sender: TObject;
var Key: Word; Shift: TShiftState);
begin
if key=13 then Perform(WM_NEXTDLGCTL,0,0);
end;
procedure TfrmOutPutReimburse.DepotDBEditExit(Sender: TObject);
begin
if not isStateEdit then Exit;
if (Trim(DepotDBEdit.Text)<>'')
and (Trim(DepotDBEdit.Text)<> OldDepotCode) and (isGetList) then
begin
BillHandData.Edit;
TObject(List):=DepotDBEdit.Items.Objects[DepotDBEdit.ItemIndex];
BillHandData.FieldByName('DepotCode').asstring:=List.Code;
end;
end;
procedure TfrmOutPutReimburse.LBEditButton1Click(Sender: TObject);
begin
if not isStateEdit then Exit;
ClientDBEdit.SetFocus;
SelectClient;
if OpposingCode<>'' then
begin
BillHandData.Edit;
BillHandData.FieldByName('ProviderCode').asstring :=OpposingCode;
ClientDBEdit.Text:=OpposingCode;
end;
end;
procedure TfrmOutPutReimburse.LBEditButton3Click(Sender: TObject);
begin
if not isStateEdit then Exit;
OldInPutBillCode:=Trim(OutPutBillCodeDBEdit.Text);
SelectBillType:=2;
SelectBillCode:='';
OpposingCode:=BillHandData.FieldByName('ProviderCode').asstring;
SelectSaleBill;
if SelectBillCode='' then Exit;
if (OldInPutBillCode<>'') and (OldInPutBillCode<>SelectBillCode) then
begin
if Application.MessageBox('您选择了新入库单,要取消以前所做的修改吗?',
Hintinfo,$24)=idNo then Exit
else
begin
with BillBodyData do
begin
CancelUpdates;
First;
while not Eof do
begin
Delete;
end;
Append;
Fieldbyname('BillCode').asstring:='新单据';
Fieldbyname('ID').asInteger:=1;
Post;
BillSum:=0;
PartSum:=0;
BillHandData.Fieldbyname('TOTALSUM').asfloat:=0;
BillHandData.FieldByName('BigSum').asstring:=
SumSmallTOBig(BillHandData.FieldByName('TotalSum').Asfloat);
end;
end;
end
else
begin
BillSum:=BillHandData.Fieldbyname('TOTALSUM').asfloat;
PartSum:=0;
end;
ReimbureseTableName:='PartsOutputBody';
ReimbureseBillNo:=SelectBillCode;
SelectPartCds:=BillBodyData;
SelectPartType:=6;
isReimburese:=False; //默认没有选择商品
FrmReimbureseParts:=TFrmReimbureseParts.Create(Application);
FrmReimbureseParts.ShowModal;
FrmReimbureseParts.Free;
{如果是选择了有退货的商品}
if isReimburese then
begin
Sum:=BillSum;
BillHandData.Edit;
BillHandData.FieldByName('OrderBillNo').asstring :=SelectBillCode;
BillHandData.FieldByName('ProviderCode').asstring:=OpposingCode;
BillHandData.FieldByName('ProviderName').asstring:=OpposingName;
BillHandData.Fieldbyname('TOTALSUM').asfloat:=Sum;
BillHandData.FieldByName('BigSum').asstring:=
SumSmallTOBig(BillHandData.FieldByName('TotalSum').Asfloat);
end;
end;
procedure TfrmOutPutReimburse.ClientDBEditEnter(Sender: TObject);
begin
if isStateEdit then
begin
ClientDBEdit.DataField:='ProviderCode';
OldProviderCode:=Trim(ClientDBEdit.Text);
end;
end;
procedure TfrmOutPutReimburse.ClientDBEditExit(Sender: TObject);
begin
if (Trim(ClientDBEdit.Text)<>'') and (isStateEdit) and
(Trim(ClientDBEdit.Text)<>OldProviderCode) then
begin
OpenData('select Code, ClientName from Clientinfo where Code='+
#39+Trim(ClientDBEdit.Text)+#39, dmData.sdsPublic);
if dmData.sdsPublic.IsEmpty then
begin
Application.MessageBox(PChar('没有编号为“'+Trim(ClientDBEdit.Text)+
'”的客户,请重新输入。'),Hintinfo, $30);
BillHandData.Edit;
BillHandData.FieldByName('ProviderCode').asstring:=OldProviderCode;
ClientDBEdit.SetFocus;
Exit;
end;
BillHandData.Edit;
BillHandData.FieldByName('ProviderName').asstring:=
dmData.sdsPublic.FieldByName('ClientName').asstring
end
else
if (Trim(ClientDBEdit.Text)='') and
(Trim(ClientDBEdit.Text)<>OldProviderCode) then
begin
BillHandData.CancelUpdates;
BillBodyData.CancelUpdates;
BillHandData.Append;
BillBodyData.Append;
BillHandData.Fieldbyname('BillCode').asstring:='新单据';
BillHandData.FieldByName('Operator').asstring:=UserName;
BillHandData.Fieldbyname('BILLDATE').asDateTime:=Date;
BillHandData.FieldByName('isAccept').AsString:='0';
BillHandData.FieldByName('isAuditing').AsString:='0';
BillHandData.Fieldbyname('ACCEPTSUM').asFloat:=0;
BillHandData.Fieldbyname('AGIOSUM').asFloat:=0;
BillHandData.Fieldbyname('ReimburseType').asstring:='2';
BillBodyData.Fieldbyname('BillCode').asstring:='新单据';
BillBodyData.Fieldbyname('ID').asInteger:=1;
BillBodyData.Post;
OldSum:=0;
Sum:=0;
OldCode:='';
BillInfoLabel.Caption:='';
OldProviderCode:='';
end;
ClientDBEdit.DataField:='ProviderName';
end;
procedure TfrmOutPutReimburse.ClientDBEditKeyDown(Sender: TObject;
var Key: Word; Shift: TShiftState);
begin
if (ssCtrl in Shift) and( Key=13) then
begin
LBEditButton1Click(Nil);
Exit;
end;
if key=13 then Perform(WM_NEXTDLGCTL,0,0);
end;
procedure TfrmOutPutReimburse.OutPutBillCodeDBEditKeyDown(Sender: TObject;
var Key: Word; Shift: TShiftState);
begin
if (ssCtrl in Shift) and( Key=13) then
begin
LBEditButton3Click(Nil);
Exit;
end;
if key=13 then Perform(WM_NEXTDLGCTL,0,0);
end;
procedure TfrmOutPutReimburse.EXECUTEMANDBEditKeyDown(Sender: TObject;
var Key: Word; Shift: TShiftState);
begin
if key=13 then PartCodeDBEdit.SetFocus;
end;
procedure TfrmOutPutReimburse.QuantityDBEditEnter(Sender: TObject);
begin
if not isStateEdit then Exit;
if Trim(QuantityDBEdit.Text)='' then QuantityDBEdit.Text:='0';
OldSaleQty:=StrToFloat(QuantityDBEdit.Text);
end;
procedure TfrmOutPutReimburse.EXECUTEMANDBEditEnter(Sender: TObject);
begin
if not isStateEdit then Exit;
SetListData('select Name From Employee', EXECUTEMANDBEdit);
end;
procedure TfrmOutPutReimburse.PriceDBEditExit(Sender: TObject);
begin
if isStateEdit then GetSum;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -