powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / OLAP и DWH [игнор отключен] [закрыт для гостей] / DrillThrough и OWC
20 сообщений из 20, страница 1 из 1
DrillThrough и OWC
    #33533329
NikolayS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем сдрасте!

У меня возникла проблема (а точнее сразу несколько проблем). Очень прошу помочь, кто делал что-то подобное.
Вообщем так.
Сделал я несколько кубов. И написал web приложение (на Visual Studio 2003, VB.NET), которое с помощью OWC11 отображает эти кубы. Очень хочется, чтобы была возможность на компоненте делать DrillThrough.
Почитал на этом форуме много постов на эту тему, но так ничего и не получилось.
Пытался прикрутить toolpack к OWC. Но не смог внятно в нем разобраться.
Мне надо, что-бы по двойному клику по Cell - открывалось новое окно браузера, в котором был бы результат DrillThrough запроса в виде таблицы.
Может кто нибудь подскажет, как можно отловить двойной клик по cell и послать нужный DrillThrough-запрос кубу?

Кстати в Excel у меня почемуто тоже DrillThrough не работает. Уже поставил Add-in для Excel. Проверил что везде (и в Cube Editore и в Role) DrillThrough разрешен, но все равно не пашет.

И еще, пытался c помощью Visual Studio 2003 (VB.NET) послать DrillThrough - запрос.
Но опять безуспешно.

Смотрел примеры:
1)
Dim con As New ADODB.Connection
Dim rs As ADODB.Recordset
con.ConnectionString = "Provider=MSOLAP.2; Data Source=localhost; Initial Catalog=FoodMart 2000;"
con.Open()
...
на этот код он мне выдает:
Database 'FoodMart 2000' does not exist

2)
Для этого примера я устанавливал ADOMD.NET:
Dim Con As New AdomdConnection
Con.ConnectionString = "Provider=MSOLAP.2; Data Source=localhost; Initial Catalog=FoodMart 2000;"
Con.Open()
...
на этот код он мне выдает:
Подключение не установлено, т.к. конечный компьютер отверг запрос на подключение

Помогите пожалуйста. Я уже 3 дня бьюсь, но даже ни на шаг не продвинулся.
Заранее благодарю.
...
Рейтинг: 0 / 0
DrillThrough и OWC
    #33533546
NikolayS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Да, чуть не забыл.
У меня: MSAS 2000, Excel 2003, VS2003
...
Рейтинг: 0 / 0
DrillThrough и OWC
    #33534258
O_Vital
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NikolaySВсем сдрасте!
1)
Dim con As New ADODB.Connection
Dim rs As ADODB.Recordset
con.ConnectionString = "Provider=MSOLAP.2; Data Source=localhost; Initial Catalog=FoodMart 2000;"
con.Open()
...
на этот код он мне выдает:
Database 'FoodMart 2000' does not exist

2)
Для этого примера я устанавливал ADOMD.NET:
Dim Con As New AdomdConnection
Con.ConnectionString = "Provider=MSOLAP.2; Data Source=localhost; Initial Catalog=FoodMart 2000;"
Con.Open()
...
на этот код он мне выдает:
Подключение не установлено, т.к. конечный компьютер отверг запрос на подключение


Что-то вы наверное умалчиваете, всё должно работать.
Из консоли (Analysis Manager) к AS можете подсоединиться?
...
Рейтинг: 0 / 0
DrillThrough и OWC
    #33534317
NikolayS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо, что откликнулись.

Да, конечно могу...
Я через Analysis Manager эти кубы и делал
...
Рейтинг: 0 / 0
DrillThrough и OWC
    #33534569
O_Vital
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NikolaySСпасибо, что откликнулись.

Да, конечно могу...
Я через Analysis Manager эти кубы и делал
даже не знаю, что сказать...какие-то странности...
может кто из гуру что-либо подскажет?
...
Рейтинг: 0 / 0
DrillThrough и OWC
    #33534762
SNI
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SNI
Гость
O_Vital, в любом случае спасибо за помощь.

Я думал может быть с ролями там что не так.

Добавил Domain Users в DataBase Roles.
Разрешил все кубы.
Не хочет.

Пробовал в VS OleDbConnection сделать через Wizard:
Выбрал OLE DB Provider for OLAP Services 8.0
Прописал localhost
Выбрал FoodMart 2000
И нажал на кнопку "проверить подключение"
Он сказал, что все ОК!!!

Но при попытке в коде выполнить Open() подключения он выдает: Database 'FoodMart 2000' does not exist
...
Рейтинг: 0 / 0
DrillThrough и OWC
    #33534957
O_Vital
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SNIO_Vital, в любом случае спасибо за помощь.

