Вниз
Скачать: CL | DM;

Пожалуйста помогите советом в реализации метакуба..   Найти похожие ветки 

← →
nastuha   (2002-01-18 09:50) [0]

Здравствуйте,Уважаемые Мастера! Пожалуйста помогите....
Программа строится на компонентах "Inter Base", без алиасов...
Есть ли какие-нибудь компоненты чтобы реализовать следующее:
Есть IB БД в которой есть табл1. с полями "код", "Датчик"
табл2. -"Код Датчика", "Показания датч." "Дата показаний"
На основе этой информации создаю запрос с выборкой по определенным датчикам в интервале с "Дата нач." по "Дата кон."
В результате получаю примерно так:
Дата1 Датчик1 Показание11
Дата2 Датчик1 Показание12
Дата3 Датчик1 Показание13
....
Дата1 Датчик2 Показание21
Дата3 Датчик2 Показание22
Дата4 Датчик2 Показание23
.... и т.д.
Мне нужно представить это в виде:
Датчик1 Датчик2 ...... (неизвестно заранее сколько)
Дата1 ххх ххх
Дата2 ххх
Дата3 ххх ххх ... и так далее...


← →
Digitman ©   (2002-01-18 10:42) [1]

Попробуй использовать компоненты из палитры Decision Cube. Поскольку св-во класса TDecisionCube.DataSet позволяет использовать НД, формируемый любым наследником TDataSet, ты можешь назначить значением этого св-ва компонент TIBQuery (вместо TDecisionQuery, использующего BDE). Дальше, вроде бы, проблем быть не должно


← →
Mike_Goblin ©   (2002-01-18 11:13) [2]

2>Digitman
Эх опередил :)))) я знал, я знал ответ на этот вопрос


← →
Юрий Жуков ©   (2002-01-18 11:31) [3]

Можно также использовать ActiveX из набора MS Office Web components (входит в состав Office, но можно скачать отдельно).

Выглядит конечно поприятнее борлановских контролов,
Подробности здесь:
http://www.olap.ru/desc/microsoft/cmp_mcr.asp
Сам использую ХП-шный (на него кстати апдейт вышел).
Но тебе для использования прийдется поставить какой нибдудь OLE DB провайдер для Interbase. Слышал, что таких существует несколько, но сам ни разу не использовал


← →
Alexandr ©   (2002-01-18 12:00) [4]

насчет OLE DB провайдера
это однозначно сюда.

http://www.lcpi.lipetsk.ru/prog/russ/start/ibprov_ib.html


← →
Digitman ©   (2002-01-18 12:31) [5]

>Mike_Goblin
Взял бы тогда, да и доп.детали этой схемы рассказал бы автору) ... например, как запрос к IB корректно построить с учетом приведенного примера и тонкостей Dec.Cube, взаимодействующего не со своим Query, а с IBQuery


← →
nastuha   (2002-01-18 15:20) [6]

СПАСИБО!
Я то, все пыталась через DecisionQuery сделать, а все оказывается намного проще..


← →
Polevi ©   (2002-01-18 17:57) [7]

2Юрий Жуков ©
Попробовал я сей ActiveX - все чудесно, но если данные не помещаются в окне их никак не удается проскролить - скролбаров нет и на курсорные клавиши он никак не реагирует. Как быть ?


← →
Юрий Жуков ©   (2002-01-18 18:41) [8]

2Polevi:
Только что решил эту проблему.
Для случая если только Pivot на форме - делаем ему
align :=alNone

И все. Pivot Динамически меняет размеры, и форма сможет его проскроллировать, не очень красивое решение, но мне оно подходит

З.Ы. Елси достаточно скроллинга по вертикали, то можно Pivot указать align=alTop, но не в коем случае alClient.

З.Ы.Ы. А если поместь Pivot с align=alNone, то практически все проблемы исчезают. Во всяком случае на первый взгляд


