1、新建一个Form,并在form上添加下列控件
Component Function SAPLogOnControl1 SAP ActiveX-Component to logon to the system Button1 Button to start the procedure2、源代码如下
unit s_logon;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
ExtCtrls, OleCtrls, SAPLogonCtrl_TLB, StdCtrls,Grids ;
type
TForm1 = class(TForm)
SAPLogonControl1: TSAPLogonControl;
Panel1: TPanel;
Edit1: TEdit;
Edit2: TEdit;
Label1: TLabel;
Label2: TLabel;
StaticText1: TStaticText;
Button1: TButton;
procedure SAPLogonControl1Click(Sender: TObject);
procedure Button1Click(Sender: TObject);
private
{ Private-Deklarationen }
public
{ Public-Deklarationen }
end;
var
Form1: TForm1;
Connection :variant;
implementation
{$R *.DFM}
procedure TForm1.SAPLogonControl1Click(Sender: TObject);
begin
(* define connection and it's parameters *)
Connection := SAPLogoncontrol1.newConnection;
(* In some GUI-versions the username *)
(* must be written in uppercase !!! *)
Connection.User := AnsiUpperCase(Edit1.text);
Connection.System := 'IDS';
Connection.Client := '800';
Connection.ApplicationServer := 'SAPIDES';
Connection.SystemNumber := '00';
Connection.Password := Edit2.text;
Connection.Language := 'DE' ;
SAPLogonControl1.Enabled := false;
if Connection.LogOn(0,true) = true then
(* parameter "true" : SilentLogOn *)
begin
ShowMessage('Logon O.K.');
Button1.Enabled:= true;
end
else
begin
ShowMessage('Error on logon :-(((');
SAPLogonControl1.Enabled:=true;
end;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
(* cut connection *)
Connection.LogOff;
ShowMessage('System LogOff...');
SAPLogonControl1.Enabled:=true;
Button1.Enabled :=false;
end;
end.
wdtfuncs SAP data type not supported
error on line:
Set i_TABNAME = Func.Exports("TABNAME")
Here is my VB code:
Option Explicit
Public Functions As SAPFunctionsOCX.SAPFunctions
Private LogonControl As SAPLogonCtrl.SAPLogonControl
Private R3Connection As SAPLogonCtrl.Connection
Private TableFactory As SAPTableFactory
Dim Func As SAPFunctionsOCX.Function
Public i_TABNAME As SAPFunctionsOCX.Parameter
Public i_FIELD As SAPFunctionsOCX.Parameter
Public i_LANGU As SAPFunctionsOCX.Parameter
Public strLabel As SAPFunctionsOCX.Parameter
'Public tENTRIES As SAPTableFactoryCtrl.Table
Public Sub Main()
Dim ix As Integer
Dim retcd As Boolean
Dim SilentLogon As Boolean
Set LogonControl = CreateObject("SAP.LogonControl.1")
Set Functions = CreateObject("SAP.Functions")
Set TableFactory = CreateObject("SAP.TableFactory.1")
Set R3Connection = LogonControl.NewConnection
R3Connection.client = "000"
R3Connection.ApplicationServer = "A1KGNB09"
R3Connection.language = "DE"
R3Connection.User = "BCUSER"
R3Connection.Password = "minisap"
R3Connection.System = "A1 SAP 620 09"
R3Connection.SystemID = "000"
R3Connection.SystemNumber = "00"
R3Connection.UseSAPLogonIni = False
SilentLogon = False
retcd = R3Connection.Logon(0, SilentLogon)
If retcd <> True Then MsgBox "Logon failed": Exit Sub
Functions.Connection = R3Connection
Set Func = Functions.Add("DDIF_FIELDLABEL_GET")
Set i_TABNAME = Func.Exports("TABNAME")
Set i_FIELD = Func.Exports("FIELDNAME")
Set i_LANGU = Func.Exports("LANGU")
Set strLabel = Func.Imports("LABEL")
i_TABNAME.Value = "USR02"
i_FIELD.Value = "BNAME"
i_LANGU.Value = "DE"
Func.Call
MsgBox strLabel
' Debug.Print eNUMBER_OF_ENTRIES
' For ix = 1 To tENTRIES.RowCount
' Debug.Print tENTRIES(ix, 1)
' Next
R3Connection.Logoff
End Sub
4132

被折叠的 条评论
为什么被折叠?



