powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / OLAP и DWH [игнор отключен] [закрыт для гостей] / OWC Chart и Pivottable в Delphi
20 сообщений из 20, страница 1 из 1
OWC Chart и Pivottable в Delphi
    #33043966
svg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
svg
Гость
Подскажите, как создать Chart из PivotTable в Delphi.
Я пробую по аналогии с PivotTable создавать Chart так:

OleContainer.CreateObject('OWC.Chart',False);

Он создается (OWC11), но у меня не получается присваивать ему никакие источники данных - говорит, что объект автоматизации не поддерживает таких методов!

Хочется "синхронного" с PivotTable изменения диаграмм...

Помогите, кто умеет!
Дело ведь актуальное для всех, кто с PivotTable работает в своих приложениях на Delphi - таблицой проще формировать данные, а график гораздо нагляднее.

Спасибо.
...
Рейтинг: 0 / 0
OWC Chart и Pivottable в Delphi
    #33045479
O_Vital
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Здравствуйте, svg.
Полезная и очень нужна штука, я вот тоже пытался разобраться, добиться синхронной работы - ничего не получилось, жаль...
Если у вас всё-таки получится связать PivotTable и ChartSpace, оставьте, плиз, на форуме сообщение или намыльте мне.
...
Рейтинг: 0 / 0
OWC Chart и Pivottable в Delphi
    #33045627
хламист
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
svgПодскажите, как создать Chart из PivotTable в Delphi.
Я пробую по аналогии с PivotTable создавать Chart так:

OleContainer.CreateObject('OWC.Chart',False);

Он создается (OWC11), но у меня не получается присваивать ему никакие источники данных - говорит, что объект автоматизации не поддерживает таких методов!

Хочется "синхронного" с PivotTable изменения диаграмм...

Помогите, кто умеет!
Дело ведь актуальное для всех, кто с PivotTable работает в своих приложениях на Delphi - таблицой проще формировать данные, а график гораздо нагляднее.

Спасибо.
на с# это выглядит так:

this.axChartSpace1.DataSource = this.axPivotTable1.GetOcx() as msdatasrc.DataSource;
...
Рейтинг: 0 / 0
OWC Chart и Pivottable в Delphi
    #33046207
хламист
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
svgПодскажите, как создать Chart из PivotTable в Delphi.
Я пробую по аналогии с PivotTable создавать Chart так:

OleContainer.CreateObject('OWC.Chart',False);

Он создается (OWC11), но у меня не получается присваивать ему никакие источники данных - говорит, что объект автоматизации не поддерживает таких методов!

Хочется "синхронного" с PivotTable изменения диаграмм...

Помогите, кто умеет!
Дело ведь актуальное для всех, кто с PivotTable работает в своих приложениях на Delphi - таблицой проще формировать данные, а график гораздо нагляднее.

Спасибо.

http://]http://support.microsoft.com/kb/286320
...
Рейтинг: 0 / 0
OWC Chart и Pivottable в Delphi
    #33046219
O_Vital
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2хламист:
Это не то.

OWC Chart и Pivottable в Delphi
...
Рейтинг: 0 / 0
OWC Chart и Pivottable в Delphi
    #33047398
svg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
svg
Гость
Если их в Delphi не получается синхронизировать, то как приблизиться к результату?

Я решил для начала создавать Chart и напихивать в него такие же данные, как в таблице, но:

У меня возникли проблемы при присваивании Chart источников данных - говорит, что объект автоматизации не модерживает таких методов!
Кто-то может подсказать, как ему присвоить строку коннекта и запрос (по аналогии с PivotTable) или как-то еще?
...
Рейтинг: 0 / 0
OWC Chart и Pivottable в Delphi
    #33047450
O_Vital
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
svg
Кто-то может подсказать, как ему присвоить строку коннекта
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
with ChartSpace1 do begin
    DisplayToolbar := true;
    ConnectionString := 'Provider=MSOLAP.2;Integrated Security=SSPI;Persist Security Info=True;Data Source=SERVERNAME;Initial Catalog=DATABASENAME;Client Cache Size=25;Auto Synch Period=10000';

    DataMember := 'CUBENAME';

    DisplayFieldList := true;
  end;
