📄 ar_enter_saleinvoice1_c1.pas
字号:
unit Ar_Enter_SaleInvoice1_C1;
Interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
Base_Qry, StdCtrls, Menus, ExtPrintReport, Db, ActnList, AdODB, Grids,
DBGridEh, ExtCtrls, ComCtrls, ToolWin, jpeg;
Type
TFrm_Ar_Enter_SaleInvoice1_C1 = Class(TFrm_Base_Qry)
btn_ok: TButton;
btn_Cancel: TButton;
AdoQry_MainShipNo: TStringField;
AdoQry_MainInvoiceNo: TStringField;
AdoQry_MainSaleDeptCode: TStringField;
AdoQry_MainDeptName: TStringField;
AdoQry_MainSaleEmployeeCode: TStringField;
AdoQry_MainEmployeeName: TStringField;
AdoQry_MainPayTermName: TStringField;
AdoQry_MainPayTermCode: TStringField;
AdoQry_Maincheckflag: TIntegerField;
AdoQry_MainCustomerCode: TStringField;
AdoQry_MainShipModeCode: TStringField;
AdoQry_MainSaleTypeCode: TStringField;
AdoQry_MainCurrencyCode: TStringField;
AdoQry_MainTaxRate_Percent: TFloatField;
AdoQry_MainTotalNoTaxAmount: TFloatField;
AdoQry_MainTotalTaxAmount: TFloatField;
AdoQry_MainRemArk: TStringField;
AdoQry_MaincurrencyName: TStringField;
AdoQry_Maincurrencyflag: TStringField;
AdoQry_MainDeptflag: TStringField;
AdoQry_MainPayTermflag: TStringField;
AdoQry_MainShipModeName: TStringField;
AdoQry_MainShipModeflag: TStringField;
AdoQry_MainSaleTypeName: TStringField;
AdoQry_MainSaleTypeflag: TStringField;
AdoQry_MainCreateDate: TDateTimeField;
btn_reselect: TButton;
AdoQry_MainSaleEmployeeflag: TStringField;
AdoQry_MaInBillTypeCode: TStringField;
procedure FormDestroy(Sender: TObject);
procedure btn_CancelClick(Sender: TObject);
procedure DBGridEhTitleClick(Column: TColumnEh);
procedure btn_okClick(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure btn_reselectClick(Sender: TObject);
private
Flag:Boolean ;
{ Private declarations }
public
TaxRate : Double;
ShipNoStArt,ShipNoend,CustomerCode,CustomerName:string;
DeptCode,DeptName,SaleTypeCode,SaleTypeName,SaleEmployeeCode,SaleEmployeeName :string;
procedure InitForm(AdOConnection:TAdOConnection;ReadOnly:Boolean);Override;
{ Public declarations }
end;
var
Frm_Ar_Enter_SaleInvoice1_C1: TFrm_Ar_Enter_SaleInvoice1_C1;
implementation
uses Ar_Enter_SaleInvoice1_C, Ar_Enter_SaleInvoice1, Sys_Global;
{$R *.DFM}
{ TFrm_Sal_Enter_ShipOrder_C1 }
procedure TFrm_Ar_Enter_SaleInvoice1_C1.InitForm(
AdOConnection: TAdOConnection; ReadOnly: Boolean);
var sqltext:string;
begin
inherited;
Frm_Sys_Condition:= TFrm_Ar_Enter_SaleInvoice1_C.Create(self);
act_filter.Execute;
Sqltext:='Select checkflag=1, '
+ ' InvOutBill.* , '
+ ' currency.currencyName, '
+ ' InvOutBill.currencyCode+'' ''+currency.currencyName as currencyflag, '
+ ' Dept.DeptName, '
+ ' InvOutBill.DeptCode+'' ''+Dept.DeptName as Deptflag, '
+ ' Employee.EmployeeName, '
+ ' InvOutBill.SaleEmployeeCode+'' ''+Employee.EmployeeName as SaleEmployeeflag, '
+ ' PayTerm.PayTermName,'
+ ' InvOutBill.PayTermCode+'' ''+PayTerm.PayTermName as PayTermflag, '
+ ' ShipMode.ShipModeName, '
+ ' InvOutBill.ShipModeCode+'' ''+ShipMode.ShipModeName as ShipModeflag, '
+ ' SaleType.SaleTypeName, '
+ ' InvOutBill.SaleType+'' ''+SaleType.SaleTypeName as SaleTypeflag '
+' into #ddd '
+ ' From InvOutBill '
+ ' left Join Dept '
+ ' On Dept.DeptCode=InvOutBill.DeptCode '
+ ' left Join Employee '
+ ' On Employee.EmployeeCode=InvOutBill.SaleEmployeeCode '
+ ' left Join PayTerm '
+ ' On PayTerm.PayTermCode=InvOutBill.PayTermCode '
+ ' left join ShipMode '
+ ' on InvOutBill.ShipModeCode=ShipMode.ShipModeCode '
+ ' left join currency '
+ ' on InvOutBill.currencyCode=currency.currencyCode '
+ ' left join SaleType '
+ ' on InvOutBill.SaleType=SaleType.SaleTypeCode '
+' Where ((InvOutBill.InvoiceNo='''') Or(InvOutBill.InvoiceNo is Null))And InvOutBill.CustomerCode='''+CustomerCode+''''
+' And InvOutBill.InvBillNo Between '''+ShipNoStArt+''' and '''+ShipNoend+''' '+' and InvBillWhChCk=1 '
+' and exists (select * from InvOutBillLine where InvOutBillLIne.InvBillId=InvOutBill.InvBillId ) '
+' and ShipType in (0,1) '
+' and BillTypeCode in (''0205'',''0206'') ';
Executesql(AdoQry_Main,sqltext,1);
selectfromsql:='select * from #ddd Order by InvBilldate,InvBillno';
getdata;
Flag:=False;
// DBGridEhTitleClick(DBGridEh.Columns[0] );
end;
procedure TFrm_Ar_Enter_SaleInvoice1_C1.FormDestroy(Sender: TObject);
begin
inherited;
Frm_Ar_Enter_SaleInvoice1_C1:=nil;
end;
procedure TFrm_Ar_Enter_SaleInvoice1_C1.btn_CancelClick(Sender: TObject);
begin
inherited;
Frm_Ar_Enter_SaleInvoice1_C1.Close;
end;
procedure TFrm_Ar_Enter_SaleInvoice1_C1.DBGridEhTitleClick(
Column: TColumnEh);
var
BookMArk:String;
begin
inherited;
If Trim(Column.Title.Caption)<>'标记' Then
Abort;
If AdoQry_Main.RecordCount=0 Then
Abort;
BookMArk:=AdoQry_Main.BookmArk;
If Not Flag Then
begin
AdoQry_Main.First;
While Not AdoQry_Main.Eof Do
begin
AdoQry_Main.Edit;
AdoQry_Main.fieldbyname('checkflag').AsInteger:=1;
AdoQry_Main.Post;
AdoQry_Main.Next;
end;
end
Else
begin
AdoQry_Main.First;
While Not AdoQry_Main.Eof Do
begin
AdoQry_Main.Edit;
AdoQry_Main.fieldbyname('checkflag').AsInteger:=0;
AdoQry_Main.Post;
AdoQry_Main.Next;
end;
end;
AdoQry_Main.BookmArk:=BookMArk;
Flag:=Not Flag;
end;
procedure TFrm_Ar_Enter_SaleInvoice1_C1.btn_okClick(Sender: TObject);
var
I:boolean;
isFirst:boolean;
lastcurrency:string;
lastPayTermCode : String;
LastBillTypeCode : String;
begin
inherited;
I:=False;
if AdoQry_Main.RecordCount=0 then
begin
DispInfo('无销售发货单!',1);
abort;
end;
AdoQry_Main.First;
While (Not AdoQry_Main.Eof) do
begin
If AdoQry_Main.fieldbyname('Checkflag').AsInteger>0 Then
begin
DeptCode:=AdoQry_Main.fieldbyname('DeptCode').asstring;
DeptName:=AdoQry_Main.fieldbyname('DeptName').asstring;
SaleTypeCode:=AdoQry_Main.fieldbyname('SaleType').asstring;
SaleTypeName:=AdoQry_Main.fieldbyname('SaleTypeName').asstring;
SaleEmployeeCode:=AdoQry_Main.fieldbyname('SaleEmployeeCode').asstring;
SaleEmployeeName:=AdoQry_Main.fieldbyname('EmployeeName').asstring;
lastcurrency:=AdoQry_Main.fieldbyname('currencyCode').asstring;
LastBillTypeCode := AdoQry_Main.fieldbyname('BillTypeCode').AsString;
TaxRate := AdoQry_Main.fieldbyname('InvBillTaxRate').AsFloat;
LastPayTermCode := AdoQry_Main.fieldbyname('PayTermCode').AsString;
I:=True;
Break;
end;
AdoQry_Main.Next;
end;
AdoQry_Main.Next;
while not AdoQry_Main.Eof do
begin
If AdoQry_Main.fieldbyname('Checkflag').AsInteger>0 Then
if not( (AdoQry_Main.fieldbyname('currencyCode').asstring=lastcurrency)
and (AdoQry_Main.fieldbyname('PayTermCode').asstring=lastPayTermCode)
and (AdoQry_Main.fieldbyname('InvBillTaxRate').AsFloat=TaxRate)
and (AdoQry_Main.fieldbyname('BillTypeCode').AsString=LastBillTypeCode) ) then
begin
DispInfo('只有单据类型、货币、税率、付款条款相同的发货单才能开在一张发票上!',1);
abort;
end;
AdoQry_Main.Next;
end;
If I=True Then
begin
Frm_Ar_Enter_SaleInvoice1:=TFrm_Ar_Enter_SaleInvoice1.Create(Application);
Frm_Ar_Enter_SaleInvoice1.SetUserParam(Param1,Param2,Param3,Param4,Param5,Param6);
Frm_Ar_Enter_SaleInvoice1.SetSysParam(UserCode,ModuleCode,MenuId,LoginDate);
Frm_Ar_Enter_SaleInvoice1.InitForm(DbConnect,'Add',AdoQry_Main);
Frm_Ar_Enter_SaleInvoice1_C1.Hide;
Frm_Ar_Enter_SaleInvoice1.ShowModal;
if Frm_Ar_Enter_SaleInvoice1<>nil then
Frm_Ar_Enter_SaleInvoice1.Close;
if Frm_Ar_Enter_SaleInvoice1_C1<>nil then
Frm_Ar_Enter_SaleInvoice1_C1.Close;
end
Else
begin
DispInfo('没有选定记录,不能执行新增操作!',3);
Abort;
end;
end;
procedure TFrm_Ar_Enter_SaleInvoice1_C1.FormClose(Sender: TObject;
var Action: TCloseAction);
begin
inherited;
try
Executesql(AdoQry_tmp,'drop table #ddd',1);
except
end;
end;
procedure TFrm_Ar_Enter_SaleInvoice1_C1.btn_reselectClick(Sender: TObject);
var sqltext:string;
begin
inherited;
act_filter.Execute;
try
Executesql(AdoQry_tmp,'drop table #ddd',1);
except
end;
Sqltext:='Select checkflag=1, '
+ ' InvOutBill.* , '
+ ' currency.currencyName, '
+ ' InvOutBill.currencyCode+'' ''+currency.currencyName as currencyflag, '
+ ' Dept.DeptName, '
+ ' InvOutBill.DeptCode+'' ''+Dept.DeptName as Deptflag, '
+ ' Employee.EmployeeName, '
+ ' InvOutBill.SaleEmployeeCode+'' ''+Employee.EmployeeName as SaleEmployeeflag, '
+ ' PayTerm.PayTermName,'
+ ' InvOutBill.PayTermCode+'' ''+PayTerm.PayTermName as PayTermflag, '
+ ' ShipMode.ShipModeName, '
+ ' InvOutBill.ShipModeCode+'' ''+ShipMode.ShipModeName as ShipModeflag, '
+ ' SaleType.SaleTypeName, '
+ ' InvOutBill.SaleType+'' ''+SaleType.SaleTypeName as SaleTypeflag '
+' into #ddd '
+ ' From InvOutBill '
+ ' left Join Dept '
+ ' On Dept.DeptCode=InvOutBill.DeptCode '
+ ' left Join Employee '
+ ' On Employee.EmployeeCode=InvOutBill.SaleEmployeeCode '
+ ' left Join PayTerm '
+ ' On PayTerm.PayTermCode=InvOutBill.PayTermCode '
+ ' left join ShipMode '
+ ' on InvOutBill.ShipModeCode=ShipMode.ShipModeCode '
+ ' left join currency '
+ ' on InvOutBill.currencyCode=currency.currencyCode '
+ ' left join SaleType '
+ ' on InvOutBill.SaleType=SaleType.SaleTypeCode '
+' Where ((InvOutBill.InvoiceNo='''') Or(InvOutBill.InvoiceNo is Null))And InvOutBill.CustomerCode='''+CustomerCode+''''
+' And InvOutBill.InvBillNo Between '''+ShipNoStArt+''' and '''+ShipNoend+''' '+' and InvBillWhChCk=1 '
+' and exists (select * from InvOutBillLine where InvOutBillLIne.InvBillId=InvOutBill.InvBillId ) '
+' and ShipType in (0,1) '
+' and BillTypeCode in (''0205'',''0206'') ';
// showmessage(sqltext);
Executesql(AdoQry_Main,sqltext,1);
selectfromsql:='select * from #ddd Order by InvBillDate,InvoiceNo';
getdata;
Flag:=False;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -