Page History
Once created, the
...
.NET Component can be used the same way as any other Visual LANSA component. An instance of the component can be created and its properties, methods and events can be used. Some components are very simple and little programming is required to use them, others provide complex functionality and may require much more coding than using native Visual LANSA controls.
Define an instance of a component
...
If the class does not have a constructor or has a constructor that takes no parameters, then you may specify no constructor or a constructor with no parameters. Otherwise the parameters should be passed similar to a method call.
| Panel | ||
|---|---|---|
| ||
Variable <= *New --- Fully qualified class name ------------------ > |
...
|
...
|
...
|
...
|
SET_REF
For information, refer to the [<span style="color: #0000ee"><span style="text-decoration: underline; ">SET_REF</span></span>|../../../lansa015/Content/lansa/set_ref.htm] SET_REF in the Technical Reference Guide.
Example
C#
public ConstructorTests()
...
{…
...
}
public ConstructorTests( int aNumber )
...
{…
...
}
public ConstructorTests( int aNumber, ref DateTime aDateTime, String aString )
...
{…
...
}
RDML
Define_Com Class(#DOTNET1.TestClasses.ConstructorTests) Name(#LCom01) Reference(*DYNAMIC)
...
Define Field(#LNum01) Type(*INT) Length(4)
Define Field(#LStr01) Type(*CHAR) Length(50)
Define Field(#LDTime01) Type(*DATETIME) Length(26)
...
#LCom01 <= *New #DOTNET1.TestClasses.ConstructorTests
Set_Ref Com(#LCom01) To(*CREATE_AS #DOTNET1.TestClasses.ConstructorTests)
#LCom01 <= *New #DOTNET1.TestClasses.ConstructorTests.ConstructorTests()
Set_Ref Com(#LCom01) To(*CREATE_AS #DOTNET1.TestClasses.ConstructorTests.ConstructorTests)
#LCom01 <= *New #DOTNET1.TestClasses.ConstructorTests.ConstructorTests#2( #LNum01 #LDTime01 #LStr01 )
Set_Ref Com(#LCom01) To(*CREATE_AS #DOTNET1. TestClasses.ConstructorTests.ConstructorTests#2) Anumber(#LNum0501) Adatetime(#LDTi0501) Astring(#LStr0501)
Using properties and variables
Syntax
| Panel | ||
|---|---|---|
| ||
RDML Variable . .NET Property Name ----------------------------------------------- > |
...
|
...
|
...
|
...
|
Example
C#
public
...
int Counter
{
get { return mCount; }
set { mCount = value; }
}
RDML
Define_Com Class(#DOTNET1.TestClasses.MyClass) Name(#NumericClass)
#NumericClass.Counter := 120
#STD_INT := #NumericClass.Counter
Begin_Loop Using(#STD_INT) To(#NumericClass.Counter) Step(2)
…
End_Loop
...
Calling Methods
Syntax
| Panel | ||
|---|---|---|
| ||
RDML Variable . Method Name ----------------------------------------------- > |
...
|
...
|
...
|
Example
C#
public void
IncrementDateByDays(
ref DateTime dateTime,
int dayAdjustment
...
)
{
dateTime = dateTime.AddDays( dayAdjustment );
...
}
RDML
Define_Com Class(#DOTNET1.TestClasses.MyClass) Name(#LClass01)
Define Field(#LDat01) Type(*DATETIME)
Define Field(#LDat02) Type(*DATETIME)
...
#LDat01 := '1954-04-25 10:04:00.000000'
#LDat02 := '1954-05-05 10:04:00.000000'
#LClass01.IncrementDateByDays( #LDat01 10 )
If ((#LDat01 = #LDat02))
…
Endif
C#
...
public String
DoubleIntegerReturnString(
int number,
out int result )
{
result = number * 2;
return String.Format( "Double
...
{0
...
} is
...
{1
...
}", number, result );
...
}
RDML
Define_Com Class(#DOTNET1.TestClasses.MyClass) Name(#LClass01)
Define Field(#LNum01) Type(*INT) Length(4)
Define Field(#LNum02) Type(*INT) Length(4)
Define Field(#LStr01) Type(*CHAR) Length(80)
#LNum01 := 411
#LStr01 := #LClass4101.DoubleIntegerReturnString( #LNum01 #LNum02 )
If (#LNum02 = (#LNum01 * 2))
…
...
Endif
Event Handling
Event handling functions are defined using the EVTROUTINE command. See the [<span style="color: #0000ee"><span style="text-decoration: underline; ">EVTROUTINE</span></span>|../../../lansa015/Content/lansa/evtroutine.htm] EVTROUTINE documentation in the Technical Reference Guide for further details about this command. The basic syntax of the command is as follows:
| Panel | ||
|---|---|---|
| ||
EVTROUTINE --- HANDLING ( Variable Name . Event Name )------------ > |
...
----------- > |
...
|
Example
C#
public
...
class EventArgs1
{
private String mName;
public EventArgs1() { }
public String Name
{
get { return mName; }
set \{ mName = value; }
}
}
Public class EventTests
{
public event MyEventDelegate MyEvent;
public delegate void MyEventDelegate( String str, EventArgs1 eventArgs );
}
RDML
Define_Com Class(#DOTNET1.TestClasses.EventTests) Name(#EventTest)
Evtroutine Handling(#EventTest.MyEvent) Str(#s1) EventArgs(#c1)
#STD_TEXT := #s1
#STD_NAME := #c1.Name
...
Endroutine