...
Рейтинг: 0 / 0
OWC Chart и Pivottable в Delphi
    #33047742
хламист
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
O_Vital2хламист:
Это не то.

OWC Chart и Pivottable в Delphi
какая разница в чем?!!!
PivotTable он и в африке PivotTable! или Delphi по другому работает с COM?
просто Delphi я не владею, написал пример на шарпе
но общая идея одна: подсунуть свойтву DataSource объекта Chart результат возвращаемый методом GetOcx объекта PivotTable, я это проделывал в обработчике события загрузки формы когда контролы уже проинициализированы
В шарпе строгая типизация и результат метода надо приводить к интерфейсу msdatasrc.DataSource, возможно в Delphi это не нужно (не пинайте не знаю) и прокатит так:
axChartSpace1.DataSource = axPivotTable1.GetOcx
...
Рейтинг: 0 / 0
OWC Chart и Pivottable в Delphi
    #33047810
svg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
svg
Гость
2хламист
Разницы между теорией и практикой теоретически нет, а практически - есть ;)

Delphi не имеет описаний тех типов, которые Вы используете. PivotTable создается через OLE и имеет ограничения и т.д.
И говорить, что это недостаток Delphi не надо...
...
Рейтинг: 0 / 0
OWC Chart и Pivottable в Delphi
    #33047843
хламист
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
svg2хламист
И говорить, что это недостаток Delphi не надо...
Разве я это говорил?
Спорить не буду, возможно это подводные камни использования OWC в Delphi. Хотя я много где использовал OWC и как правило сложности решались.
Думаю вам нужно в форум по Delphi...
...
Рейтинг: 0 / 0
OWC Chart и Pivottable в Delphi
    #33048990
svg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
svg
Гость
хламист, а чего делает эта функция GetOcx?
Нету ее нигде...

Я думаю, что чего-нибудь из Регистри читает или чего-то в этом роде. Может она достаточно проста в реализации?
...
Рейтинг: 0 / 0
OWC Chart и Pivottable в Delphi
    #33055582
Dmitry Biryukov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 svg:
попробуйте просто ChartSpace1.DataSource := PivotTable1
...
Рейтинг: 0 / 0
OWC Chart и Pivottable в Delphi
    #33055586
svg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
svg
Гость
пробовал
PivotChart.DataSource := PivotTable1 as MSDATASRC_TLB.DataSource;
Не работает!

Народ, а надо кроме присвоения DataSource заполнять другие свойства, типа
DataMember, ConnectionString, CommandText?
я заполнял, но максимум, чего добился - просто работающего Chart на котором можно строить диаграмму, в то время как хочется иметь Chart синхронизированный с PivotTable...
...
Рейтинг: 0 / 0
OWC Chart и Pivottable в Delphi
    #33055649
Dmitry Biryukov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а что значит "не работает"?
какого типа PivotChart?
в конце-концов в списке свойств чарта найдите DataSource и в выпадающем списке выберите PivotTable1
...
Рейтинг: 0 / 0
OWC Chart и Pivottable в Delphi
    #33055716
svg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
svg
Гость
То и означает - ничего не отображает при таком присвоении и данных не видит.
Тип чарта TChartSpace. А из списка выбирать на получится- список пустой (ActiveX компонент в Delphi6).
...
Рейтинг: 0 / 0
OWC Chart и Pivottable в Delphi
    #33055780
Dmitry Biryukov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ну тогда лучше спросить у спецов по дельфи
те, кто использует МС-овские платформы, проблем не испытывают
http://support.microsoft.com/kb/286320
...
Рейтинг: 0 / 0
OWC Chart и Pivottable в Delphi
    #33138624
O_Vital
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
O_VitalЗдравствуйте, svg.
Полезная и очень нужна штука, я вот тоже пытался разобраться, добиться синхронной работы - ничего не получилось, жаль...
Если у вас всё-таки получится связать PivotTable и ChartSpace, оставьте, плиз, на форуме сообщение или намыльте мне.

