Форум: "Базы";
Текущий архив: 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.
В чем проблема непонятно. Если кто может помогите.
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2002.02.18;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.004 c