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

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

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

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

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

Спасибо.
...
Рейтинг: 0 / 0
03.05.2005, 10:06
    #33045479
O_Vital
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
OWC Chart и Pivottable в Delphi
Здравствуйте, svg.
Полезная и очень нужна штука, я вот тоже пытался разобраться, добиться синхронной работы - ничего не получилось, жаль...
Если у вас всё-таки получится связать PivotTable и ChartSpace, оставьте, плиз, на форуме сообщение или намыльте мне.
...
Рейтинг: 0 / 0
03.05.2005, 11:05
    #33045627
хламист
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
OWC Chart и Pivottable в Delphi
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
03.05.2005, 14:21
    #33046207
хламист
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
OWC Chart и Pivottable в Delphi
svgПодскажите, как создать Chart из PivotTable в Delphi.
Я пробую по аналогии с PivotTable создавать Chart так:

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

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

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

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

Спасибо.

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

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

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

У меня возникли проблемы при присваивании Chart источников данных - говорит, что объект автоматизации не модерживает таких методов!
Кто-то может подсказать, как ему присвоить строку коннекта и запрос (по аналогии с PivotTable) или как-то еще?
...
Рейтинг: 0 / 0
04.05.2005, 10:25
    #33047450
O_Vital
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
OWC Chart и Pivottable в Delphi
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
04.05.2005, 11:58
    #33047742
хламист
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
OWC Chart и Pivottable в Delphi
O_Vital2хламист:
Это не то.

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

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

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

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

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

з.ы. тема для меня пока не актуальна, просто совершенно спонтанно в голову пришла идея реализации. проверил, а оно работает.....
...
Рейтинг: 0 / 0
28.06.2005, 16:29
    #33138778
Валек
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
OWC Chart и Pivottable в Delphi
для меня тема тоже уже не актуальна, но интересен способ реализации т.к. в свое время как только не бился над этим вопросом делфях6, мож уже в последних что нить исправели
...
Рейтинг: 0 / 0
29.06.2005, 10:40
    #33139701
O_Vital
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
OWC Chart и Pivottable в Delphi
Всё работает по принципу т.н. позднего связывания и св-ва 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
29.06.2005, 10:42
    #33139710
svg
svg
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
OWC Chart и Pivottable в Delphi
Спасибо! Буду на досуге пробовать...
;)
...
Рейтинг: 0 / 0
Форумы / OLAP и DWH [игнор отключен] [закрыт для гостей] / OWC Chart и Pivottable в Delphi / 20 сообщений из 20, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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