Delphi exl Report

 

Function TForm1.GenExcel: boolean;
Var
  I: Integer;
  sheet: variant;
  sTmpRegion, sReportName: String;
  xlsRange: variant;

  DN, PN, Customer_PN, Bill_To, Cust_PO,
    Re_Cfm_dateRe_Cfm_date,
    DN_line, DN_Qty, Ship_way, Pack_way: String;
Begin
  Result := GetPackDetail;
  If Result = False Then
    Begin
      exit;
    End;
  Try
    Try
      sTmpRegion := FormatDateTime('yyyy' + '' + 'MM' + '' + 'dd' + '' + 'hh' + '' + 'mm' + '' + 'ss', now);
      sReportName := 'D:\myexl\' + 'exl ' + sTmpRegion + '.xls';
      sheet := CreateOleObject('Excel.Sheet');
      xlsRange := sheet.Application.Range['A2:j2'];
      xlsRange.HorizontalAlignment := xlCenter;
      xlsRange.Interior.ColorIndex := 33;
      xlsRange := sheet.Application.Range['A2:C65536'];
      xlsRange.NumberFormat := '@';
      i := 2;
      //Write title
      sheet.Application.cells[i, 1] := 'DN';
      sheet.Application.cells[i, 2] := 'P/N.';
      sheet.Application.cells[i, 3] := 'Customer P/N';
      sheet.Application.cells[i, 4] := 'Bill-To.';
      sheet.Application.cells[i, 5] := 'Cust.PO.';
      sheet.Application.cells[i, 6] := 'Re-Cfm date.';
      sheet.Application.cells[i, 7] := ' DN line#';
      sheet.Application.cells[i, 8] := 'DN Qty';
      sheet.Application.cells[i, 9] := 'TShip way';
      sheet.Application.cells[i, 10] := 'Pack way';

      GetPackDetail;
      //While data
      While Not cds_Tmp.Eof Do
        Begin
          i:=i+1;
          DN := cds_Tmp.FieldByName('DN').AsString;
          PN := cds_Tmp.FieldByName('PN').AsString;
          Customer_PN := cds_Tmp.FieldByName('Customer_PN').AsString;
          Bill_To := cds_Tmp.FieldByName('Bill_To').AsString;
          Cust_PO := cds_Tmp.FieldByName('Cust_PO').AsString;
          Re_Cfm_dateRe_Cfm_date := cds_Tmp.FieldByName('Re_Cfm_dateRe_Cfm_date').AsString;
          DN_line := cds_Tmp.FieldByName('DN_line').AsString;
          DN_Qty := cds_Tmp.FieldByName('DN_Qty').AsString;
          Ship_way := cds_Tmp.FieldByName('Ship_way').AsString;
          Pack_way := cds_Tmp.FieldByName('Pack_way').AsString;
         //Write Excel
          sheet.Application.cells[i, 1] := DN;
          sheet.Application.cells[i, 2] := PN;
          sheet.Application.cells[i, 3] := Customer_PN;
          sheet.Application.cells[i, 4] := Customer_PN;
          sheet.Application.cells[i, 5] := Cust_PO;
          sheet.Application.cells[i, 6] := Re_Cfm_dateRe_Cfm_date;
          sheet.Application.cells[i, 7] := DN_line;
          sheet.Application.cells[i, 8] := DN_Qty;
          sheet.Application.cells[i, 9] := Ship_way;
          sheet.Application.cells[i, 10] := Pack_way;
          cds_Tmp.Next;
        End;
      // add grid
      xlsRange := sheet.Application.Range['A2:j' + IntToStr(i)];
      xlsRange.Font.Name := 'Arial';
      xlsRange.Font.Size := 10;
      xlsRange.Borders.LineStyle := 1;
      sheet.Application.Columns.EntireColumn.AutoFit;
    Except
      On e: Exception Do
        Begin
          ShowMessage('Error occurs!');
          exit;
        End;
    End;
  Finally
    sheet.SaveAs(sReportName);
    ShowMessage('Process Complete!');
  End;

End;

Function TForm1.GetPackDetail: Boolean;
Begin
  ssql :=
    '0SELECT' +
    '  C021.NCMP, C021.PINO AS DN,C022.ITEM AS PN,c081.cprt AS Customer_PN,' +
    '  C021.cuno AS Bill_To,C021.refa AS Cust_PO,TO_CHAR(c021.invd, ''YYYY/MM/DD'')AS Re_Cfm_dateRe_Cfm_date, ' +
    '  C022.PONO AS DN_line,C022.DQUA AS DN_Qty,C021.CRTE AS Ship_way,C021.MPAK AS Pack_way ' +
    'FROM ' +
    '  CMPPS021 C021, CMPPS022 C022,cmpps081 c081 ' +
    'WHERE ' +
    '  c021.ncmp=c022.ncmp' +
    '  AND c021.pino=c022.pino' +
    '  AND c021.ncmp=c081.ncmp' +
    '  AND c021.orno=c081.orno' +
    '  AND c022.pono=c081.pono' +
    '  AND C021.pgi_status=''Y'''+
    '  AND TO_CHAR (c021.invd, ''YYYY/MM/DD'')BETWEEN '+ QuotedStr(FormatDateTime('yyyy-mm-dd', DateFrom.Date)) + '' +
                                               '  AND '+ QuotedStr(FormatDateTime('yyyy-mm-dd', DateTo.Date));
   // '  AND C021.PINO =' + QuotedStr(Edit1.text) + '';
  result := CDS_Open(cds_Tmp, sSQL)
End;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
SAP EXCEL上传是指将Excel文件中的数据导入到SAP系统中的操作。这个功能非常方便,在处理大量数据时可以节省时间和劳动力。通过SAP EXCEL上传,用户可以一次性导入多个Excel文件,将文件中的数据快速准确地加载到SAP系统中。 要进行SAP EXCEL上传,首先需要准备好Excel文件并保存好。然后在SAP系统中打开相应的事务码,进入要上传数据的模块。一般来说,系统会提供一个标准的Excel上传模板,用户可以根据需要填写数据到模板中。填写完毕后,保存Excel文件。 接下来,在SAP系统中的导入界面选择Excel文件,并确定导入的参数和选项。一般来说,系统会提示用户设定数据的导入规则,比如哪些列对应SAP系统中的哪些字段。确保设定正确后,点击导入按钮。 系统会自动将Excel文件中的数据读取到SAP系统中,并根据事务码和设定的规则进行数据处理。导入过程中,系统会检查数据的准确性和合法性,如果存在错误或者不一致,系统会给出相应的提示。用户可以根据提示进行修改或者重新导入。 总的来说,SAP EXCEL上传是一种方便快捷的数据导入方式。通过合理使用该功能,用户可以减少手工输入数据的工作量,提高工作效率,并且减少因手工输入错误而导致的数据错误。它在需要大量数据导入的情况下特别有用,可以节省大量时间和精力。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值