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