BAPI / RFC with Delphi(系列之五)--TSAPFunctions和TSAPLogoncontrol使用(無登入對話方塊Delphi原始碼)

來源:互聯網
上載者:User

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.

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.