Я думал может быть с ролями там что не так.

Добавил Domain Users в DataBase Roles.
Разрешил все кубы.
Не хочет.

Пробовал в VS OleDbConnection сделать через Wizard:
Выбрал OLE DB Provider for OLAP Services 8.0
Прописал localhost
Выбрал FoodMart 2000
И нажал на кнопку "проверить подключение"
Он сказал, что все ОК!!!

Но при попытке в коде выполнить Open() подключения он выдает: Database 'FoodMart 2000' does not exist
В данном случае проблема не с ролями, так как вы соединяетесь через консоль и создаете/редактируете кубы.
А вы под тем же пользователем и с той же машины, что кубы создавали, пытаетесь из VB подсоединиться?
...
Рейтинг: 0 / 0
DrillThrough и OWC
    #33535073
NikolayS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Да, под темже и с тойже машины.

И более того когда программно соединяюсь через OWC компоненту, то все ок.
Примерно вот так:

MyPT.ConnectionString = "Provider=MSOLAP.2;Data Source=localhost;Initial Catalog=FoodMart 2000"
MyPT.DataMember = "Sales"
...
Рейтинг: 0 / 0
DrillThrough и OWC
    #33535105
NikolayS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Единственное различие в том, что я этот код:

MyPT.ConnectionString = "Provider=MSOLAP.2;Data Source=localhost;Initial Catalog=FoodMart 2000"
MyPT.DataMember = "Sales"

пишу на клиентской части web-приложения

А этот:

Dim Con As New AdomdConnection
Con.ConnectionString = "Provider=MSOLAP.2; Data Source=localhost; Initial Catalog=FoodMart 2000;"
Con.Open()

на серверной.
...
Рейтинг: 0 / 0
DrillThrough и OWC
    #33536090
O_Vital
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NikolayS, мне всё-таки кажется, вы что-то важное умалчиваете, расскажите подробнее архитектуру вашего решения.
...
Рейтинг: 0 / 0
DrillThrough и OWC
    #33536404
NikolayS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
По проблеме:

Dim Con As New AdomdConnection
Con.ConnectionString = "Provider=MSOLAP.2; Data Source=localhost; Initial Catalog=FoodMart 2000;"
Con.Open()
...
на этот код он мне выдает:
Подключение не установлено, т.к. конечный компьютер отверг запрос на подключение

У меня установлен Win XP
Стоит AS2000+sp4
Чесно говоря не могу точно понять какой SQL (скорее всего MSDE)
VS2003
Скачал и установил ADOMD.NET 8.0

Далее просто создаю Web-проект на VB.NET.
В Reference выбираю на вкладке .NET необходимые dll'ки
Вытаскиваю кнопку. И на серверном коде пишу:

Imports ADODB
Imports Microsoft.AnalysisServices.AdomdClient
...
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim objConnection As New AdomdConnection
objConnection.ConnectionString = "Provider=MSOLAP.2; Data Source=localhost; Initial Catalog=FoodMart 2000;"
objConnection.Open()

'Dim con As New ADODB.Connection
'con.ConnectionString = "Provider=MSOLAP.2; Data Source=localhost; Initial Catalog=FoodMart 2000;"
'con.Open()
End Sub

Если вы считаете, что проблема может быть в MSDE, то могу сказать, что я таким же образом пытался приконектиться к другой машине,
на которой установлен Win 2003 Server + (SQL Server 2000 + SP4) + (AS2000 + SP4). Кубы на этой (Win 2003 Server) машине я создавал с помощью консоли на своей локальной машине (Win XP)
...
Рейтинг: 0 / 0
DrillThrough и OWC
    #33536512
NikolayS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
O_Vital, спасибо за помощь. Кое что начало получаться:

Это просто чудеса!
Код:
Dim con As New ADODB.Connection
con.ConnectionString = "Provider=MSOLAP.2; Data Source=localhost; Initial Catalog=FoodMart 2000;"
con.Open()

вчера не работал...
Сегодня я его просто раскоментировал !!!
И что бы вы думали... работает! (Во всяком случае не выдает ошибок)

Я не понимаю как это возможно!

У меня тогда возникли несколько вопросов
Чем отличается ADOMD.NET и ADODB?
Смогу ли я через ADODB делать DrillThrough запросы?
И какие тут подводные камни!
...
Рейтинг: 0 / 0
DrillThrough и OWC
    #33536654
O_Vital
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NikolaySЧем отличается ADOMD.NET и ADODB?
ADODB - библиотека для подключения и работы с СУБД
ADOMD.NET - библиотека для работы с MSAS

