zoukankan      html  css  js  c++  java
  • BAPI / RFC with Delphi(系列之五)--TSAPFunctions和TSAPLogoncontrol使用(无登录对话框Delphi源代码)

    1、新建一个Form,并在form上添加下列控件

    Component Function
    SAPFunctions1 SAP ActiveX-component to connect RFC/BAPI
    SAPLogoncontrol1 SAP ActiveX-Component to logon to the system
    Grid Stringgrid to show the data's in the form
    Button1 Button to start the procedure

    2、源代码如下(使用RFC_READ_TABLE函数读取成本中心) 
    unit logon1;

    interface

    uses
    Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
    ExtCtrls, OleCtrls, StdCtrls, SAPFunctionsOCX_TLB,
    Grids, SAPLogonCtrl_TLB;

    type
      TForm1 = class(TForm)
      SAPFunctions1: TSAPFunctions;
      Button2: TButton;
      Grid: TStringGrid;
      Edit1: TEdit;
      Edit2: TEdit;
      Label1: TLabel;
      Label2: TLabel;
      SAPLogonControl1: TSAPLogonControl;
    procedure Button2Click(Sender: TObject);
    private
    { Private-Deklarationen }
    public
    { Public-Deklarationen }
    end;

    var
    Form1 : TForm1 ;
    Table,Funct, Connection : VARIANT ;

    implementation

    {$R *.DFM}


    procedure TForm1.Button2Click(Sender: TObject);
    var txt : string ;
    r : integer ;

    begin
      Connection                  := SAPLogoncontrol1.newConnection;
      Connection.User             := AnsiUpperCase(Edit1.text);
      Connection.System           := 'IDS';
      Connection.Client           := '800';
      Connection.ApplicationServer:= 'SAPIDES';
      Connection.SystemNumber     := '00';
      Connection.Password         := Edit2.text;
      Connection.Language         := 'DE' ;

      if Connection.LogOn(0,true) = true then
      (* parameter "true" = SilentLogOn *)

      begin

        (* assign the existing connection to the *)
        (* component SAPFunctions1                *)

        SAPFunctions1.Connection := Connection;

        Funct := SAPFunctions1.add('RFC_READ_TABLE');
        Funct.exports('QUERY_TABLE').value := 'CSKT';
        if not Funct.call then
          showMessage(Funct.exception)
        else begin
          Table := Funct.tables.item('DATA');
          grid.rowCount := Table.rowcount + 1;
          grid.cells[0,0] := 'Client';
          grid.cells[1,0] := 'CostCent-No';
          grid.cells[2,0] := 'CostCent-Des.';
          for r := 1 to grid.rowCount -1 do begin
            txt := Table.value(r,1);
            grid.cells[0,r] := copy(txt,0,3);
            grid.cells[1,r] := copy(txt,9,10);
            grid.cells[2,r] := copy(txt,27,20);
          end;
          grid.visible := True;
        end;
      end;
    end;
    end.

  • 相关阅读:
    博客园作业 04
    C语言II博客作业02
    C语言II博客作业01
    linux找不到动态链接库.so文件的解决方法
    工厂模式
    markdown基本语法
    IDEA解决file://无法访问问题,构建虚拟路径方法
    python 制作伪switch(不过认为更加麻烦,使用起来不方便,不如跟随python使用if更轻巧)
    python 读取编码为UTF-8-BOM文件(如果一直出现读取失败,可以尝试用记事本查看文件的编码格式,且可以读取任何文件格式)
    python 读取excel方法(最大行数:1048576)
  • 原文地址:https://www.cnblogs.com/xiaomaohai/p/6157380.html
Copyright © 2011-2022 走看看