IBM Lotus Symphony
|
Naslednji odsek opisuje osnovno uporabo procedur in funkcij v Lotus® Symphony™ Basicu.
![]() |
Ko ustvarjate nov modul, Lotus Symphony Basic samodejno vstavi SUB z imenom "Main". To privzeto ime nima nič opravka z vrstnim redom ali začetno točko projekta v Lotus Symphony Basicu. Prav tako lahko ta SUB varno preimenujete. |
Procedure (SUBS) in funkcije (FUNCTIONS) vam pomagajo vzdrževati strukturiran pregled z ločevanjem programa na logične dele.
Ena prednost procedur in funkcij je ta, da ko enkrat razvijete programsko kodo, ki vsebuje komponente naloge, lahko to kodo ponovno uporabite v drugem projektu.
Spremenljivke se lahko posredujejo tako proceduram kot funkcijam. SUB ali FUNCTION mora biti deklariran, da pričakuje parameter:
SUB SubName( Parameter1 As Type, Parameter2 As Type,... )
Programska koda
END SUB
SUB se prikliče z naslednjo skladnjo:
SubName(Value1, Value2,...)
Parametri, ki so podani SUB (podprogramu), morajo ustrezati tistim, ki so podani v deklaraciji SUB.
Isti proces velja za FUNCTIONS. Poleg tega funkcije vedno vrnejo rezultat funkcije. Rezultat funkcije se definira tako, da se dodeli vrnjeno vrednost imenu funkcije.
FUNCTION FunctionName(Parameter1 As Type, Parameter2 As Type,...) As Type
Programska koda
FunctionName=Result
End Function
FUNCTION se prikliče z naslednjo skladnjo:
Variable=FunctionName(Parameter1, Parameter2,...)
![]() |
Proceduro ali funkcijo lahko prikličete tudi s popolnoma kvalificiranim imenom: Library.Module.Macro() Makro Autotext lahko na primer prikličete iz knjižnice Gimmicks z ukazom: Gimmicks.AutoText.Main() |
Parametri se SUB ali FUNCTION lahko podajajo ali s sklicem ali z vrednostjo. Če ni drugače določeno, se parameter vedno poda kot sklic. To pomeni, da SUB ali FUNCTION dobi parameter in lahko prebere ali spremeni njegovo vrednost.
Če želite posredovati parameter z vrednostjo, vstavite ključno besedo "ByVal" pred parameter, kadar kličete SUB ali FUNCTION, na primer:
Result = Function( ByVal Parameter)
V tem primeru se prvotna vsebina parametra ne spremeni s strani FUNCTION, saj ta dobi samo vrednost, ne pa parametra samega.
Spremenljivka, definirana znotraj SUB ali FUNCTION, ostane veljavna samo dokler se procedura ne zapusti. To je poznano kot "lokalna" spremenljivka. V veliko primerih pa potrebujete spremenljivko, ki bo veljavna v vseh procedurah, v vsakem modulu vseh knjižnic, ali potem, ko se zapusti SUB ali FUNCTION.
GLOBAL VarName As TYPENAME
Spremenljivka je veljavna, dokler traja seja programske opreme Lotus Symphony.
PUBLIC VarName As TYPENAME
Spremenljivka velja za vse module.
PRIVATE VarName As TYPENAME
Spremenljivka velja samo za ta modul.
DIM ImeSpremenljivke As TYPENAME
Spremenljivka velja samo za ta modul.
Nastavite CompatibilityMode(true) in tako vsilite, da bodo zasebne spremenljivke zasebne v vseh modulih.
REM ***** Module1 *****
Private myText As String
Sub initMyText
myText = "Hello"
print "in module1 : ", myText
End Sub
REM ***** Module2 *****
'Option Explicit
Sub demoBug
CompatibilityMode( true )
initMyText
' Now returns empty string
' (or rises error for Option Explicit)
print "Now in module2 : ", myText
End Sub
STATIC VarName As TYPENAME
Spremenljivka obdrži vrednost do naslednjič, ko se vstopi v SUB ali FUNCTION. Deklaracija mora obstajati znotraj SUB ali FUNCTION.
Kot pri spremenljivkah vključite znak deklaracije vrste za imenom funkcije ali pa vrsta, označen z "As" in ustrezno ključno besedo na koncu seznama parametrov, če želite definirati vrsto vrnjene vrednosti funkcije, na primer:
Function WordCount(WordText as String) as Integer