BAPI / RFC with Delphi(系列之四)--TSAPFunctions使用(有登录对话框的delphi源代码)

本文介绍如何通过SAP的RFC_READ_TABLE函数在Delphi中读取SAP系统的成本中心数据。具体步骤包括创建Form并添加控件,定义与SAP系统的连接组件,以及编写读取和显示数据的代码。

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

Component function SAPFunctions1 SAP ActiveX-component to connect RFC/BAPI 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;

type
TForm1 = class(TForm)
SAPFunctions1: TSAPFunctions;
Button1: TButton;
Grid: TStringGrid;
procedure Button1Click(Sender: TObject);
private
{ }
public
{ }
end;

var
Form1 : TForm1 ;
Table,Funct : VARIANT ;

implementation
{$R *.DFM}

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

(* define function *)
Funct := SAPFunctions1.add('RFC_READ_TABLE');

(* tell the function what table should be read *)
Funct.exports('QUERY_TABLE').value := 'CSKT';

(* call the function *)
if not Funct.call then

(* on error show message *)
showMessage(Funct.exception)

else begin

(* select table with the data's *)
Table := Funct.tables.item('DATA');

(* addjust the StringGrid *)
grid.rowCount := Table.rowcount + 1;
grid.cells[0,0] := 'Client';
grid.cells[1,0] := 'Cost Number';
grid.cells[2,0] := 'CostCenter Description';
for r := 1 to grid.rowCount -1 do begin

(* select first dataset *)
txt := Table.value(r,1);

(* Because the RCF-function returns only one *)
(* string whitch contains all data's, the *)
(* string must be cut to different parts *)

grid.cells[0,r] := copy(txt,0,3);
(* Client *)
grid.cells[1,r] := copy(txt,9,10);
(* CostCent-number *)
grid.cells[2,r] := copy(txt,27,20);
(* CostCent-description*)
end;
grid.visible := True;
end;
end;
end.

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值