29.11.2010, 08:59 | #1 |
Участник
|
Microsoft Office Chart 11
Помещаю на форму ActiveX компонент "Microsoft Office Chart 11".
Затем при нажатии на кнопку делаю следующее: X++: void clicked() { Com charts; Com chart; ; super(); charts = msChart.Charts();//Получаю Charts. Ожидаю, что это аналог Charts из скриптов при создании графиков в экселе. chart = Charts.Add(); //chart = Charts.item(0); // Снятие комментария с этой строки ничего не меняет chart.HasTitle(true); //Выполняется - заголовок выводится chart.ChartType(72); //xlXYScatterSmooth тут и вылетает } Собственно сам затык он происходит вот здесь, т.к. потом точно такие же сообщения выдаются и на попытки создать серии и т.п. Кто-нибудь знает как у этого контрола достучаться до графиков? |
|
29.11.2010, 09:10 | #2 |
Участник
|
__________________
С уважением, Александр. |
|
29.11.2010, 09:15 | #3 |
Участник
|
Там смотрел. Первым делом. Там с документом Эксель работают. А в остальном разницы нет -
X++: Charts.Add(); Chart = m_comDocument.ActiveChart(); ... Chart.ChartType(65); |
|
29.11.2010, 09:50 | #4 |
MCP
|
Цитата:
|
|
29.11.2010, 09:52 | #5 |
Участник
|
Потому что, надо так
X++: Chart.Type(23); // chChartTypeScatterSmoothLine Microsoft Office Web Components Visual Basic Reference
__________________
Axapta v.3.0 sp5 kr2 |
|
|
За это сообщение автора поблагодарили: Димитрий (1). |
29.11.2010, 10:01 | #6 |
MCP
|
Цитата:
Сообщение от AndyD
Потому что, надо так
X++: Chart.Type(23); // chChartTypeScatterSmoothLine Microsoft Office Web Components Visual Basic Reference X++: { ComExcelDocument_RU doc = new ComExcelDocument_RU(); COM xlApp; COM wbook; COM activeSheet; int i; COM charts; COM activeChart; COM rangeOutputHeader; COM range; COM seriesCollection; COM series; ; doc.NewFile(); wbook = doc.getComDocument(); xlApp = wbook.Parent(); activeSheet = xlApp.ActiveSheet(); // генерация тестовых данных для примера for (i=1; i<=10; i++) doc.insertValue(ComExcelDocument_RU::numToNameCell(i,1), i*10); // тестовые значения для XValues for (i=5; i<=23; i+=2) doc.insertValue(ComExcelDocument_RU::numToNameCell(i,2), strFmt('Категория %1', i)); // организация непрерывного диапазона в AA2:AJ2 range = activeSheet.Range('AA2'); for (i=22;i>=13;i--) { range.FormulaR1C1(strFmt('=RC[-%1]', i)); range = range.Offset(0, 1); } rangeOutputHeader = activeSheet.Range('AA2:AJ2'); // построение диаграммы charts = wbook.Charts(); activeChart = charts.Add(); activeChart.ChartType(5); // 5 = xlPie activeChart.SetSourceData(activeSheet.Range('A1:J1')); series = activeChart.SeriesCollection(1); // немного странно, что это работает, не требуя промежуточного series = seriesCollection.Item(1); // если организацию непрерывного диапазона перенести сюда, // то будут описанные выше проблемы с формулами series.XValues(rangeOutputHeader); // и, как хотелось, здесь Range, а не стринг activeChart.Location(2, activeSheet.Name()); // 2 = xlLocationAsObject } |
|
29.11.2010, 10:08 | #7 |
Участник
|
Э.
Вы сейчас пишите про Excel, а Дмитрий спрашивает и я отвечаю про ActiveX, который и является компонентом Office Web Components
__________________
Axapta v.3.0 sp5 kr2 |
|
|
За это сообщение автора поблагодарили: kornix (1). |
29.11.2010, 10:09 | #8 |
Участник
|
это работает корректно, видимо, потому, что диаграммы берутся из рабочей книги, а не из контрола ActiveX
X++: COM wbook; ; doc.NewFile(); wbook = doc.getComDocument(); charts = wbook.Charts();
__________________
С уважением, Александр. |
|
|
За это сообщение автора поблагодарили: kornix (1). |
29.11.2010, 10:15 | #9 |
MCP
|
|
|
29.11.2010, 10:35 | #10 |
Участник
|
Спасибо.
|
|
29.11.2010, 10:40 | #11 |
Участник
|
Димитрий, зайдите в режим правки дизайна вашей формы, выберите ваш элемент ActiveX - msChart, нажмите правой кнопкой мыши на нем, выберите необходимый пункт меню настроек ("Данные" или "Команды и параметры") - таким образом вы можете произвести необходимые настройки данного контрола (в том числе и тип диаграммы), не прибегая к программированию.
__________________
С уважением, Александр. Последний раз редактировалось samolalex; 29.11.2010 в 10:53. |
|
|
|