Форум: "Базы";
Поиск по всему сайту: delphimaster.net;
Текущий архив: 2002.02.18;
Скачать: [xml.tar.bz2];




Вниз

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


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.
В чем проблема непонятно. Если кто может помогите.




Форум: "Базы";
Поиск по всему сайту: delphimaster.net;
Текущий архив: 2002.02.18;
Скачать: [xml.tar.bz2];




Наверх





Память: 0.75 MB
Время: 0.027 c
1-57075           kaif                  2002-02-01 16:52  2002.02.18  
Директива {$DEFINE mmm}


1-57057           Елена                 2002-02-02 09:45  2002.02.18  
StringGrid + ComboBox


6-57161           Lana                  2001-11-27 02:34  2002.02.18  
Треб. совет!


7-57233           neverbee              2001-11-13 14:32  2002.02.18  
Подскажите как програмно можно выключить/включить Service?


3-57008           Andrushk              2002-01-23 17:11  2002.02.18  
Как удалить записи в FoxPro шной таблице