![]() |
![]() |
![]() |
|
Создание Куба Олап Ø |
☑ | ||
---|---|---|---|---|
0
Kon98
29.07.05
✎
13:16
|
Подскажите как можно создать куб Олап ".cub" и до заполнять его. Если можно все это только используя 1С.
|
|||
1
France
30.07.05
✎
04:47
|
неужели "Контур-стандарт"?
|
|||
2
iliko
30.07.05
✎
13:41
|
(0) не знаю, что конкректно тебе надо,
но зайди WWW.INTALEV.RU , там компонента в свободном доступе есть ГиперКуб называется, может пригодится ..... |
|||
3
Greenmkp
31.07.05
✎
12:10
|
Ты не по в тот форум обратился.
Вот здесь скорее найдеш ответ. www.sql.ru www.olap.ru http://www.sql.ru/forum/actualtopics.aspx?bid=26 в частности на твой вопрос http://www.olap.ru/basic/olap_intro10.asp |
|||
4
Шурик71
31.07.05
✎
18:13
|
не мое. работает.
// Создаем локальный OLAP куб Попытка С = РазделительСтрок; // Провайдер, куда кладем куб, где берем исходные данные Prov = "PROVIDER = MSOLAP;"; DS = "DATA SOURCE = "+ФайлКуба+";"; SourceDSN = "SOURCE_DSN=""Provider=Microsoft.Jet.OLEDB.4.0; Data Source="+ФайлБазы+""";"; // Структура куба CreateCube = "CREATECUBE = CREATE CUBE [Анализ] (" "DIMENSION [ДатаОперации], LEVEL [Все] TYPE ALL, LEVEL [Месяц], LEVEL [Неделя], LEVEL [День]," "DIMENSION [Субконто1], LEVEL [Все] TYPE ALL, LEVEL ["+НазвСубконто1+"]," "DIMENSION [Субконто2], LEVEL [Все] TYPE ALL, LEVEL ["+НазвСубконто2+"]," "DIMENSION [Субконто3], LEVEL [Все] TYPE ALL, LEVEL ["+НазвСубконто3+"]," "DIMENSION [КоррСчет], LEVEL [Все] TYPE ALL, LEVEL [КоррСчет]," "DIMENSION [КоррСубконто1], LEVEL [Все] TYPE ALL, LEVEL [КоррСубконто1]," "DIMENSION [КоррСубконто2], LEVEL [Все] TYPE ALL, LEVEL [КоррСубконто2]," "DIMENSION [КоррСубконто3], LEVEL [Все] TYPE ALL, LEVEL [КоррСубконто3]," "MEASURE [СумДт] FUNCTION SUM," "MEASURE [СумКт] FUNCTION SUM," "MEASURE [КолДт] FUNCTION SUM," "MEASURE [КолКт] FUNCTION SUM );"; // Какими данными заполняем куб InsertInto = "INSERTINTO = INSERT INTO Анализ (" "[ДатаОперации].[Месяц], [Неделя], [День]," "[Субконто1].["+НазвСубконто1+"]," "[Субконто2].["+НазвСубконто2+"]," "[Субконто3].["+НазвСубконто3+"]," "[КоррСчет].[КоррСчет]," "[КоррСубконто1].[КоррСубконто1]," "[КоррСубконто2].[КоррСубконто2]," "[КоррСубконто3].[КоррСубконто3]," "[СумДт],[СумКт],[КолДт],[КолКт]) OPTIONS ATTEMPT_ANALYSIS "; // SQL запрос Sel = "SELECT Unloading.Месяц, Unloading.Неделя, Unloading.День," "Unloading."+НазвСубконто1+", Unloading."+НазвСубконто2+", Unloading."+НазвСубконто3+"," "Unloading.КоррСчет," "Unloading.КоррСубконто1, Unloading.КоррСубконто2, Unloading.КоррСубконто3, " "Unloading.СумДт, Unloading.СумКт, Unloading.КолДт, Unloading.КолКт " "FROM Unloading;"; InsertInto = InsertInto +С+ Sel; // Собственно, создаем куб ADO = СоздатьОбъект("ADODB.Connection"); s = Prov +С+ DS +С+ SourceDSN +С+ CreateCube +С+ InsertInto; ADO.Open(s); ADO = 0; Если ФС.СуществуетФайл(ФайлБазы)=1 Тогда ФС.УдалитьФайл(ФайлБазы); КонецЕсли; Результат = 2; Исключение Сообщить("Выгрузка в cub неудалась: "+ОписаниеОшибки()); КонецПопытки; |
|||
5
Шурик71
31.07.05
✎
18:18
|
Нашел ссылку на оригинал.
http://1c.proclub.ru/modules/kb/article.php?storyid=41 |
|||
6
MV
02.08.05
✎
10:11
|
Хочу заняться этой проблеммой. Скачала обработку. Пишет 'Поле агрегатного
объектра не обнаружено ConnectionStrig' Что-то не установлено? |
|||
7
MV
02.08.05
✎
10:26
|
?
|
|||
8
Шурик71
02.08.05
✎
11:21
|
Небось офис 2003?
Та обработка писана под офис 2000 / ХР(?). Я у себя переделывал. Щас напишу что заменить: 1) ИсходныйКод = "<HTML>" "<HEAD>" "<TITLE></TITLE>" "<META NAME=""GENERATOR"" Content=""Microsoft Visual Studio"">" "<META HTTP-EQUIV=""Content-Type"" content=""text/html; charset=UTF-8"">" "</HEAD>" "<BODY>" "<object id=PivotControl1 name='PivotTable' style=""WIDTH: 502px; HEIGHT: 258px"" height=258 width=502 " "classid=clsid:0002E55A-0000-0000-C000-000000000046 VIEWASTEXT>" "<PARAM NAME=""XMLData"" VALUE='<xml xmlns:x=""urn:schemas-microsoft-com:office:excel""> " "<x:PivotTable> <x:OWCVersion>11.0.0.5531" "</x:OWCVersion> " "<x:DisplayScreenTips/> " "<x:CubeProvider>msolap.2</x:CubeProvider> " "<x:CacheDetails/> " "<x:ConnectionString>Provider=MSOLAP.2;Persist Security Info=True;Data Source="+ИсточникДанных+";Client Cache Size=25;Auto Synch Period=10000</x:ConnectionString> " "<x:DataMember>Анализ</x:DataMember> " "<x:Name>PTable</x:Name> " "<x:PivotView> <x:IsNotFiltered/> </x:PivotView> " "</x:PivotTable> </xml>'>" "</OBJECT>" "</BODY>" "</HTML>" ; |
|||
9
Шурик71
02.08.05
✎
11:23
|
2.
заменить Стр = "Provider=MSOLAP;Data Source="+ИсточникДанных; Doc.PivotTable.ConnectionString=Стр; Doc.PivotTable.DataMember="Анализ"; Doc.PivotTable.DisplayFieldList=-1; на Стр = "OLEDB;Provider=MSOLAP.2;Data Source="+ИсточникДанных+";Initial Catalog=Анализ;Client Cache Size=25;Auto Synch Period=10000"; |
|||
10
Шурик71
02.08.05
✎
11:25
|
Вроде все...
|
|||
11
Higs
02.08.05
✎
11:35
|
Да фигня все это.
Надо в строке object classid=CLSID:0002E530-0000-0000-C000-000000000046 E530 на E55B для DataSource заменить E520 на E55A для Pivottable заменить Все остальное работает! |
|||
12
MV
02.08.05
✎
13:44
|
(9) нАВЕРНОЕ ЕЩЕ ЧТО-ТО?
(11) НЕ ПОНЯЛА. 2003 Офис |
|||
13
MV
02.08.05
✎
13:47
|
(9) Присвоили стр значение, а далее?
|
|||
14
MV
02.08.05
✎
13:53
|
Поменяла как сказал 11
Теперь такая ошибка - что не хватает? Выгрузка в cub неудалась: Microsoft® OLE DB Provider for Analysis Services: Error while processing a partition: 'Processing error [Source data contains no rows] Measures'. Спасибо |
|||
15
Шурик71
02.08.05
✎
14:14
|
Сообщение говорит о том, что данных нет :)
Как в варианте 11 - я не знаю. В моем варианте менять не только то, что в (9), но и то, что в (8). Щас полный текст кину. У меня работает. |
|||
16
Шурик71
02.08.05
✎
14:18
|
Перем ФайлКуба, ФайлБазы;
//------------------------------------------------------------------------------ Функция ВыбранКаталог() Если ФС.ВыбратьКаталог(ИмяКаталога,"Выберите каталог с файлом выгрузки/исходных данных")=0 Тогда Возврат 0 ; Иначе Если Прав(СокрЛП(ИмяКаталога),1)<>"\" Тогда ИмяКаталога = СокрЛП(ИмяКаталога) + "\"; КонецЕсли; Возврат 1; КонецЕсли; КонецФункции //------------------------------------------------------------------------------ Процедура ПриНачалеВыбораЗначения(Элемент,Флаг) Если Элемент="ИмяКаталога" Тогда ВыбранКаталог(); КонецЕсли; КонецПроцедуры //------------------------------------------------------------------------ |
|||
17
Шурик71
02.08.05
✎
14:20
|
Функция Выгрузить()
Если ИспользоватьКаталогПользователя=0 Тогда Если Прав(СокрЛП(ИмяКаталога),1)<>"\" Тогда ИмяКаталога = СокрЛП(ИмяКаталога) + "\"; КонецЕсли; Иначе ИмяКаталога = ?(КаталогПользователя()="",КаталогИБ(),КаталогПользователя()); КонецЕсли; Результат = 0; Попытка // Названия колонкок в таблице результатов НазвСубконто1 = ?(СокрЛП(ВыбСчет.ВидСубконто(1))="","НетСубконто1",СокрЛП(ВыбСчет.ВидСубконто(1).Идентификатор())); НазвСубконто2 = ?(СокрЛП(ВыбСчет.ВидСубконто(2))="","НетСубконто2",СокрЛП(ВыбСчет.ВидСубконто(2).Идентификатор())); НазвСубконто3 = ?(СокрЛП(ВыбСчет.ВидСубконто(3))="","НетСубконто3",СокрЛП(ВыбСчет.ВидСубконто(3).Идентификатор())); // типы полей в таблицах adInteger = 3; adChar = 130; adDate = 7; adDouble = 5; adColNullable = 2; // поле может быть пустым ФайлБазы = СокрЛП(ИмяКаталога)+"unloading.mdb"; ФайлКуба = СокрЛП(ИмяКаталога)+"unloading.cub"; Если ФС.СуществуетФайл(ФайлБазы)=1 Тогда ФС.УдалитьФайл(ФайлБазы); КонецЕсли; Если ФС.СуществуетФайл(ФайлКуба)=1 Тогда ФС.УдалитьФайл(ФайлКуба); КонецЕсли; Cat = СоздатьОбъект("ADOX.Catalog"); Cat.Create("Provider=Microsoft.Jet.OLEDB.4.0;Data Source="+ФайлБазы); Cat.ActiveConnection = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="+ФайлБазы; Tab = СоздатьОбъект("ADOX.Table"); Tab.Name = "Unloading"; Cat.Tables.Append(Tab); |
|||
18
Шурик71
02.08.05
✎
14:23
|
Col = СоздатьОбъект("ADOX.Column"); Col.Name = "День"; Col.Type = adDate; Col.DefinedSize = 0; Col.Attributes = adColNullable; Tab.Columns.Append(Col);
Col = СоздатьОбъект("ADOX.Column"); Col.Name = "Неделя"; Col.Type = adInteger; Col.DefinedSize = 0; Col.Attributes = adColNullable; Tab.Columns.Append(Col); Col = СоздатьОбъект("ADOX.Column"); Col.Name = "Месяц"; Col.Type = adChar; Col.DefinedSize = 15; Col.Attributes = adColNullable; Tab.Columns.Append(Col); Col = СоздатьОбъект("ADOX.Column"); Col.Name = НазвСубконто1; Col.Type = adChar; Col.DefinedSize = 100; Col.Attributes = adColNullable; Tab.Columns.Append(Col); Col = СоздатьОбъект("ADOX.Column"); Col.Name = НазвСубконто2; Col.Type = adChar; Col.DefinedSize = 100; Col.Attributes = adColNullable; Tab.Columns.Append(Col); Col = СоздатьОбъект("ADOX.Column"); Col.Name = НазвСубконто3; Col.Type = adChar; Col.DefinedSize = 100; Col.Attributes = adColNullable; Tab.Columns.Append(Col); Col = СоздатьОбъект("ADOX.Column"); Col.Name = "КоррСчет"; Col.Type = adChar; Col.DefinedSize = 12; Col.Attributes = adColNullable; Tab.Columns.Append(Col); Col = СоздатьОбъект("ADOX.Column"); Col.Name = "КоррСубконто1"; Col.Type = adChar; Col.DefinedSize = 100; Col.Attributes = adColNullable; Tab.Columns.Append(Col); Col = СоздатьОбъект("ADOX.Column"); Col.Name = "КоррСубконто2"; Col.Type = adChar; Col.DefinedSize = 100; Col.Attributes = adColNullable; Tab.Columns.Append(Col); Col = СоздатьОбъект("ADOX.Column"); Col.Name = "КоррСубконто3"; Col.Type = adChar; Col.DefinedSize = 100; Col.Attributes = adColNullable; Tab.Columns.Append(Col); Col = СоздатьОбъект("ADOX.Column"); Col.Name = "СумДт"; Col.Type = adDouble; Col.DefinedSize = 0; Col.Attributes = adColNullable; Tab.Columns.Append(Col); Col = СоздатьОбъект("ADOX.Column"); Col.Name = "СумКт"; Col.Type = adDouble; Col.DefinedSize = 0; Col.Attributes = adColNullable; Tab.Columns.Append(Col); Col = СоздатьОбъект("ADOX.Column"); Col.Name = "КолДт"; Col.Type = adDouble; Col.DefinedSize = 0; Col.Attributes = adColNullable; Tab.Columns.Append(Col); Col = СоздатьОбъект("ADOX.Column"); Col.Name = "КолКт"; Col.Type = adDouble; Col.DefinedSize = 0; Col.Attributes = adColNullable; Tab.Columns.Append(Col); Tab = 0; Cat = 0; Col = 0; // Теперь открываем базу adModeReadWrite = 3; adOpenDynamic = 2; adLockOptimistic = 3; ADO = СоздатьОбъект("ADODB.Connection"); ADO.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="+ФайлБазы; ADO.Mode = adModeReadWrite; ADO.Open(); RS = СоздатьОбъект("ADODB.Recordset"); RS.Open("Unloading",ADO,adOpenDynamic,adLockOptimistic); // Запрос по счету Ит = СоздатьОбъект("БухгалтерскиеИтоги"); Если ПустоеЗначение(Субконто1)=0 Тогда Ит.ИспользоватьСубконто(ВыбСчет.ВидСубконто(1),Субконто1,2); Иначе Ит.ИспользоватьСубконто(ВыбСчет.ВидСубконто(1)); КонецЕсли; Если ПустоеЗначение(Субконто2)=0 Тогда Ит.ИспользоватьСубконто(ВыбСчет.ВидСубконто(2),Субконто2,2); Иначе Ит.ИспользоватьСубконто(ВыбСчет.ВидСубконто(2)); КонецЕсли; Если ПустоеЗначение(Субконто3)=0 Тогда Ит.ИспользоватьСубконто(ВыбСчет.ВидСубконто(3),Субконто3,2); Иначе Ит.ИспользоватьСубконто(ВыбСчет.ВидСубконто(3)); КонецЕсли; Ит.ВыполнитьЗапрос(НачДата,КонДата,ВыбСчет,,,,"Проводка"); Ном = 0; Если ДК=2 Тогда Ит.ВыбратьПериоды(,1); ИначеЕсли ДК=3 Тогда Ит.ВыбратьПериоды(,2); Иначе Ит.ВыбратьПериоды(,0); КонецЕсли; |
|||
19
Шурик71
02.08.05
✎
14:25
|
Пока Ит.ПолучитьПериод()=1 Цикл
Ном = Ном + 1; Состояние("Выгрузка: "+Ит.Операция.ДатаОперации+" ("+Ном+")"); RS.AddNew(); RS.Fields("День").Value = СокрЛП(Ит.Операция.ДатаОперации); RS.Fields("Неделя").Value = СокрЛП(НомерНеделиГода(Ит.Операция.ДатаОперации)); RS.Fields("Месяц").Value = Формат(ДатаМесяц(Ит.Операция.ДатаОперации),"Ч(0)2")+" "+СокрЛП(Формат(Ит.Операция.ДатаОперации,"ДММММ")); Если Ит.Операция.Дебет.Счет=ВыбСчет Тогда RS.Fields(НазвСубконто1).Value = СокрЛП(Ит.Операция.Дебет.Субконто(1)); RS.Fields(НазвСубконто2).Value = СокрЛП(Ит.Операция.Дебет.Субконто(2)); RS.Fields(НазвСубконто3).Value = СокрЛП(Ит.Операция.Дебет.Субконто(3)); RS.Fields("КоррСчет").Value = СокрЛП(Ит.Операция.Кредит.Счет); RS.Fields("КоррСубконто1").Value = СокрЛП(Ит.Операция.Кредит.Субконто(1)); RS.Fields("КоррСубконто2").Value = СокрЛП(Ит.Операция.Кредит.Субконто(2)); RS.Fields("КоррСубконто3").Value = СокрЛП(Ит.Операция.Кредит.Субконто(3)); RS.Fields("СумДт").Value = Ит.Операция.Сумма; RS.Fields("СумКт").Value = 0; RS.Fields("КолДт").Value = Ит.Операция.Количество; RS.Fields("КолКт").Value = 0; Иначе RS.Fields(НазвСубконто1).Value = СокрЛП(Ит.Операция.Кредит.Субконто(1)); RS.Fields(НазвСубконто2).Value = СокрЛП(Ит.Операция.Кредит.Субконто(2)); RS.Fields(НазвСубконто3).Value = СокрЛП(Ит.Операция.Кредит.Субконто(3)); RS.Fields("КоррСчет").Value = СокрЛП(Ит.Операция.Дебет.Счет); RS.Fields("КоррСубконто1").Value = СокрЛП(Ит.Операция.Дебет.Субконто(1)); RS.Fields("КоррСубконто2").Value = СокрЛП(Ит.Операция.Дебет.Субконто(2)); RS.Fields("КоррСубконто3").Value = СокрЛП(Ит.Операция.Дебет.Субконто(3)); RS.Fields("СумДт").Value = 0; RS.Fields("СумКт").Value = Ит.Операция.Сумма; RS.Fields("КолДт").Value = 0; RS.Fields("КолКт").Value = Ит.Операция.Количество; КонецЕсли; RS.Update(); КонецЦикла; RS.Close(); ADO.Close(); RS = 0; ADO = 0; Результат = 1; Исключение Сообщить("Выгрузка в mdb неудалась: "+ОписаниеОшибки()); КонецПопытки; |
|||
20
Шурик71
02.08.05
✎
14:27
|
// Создаем локальный OLAP куб
Попытка С = РазделительСтрок; // Провайдер, куда кладем куб, где берем исходные данные Prov = "PROVIDER = MSOLAP;"; DS = "DATA SOURCE = "+ФайлКуба+";"; SourceDSN = "SOURCE_DSN=""Provider=Microsoft.Jet.OLEDB.4.0; Data Source="+ФайлБазы+""";"; // Структура куба CreateCube = "CREATECUBE = CREATE CUBE [Анализ] (" "DIMENSION [ДатаОперации], LEVEL [Все] TYPE ALL, LEVEL [Месяц], LEVEL [Неделя], LEVEL [День]," "DIMENSION [Субконто1], LEVEL [Все] TYPE ALL, LEVEL ["+НазвСубконто1+"]," "DIMENSION [Субконто2], LEVEL [Все] TYPE ALL, LEVEL ["+НазвСубконто2+"]," "DIMENSION [Субконто3], LEVEL [Все] TYPE ALL, LEVEL ["+НазвСубконто3+"]," "DIMENSION [КоррСчет], LEVEL [Все] TYPE ALL, LEVEL [КоррСчет]," "DIMENSION [КоррСубконто1], LEVEL [Все] TYPE ALL, LEVEL [КоррСубконто1]," "DIMENSION [КоррСубконто2], LEVEL [Все] TYPE ALL, LEVEL [КоррСубконто2]," "DIMENSION [КоррСубконто3], LEVEL [Все] TYPE ALL, LEVEL [КоррСубконто3]," "MEASURE [СумДт] FUNCTION SUM," "MEASURE [СумКт] FUNCTION SUM," "MEASURE [КолДт] FUNCTION SUM," "MEASURE [КолКт] FUNCTION SUM );"; // Какими данными заполняем куб InsertInto = "INSERTINTO = INSERT INTO Анализ (" "[ДатаОперации].[Месяц], [Неделя], [День]," "[Субконто1].["+НазвСубконто1+"]," "[Субконто2].["+НазвСубконто2+"]," "[Субконто3].["+НазвСубконто3+"]," "[КоррСчет].[КоррСчет]," "[КоррСубконто1].[КоррСубконто1]," "[КоррСубконто2].[КоррСубконто2]," "[КоррСубконто3].[КоррСубконто3]," "[СумДт],[СумКт],[КолДт],[КолКт]) OPTIONS ATTEMPT_ANALYSIS "; // SQL запрос Sel = "SELECT Unloading.Месяц, Unloading.Неделя, Unloading.День," "Unloading."+НазвСубконто1+", Unloading."+НазвСубконто2+", Unloading."+НазвСубконто3+"," "Unloading.КоррСчет," "Unloading.КоррСубконто1, Unloading.КоррСубконто2, Unloading.КоррСубконто3, " "Unloading.СумДт, Unloading.СумКт, Unloading.КолДт, Unloading.КолКт " "FROM Unloading;"; InsertInto = InsertInto +С+ Sel; // Собственно, создаем куб ADO = СоздатьОбъект("ADODB.Connection"); s = Prov +С+ DS +С+ SourceDSN +С+ CreateCube +С+ InsertInto; ADO.Open(s); ADO = 0; Если ФС.СуществуетФайл(ФайлБазы)=1 Тогда ФС.УдалитьФайл(ФайлБазы); КонецЕсли; Результат = 2; Исключение Сообщить("Выгрузка в cub неудалась: "+ОписаниеОшибки()); КонецПопытки; Возврат Результат; КонецФункции |
|||
21
Шурик71
02.08.05
✎
14:29
|
//------------------------------------------------------------------------------
Процедура Показать(РезультатВыгрузки) Если ИспользоватьКаталогПользователя=0 Тогда Если Прав(СокрЛП(ИмяКаталога),1)<>"\" Тогда ИмяКаталога = СокрЛП(ИмяКаталога) + "\"; КонецЕсли; Иначе ИмяКаталога = ?(КаталогПользователя()="",КаталогИБ(),КаталогПользователя()); КонецЕсли; ФайлБазы = СокрЛП(ИмяКаталога)+"unloading.mdb"; ФайлКуба = СокрЛП(ИмяКаталога)+"unloading.cub"; Если РезультатВыгрузки=0 Тогда Возврат; ИначеЕсли РезультатВыгрузки=1 Тогда ИсточникДанных = ФайлБазы; Иначе ИсточникДанных = ФайлКуба; КонецЕсли; // Исходный код HTML-страницы ИсходныйКод = "<HTML>" "<HEAD>" "<TITLE></TITLE>" "<META NAME=""GENERATOR"" Content=""Microsoft Visual Studio"">" "<META HTTP-EQUIV=""Content-Type"" content=""text/html; charset=UTF-8"">" "</HEAD>" "<BODY>" "<object id=PivotControl1 name='PivotTable' style=""WIDTH: 502px; HEIGHT: 258px"" height=258 width=502 " "classid=clsid:0002E55A-0000-0000-C000-000000000046 VIEWASTEXT>" "<PARAM NAME=""XMLData"" VALUE='<xml xmlns:x=""urn:schemas-microsoft-com:office:excel""> " "<x:PivotTable> <x:OWCVersion>11.0.0.5531" "</x:OWCVersion> " "<x:DisplayScreenTips/> " "<x:CubeProvider>msolap.2</x:CubeProvider> " "<x:CacheDetails/> " "<x:ConnectionString>Provider=MSOLAP.2;Persist Security Info=True;Data Source="+ИсточникДанных+";Client Cache Size=25;Auto Synch Period=10000</x:ConnectionString> " "<x:DataMember>Анализ</x:DataMember> " "<x:Name>PTable</x:Name> " "<x:PivotView> <x:IsNotFiltered/> </x:PivotView> " "</x:PivotTable> </xml>'>" "</OBJECT>" "</BODY>" "</HTML>" ; // Подключение компоненты ОшибкаРегистрации = 0; Попытка Состояние("Подключение внешней компоненты..."); ЗагрузитьВнешнююКомпоненту("RBrowser.dll"); Browser = СоздатьОбъект("RBrowser"); Исключение ОшибкаРегистрации = 1; КонецПопытки; Если ОшибкаРегистрации = 1 Тогда //первый раз? Состояние("Регистрация внешней компоненты..."); exe="regsvr32.exe /s "; Парам="""" + КаталогИБ()+"ExtForms\RBrowser.dll"+"""" ; // сообщить(exe+Парам); ЗапуститьПриложение(exe+Парам); Для х = 1 по 3000 цикл //ждем... //зарегистрировалась? КонецЦикла; Попытка Состояние("Подключение внешней компоненты..."); ЗагрузитьВнешнююКомпоненту("RBrowser.dll"); Browser = СоздатьОбъект("RBrowser"); Исключение Предупреждение("Не удалось загрузить внешнюю компоненту RBrowser"); Возврат; КонецПопытки; КонецЕсли; |
|||
22
Шурик71
02.08.05
✎
14:32
|
Browser.Open("about: OLAP OWC - "+ПериодСтр(НачДата,КонДата)); Состояние("Инициализация WebBrowser..."); Пока Browser.WebBrowser.ReadyState<>4 Цикл КонецЦикла; // Получаем ссылку на объект WebBrowser и формируем HTML страницу Состояние("Формирование HTML страницы..."); Doc = Browser.WebBrowser.Document; Doc.Write(ИсходныйКод); // Подключаем таблицу к источнику данных Попытка Состояние("Подключение сводной таблицы к источнику данных..."); //Стр = "Provider=MSOLAP;Data Source="+ИсточникДанных; //Doc.PivotTable.ConnectionString=Стр; //Doc.PivotTable.DataMember="Анализ"; //Doc.PivotTable.DisplayFieldList=-1; Стр = "OLEDB;Provider=MSOLAP.2;Data Source="+ИсточникДанных+";Initial Catalog=Анализ;Client Cache Size=25;Auto Synch Period=10000"; View = Doc.PivotTable.ActiveView; View.TitleBar.Caption = "Анализ счета "+ВыбСчет+" за "+ПериодСтр(НачДата,КонДата); Totals = View.Totals; Browser.Title("OLAP OWC - "+ПериодСтр(НачДата,КонДата)); Исключение Предупреждение( "Не удалось подключить СводнуюТаблицу OWC к выгруженным данным!!!"+ РазделительСтрок+РазделительСтрок+ОписаниеОшибки() ); Возврат; КонецПопытки; Состояние(""); Doc = 0; Browser = 0; КонецПроцедуры //----------------------------------------------------------------- Процедура Сформировать() Результат = Выгрузить(); Если Результат<>0 Тогда Показать(Результат); КонецЕсли; КонецПроцедуры //----------------------------------------------------------------- Процедура ОбработкаСобытий() Если ИспользоватьКаталогПользователя=0 Тогда Форма.ИмяКаталога.Доступность(1); Форма.КнОчистить.Доступность(1); Форма.КнВыгрузить.Доступность(1); Форма.КнПоказать.Доступность(1); Иначе Форма.ИмяКаталога.Доступность(0); Форма.КнОчистить.Доступность(0); Форма.КнВыгрузить.Доступность(0); Форма.КнПоказать.Доступность(0); КонецЕсли; КонецПроцедуры //----------------------------------------------------------------- Процедура ПриВыбореСчета() Форма.Субконто1.НазначитьТип(ВыбСчет.ВидСубконто(1)); Форма.Субконто2.НазначитьТип(ВыбСчет.ВидСубконто(2)); Форма.Субконто3.НазначитьТип(ВыбСчет.ВидСубконто(3)); КонецПроцедуры //----------------------------------------------------------------- Процедура ПриОткрытии() НачДата = НачМесяца(РабочаяДата()); КонДата = КонМесяца(РабочаяДата()); ИмяКаталога = ВосстановитьЗначение("OLAP_OWC_ИмяКаталога"); ИспользоватьКаталогПользователя = ВосстановитьЗначение("OLAP_OWC_ИспользоватьКаталогПользователя"); ОбработкаСобытий(); ВыбСчет = ВосстановитьЗначение("OLAP_OWC_ВыбСчет"); ПриВыбореСчета(); Субконто1 = ВосстановитьЗначение("OLAP_OWC_Субконто1"); Субконто2 = ВосстановитьЗначение("OLAP_OWC_Субконто2"); Субконто3 = ВосстановитьЗначение("OLAP_OWC_Субконто3"); ДК = ВосстановитьЗначение("OLAP_OWC_ДК"); Если ДК=0 Тогда ДК=1; КонецЕсли; КонецПроцедуры //----------------------------------------------------------------- Процедура ПриЗакрытии() СохранитьЗначение("OLAP_OWC_ИмяКаталога",ИмяКаталога); СохранитьЗначение("OLAP_OWC_ИспользоватьКаталогПользователя",ИспользоватьКаталогПользователя); СохранитьЗначение("OLAP_OWC_ВыбСчет",ВыбСчет); СохранитьЗначение("OLAP_OWC_Субконто1",Субконто1); СохранитьЗначение("OLAP_OWC_Субконто2",Субконто2); СохранитьЗначение("OLAP_OWC_Субконто3",Субконто3); СохранитьЗначение("OLAP_OWC_ДК",ДК); КонецПроцедуры |
|||
23
Шурик71
02.08.05
✎
14:34
|
Все.
И еще надо почитать описание к обработке :) |
|||
24
MV
02.08.05
✎
14:47
|
Спасибо. Заработало. Очень медленно. Хотелось бы узнать преимущества.
И где взять описание обработки. |
|||
25
MV
02.08.05
✎
14:59
|
Любопытно. Но все-таки долго очень.
|
|||
26
Шурик71
02.08.05
✎
15:07
|
Описание - в обработке :)
Открыть обработку, помощь - описание :) Но если заработало - читать нечего. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |