Справочное руководство по TDMS 5.0 API
VB Script
Смотри также Послать замечания

Glossary Item Box

Исходный код

Call TestSelectDlg()

'==============================================================================
'Показать диалог выбора с разными наборами данных

Sub TestSelectDlg()
        InputArray = Array("Массив строк", "Массив объектов", "Коллекция TDMSUsers")
        'Открыть диалог, передав на вход массив строк
        Set SelDlg = ThisApplication.Dialogs.SelectDlg 
        SelDlg.SelectFrom = InputArray
        SelDlg.Caption = "Наименования типов входных данных"
        SelDlg.Prompt = "Выберите тип данных, который будет передан диалогу:"
        RetVal = SelDlg.Show 
        
        'Если ничего не выбрано, выйти из процедуры
        If (RetVal <> True) Or (UBound(SelDlg.Objects)<0) Then Exit Sub
        
        'Получить выбор пользователя - используя свойство Objects
        SelectedArray = SelDlg.Objects
        For i=0 To Ubound(SelectedArray)
                If SelectedArray(i) = InputArray(0) Then 
                                                                                        Call ShowStrings()
                ElseIf  SelectedArray(i) = InputArray(1) Then 
                                                                                        Call ShowArray()
                 ElseIf SelectedArray(i) = InputArray(2) Then 
                                                                                         Call ShowCollection()
                 End If
        Next
End Sub 
'==============================================================================

Sub     ShowStrings()
        'Заполнить массив строками - наименованиями типов объектов
        i = -1 
        For Each ObjectDef In ThisApplication.ObjectDefs
                i = i + 1 
                Redim Preserve InputArray(i) 
                InputArray(i) = ObjectDef.Description
        Next 
        
        'Открыть диалог, передав на вход массив строк
        Set SelDlg = ThisApplication.Dialogs.SelectDlg 
        SelDlg.SelectFrom = InputArray
        SelDlg.Caption = "Наименования типов объектов"
        SelDlg.Prompt = "Выберите одну или несколько строк:"
        RetVal = SelDlg.Show 
        
        If RetVal <> FALSE Then
                'Перечислить выбранные пользователем строки
                SelectedArray = SelDlg.Objects 
                For Each Elem In SelectedArray 
                        MsgBox Elem
                Next 
        End If
End Sub
        
'==============================================================================

Sub     ShowArray()
        'Открыть диалог, передав на вход массив объектов, лежащих на Рабочем столе пользователя
        Set SelDlg = ThisApplication.Dialogs.SelectDlg 
        SelDlg.SelectFrom = ThisApplication.Desktop.Objects
        SelDlg.Caption = "Объекты на Рабочем столе"
        SelDlg.Prompt = "Выберите один или несколько обеъктов:"
        RetVal = SelDlg.Show 
        
        If RetVal <> FALSE Then
                'Перечислить выбранные пользователем объекты
                Set SelectedArray = SelDlg.Objects
                For Each Elem In SelectedArray 
                        MsgBox Elem.Description
                Next 
        End If
End Sub
        
'==============================================================================

Sub     ShowCollection()
        'Передать на вход диалога коллекцию пользователей
        Set SelDlg = ThisApplication.Dialogs.SelectDlg 
        SelDlg.SelectFrom = ThisApplication.Users 
        SelDlg.Caption = "Список пользователей"
        SelDlg.Prompt = "Выберите одного или несколько пользователей:"
        RetVal = SelDlg.Show 
        
        If RetVal <> FALSE Then
                'Перечислить выбранных пользователей
                Set SelectedUsersCol = SelDlg.Objects
                For Each User In SelectedUsersCol 
                        MsgBox User.Description
                Next 
        End If
End Sub 
'==============================================================================

Sub     ShowStringCollection()
        'Передать на вход диалога коллекцию с произвольными строками
        set Col = ThisApplication.CreateCollection(4)

        col.Add "Омск"
        col.Add "Выбрг"
        col.Add "Ленинград"
        col.Add "Москва"

        set selDlg = ThisApplication.Dialogs.SelectDlg
        selDlg.SelectFrom = col
        selDlg.Show

        set retCol = selDlg.Objects

        for each str in retCol
            MsgBox str
        next

End Sub 
'==============================================================================

Sub     ShowRoleCollection()
        'Передать на вход диалога коллекцию ролей
        set selDlgRoles = ThisApplication.Dialogs.SelectDlg
        selDlgRoles.SelectFrom = ThisObject.Roles
        selDlgRoles.Show

        set retColRoles = selDlgRoles.Objects

        for each Role in retColRoles
            MsgBox Role.User.Description
        next

End Sub 
'==============================================================================

Sub     ShowSheet()
        'Передать на вход диалога таблицу
        Set sheet = ThisApplication.CreateSheet
        sheet.AddColumn(2)
        sheet.AddRow(3)
        sheet.CellValue(0,0) = "Москва"
        sheet.CellValue(0,1) = "10500"
        sheet.CellValue(1,0) = "Санкт-Петербург"
        sheet.CellValue(1,1) = "5500"
        sheet.CellValue(2,0) = "Владивосток"
        sheet.CellValue(2,1) = "1000"

        Set dlg = ThisApplication.Dialogs.SelectDlg
        dlg.SelectFrom = sheet
        if dlg.Show then
            Set sel = dlg.Objects
            MsgBox sel.CellValue(0,0)
        end if
End Sub 
'==============================================================================


© 2016 CSoft Development. Все права защищены.