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