← →
Polevi ©   (2002-01-19 13:09) [9]

Гм.. спасибо - но меня данный вариант не устравивает - я не могу Pivot кинуть на форму (в статье, ссылку на которую ты дал, эта проблема описана, и решается через OleContainer). Я так понимаю с XP-Pivot, который ты используешь таких проблем нет ?


← →
Юрий Жуков ©   (2002-01-20 12:00) [10]

Дело не в версии Pivot, и OleContainer как оказалось можно вовсе не использовать (похоже здесь авторы зря ругают Delphi). Чтобы заработал Pivot, достаточно включить в uses модуль OleCtnrs.pas. Я так понимаю дело в вызове функции OleInitialize.

Но правильней, на мой взгляд, будет следующее:

uses
ActiveX;
.....
initialization
OleInitialize(nil);
finalization
OleUninitialize;

end.



← →
vedmed ©   (2002-01-21 09:21) [11]

Если данные в таком виде необходимо только отображать, то можно попробовать использовать генераторы отчетов с поддержкой Cross-Tab (FastReport, PReport, ReportBuilder)


← →
Polevi ©   (2002-01-21 10:36) [12]

2Юрий Жуков ©
Пробовал я так - не работает :)
1. В object inspector нету свойств ConnectionString и CommandText (хотя если кинуть Pivot на форму Access там эти свойства присутствуют)
2. При попытке присвоить значения в рантайме - EOleSysError with message "Член группы не найден"..

Если в качестве контейнера использовать форму-Access - все работает.
Так что видимо авторы не зря ругали Delphi :))



← →
Юрий Жуков ©   (2002-01-21 14:33) [13]

2Polevi:
Хм, ну по крайней мере без оле контейнера на форме лежит, и можно ему на кнопку панели свойств нажать и задать ConnectionString и CommandText. Однака действительно с этой версией не все так просто. У меня тоже вылетает эта же ошибка, однако, когда он находится внутри OLE container, то все отлично.

Вообщем я затрудняюсь сказать почему так происходит (ответ лежит где - внутри исходников OLE Container), но могу посоветовать переходить на OWC 10 - Устанавливается отдельно, для урпвления программно не требует лицензии.


← →
Polevi ©   (2002-01-21 17:34) [14]

2Юрий Жуков ©
А нельзя ли OWC10 достать отдельно где-нибудь, а то OfficeXP у меня нету - на Microsofte нашел только update..


← →
Юрий Жуков2   (2002-01-21 19:03) [15]

2Polevi
Можно.
http://download.microsoft.com/download/officexpstandard/owc10/2/w98nt42kme/en-us/owc10.exe

Без установленного офиса он не показывает панель настроек, но вполне нормально работает. Подробности где-то у MS.


← →
RealyGrey   (2002-01-24 13:30) [16]

Может я чего не то делаю (что скорее всего). Но все, или почти все, что с такой легкостью делалось вышеописанными способами у меня не вышло. Вот Digitman сказал, что дальше проблем не должно быть, а у меня есть. Ну ладно сама проблема:
TDecisionCube.DataSet = TIBQuery
До компиляции в DecisionGrid Все видно и им можно даже попользоваться, но после компиляции выдается ошибка:
Cannot build the Decision Cube with an empty data set.
В чем проблема непонятно. Если кто может помогите.



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.49 MB
Время: 0.01 c
1-57081
Zuvom
2002-02-02 00:10
2002.02.18
Как проверить если дискета в дисководе?


1-57137
Иля
2002-02-03 13:39
2002.02.18
Automation objec


1-57045
Санька
2002-02-02 10:52
2002.02.18
Delphi 6 и Delphi 4


3-56976
Stocker
2002-01-23 11:23
2002.02.18
проблема с доступом SQl запроса под Interbase 5


1-57062
nikols
2002-02-01 16:34
2002.02.18
Какой тип у редактора свойства Expression компонента TQRExpr?




   Наверх