Текущее время: Сб, ноя 08 2025, 19:17

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 5 ] 
Автор Сообщение
 Заголовок сообщения: BexGetData - только для отображения? Отображение результатов при вводе данных.
СообщениеДобавлено: Пн, июл 06 2009, 15:39 
Директор
Директор

Зарегистрирован:
Сб, мар 11 2006, 14:59
Сообщения: 1259
Пол: Мужской
Теперь меня заинтересовало вот что.
Вполне логично от пользователя ожидать, что ему при работе с данными (вводе или изменении), захочется видеть, как новые данные влияют на результат.
Ну например, пользователь меняет\вводит данные по кварталам и сразу видит как меняется годовое значение (ну если мы положим, что год у нас четко равен сумме кварталов). В bps, в bsp приложении, на лэйаут навешивалась функция планирования, которая выполнялась при изменении и примерно так, хотя довольно таки медленно, все и работало (или пользователь мог ввести сразу несколько значений и только потом нажать "ентер").

В случае екселя и IP, нужно что-то придумывать. Вот что мне придумалось:
1. Использовать в плановом запросе только те значения, которые надо поменять вручную, расчетные же - отображать рядом с помощью екселевских формул, а при сохранении вызывать плановую последовательность, в которой на фоксе дублировать екселевский алгоритм (если расчетные показатели должны быть записаны в куб) и потом сохранять. Минусы в том, что в какой-то момент екселевский (или фоксовский) расчет может быть изменен без синхронного изменения своего двойника и тогда получим расхождение данных записанных в куб и отображаемых в форме.
2. Перехватывать нажатие ентера и по нему выполнять плановую функцию. Получится такой же механизм как в BSP, но... в BSP мы "знаем" на каком уровне\пакете\формате была вызвана функция (точнее - мы определяем конкртеную функцию для каждого уровня\пакета\формата), а в случае перехвата ентера в екселе надо либо как-то узнавать это (например по позиции курсора), либо писать функцию, которая бы могла быть вызвана при измененении в любом из запросов книги, кроме того - в BSP после отработки функции данные обновлялись сами на тех лэйаутах, где это необходимо (если, скажем, лэйаут был на неактивной вкладке, то он обновлялся только при ее открытии), а в Ексель, видимо, придется обновлять все, поскольку, насколько я понял, при переходе между страницами данные не актуализируются самостоятельно? Да и обновится ли оно из VB?
3. Писать "целое приложение на VBA" - на скрытом листе вызывать плановый запрос, макросом копировать его на специальный открытый лист (или заполнять ячейки с использованием BexGetData, кстати - BexGetData не будет повторно запрашивать значения переменных и данные с сервера?), где там нарисовать всяких красивостей, расчетов екселевских, защит ячеек, списков выпадающих и т.д. А по нажатию на кнопку сохранения копировать нужные значения в нужные позиции запроса на скрытой странице и потом вызывать функцию сохранения, сработает так? (еще не пробовал)
4. Может есть какой-то антипод для функции BexGetData - какой-нибудь BExPutData (поискал такую - в хелпе не находит. ;) )

Прокомментируйте, плиз, варианты и порекомендуйте - какой считается наиболее правильным и безотказным? И если на какие-то вопросы из пунктов ответите - то тоже большое спасибо.

Самому мне кажется, что наиболее надежный - 2-й вариант (наверно еще можно пробовать перехватывать не нажатие ентера, а изменение ячейки?), а наиболее красивый и удобный для пользователя - 3-й.


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: BexGetData - только для отображения? Отображение результатов при вводе данных.
СообщениеДобавлено: Ср, июл 08 2009, 21:45 
Специалист
Специалист
Аватара пользователя

Зарегистрирован:
Пн, авг 18 2008, 17:00
Сообщения: 110
Откуда: From Hell
Пол: Мужской
Может, я неправильно понял, что Вы хотите, но... чем вариант использования из контекстного меню "Провести значения перед навигацией" не нравится?
Юзер выбирает и... видит, что будет в итоге. Не понравилось - выделяет ячейку с введенными значениями и использует стандартную функцию "Отменить ввод плановых данных" :?

_________________
В 9.00 начался и в 00.45 закончился 7-й 8-часовой рабочий день 5-дневной рабочей недели...


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: BexGetData - только для отображения? Отображение результатов при вводе данных.
СообщениеДобавлено: Пн, июл 20 2009, 19:04 
Директор
Директор

Зарегистрирован:
Сб, мар 11 2006, 14:59
Сообщения: 1259
Пол: Мужской
Ну я не знаю, чем не нравится. Только разбираюсь с ним. Но разве провод значений перед навигацией вызовет какие-то функции планирования?
Вот, например - у пользователя есть цены и количества, а в кубе есть показатель "сумма", который нужен для того, чтобы этот показатель собирать по иерархии бюджетных статей и получать некую общую сумму. Мне кажется, что удобнее иметь один готовый показатель, чем перемножать два предварительных (кроме того - на других участках бюджетной иерархии сумма может получаться не умножением количества и цены, а, скажем, делением какой-то цифры на какой-то коэффициент). Для заполнения "суммы" есть простые функции планирования (на каждой ветке они могут быть свои). Так разве настройка "провести значения перед навигацией" поможет?


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: BexGetData - только для отображения? Отображение результатов при вводе данных.  Тема решена
СообщениеДобавлено: Пн, июл 20 2009, 19:53 
Младший специалист
Младший специалист

Зарегистрирован:
Пт, сен 15 2006, 13:08
Сообщения: 55
Цитата:
4. Может есть какой-то антипод для функции BexGetData - какой-нибудь BExPutData (поискал такую - в хелпе не находит. )

На BexSetData + немного VBA можно сделать рабочее решение.


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: BexGetData - только для отображения? Отображение результатов при вводе данных.
СообщениеДобавлено: Вт, июл 28 2009, 17:58 
Менеджер
Менеджер
Аватара пользователя

Зарегистрирован:
Вт, сен 13 2005, 10:41
Сообщения: 558
Откуда: Гондурас (округ Москвы)
Пол: Мужской
BexSetData, это еще в первых презентациях семерки было.


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 5 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: Ahrefs [Bot]


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB