Как передать Массив в метод COM объекта?
☑
0
toypaul
гуру
28.08.18
✎
17:45
В описании метода написано
When the DataSourceIndex argument is set to chDataLiteral, you can set DataReference to a one-dimensional array or a comma-delimited list.
И есть такой пример
Dim asSeriesNames(1)
Dim asCategories(7)
Dim aiValues(7)
Dim chConstants
Dim chtNewChart
asSeriesNames(0) = "Satisfaction Data"
asCategories(0) = "Very Good"
asCategories(1) = "Good"
asCategories(2) = "N/A"
asCategories(3) = "Average"
asCategories(4) = "No Response"
asCategories(5) = "Poor"
asCategories(6) = "Very Poor"
aiValues(0) = 10
aiValues(1) = 22
aiValues(2) = 6
aiValues(3) = 31
aiValues(4) = 5
aiValues(5) = 14
aiValues(6) = 12
Set chConstants = ChartSpace1.Constants
' Add a new chart to Chartspace1.
Set chtNewChart = ChartSpace1.Charts.Add
' Specify that the chart is a column chart.
chtNewChart.Type = chConstants.chChartTypeColumnClustered
' Bind the chart to the arrays.
chtNewChart.SetData chConstants.chDimSeriesNames, chConstants.chDataLiteral, asSeriesNames
chtNewChart.SetData chConstants.chDimCategories, chConstants.chDataLiteral, asCategories
chtNewChart.SeriesCollection(0).SetData chConstants.chDimValues, chConstants.chDataLiteral, aiValues
End Sub
но если я передаю из 1С массив, выдает ошибку
Произошла исключительная ситуация (0x800a03ec)
строку воспринимает нормально. что ему не нравится не пойму?
1
toypaul
гуру
28.08.18
✎
17:50
пфф... разобрался
МеткиВремени = Новый COMSafeArray(Массив,"VT_I4",3);
Я не хочу быть самым богатым человеком на кладбище. Засыпать с чувством, что за день я сделал какую-нибудь потрясающую вещь — вот что меня интересует. Стив Джобс