NewLookup

Ukázka založení nového číselníku

Popis

Skript založí nový číselník a naplní jej sloupci a hodnotami
declare function LookupCreate dll "ScriptEx" (string): integer
declare procedure LookupFree dll "ScriptEx" (var integer)

declare function LookupGetIntegerProp dll "ScriptEx" (integer, string): integer

declare procedure LookupSetBooleanProp dll "ScriptEx" (integer, string, boolean)
declare procedure LookupSetIntegerProp dll "ScriptEx" (integer, string, integer)
declare procedure LookupSetStringProp dll "ScriptEx" (integer, string, string)

declare procedure LookupStore dll "ScriptEx" (integer)

script NewLookup(): boolean
var
  Lookup: integer
  LookupId: integer
  SubItemDef: integer
  SubItemDefId1: integer
  SubItemDefId2: integer
  I: integer
  Item: integer
  ItemId: integer
  SubItem: integer
begin
  Lookup := LookupCreate("TLookup")

  LookupSetStringProp(Lookup, "Name", "Nový číselník")
  LookupSetStringProp(Lookup, "Description", "Popis nového číselníku")

  LookupStore(Lookup) // Číselník vytvořen

  LookupId := LookupGetIntegerProp(Lookup, "Id")

  LookupFree(Lookup)

  // ---------------------------------------------------------------------------

  SubItemDef := LookupCreate("TLookupSubItemDef")

  // --

  LookupSetIntegerProp(SubItemDef, "LookupId", LookupId)

  LookupSetStringProp(SubItemDef, "Name", "Sloupec 1")
  LookupSetStringProp(SubItemDef, "Description", "Popis sloupce č. 1")

  LookupStore(SubItemDef) // Přidán sloupec 1

  SubItemDefId1 := LookupGetIntegerProp(SubItemDef, "Id")

  // --

  LookupSetStringProp(SubItemDef, "Name", "Sloupec 2")
  LookupSetStringProp(SubItemDef, "Description", "Popis sloupce č. 2")

  LookupSetBooleanProp(SubItemDef, "New", true) // Vynutit INSERT INTO
  LookupStore(SubItemDef) // Přidán sloupec 2

  SubItemDefId2 := LookupGetIntegerProp(SubItemDef, "Id")

  // --

  LookupFree(SubItemDef)

  // ---------------------------------------------------------------------------

  Item := LookupCreate("TLookupItem")
  SubItem := LookupCreate("TLookupSubItem")

  // --

  for I := 0 to 2 do
    LookupSetIntegerProp(Item, "LookupId", LookupId)
    LookupSetIntegerProp(Item, "Order", I)

    LookupSetBooleanProp(Item, "New", true) // Vynutit INSERT INTO
    LookupStore(Item) // Přidán řádek

    ItemId := LookupGetIntegerProp(Item, "Id")

    // -------------------------------------------------------------------------

    LookupSetIntegerProp(SubItem, "ItemId", ItemId)
    LookupSetIntegerProp(SubItem, "DefId", SubItemDefId1)

    LookupSetStringProp(SubItem, "Value", "Hodnota " + (I + 1) + "1")

    LookupSetBooleanProp(SubItem, "New", true) // Vynutit INSERT INTO
    LookupStore(SubItem) // Přidána hodnota sloupce 1

    // --

    LookupSetIntegerProp(SubItem, "DefId", SubItemDefId2)

    LookupSetStringProp(SubItem, "Value", "Hodnota " + (I + 1) + "2")

    LookupSetBooleanProp(SubItem, "New", true) // Vynutit INSERT INTO
    LookupStore(SubItem) // Přidána hodnota sloupce 2
  end

  // --

  LookupFree(SubItem)
  LookupFree(Item)

  // ---------------------------------------------------------------------------

  result := true
end