Urejevalnik modula

Splošno o urejevalniku modula
Moduli so 'nevidni' objekti, v katerih so določene procedure in funkcije, napisane v internem programskem jeziku SdmsBasic. Uporabljamo jih za avtomatiziranje kompleksnejših postopkov, ki bi jih želeli izvajati v okviru neke aplikacije. Sintaksa jezika je podrobno opisana v referenčnem priročniku.
Urejevalnik modula uporabljamo za ustvarjanje in spreminjanje teh modulov.
Urejevalnik modula prikličemo tako, da v raziskovalcu enostavno dvo-kliknemo na modul, ki bi ga želeli urejati. Če imamo za izbran modul dodeljeno pravico urejanja, se nam odpre urejevalnik modula.
Urejanje osnovnih lastnosti modula
Vsakemu modulu lahko določimo nekaj osnovnih lastnosti, kot so ime modula, komentar, pravice dostopa do modula, itd.
To lahko storimo v seznamu lastnosti modula, ki jih prikličemo s klikom na gumb
, če jih še ne vidimo na ekranu.

Lastnosti modula, ki jih lahko spreminjamo, so naslednje:
- Ime (obvezno) - vsak modul mora imeti določeno unikatno ime, prek katerega se kasneje lahko sklicujemo nanj. To ime mora biti unikatno v okviru vseh objektov v sistemu.
- Dodatno ime (opcijsko) - modulu lahko določimo tudi dodatno ime, npr. okrajšano ime, ki ga lahko uporabimo za sklic enako kot osnovno ime. Tudi tu velja unikatnost imen v okviru vseh objektov v sistemu.
- Komentar (opcijsko) - modulu lahko dodamo poljuben komentar.
- Uporabljan v (opcijsko) - to lastnost lahko uporabimo za namen izvoza vseh objektov, ki se lahko uporabijo v neki aplikaciji, čeprav niso direktno uporabljeni. Vanjo vnesemo ime oz. imena aplikacij, ki uporabljajo ta modul, ločena pa so s podpičji. Lahko uporabimo tudi znak * za vse aplikacije.
- Pravica vpogleda (opcijsko) - če želimo zaščititi modul pred uporabo nepooblaščenim osebam, določimo pravico vpogleda le tisti skupini uporabnikov, ki modul lahko uporablja.
- Pravica urejanja (opcijsko) - če želimo zaščititi modul pred spreminjanjem oz. brisanjem s strani nepooblaščenih oseb, določimo pravico urejanja le tisti skupini uporabnikov, ki modul lahko spreminja oz. briše.
Ostale lastnosti modula so samo informativnega značaja.
Urejanje samega modula
Ko smo modulu določili osnovne lastnosti, se lahko dejansko lotimo urejanja samega modula. Če območja urejanja modula na ekranu ne vidimo, ga prikličemo s klikom na gumb
.

Vsak modul je načeloma sestavljen iz štirih neobveznih delov:
- Definicije globalnih spremenljivk, kjer definiramo globalne spremenljivke, ki jih bomo uporabljali,
- Procedura OnCreate, ki se avtomatsko izvede ob nalaganju modula,
- Procedura OnDestroy, ki se avtomatsko izvede ob zapiranju modula, in
- Poljubne procedure in funkcije, ki jih bomo uporabljali v menijih, orodjarnah, direktno iz konzole, itd.
// Definiranje globalnih spremenljiv Dim A As String Dim B As Long Sub OnCreate ... EndSub Sub OnDestroy ... EndSub Sub Procedura1 ... EndSub Function Funkcija1 (Par1 As String, Par2 As Boolean) As String ... Result = 'odgovor' ... EndFunction
Več o programskem jeziku SdmsBasic si oglejte v poglavju Urejanje SdmsBasic kode.
Uporaba modula v aplikaciji
Če želimo modul uporabiti v neki aplikaciji, ga moramo ob zagonu te aplikacije naložiti. To storimo v proceduri OnCreate želene aplikacije:
Sub OnCreate ... ModuleList.Add ([ime modula]) ... EndSub
xxx to nekam drugam v urejanje kode
Primer funkcije: želite da se vam poligoni obarvajo glede na površino. V Temo- Polygon-Barva zapišete BarvaPov([Površina grafika]), kar pomeni da se vam bodo poligoni barvali, glede površino in pogoje, ki so navedeni v proceduri BarvaPov.
Function BarvaPov (P As Long) As Long
// Izbor barve glede na površino
Select Case P
Case 0 .. 49 Result = Red
Case 50 .. 99 Result = Green
Case 100 .. 199 Result = Blue
Case 200 .. 299 Result = Yellow
Case 300 .. 399 Result = Purple
Case 400 .. 499 Result = Silver
Case 500 .. 799 Result = Maroon
Case 800 .. 999 Result = Olive
Case 1000 .. 1999 Result = Teal
Case 2000 .. 999999999 Result = Aqua
CaseElse Result = Black
EndSelect
EndFunction
Primer funkcije: številka parcele zapisane v INKAT strukturi ima naslednjo obliko 000120003, kar je dejansko 12/1. Ker nima smisla celotno bazo predelovati, lahko za lep izpis na ekran/ploter uporabimo proceduro, ki iz zapisa 000120003 naredi zapis 12/1. Imenujmo jo ParcVPod. Iz Teme-Besedilo-Polje jo kličemo ParcVPod([PARCSTEV])
Function ParcVPod (R as String) As String
Dim s as string
Dim a1 as string
Dim a2 as string
If StrToInt (R) > 0 Then
If Length (R) < 9 Then
Result = R
Else
a1 = IntToStr(StrToInt(Copy (R,1,5)))
a2 = IntToStr(StrToInt(Copy (R,6,4)))
If StrToInt(a2) > 0 Then
Result = a1 + "/" + a2
Else
Result = a1
EndIF
EndIF
EndIf
EndFunction
Primer procedure: v dialogu dodate gumb, ki vam izpiše na tiskalnik v obliki predhodno kreiranega dialoga. Za izvedbo tega potrebujete proceduro KlikNaPrinter, ki jo kličete s parametri KlikNaPrinter ([ime plasti], "ime poročila")
// Rutina procedur za izpise na printer Sub KlikNaPrinter(T as TLayer,ImeRep as String) Dim TL as TRecordList T.Report.Load (ImeRep) T.Report.ExecuteList(T.ClickedRecords) EndSub