Urejevalnik modula: Razlika med redakcijama

Iz SDMS
Jump to navigationJump to search
m
Vrstica 1: Vrstica 1:
 
+
__NOTOC__
[[Image:dummy.jpg]]
+
[[Kategorije:Razvojna orodja]]
 +
[[Image:Urejevalnik_.jpg|right|240px]]
 
== Splošno ==
 
== Splošno ==
 
'''Moduli''' so grupe procedur, napisane v internem jeziku SDMS Basic, ki se uporabljajo za avtomatiziranje določenih postopkov ali izvajanje matematičnih rutin, ki niso del programa. Sintakso jezika je podrobno opisana v referenčnem priročniku.
 
'''Moduli''' so grupe procedur, napisane v internem jeziku SDMS Basic, ki se uporabljajo za avtomatiziranje določenih postopkov ali izvajanje matematičnih rutin, ki niso del programa. Sintakso jezika je podrobno opisana v referenčnem priročniku.

Redakcija: 08:56, 25. maj 2006

Kategorije:Razvojna orodja

Splošno

Moduli so grupe procedur, napisane v internem jeziku SDMS Basic, ki se uporabljajo za avtomatiziranje določenih postopkov ali izvajanje matematičnih rutin, ki niso del programa. Sintakso jezika je podrobno opisana v referenčnem priročniku.

Vsak modul je sestavljen iz štirih neobveznih delov:

  • Definicije globalnih spremenljivk - na začetku definirajte globalne spremenljivke, ki jih boste rabili v modulu,
  • Sub OnCreate - procedura, ki se izvrši pred odprtjem aplikacije
  • Sub OnDestroy - procedura, ki se izvrši po zaprtju aplikacije
  • Procedure in funkcije (Sub in Function)

Na primer:

// Definiranje globalnih spremenljiv

Dim A As String
Dim B As Long

Sub OnCreate
  ...
EndSub

Sub OnDestroy
  ...
EndSub

Sub Sub1
  ...
EndSub

Function Fun1 (Par1 As String, Par2 As Boolean) As String
  ...
EndFunction

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