Příklad 3 - Práce s číselníky

Tieto príklady sú napísané v jazyku Visual Basic.

Vizuálny výber viac záznamov z číselníka

' Funkce vyvolá vizuální číselník řad dokladů.
' Číselník je omezený za typy dokladů 03-faktury vydané, 04-faktury přijaté a 00-interní doklady.
' Pokud si uživatel vybral, jsou v messageboxu zobrazeny interní identifikátory vybraných řad dokladů.

Sub MultiSelectDialog()
  Dim mApplication As New AbraOLE.Application
  Dim mRoll As Roll
  Dim mSelected As New NxStrings
  
  mSelected.Add "0005810000"
  mSelected.Add "0005820000"
  mSelected.Add "1111111111" 'Špatné (neexistující) ID
  
 ' Získání objektu číselníku
 Set mRoll = mApplication.GetRoll("{A133BBE0-1FF0-11D2-9911-00E0ED0111A9}", 1)
  
  ' Doplnění filtračních parametrů
  mRoll.Params.Add "FilterDocumentType=03;04;00"
  
  ' Volitelné nastavení oblasti, kolem které se zobrazí vizuální číselník
  mRoll.SetBoundRect 1, 1, 2, 2
  If mRoll.MultiSelectDialog(True, mSelected) Then
    MsgBox mSelected.Text
  End If
End Sub

Vizuálny výber jedného záznamu z číselníka

' Funkce vyvolá vizuální číselník účetního rozvrhu. Číselník je obmedzený podľa kompletných účtov.
' Pokud si uživatel vybral, je v messageboxu zobrazen interní identifikátor vybraného účtu.

Sub SelectDialog()
  Dim mApplication As New AbraOLE.Application
  Dim mRoll As Roll
  Dim mID As String

  mID = "0006980000"

  ' Získání objektu číselníku
  Set mRoll = mApplication.GetRoll("K0TL1BKM1RD13ACL03KIU0CLP4", 0)

  ' Doplnění filtračních parametrů
  mRoll.Params.Add "@IsInComplete=N"
  If mRoll.SelectDialog(True, mID) Then
    MsgBox mID
  End If
End Sub

Vyhľadanie záznamu v číselníku podľa kľúčového údaja

' Funkce dohledá v číselníku účetního rozvrhu účet, který má kód "31100".
' Číselník je obmedzený podľa kompletných účtov.
' Pokud se účet dohledal, je zobrazen jeho interní identifikátor.

Sub Find()
  Dim mApplication As New AbraOLE.Application
  Dim mRoll As Roll
  Dim mID As String
  Dim mText As String
  Dim mTextField As String
 
  mID = ""
  mText = "31100"
  mTextField = "CODE"
 
  Set mRoll = mApplication.GetRoll("K0TL1BKM1RD13ACL03KIU0CLP4", 0)
  mRoll.Params.Add "@IsInComplete=N"
  If mRoll.Find(mTextField, mText, mID) Then
    MsgBox mID
  End If
End Sub

Skorigovanie zoznamu interných identifikátorov

' Funkce zkoriguje seznam interních identifikátorů tak, že vyloučí neplatné nebo ty, ke kterým nemá uživatel přístupové právo odpovídající předané masce.
' V našem případě se o práva nejedná, protože se nejedná o chráněný číselník.
' Pokud došlo ke korekci, je zobrazen seznam zkorigovaných interních identifikátorů.

Sub CorrectSelected()

  Dim mApplication As New AbraOLE.Application
  Dim mRoll As Roll
  Dim mSelected As New NxStrings

  mSelected.Add "0005810000"
  mSelected.Add "0005820000"
  mSelected.Add "1111111111" 'spatne ID

  Set mRoll = mApplication.GetRoll("K0TL1BKM1RD13ACL03KIU0CLP4", 0)
  mRoll.Params.Add "@IsInComplete=N"
  If mRoll.CorrectSelected(mSelected) Then
    MsgBox mSelected.Text
  End If
End Sub

Vyhľadanie v číselníku podľa časti údaja

' Funkce dohledá v číselníku účetního rozvrhu první účet, který začíná "31".
' Číselník je obmedzený podľa kompletných účtov.
' Pokud byl účet nalezen, je v messageboxu zobrazen interní identifikátor i celý kód nalezeného účtu.

Sub FindByPart()
 
  Dim mApplication As New AbraOLE.Application
  Dim mRoll As Roll
  Dim mID As String
  Dim mText As String
  Dim mTextField As String
 
  mID = ""
  mText = "31"
  mTextField = "CODE"

  Set mRoll = mApplication.GetRoll("K0TL1BKM1RD13ACL03KIU0CLP4", 0)
  mRoll.Params.Add "@IsInComplete=N"
  If mRoll.FindByPart(mTextField, mText, mID) Then
    MsgBox mID
    MsgBox mText
  End If
End Sub

Vyhľadanie podľa interného identifikátora

' Funkce dohledá v číselníku účetního rozvrhu účet, jehož interní identifikátor je "0005810000".
' Číselník je obmedzený podľa kompletných účtov.
' Pokud byl účet nalezen je v messageboxu zobrazen název a kód nalezeného účtu.

Sub LookUp()
 
  Dim mApplication As New AbraOLE.Application
  Dim mRoll As Roll
  Dim mID As String
  Dim mText As String
  Dim mTextField As String

  mID = "0005810000"
  mText = ""
  mTextField = "CODE"
 
  Set mRoll = mApplication.GetRoll("K0TL1BKM1RD13ACL03KIU0CLP4", 0)
  mRoll.Params.Add "@IsInComplete=N"
  If mRoll.Lookup(mID, mTextField, mText) Then
    MsgBox mText
  End If
  mTextField = "NAME"
  If mRoll.Lookup(mID, mTextField, mText) Then
    MsgBox mText
  End If
End Sub

Získanie všetkých interných identifikátorov

' Funkce získá seznam všech interních identifikátorů z číselníku řad dokladů.
' Číselník je omezený za typy dokladů 03-faktury vydané, 04-faktury přijaté a 00-interní doklady.
' V messageboxu jsou zobrazeny interní identifikátory řad dokladů.

Sub GetIDs()
 
  Dim mApplication As New AbraOLE.Application
  Dim mRoll As Roll
  Dim mSelected As New NxStrings
  
  Set mRoll = mApplication.GetRoll("{A133BBE0-1FF0-11D2-9911-00E0ED0111A9}", 0)
  mRoll.Params.Add "FilterDocumentType=03;04;00"
  Set mSelected = mRoll.GetIDs
  MsgBox mSelected.Text
End Sub