GetListValues(ArrayIdTableParamValue As Variant) As Variant ( Function )


Получить список значений

Синтаксис:

objectvariable.GetListValues( ArrayIdTableParamValue )

objectvariable - ITCSNormTables

ArrayIdTableParamValue - массив идентификаторов параметров таблицы (массив должен начинаться с 0)

Возвращает: массив со значениями таблицы (если ArrayIdTableParamValue=Null, то массив будет иметь все табличные значения, если в массиве ArrayIdTableParamValue будут указаны только часть идентификаторов (не указанные должны быть -1), то возвращаемый массив будет содержать табличные значения для неуказанных идентификаторов)


Пример на VB Script:
Sub Test1()
    
    Dim NormSettingTables
    Dim TableValues
    Dim UsrGm
    Dim cn
    Dim cnt
    
    Set NormSettingTables = TCSApp.GetNormSettingTables
    
    If NormSettingTables.RunModuleForSelect("Выберите таблицу трудового нормирования", False) Then
           
        TableValues = NormSettingTables.GetListValues( Null )
        If Not IsEmpty(TableValues) Then
            Set UsrGm = TCSApp.CreateUserGModule("GM_TestVIS")
            Call UsrGm.ClearProps
            Call UsrGm.ClearScripCommands
            UsrGm.ReadOnlyUserMode = False
            
            For cn=1 to UBound(TableValues,2)
                Call UsrGm.AddProp("P"+cStr(cn), "P"+cStr(cn), 1, True, True, 40)
            Next
            For cnt=1 to UBound(TableValues,1)
                Call UsrGm.CancelChanges
                Call UsrGm.CreateNew
                For cn=1 to UBound(TableValues,2)
                    UsrGm.Properties("P" + cStr(cn)).Value = TableValues(cnt,cn)
                Next
                Call UsrGm.SaveChanges
            Next
            UsrGm.ReadOnlyUserMode = True      
            UsrGm.First
            I = UsrGm.ShowModal(NormSettingTables.Properties("NAME").DisplayText)
        
        End If
        
    End If
    
    Set NormSettingTables = Nothing
End Sub
Sub Test2()
    
    Dim NormSettingTables
    Dim TableValues
    Dim UsrGm
    Dim cn
    Dim cnt
    Dim ArrayIdTableParamValue()
    Dim cnP
    
    Set NormSettingTables = TCSApp.GetNormSettingTables
    
    If NormSettingTables.RunModuleForSelect("Выберите таблицу трудового нормирования", False) Then
        Set TableParams = NormSettingTables.Properties("TableParams").AsIDispatch
        cnP = 0
        TableParams.First
        Do While Not TableParams.EOF
            Redim Preserve ArrayIdTableParamValue(cnP)
            Set TableParamValue = TableParams.Properties("TableParamValue").AsIDispatch
            If TableParamValue.RunModuleForSelect("Выберите значение для: "+TableParams.Properties("TABLE_PARAM_NAME").DisplayText, False) Then
                ArrayIdTableParamValue(cnP) = TableParamValue.Properties("ID").AsInteger
            Else
                ArrayIdTableParamValue(cnP) = -1
            End If
            cnP = cnP + 1
            TableParams.Next
        Loop
        Set TableParamValue = Nothing
        Set TableParams = Nothing
           
        TableValues = NormSettingTables.GetListValues( ArrayIdTableParamValue )
        If Not IsEmpty(TableValues) Then
            Set UsrGm = TCSApp.CreateUserGModule("GM_TestVIS")
            Call UsrGm.ClearProps
            Call UsrGm.ClearScripCommands
            UsrGm.ReadOnlyUserMode = False
            
            For cn=1 to UBound(TableValues,2)
                Call UsrGm.AddProp("P"+cStr(cn), "P"+cStr(cn), 1, True, True, 40)
            Next
            For cnt=1 to UBound(TableValues,1)
                Call UsrGm.CancelChanges
                Call UsrGm.CreateNew
                For cn=1 to UBound(TableValues,2)
                    UsrGm.Properties("P" + cStr(cn)).Value = TableValues(cnt,cn)
                Next
                Call UsrGm.SaveChanges
            Next
            UsrGm.ReadOnlyUserMode = True      
            UsrGm.First
            I = UsrGm.ShowModal(NormSettingTables.Properties("NAME").DisplayText)
        
        End If
        
    End If
    
    Set NormSettingTables = Nothing
End Sub