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.

  • 相关阅读:
    kickstart自动化安装
    linux双网卡绑定
    作死实验,删除libc.so.6
    安装centos6及安装redhat6后的配置
    交换机、linux光衰查询
    ansible的简单使用
    linux安全配置学习
    vm的三种网络模式
    Recylerview的使用系列教程
    Android自定义组合控件
  • 原文地址:https://www.cnblogs.com/xiaomaohai/p/6157380.html
Copyright © 2011-2022 走看看