⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ar_enter_saleinvoice3.pas

📁 一个MRPII系统源代码版本
💻 PAS
📖 第 1 页 / 共 4 页
字号:
            AdoQry_Body.fieldbyname('NoTaxPrice').AsString:=AdoQry_tmp.fieldbyname('InvBillNoTaxPrice').AsString;
            AdoQry_Body.fieldbyname('NoTaxAmount').AsString:=AdoQry_tmp.fieldbyname('InvBillNoTaxAmount').AsString;
            AdoQry_Body.fieldbyname('DiSCountRate').AsString:=AdoQry_tmp.fieldbyname('DiSCountRate').AsString;
            AdoQry_Body.fieldbyname('DiSCountAmount').AsString:=AdoQry_tmp.fieldbyname('DiSCountAmount').AsString;
            AdoQry_Body.Post;
            AdoQry_tmp.Next;
          end;
      end;
      AdoQuery.Next;
    end;
    DataSource.DataSet:=AdoQry_Body;
  end
  else
  begin
    If FormStatus='Edit' then
    begin
      Pnl_Title.Caption := IIfString(Param1='0','普通发票','出口发票');
      Pnl_Title.Refresh;
      Frm_Ar_Enter_SaleInvoice3.Caption := IIfString(Param1='0','普通发票','出口发票');
      CurrentFormStatus:='Edit';
      With AdoQry_Head do
      begin
        Edt_CustomerCode.Text:=fieldbyname('CustomerCode').AsString;
        Edt_CustomerName.Caption:=fieldbyname('CustomerName').AsString;
        Edt_CreateEmployeeCode.Text:=fieldbyname('CreateEmployeeCode').AsString;
        Edt_CreateEmployeeName.Text := fieldbyname('CreaterName').AsString;
        ExecuteSql(AdoQry_tmp,'select EmployeeName from Employee where EmployeeCode='+QuotedStr(Edt_CreateEmployeeCode.Text),0);
        Edt_CreateEmployeeName.Text := AdoQry_tmp.fieldbyname('EmployeeName').AsString;
        MEdt_CreateDate.Text:=Formatdatetime('yyyy.mm.dd',fieldbyname('BillDate').asdatetime);
        MEdt_InAccountDate.Text := FormatDateTime('yyyy.mm.dd',fieldbyname('InAccountDate').AsDateTime);
        Edt_CurrencyCode.Text:=fieldbyname('CurrencyCode').AsString;
        edt_SaleTypeCode.Text:=fieldbyname('SaleTypeCode').asstring;
        edt_SaleTypeName.Text:=fieldbyname('SaleTypeName').asstring;
        edt_DeptCode.Text:=fieldbyname('SaleDeptCode').asstring;
        edt_DeptName.Text:=fieldbyname('DeptName').asstring;
        Edt_ExportTypeCode.Text := fieldbyname('ExportTradeTypeCode').AsString;
        Edt_ExportTypeName.Text := fieldbyname('ExportTradeTypeName').AsString;        
        edt_SaleEmployeeCode.Text:=fieldbyname('SaleEmployeeCode').asstring;
        edt_SaleEmployeeName.Text:=fieldbyname('SaleEmployeeName').asstring;    
        Edt_SaleTermCode.Text:=fieldbyname('SaleTermCode').AsString;
        Edt_RemArk.Text:=fieldbyname('RemArk').AsString;
        Edt_TotalTaxAmount.Text:=FloatToStr(-fieldbyname('TotalTaxAmount').AsFloat);
        Edt_TotalNoTaxAmount.Text := FloatToStr(-fieldbyname('TotalNoTaxAmount').AsFloat);
        Edt_TotalTax.Text := FloatTostr(-fieldbyname('TotalTax').AsFloat);
        Edit1.Text :=fieldbyname('CurrencyName').AsString;
        Edit2.Text:=fieldbyname('CustomerName').AsString;
        Edit3.Text:=fieldbyname('PayTermName').AsString;
        Edt_ExchangeRate.Text:=fieldbyname('ExchangeRate').AsString;
        Edt_TaxRate.Text := fieldbyname('TaxRate').AsString;
        Edt_InvoiceNo.Text:=fieldbyname('InvoiceNo').AsString;

        Lab_CurrencyName.Caption:=fieldbyname('CurrencyName').AsString;
        Lab_SaleTermName.Caption:=fieldbyname('PayTermName').AsString;

        SqlText:=' Select  Sa_SaleInvoiceLine.InvoiceNo,Sa_SaleInvoiceLine.InvBillId, '
                +'   InvOutBill.InvBillNo as ShipNo,Sa_SaleInvoiceLine.InvBillLineNo as ShipLineNo,   '
                +'   InvOutBillLine.ItemCode, '
                +'   InvOutBillLine.InvBillQty as ShipQty , InvOutBillLine.InvBillPrice as TaxPrice, InvOutBillLine.InvBillPriceC as TaxPriceC,'
                +'   InvOutBillLine.InvBillAmount as TaxAmount, InvOutBillLine.InvBillAmountC as TaxAmountC,InvOutBillLine.InvBillNoTaxPrice as NoTaxPrice, '
                +'   InvOutBillLine.InvBillNoTaxAmount as  NoTaxAmount,InvOutBillLine.DiSCountRate, '
                +'   InvOutBillLine.DiSCountAmount , '
                +'   Item.ItemName,Uom.UomName '
                +'   From Sa_SaleInvoiceLine '
                +'    Join InvOutBillLine on Sa_SaleInvoiceLine.InvBillId=InvOutBillLine.InvBillId '
                +'                   and Sa_SaleInvoiceLine.InvBillLineNo=InvOutBillLine.InvBillLineNo '
                +'    Join InvOutBill on InvOutBillLine.InvBillId = InvOutBill.InvBillId '
                +'   left Join  Item '
                +'     On InvOutBillLine.ItemCode=Item.ItemCode '
                +'   left Join Uom '
                +'     On Item.UomCode=Uom.UomCode '
                    +'     where Sa_SaleInvoiceLine.InvoiceNo= '''+fieldbyname('InvoiceNo').AsString+''' ' ;

       AdoQry_Body.Close;
       AdoQry_Body.SQL.Text:=SqlText;
       AdoQry_Body.Open;
      end
    end
      else
      begin
        If FormStatus='Query' then
          begin
            Pnl_Title.Caption := IIfString(Param1='0','普通发票','出口发票');
            Pnl_Title.Refresh;
            Frm_Ar_Enter_SaleInvoice3.Caption := IIfString(Param1='0','普通发票','出口发票');
            CurrentFormStatus:='Query';
            With AdoQry_Head do
            begin
              Edt_CustomerCode.Text:=fieldbyname('CustomerCode').AsString;
              Edt_CustomerName.Caption:=fieldbyname('CustomerName').AsString;
              Edt_CreateEmployeeCode.Text:=fieldbyname('Sal_EmployeeCode').AsString;
              Edt_CreateEmployeeName.Text := fieldbyname('CreaterName').AsString;
              ExecuteSql(AdoQry_tmp,'select EmployeeName from Employee where EmployeeCode='+QuotedStr(Edt_CreateEmployeeCode.Text),0);
              Edt_CreateEmployeeName.Text := AdoQry_tmp.fieldbyname('EmployeeName').AsString;
              MEdt_CreateDate.Text:=Formatdatetime('yyyy.mm.dd',fieldbyname('BillDate').asdatetime);
              MEdt_InAccountDate.Text:=Formatdatetime('yyyy.mm.dd',fieldbyname('InAccountDate').asdatetime);
              Edt_CurrencyCode.Text:=fieldbyname('CurrencyCode').AsString;
              edt_SaleTypeCode.Text:=fieldbyname('SaleType').asstring;
              edt_SaleTypeName.Text:=fieldbyname('SaleTypeName').asstring;
              edt_DeptCode.Text:=fieldbyname('DeptCode').asstring;
              edt_DeptName.Text:=fieldbyname('DeptName').asstring;
              Edt_ExportTypeCode.Text := fieldbyname('ExportTradeTypeCode').AsString;
              Edt_ExportTypeName.Text := fieldbyname('ExportTradeTypeName').AsString;        
              edt_SaleEmployeeCode.Text:=fieldbyname('SaleEmployeeCode').asstring;
              edt_SaleEmployeeName.Text:=fieldbyname('SaleEmployeeName').asstring;    
              Edt_SaleTermCode.Text:=fieldbyname('SaleTermCode').AsString;
              Edt_RemArk.Text:=fieldbyname('RemArk').AsString;
              Edt_TotalTaxAmount.Text:=FloatToStr(-fieldbyname('TotalTaxAmount').AsFloat);
              Edt_TotalNoTaxAmount.Text := FloatToStr(-fieldbyname('TotalNoTaxAmount').AsFloat);
              Edt_TotalTax.Text := FloatToStr(-fieldbyname('TotalTax').AsFloat);
              Edit1.Text :=fieldbyname('CurrencyName').AsString;
              Edit2.Text:=fieldbyname('CustomerName').AsString;
              Edit3.Text:=fieldbyname('PayTermName').AsString;
              Edt_ExchangeRate.Text:=fieldbyname('ExchangeRate').AsString;
              Edt_TaxRate.Text := fieldbyname('TaxRate').AsString;
              Edt_InvoiceNo.Text:=fieldbyname('InvoiceNo').AsString;

              Lab_CurrencyName.Caption:=fieldbyname('CurrencyName').AsString;
              Lab_SaleTermName.Caption:=fieldbyname('PayTermName').AsString;

              SqlText:=' Select  Sa_SaleInvoiceLine.InvoiceNo,Sa_SaleInvoiceLine.InvBillId, '
                      +'   InvOutBill.InvBillNo as ShipNo,Sa_SaleInvoiceLine.InvBillLineNo as ShipLineNo,   '
                      +'   InvOutBillLine.ItemCode, '
                      +'   InvOutBillLine.InvBillQty as ShipQty , InvOutBillLine.InvBillPrice as TaxPrice, InvOutBillLine.InvBillPriceC as TaxPriceC,'
                      +'   InvOutBillLine.InvBillAmount as TaxAmount, InvOutBillLine.InvBillAmountC as TaxAmountC,InvOutBillLine.InvBillNoTaxPrice as NoTaxPrice, '
                      +'   InvOutBillLine.InvBillNoTaxAmount as  NoTaxAmount,InvOutBillLine.DiSCountRate, '
                      +'   InvOutBillLine.DiSCountAmount , '
                      +'   Item.ItemName,Uom.UomName '
                      +'   From Sa_SaleInvoiceLine '
                      +'    Join InvOutBillLine on Sa_SaleInvoiceLine.InvBillId=InvOutBillLine.InvBillId '
                      +'                   and Sa_SaleInvoiceLine.InvBillLineNo=InvOutBillLine.InvBillLineNo '
                      +'    Join InvOutBill on InvOutBillLine.InvBillId = InvOutBill.InvBillId '
                      +'   left Join  Item '
                      +'     On InvOutBillLine.ItemCode = Item.ItemCode '
                      +'   left Join Uom '
                      +'     On Item.UomCode=Uom.UomCode '
                          +'     where Sa_SaleInvoiceLine.InvoiceNo= '''+fieldbyname('InvoiceNo').AsString+''' ' ;
             AdoQry_Body.Close;
             AdoQry_Body.SQL.Text:=SqlText;
             AdoQry_Body.Open;
           end ;
      end;
    end;
  end;
end;

procedure TFrm_Ar_Enter_SaleInvoice3.InitControls;
begin
  If Status<>'Add' then
  begin
    CurrentFormStatus:='PArtEdit';
    SetFocus_Control:=Edt_CustomerCode;
  end
  Else
  begin
    CurrentFormStatus:='Add';
  end;
{  If Status='Query' Then
  begin
    Caption:='销售开票明细';
    Pnl_Title.Caption:='销售开票明细';
  end;
}
  inherited;
  act_Modify.Enabled:=False;
  act_insertline.Enabled:=False;
  act_Deleteline.Enabled:=False;
  edt_ExchangeRate.Enabled:=False;
  Edt_TaxRate.Enabled := False;
  edt_CurrencyCode.Enabled:=False;
  Edt_CustomerCode.Enabled := False;
  Edt_SaletermCode.Enabled := False;
  Edt_TotalTaxAmount.Enabled := False;
  Edt_TotalNoTaxAmount.Enabled := False;
  Edt_TotalTax.Enabled := False;
  Edt_SaleTypeCode.Enabled := False;
  Edt_DeptCode.Enabled := False;
  Edt_SaleEmployeeCode.Enabled := False;
  Edt_CreateEmployeeCode.Enabled := False;
  Label19.Visible := IIFValue(Param1='0',False,True);
  Edt_ExportTypeCode.Visible := IIFValue(Param1='0',False,True);
  Edt_ExportTypeName.Visible := IIFValue(Param1='0',False,True);
  Edit1.Enabled := False;
  Edit2.Enabled := False;
  Edit3.Enabled := False;
  Edt_SaleTypeName.Enabled := False;
  Edt_DeptName.Enabled := False;
  Edt_SaleEmployeeName.Enabled :=False;
  Edt_CreateEmployeeName.Enabled :=False;

end;

procedure TFrm_Ar_Enter_SaleInvoice3.Edt_SaleTermCodeKeyDown(Sender: TObject;
  var Key: Word; Shift: TShiftState);
begin
  inherited;
  If key=120 Then
  CommOnHint(Sender,AdoQry_Tmp,'PayTermName','付款条款名称','PayTermCode',
             '付款条款代号',' PayTerm ');
end;

procedure TFrm_Ar_Enter_SaleInvoice3.Edt_SaleTermCodeExit(Sender: TObject);
begin
  inherited;
  If Trim(Edt_SaleTermCode.text)='' then
  begin
    DispInfo('付款条款不能为空!',3);
    Edt_SaleTermCode.SetFocus;
    Abort;
  end
  else
  begin                                  
    AdoQry_Tmp.Close;
    AdoQry_Tmp.SQL.clear;
    AdoQry_Tmp.SQL.Text:=' Select * from PayTerm where PayTermCode='''+Trim(Edt_SaleTermCode.text)+''' ';
    AdoQry_Tmp.Open;
    if AdoQry_Tmp.Eof then
    begin
      DispInfo('付款条款输入错误!',3);
      Edt_SaleTermCode.SetFocus;
      Abort;
    end;
  end;
  Edit3.Text :=AdoQry_tmp.fieldbyname('PayTermName').asstring;
end;

procedure TFrm_Ar_Enter_SaleInvoice3.AdoQry_BodyAfterPost(DataSet: TDataSet);
var
  TotalNoTaxAmount,TotalTaxAmount:double;
  BookMArk:String;
begin
  inherited;
  TotalNoTaxAmount:=0;
  TotalTaxAmount:=0;
  if  AdoQry_Body.RecordCount >0 then
    BookMArk:=AdoQry_Body.BookMArk;
  AdoQry_Body.First;
  while not AdoQry_Body.Eof do
  begin
     TotalNoTaxAmount := TotalNoTaxAmount + AdoQry_Body.fieldbyname('NoTaxAmount').AsFloat;
     TotalTaxAmount:= TotalTaxAmount +AdoQry_Body.fieldbyname('TaxAmount').asfloat;
     AdoQry_Body.Next;
  end;
  if  AdoQry_Body.RecordCount >0 then
    AdoQry_Body.BookMArk:=BookMArk;
  Edt_TotalNoTaxAmount.Text := FormatFloat('####0.##',-TotalNoTaxAmount);
  Edt_TotalTaxAmount.Text:= FormatFloat('####0.##',-TotalTaxAmount);
  Edt_TotalTax.Text := FormatFloat('#####0.##',-(TotalTaxAmount-TotalNoTaxAmount));
end;


procedure TFrm_Ar_Enter_SaleInvoice3.SetStatus(CurrentStatus: String;
  var AnswerStatus, EnableControls: String);
begin
  inherited;
  if Currentstatus='Add' then
  begin
    AnswerStatus:='Add';
    EnableControls:=' Edt_CustomerCode,Edt_CustomerName,'//Edt_CreateEmployeeCode,'
                   +' MEdt_CreateDate,MEdt_InAccountDate, Edt_SaleDeptCode, Edt_SaleType,'
                   +' Edt_SaleEmployeeCode, Edt_CurrencyCode, Edt_TaxRate_Percent,'
                   +' Edt_ShipModeCode, Edt_ShipAddresSCode, Edt_SaleTermCode,'
                   +' Edt_RemArk,Edt_InvoiceNo,';
  end
  Else If Pos('Edit',CurrentStatus)>0 Then
  begin
    AnswerStatus:='PArtEdit';
    EnableControls:=' MEdt_CreateDate,MEdt_InAccountDate,'
                   +'  Edt_TaxRate_Percent,edt_taxactno,'
                   +'  Edt_SaleTermCode,Edt_ExchangeRate,'
                   +' Edt_RemArk,Edt_CustomerBank,Edt_CustomerBankActNo,';
  end;

end;

procedure TFrm_Ar_Enter_SaleInvoice3.Act_DeleteLineExecute(Sender: TObject);
var
  BookMArk:String;
begin
  inherited;
{ if (not AdoQry_Body.IsEmpty)and
     (DispInfo(' 真的删除当前记录吗? ',2)='y') then

    AdoQry_Body.Delete;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -