07.09.2006, 17:48 | #5 |
Moderator
|
Цитата:
Сообщение от Atani
Получается, что есть некий бизнес-процесс (анализ, сортировка, принятие решений на их основе), у которого на входе Аксапта и на выходе Аксапта.
Цитата:
Сообщение от Atani
Мне кажется, имеет смысл реализовать этот бизнес-процесс в Axapta. А затем пользователям набор галочек (принцип действия аналогичен полю "Немедленная поставка" - пользователь сам набирает строки для обработки), по которым они смогут наложить фильтр и выполнить массовую операцию.
Ну, и для для полной, надеюсь, ясности - еще один, уже совсем "разжёваный", примерчик (расписывал, считайте, в течение всего дня, отнимая кванты времени у святых перекуров! о!). Итак, есть некий столбик значений, неважно где: в Блокноте, в Excel'е... Положим для простоты, что в Блокноте (мы знаем, что всегда легко можем сделать переброску Блокнот <=> Excel). Не смотрите, что для примера взяты числа, идущие подряд (для таких чисел мы, естественно, бы использовали критерий вида 1..10). Считайте, что это как бы не сами значения, а их индексы в списке... ну, вы меня поняли! ): 1 2 3 4 5 6 7 8 9 10 Этот столбик "значений" нужно загнать в колонку "Критерий" таблицы на закладке "Условия" формы задания параметров запроса (SysQueryForm). Вариантов два: - либо создать в этой таблице 10 новых строк и скопировать эти 10 значений по отдельности в 10 ячеек колонки "Критерий" ("по отдельности" - потому что, ну, нельзя, увы, это сделать "как в Excel'е" - копированием диапазона ячеек); - либо перечислить эти 10 значений в одной строке через запятую и использовать только одну строку таблицы для задания критерия (а не 10). Первый способ с 10-ю строчками нам явно не интересен (потому что: а если их будет 100 или 1000?). Поэтому остановимся на втором. Как можно быстро получить строку во втором способе вручную? Например, за два шага так: - пробежаться по концам всех строчек и поставить запятую, используя клавиши "запятая" и "СтрелкаВниз": 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 - затем встать в конец первой строки и, используя клавиши "Delete" и "End", удалить все переводы строки, превратив исходный столбец в необходимую "строку через запятую": 1,2,3,4,5,6,7,8,9,10 Всё неплохо. Я и говорю выше, что для "5-10 значений" такой способ вполне работает. Что будет, если значений - 100? 1 2 3 ... 98 99 100 Наверное, этот столбец тоже можно достаточно резво, если напрячься и хорошо размять пальцы, превратить в строку: 1,2,3,...,98,99,100 (обращаю внимание, что многоточие в середине этой строки ничего общего с двумя точками (..), использующимися при задании диапазона для критерия запроса, не имеет) Однако, в резвой пляске своей пальцами по клавиатуре мы так увлеклись, что радостно проскочили рубеж "250 символов", который является ограничением на длину нашей критериальной строки. Строку нужно резать. В каком же месте? Самый простой способ - это попробовать скопировать ее в ячейку "Критерий" и, встав в конец строки в ячейке, посмотреть, сколько символов в нее поместится, после чего "округлиться" от конца влево до позиции перед ближайшей запятой, запомнить элемент, на котором мы остановились, а правый остаток строки стереть. Итак, вставляем строку: 1,2,3,...,98,99,100 Помещается: 1,2,3,...,84,85,86,8 Стираем последние два символа: ,8 Возвращаемся к исходной строке и удаляем из нее уже размещенное в ячейке "Критерий" начало с 1 по 86 В следующую ячейку "Критерий" (в следующей строке таблицы) вставляем остаток исходной строки: 87,88,89,...,98,99,100 Нравится вам объем работы, который вы к этому моменту, скрипя зубами, проделали вручную? Думаю, нет. И мне - нет. А те, кто решил сразу воспользоваться "генератором", уже пьют вторую чашку кофе и курят не первую сигарету... И их журнал уже почти разнесся... P.S. Кто захочет проверить помещаемость в "Критерий" самостоятельно, то вот вся полная строка от 1 до 100 (я вставил пробел после каждого 25-го элемента, потому что иначе безпробельная строка не влезает в экран): 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25, 26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50, 51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75, 76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100 Последний раз редактировалось Gustav; 07.09.2006 в 17:58. |
|
|
Опции темы | Поиск в этой теме |
Опции просмотра | |
|