NikolaySO_Vital, спасибо за помощь. Кое что начало получаться:
Смогу ли я через ADODB делать DrillThrough запросы?
через ADO раньше можно было, попробуй через ADODB, думаю тоже можно :))
...
Рейтинг: 0 / 0
DrillThrough и OWC
    #33537404
NikolayS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
O_Vital.
Да получилось. Все работает через ADODB.
Огромное спасибо!

только у меня еще один вопрос:
А как малой кровью отследить двойной клик по cell'у в OWC.
Хочу сделать чтобы по двойному клику на cell, открывалось окно браузера в котором выполнялся бы нужный Drillthrough-запрос и отображал результат на экран.

Смотрел в ToolPack, но там что-то очень наворочено.
Есть менее сложный способ?
...
Рейтинг: 0 / 0
DrillThrough и OWC
    #33537476
O_Vital
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NikolaySO_Vital.
Да получилось. Все работает через ADODB.
Огромное спасибо!

только у меня еще один вопрос:
А как малой кровью отследить двойной клик по cell'у в OWC.
Хочу сделать чтобы по двойному клику на cell, открывалось окно браузера в котором выполнялся бы нужный Drillthrough-запрос и отображал результат на экран.

Смотрел в ToolPack, но там что-то очень наворочено.
Есть менее сложный способ?
Для отслеживания двойного клика у PivotTable есть OnDoubleClick.
В обработчике надо проверять чтобы была выбрана именно мера и в путь - смотреть какие измерения выбраны, фильтры, формировать MDX и т.д.
смотри ToolPack или поиск на форуме, где-то здесь была исправленная версия.

Код: plaintext
1.
2.
3.
4.
5.
  if (PivotTable1.SelectionType = 'PivotAggregates') then begin
    if (PivotTable1.Selection.Count =  1 ) then begin
      .................
    end;
  end;
...
Рейтинг: 0 / 0
DrillThrough и OWC
    #33537790
NikolayS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Я смотрел ToolPack, но не понял как прикрутить событие к Pivot Table

Пишу на клиентской части

<OBJECT id="MyPT" style="WIDTH: 502px; HEIGHT: 217px" height="217" width="502" classid="clsid:0002E55A-0000-0000-C000-000000000046"
VIEWASTEXT>
</OBJECT>

Как можно к "MyPT" приспособить событие OnDoubleClick?
...
Рейтинг: 0 / 0
DrillThrough и OWC
    #33540083
OWC Guru
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
<script language=vbscript>
Sub MyPT_OnDoubleClick(evt)

End Sub
</script>
...
Рейтинг: 0 / 0
DrillThrough и OWC
    #33540464
NikolayS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
2 OWC Guru,

Так не работает.

написал:

Sub MyPT_OnDoubleClick(evt)
MsgBox "nah"
End Sub

При DblClick'e ничего не происходит
...
Рейтинг: 0 / 0
DrillThrough и OWC
    #33540537
NikolayS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вот так работает:

Sub MyPT_DblClick()
MsgBox "123"
End Sub

OWC Guru, спасибо за помощь!
...
Рейтинг: 0 / 0
DrillThrough и OWC
    #33541134
NikolayS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Еще вопросик. Ни как не могу заставить работать выдернутый код из ToolPack:
(Необходимо составить нужный Drillthrough-запрос):

Пишу следующий код:

function GetTupleMDX()
Dim sTupleMDX
Dim i, iLen

sTupleMDX = ""
if (MyPT.Members = null) Then
GetTupleMDX = ""
End if

iLen = MyPT.Members.length
for i=0 To iLen
sTupleMDX = sTupleMDX + MyPT.Members(i).UniqueName
if (i < (iLen - 1)) then
sTupleMDX = sTupleMDX + ", "
end if
next
GetTupleMDX = sTupleMDX
end function

Sub MyPT_DblClick()
Dim sMDX

if (MyPT.SelectionType = "PivotAggregates") then
if (MyPT.Selection.Count = 1) then
sMDX = "DRILLTHROUGH "
sMDX = sMDX + "SELECT FROM [" + MyPT.DataMember + "] "
sMDX = sMDX + "WHERE ("
sMDX = sMDX + GetTupleMDX()
sMDX = sMDX + ")"

MsgBox sMDX
End if
End if
End Sub

По двойному клику вызывается MyPT_DblClick(), а далее из MyPT_DblClick() вызывается GetTupleMDX().
И говорит, что Объект не поддерживает это св-во или метод: 'MyPT.Members'

Подскажите, как правильно надо написать.
Заранее спасибо!
...
Рейтинг: 0 / 0
20 сообщений из 20, страница 1 из 1
Форумы / OLAP и DWH [игнор отключен] [закрыт для гостей] / DrillThrough и OWC
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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