• 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.

  • 相关阅读:
    ant design拖拽手柄列拖动时样式错乱的解决方案
    ant design pro columns属性valueEnum下拉框按顺序显示
    blob转换为file上传(七牛云等)
    最新前端面试题收集(一)
    node 服务端分层模型小结
    将博客搬至CSDN
    Koa 连接mysql数据,mysql数据库表初始化脚本
    Koa 数据库连接和查询分离, CommonJS 模块遇到的一个坑
    koa session 存储方案
    koa-router 入门与使用
  • 原文地址:https://www.cnblogs.com/xiaomaohai/p/6157380.html
Copyright © 2020-2023  润新知