|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
31.05.2013, 01:31 | #1 |
Регистрация: 05.05.2013
Сообщений: 7
|
Выставление временных периодов в OLAP.
Доброго времени суток!!
Работаю в кубах OLAP. Часто меняю даты, выставляю непрерывные периоды. До последнего времени я отталкивался в макросах от даты СЕГОДНЯ (data). Но это очень не удобно, когда периоды достаточно далеко расположены от даты на сегодня. Раньше макрос писал таким образом: Dim data1, data2, data3, data4, data5 Data4 = (Format(Date - 5, "yyyy-mm-dd")) data5 = (Format(Date - 4, "yyyy-mm-dd")) data6 = (Format(Date - 3, "yyyy-mm-dd")) data7 = (Format(Date - 2, "yyyy-mm-dd")) Data8 = (Format(Date - 1, "yyyy-mm-dd")) 'Далее использовал записанные переменные в программный код куба OLAP. Sheets("Лист").PivotTables("Сводная Таблица").PivotFields( _ "[Календарь].[Месяцы].[День]").VisibleItemsList = Array("") Sheets("Лист").PivotTables("Сводная Таблица").PivotFields( _ "[Календарь].[Месяцы].[День]").VisibleItemsList = Array("") Sheets("Лист").PivotTables("Сводная Таблица").PivotFields( _ "[Календарь].[Месяцы].[День]").VisibleItemsList = Array( _ "[Календарь].[Месяцы].[День].&[" & data1 & "T00:00:00]", _ "[Календарь].[Месяцы].[День].&[" & data2 & "T00:00:00]", _ "[Календарь].[Месяцы].[День].&[" & Data3 & "T00:00:00]", _ "[Календарь].[Месяцы].[День].&[" & Data4 & "T00:00:00]", _ "[Календарь].[Месяцы].[День].&[" & data5 & "T00:00:00]") Теперь нужно найти способ при котором с помощью UserForm, а в ней двух окон с TextBox возможно было бы выставить начало и конец периода. Макрос в свою очередь должен выбрать в кубе все даты, которые лежат в данном периоде. Спасибо. Жду советов. 99.JPG |
31.05.2013, 02:46 | #2 |
Новичок
СтарожилДжуниор
Регистрация: 05.02.2008
Сообщений: 9,487
|
для начала в поле С запишите начальную дату, а в поле ПО - конечную.
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
|
31.05.2013, 09:28 | #3 |
Старожил
Регистрация: 15.05.2008
Сообщений: 2,058
|
Думается, вводить даты в текстбоксы, не самый оптимальный вариант.
Как-то делал вот такое, см. вложенный файл. (для вывода календаря - щелкните на ячейке с датой)
"Дайте людям рыбы, и вы накормите их на весь день; научите их ловить рыбу - и вы накормите их на всю жизнь"
"Большое спасибо" - Z261597841314, R208907249777, U447361470499 |
04.06.2013, 11:09 | #4 |
Регистрация: 05.05.2013
Сообщений: 7
|
Мне нужно только помочь разобраться с массивом и циклом. Я опишу программный код и условия очень подробно.
Имеем мы это: TextBox1.Text = (Format(Date, "yyyy-mm-dd")) TextBox2.Text = (Format(Date + 1, "yyyy-mm-dd")) (В наших двух текстбоксах зададим формат даты, чтобы её беспрепятственно использовать в тексте кода.) x = TextBox1.Text y = TextBox2.Text (Запишем начало даты в x, а конец в y) Вставим переменные в код. Sheets("Лист").PivotTables("Сводная таблица").PivotFields( "[Календарь].[Месяцы].[День]").VisibleItemsList = Array( _ "[Календарь].[Месяцы].[День].&[" & x & "T00:00:00]", "[Календарь].[Месяцы].[День].&[" & y & "T00:00:00]") В самом Array нужные нам данные через запятую идут: "[Календарь].[Месяцы].[День].&[" & x & "T00:00:00]", "[Календарь].[Месяцы].[День].&[" & y & "T00:00:00]", В которых меняется только значения x и y. Вообще чтобы вставить каждую новую галочку для даты в OLAP необходимо постоянно добавлять строчку с датами "[Календарь].[Месяцы].[День].&[" & x & "T00:00:00]" "[Календарь].[Месяцы].[День].&[" & y & "T00:00:00]". "[Календарь].[Месяцы].[День].&[" & z & "T00:00:00]". "[Календарь].[Месяцы].[День].&[" & c & "T00:00:00]". Итог: Мне необходимо придумать такой цикл и массив данных, чтобы я получил "[Календарь].[Месяцы].[День].&[" & x & "T00:00:00]", "[Календарь].[Месяцы].[День].&[" & x + 1 & "T00:00:00]", ............................... "[Календарь].[Месяцы].[День].&[" & y & "T00:00:00]", т.е дата в формуле возрастала бы с каждым разом на 1 день, добавлялась в код, и все это происходило до тех пор пока не сравнялось бы со значением y. Загвоздку я вижу в том, что для добавления каждой новой галочки в коде должна появится новая строка с "[Календарь].[Месяцы].[День].&[" & x+1 & "T00:00:00]". |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Linux + MySQL + OLAP, какой OLAP выбрать? | Glaciuse | SQL, базы данных | 0 | 24.10.2012 21:39 |
Шумоподавление во временных рядах | yaapelsinko | Свободное общение | 3 | 19.06.2012 20:41 |
Удаление временных объектов | Kn793 | Общие вопросы C/C++ | 4 | 10.06.2010 23:22 |
Выставление кодировки при подключении к sql server 2005. | dubin | PHP | 0 | 20.04.2010 00:23 |
Функция рандомного выставление чисел. | PashaNastya | Microsoft Office Excel | 5 | 28.03.2010 20:03 |