знаю как сделать, если кому интересно, пишите, объясню в ветке подробно.

з.ы. тема для меня пока не актуальна, просто совершенно спонтанно в голову пришла идея реализации. проверил, а оно работает.....
...
Рейтинг: 0 / 0
OWC Chart и Pivottable в Delphi
    #33138778
Фотография Валек
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
для меня тема тоже уже не актуальна, но интересен способ реализации т.к. в свое время как только не бился над этим вопросом делфях6, мож уже в последних что нить исправели
...
Рейтинг: 0 / 0
OWC Chart и Pivottable в Delphi
    #33139701
O_Vital
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всё работает по принципу т.н. позднего связывания и св-ва OleObject, которое есть у всех импортированных ActiveX контролов.

1. Импортируем OWC11.dll, получаем OWC11_TLB.pas
2. В классе TChartSpace создаем метод
Код: plaintext
1.
2.
3.
4.
5.
6.
TChartSpace = class(TOleControl)
..........
public
.......
__Set_DataSource(Value: OleVariant);
........
end;
3. Создаем реализацию метода
Код: plaintext
1.
2.
3.
procedure TChartSpace.__Set_DataSource(Value: OleVariant);
begin
  Self.OleObject.DataSource := Value;  
end;
4. Использование:
Код: plaintext
ChartSpace1.__Set_DataSource(PivotTable1.OleObject);
5. нажимаем F9 :-)))

Реализовывал в D5, должно работать и во всех остальных версиях.
Особо не тестировал, но на первый взгляд работает нормально.
Если найдетет глюки обязательно пишите
вроде ничего не забыл.

з.ы. примерно таким же способом можно достучаться и до св-в у которых index -1, например TPivotTable.SelectionType, TPivotTable.DisplayOfficeLogo и т.д.
прописываем свой index и определяем свои методы для чтения и записи св-в для каждого типа.
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
.......
 property SelectionType: WideString index - 10001  read GetMyWideStringProp;
 property DisplayOfficeLogo: WordBool index - 10002  read GetMyWordBoolProp write SetMyWordBoolProp stored False;
.....

function TPivotTable.GetMyWideStringProp(Index: integer): WideString;
var
  v: OleVariant;
begin
  v := Self.OleObject;
  case Index of
    - 10001 : Result := v.SelectionType;
  else
    Raise Exception.Create('Property with index ' + IntToStr(Index) + 'not found!!!');
  end;
end;

procedure TPivotTable.SetMyWideStringProp(Index: integer; Value: WideString);
var
  v: OleVariant;
begin
{
  v := Self.OleObject;
  case Index of
//    - 10001 : Result := v.SelectionType; только для чтения

  else
    Raise Exception.Create('Property with index ' + IntToStr(Index) + 'not found!!!');
  end;
  }
end;

function TPivotTable.GetMyWordBoolProp(Index: integer): WordBool;
var
  v: OleVariant;
begin
  v := Self.OleObject;
  case Index of
    - 10002 : Result := v.DisplayOfficeLogo;
  else
    Raise Exception.Create('Property with index ' + IntToStr(Index) + 'not found!!!');
  end;
end;

procedure TPivotTable.SetMyWordBoolProp(Index: integer; Value: WordBool);
var
  v: OleVariant;
begin
  v := Self.OleObject;
  case Index of
    - 10002 : v.DisplayOfficeLogo := Value;
  else
    Raise Exception.Create('Property with index ' + IntToStr(Index) + 'not found!!!');
  end;
end;
...
Рейтинг: 0 / 0
OWC Chart и Pivottable в Delphi
    #33139710
svg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
svg
Гость
Спасибо! Буду на досуге пробовать...
;)
...
Рейтинг: 0 / 0
20 сообщений из 20, страница 1 из 1
Форумы / OLAP и DWH [игнор отключен] [закрыт для гостей] / OWC Chart и Pivottable в Delphi
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]