usalebill.pas
来自「天涯進銷存系統」· PAS 代码 · 共 1,221 行 · 第 1/3 页
PAS
1,221 行
BillBodyData);
if BillHandData.FieldByName('isAuditing').AsString='1' then
Auditing.Visible:=True
else
Auditing.Visible:=False;
if BillHandData.FieldByName('isExecute').AsString='1' then
InPubImg.Visible:=True
else
InPubImg.Visible:=False;
end;
procedure TfrmSaleBill.Action1Execute(Sender: TObject);
begin
SetView;
ClientDBEdit.SetFocus;
ClientDBEdit.DataField:='ClientCode';
BillBodyData.ReadOnly:=False;
BillHandData.ReadOnly:=False;
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('OutPutType').asstring:='1';
BillBodyData.Fieldbyname('BillCode').asstring:='新单据';
BillBodyData.Fieldbyname('ID').asInteger:=1;
BillBodyData.Post;
OldSum:=0;
Sum:=0;
OldCode:='';
isEdit:=False;
isStateEdit:=True;
DepotDBEditEnter(Nil);
BillInfoLabel.Caption:='';
OldClientCode:='';
end;
procedure TfrmSaleBill.Action2Execute(Sender: TObject);
begin
if BillHandData.IsEmpty then
begin
Application.MessageBox('没有可修改的销售单。',Hintinfo,$30);
Exit;
end;
if BillHandData.FieldByName('isAuditing').asstring='1' then
begin
Application.MessageBox('此销售单已审核,不可修改。',Hintinfo,$30);
Exit;
end;
SetView;
ClientDBEdit.SetFocus;
ClientDBEdit.DataField:='ClientCode';
try
BillHandData.ReadOnly:=False;
BillBodyData.ReadOnly:=False;
BillHandData.Edit;
BillBodyData.Edit;
except
SetView;
Application.MessageBox('修改数据错误。',Hintinfo,$10);
ClientDBEdit.DataField:='ClientName';
Exit;
end;
Sum:=BillHandData.FieldByName('TOTALSUM').AsFloat;
isEdit:=True;
isStateEdit:=True;
DepotDBEditEnter(Nil);
end;
procedure TfrmSaleBill.Action3Execute(Sender: TObject);
var
BillCode: string;
begin
if BillHandData.IsEmpty then
begin
Application.MessageBox('没有可删除的销售单。',Hintinfo,$30);
Exit;
end;
if BillHandData.FieldByName('isAuditing').asstring='1' then
begin
Application.MessageBox('此销售单已审核,不可删除。',Hintinfo,$30);
Exit;
end;
if Application.MessageBox('确定在要删除当前销售单吗?',Hintinfo,$24)=idYes then
begin
BillHandData.ReadOnly:=False;
BillCode:=BillHandData.Fieldbyname('BillCode').asstring;
try
BillHandData.Delete;
BillHandData.ApplyUpdates(-1);
DeleteBillBody('Delete From PartsOutPutBody where BillCode='+#39+BillCode+#39);
OpenData('select * from PartsOutPutHand Order by BillCode DESC',
BillHandData);
except
Application.MessageBox('删除数据不成功。',Errorinfo,$10);
end;
BillHandData.ReadOnly:=True;
end;
end;
procedure TfrmSaleBill.Action4Execute(Sender: TObject);
begin
PrintView('RepSaleBill.frf', Report);
end;
procedure TfrmSaleBill.Action5Execute(Sender: TObject);
begin
if BillHandData.IsEmpty then
begin
Application.MessageBox('没有可审核的单据。',Hintinfo,$30);
Exit;
end;
if BillHandData.FieldByName('isAuditing').AsString='1' then
begin
Application.MessageBox('此单据已审核。',Hintinfo,$30);
Exit;
end;
if Application.MessageBox('确定要审核此销售单吗?',Hintinfo,$24)=idYes then
SetAuditing;
end;
procedure TfrmSaleBill.Action6Execute(Sender: TObject);
begin
if BillHandData.IsEmpty then
begin
Application.MessageBox('没有可出库的单据。',Hintinfo,$30);
Exit;
end;
if BillHandData.FieldByName('isExecute').AsString='1' then
begin
Application.MessageBox('此单据已出库。',Hintinfo,$30);
Exit;
end;
if BillHandData.FieldByName('isAuditing').AsString<>'1' then
begin
Application.MessageBox('请先审核单据后再出库。',Hintinfo,$30);
Exit;
end;
PickUpType:=1;
PickUpGoodsNo:=BillHandData.Fieldbyname('BillCode').asstring;
PickUpGoodsUnitCode:=BillHandData.Fieldbyname('ClientCode').asstring;
PickUpGoodsUnit:=BillHandData.Fieldbyname('ClientName').asstring;
PickUpDepotCode:=BillHandData.Fieldbyname('DepotCode').asstring;
PickUpDepotName:=BillHandData.Fieldbyname('DepotName').asstring;
PickHandTableName:='PartsOutPutHand';
PickBodyTableName:='PartsOutPutBody';
FrmPartOutPutStock:=TFrmPartOutPutStock.Create(Application);
FrmPartOutPutStock.ShowModal;
FrmPartOutPutStock.Free;
OpenData('Select * from PartsOutPutHand where BillCode='+#39+PickUpGoodsNo+#39+
' Order by BillCode DESC',BillHandData);
end;
procedure TfrmSaleBill.Action8Execute(Sender: TObject);
var
sql: string;
begin
SelectBillCode:='';
SelectBillType:=0;
OpposingCode:=BillHandData.Fieldbyname('ClientCode').asstring;
SelectSaleBill;
if SelectBillCode<>'' then
begin
sql:='Select * from PartsOutPutHand where'+
' BillCode='+#39+SelectBillCode+#39+
'Order by BillCode DESC';
OpenData(sql,BillHandData);
end;
end;
procedure TfrmSaleBill.Action9Execute(Sender: TObject);
begin
OpenData('Select * from PartsOutPutHand where OutPutType='''+'1'''+' Order by BillCode DESC',BillHandData);
BillInfoLabel.Caption:='';
end;
procedure TfrmSaleBill.Action10Execute(Sender: TObject);
var
i:integer;
begin
i:=0;
if (BillBodyData.RecordCount=1)and
(PartCodeDBEdit.Text='') then
begin
Application.MessageBox(NotPartsOfSave, Hintinfo,$30);
Exit;
end;
BillBodyData.Edit;
BillBodyData.Post;
DBCtrlGrid.SetFocus;
if BillHandData.FieldByName('ClientCode').AsString='' then
begin
Application.MessageBox('客户不能为空,请输入。',Hintinfo,$30);
ClientDBEdit.SetFocus;
Exit;
end;
if BillHandData.FieldByName('DepotCode').AsString='' then
begin
Application.MessageBox('仓库不能为空,请输入。',Hintinfo,$30);
DepotDBEdit.SetFocus;
Exit;
end;
if BillHandData.FieldByName('BillDate').AsString='' then
begin
Application.MessageBox('销售日期不能为空,请输入。',Hintinfo,$30);
BillDateDBEdit.SetFocus;
Exit;
end;
if not isEdit then
begin
BillHandData.Edit;
BillHandData.Fieldbyname('BILLCode').asstring:=ComDepotCode+'-'+'XS'+'-'+
GetBillID('22', BillHandData.Fieldbyname('BILLDATE').asstring);
end;
with BillBodyData do
begin
First;
while not Eof do
begin
if Fieldbyname('PartCode').asstring<>'' then
begin
Edit;
Fieldbyname('ID').asinteger:=i+1;
Fieldbyname('ReimburseQry').asfloat:=0;
Fieldbyname('OutPutQry').asfloat:=0;
Fieldbyname('BILLCode').asstring:=BillHandData.Fieldbyname('BILLCode').asstring;
Fieldbyname('COSTPRICE').asfloat:=GetCostprice(Fieldbyname('PartCode').asstring);
i:=i+1;
Next;
end
else
begin
BillHandData.Edit;
BillHandData.FieldByName('TOTALSUM').asfloat:=
BillHandData.FieldByName('TOTALSUM').asfloat-
Fieldbyname('TOTALSUM').AsFloat;
Sum:=BillHandData.FieldByName('TOTALSUM').asfloat;
Delete;
if BillBodyData.RecNo=BillBodyData.RecordCount then
Next;
end;
end;
end;
if BillBodyData.IsEmpty then
begin
Application.MessageBox(NotPartsOfSave, Hintinfo,$30);
Exit;
end;
Try
BillBodyData.ApplyUpdates(-1);
BillHandData.ApplyUpDates(-1);
Application.MessageBox(DataSaveOfSucceed,Hintinfo,$30);
except
Application.MessageBox(DataSaveOfFail, Errorinfo,$10);
BillBodyData.CancelUpdates;
BillHandData.CancelUpdates;
end;
BillBodyData.First;
Sum:=0;
isStateEdit:=False;
SetView;
BillBodyData.ReadOnly:=True;
BillHandData.ReadOnly:=True;
Action5Execute(Sender);
end;
procedure TfrmSaleBill.Action11Execute(Sender: TObject);
begin
DBCtrlGrid.SetFocus;
BillBodyData.CancelUpdates;
BillHandData.CancelUpdates;
BillBodyData.First;
Sum:=0;
isStateEdit:=False;
SetView;
BillBodyData.ReadOnly:=True;
BillHandData.ReadOnly:=True;
end;
procedure TfrmSaleBill.ClientDBEditExit(Sender: TObject);
begin
if (Trim(ClientDBEdit.Text)<>'') and (isStateEdit) and
(Trim(ClientDBEdit.Text)<>OldClientCode) 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('ClientCode').asstring:=OldClientCode;
ClientDBEdit.SetFocus;
Exit;
end;
BillHandData.Edit;
BillHandData.FieldByName('ClientName').asstring:=
dmData.sdsPublic.FieldByName('ClientName').asstring;
end
else
if (Trim(ClientDBEdit.Text)='') and
(Trim(ClientDBEdit.Text)<>OldClientCode) then
begin
BillHandData.Edit;
BillHandData.FieldByName('ClientName').asstring:='';
end;
ClientDBEdit.DataField:='ClientName';
end;
procedure TfrmSaleBill.ClientDBEditEnter(Sender: TObject);
begin
if isStateEdit then
begin
ClientDBEdit.DataField:='ClientCode';
OldClientCode:=Trim(ClientDBEdit.Text);
end;
end;
procedure TfrmSaleBill.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 TfrmSaleBill.DBCtrlGridKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
key:=0;
end;
procedure TfrmSaleBill.PartCodeDBEditDblClick(Sender: TObject);
begin
if not isStateEdit then Exit;
if BillBodyData.Fieldbyname('OrderID').asstring<>'' then
begin
Application.MessageBox('来自订货单的商品,不可修改。',Hintinfo, $30);
Exit;
end;
BillSum:=BillHandData.Fieldbyname('TOTALSUM').asfloat;
PartSum:=BillBodyData.Fieldbyname('TOTALSUM').asfloat;
OpposingCode:=BillHandData.Fieldbyname('ClientCode').asstring;
SelectPartType:=5;
SelectPartCds:=BillBodyData;
SelectParts;
OldCode:=Trim(PartCodeDBEdit.Text);
Sum:=BillSum;
BillHandData.Edit;
BillHandData.Fieldbyname('TOTALSUM').asfloat:=Sum;
BillHandData.FieldByName('BigSum').asstring:=
SumSmallTOBig(BillHandData.FieldByName('TotalSum').Asfloat);
end;
procedure TfrmSaleBill.LBSpeecButton3Click(Sender: TObject);
var
BillCode: string;
begin
if BillHandData.IsEmpty then
begin
Application.MessageBox('没有可删除的采购订货单。',Hintinfo,$30);
Exit;
end;
if BillHandData.FieldByName('isAuditing').asstring='1' then
begin
Application.MessageBox('此采购订货单已审核,不可删除。',Hintinfo,$30);
Exit;
end;
if Application.MessageBox('确定在要删除当前订货单吗?',Hintinfo,$24)=idYes then
begin
BillHandData.ReadOnly:=False;
BillCode:=BillHandData.Fieldbyname('BillCode').asstring;
try
BillHandData.Delete;
BillHandData.ApplyUpdates(-1);
DeleteBillBody('Delete From OrderBillBody where BillCode='+#39+BillCode+#39);
OpenData('select * from OrderBillHand Order by BillCode DESC',
BillHandData);
except
Application.MessageBox('删除数据不成功。',Errorinfo,$10);
end;
BillHandData.ReadOnly:=True;
end;
end;
procedure TfrmSaleBill.LBEditButton1Click(Sender: TObject);
begin
if not isStateEdit then Exit;
ClientDBEdit.SetFocus;
SelectClient;
if OpposingCode<>'' then
begin
BillHandData.Edit;
BillHandData.FieldByName('ClientCode').asstring :=OpposingCode;
ClientDBEdit.Text:=OpposingCode;
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?