AXForum  
Вернуться   AXForum > Microsoft Dynamics NAV > NAV: Программирование
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 02.12.2010, 20:18   #1  
Lrundom is offline
Lrundom
Участник
 
76 / 10 (1) +
Регистрация: 24.08.2007
Пишу простенькую пакетную обработку. Имеется список документов. Выделяем, нажимаем кнопку обработки и.. дальше в принципе неважно, потому как важен сам процесс выделения.
1. можно выделить мышкой несколько строк
2. можно отфильтровать по какому-нибудь полю и дальше ctrl+A.

на кнопке обработке висит код:
Код:
CurrForm.SETSELECTIONFILTER(Rec);
IF FIND('-') THEN
  IF MARK THEN REPEAT
    //обработка строк
  UNTIL NEXT=0;
И тут незадача - при первом способе выделенные записи обрабатываются, а при втором - нет?

Исходя из хелпа по функции SETSELECTIONFILTER (Form) следует, что после выполнения строчки CurrForm.SETSELECTIONFILTER(Rec) в таблице должны остаться только помеченные записи.
В комментариях к данной функции написано:
Цитата:
Comments
If either all or no records are selected, marks will not be used.
, т.е. если я правильно поняла, то, если выбраны все записи или не выбрано ни одной, то не будет промаркирована ни одна запись.
Тогда становится понятно, почему не обрабатывается второй способ, НО.. если при втором способе мы выделим все поля используя не Ctrl+A, а выделим все записи мышкой, то записи обрабатываются.
Вообщем, я запуталась в 3-х соснах..Товарищи, хелп ми!!!
Старый 02.12.2010, 20:56   #2  
del_negrozzz is offline
del_negrozzz
Участник
 
35 / 10 (1) +
Регистрация: 11.07.2007
Простите, а зачем эта конструкция?
...
IF MARK THEN REPEAT
//обработка строк
UNTIL NEXT=0;

И вообще зачем используюете переменную Rec, заведите новую переменную и напишите примерно так:

CurrForm.SETSELECTIONFILTER(MyRec);
IF MyRec.FINDSET THEN BEGIN
REPEAT
//обработка строк
UNTIL MyRec.NEXT=0;
END;
Старый 02.12.2010, 21:38   #3  
Sancho is offline
Sancho
Administrator
Аватар для Sancho
Лучший по профессии 2017
Лучший по профессии 2009
 
1,294 / 221 (10) ++++++
Регистрация: 11.01.2006
замечена такая фишка:
выделение всех записей через нажатие на квадратик (аналог Ctrl+a) не хватается setselectionfilter, а если выделить все записи мышкой (нажать на первой и спуститься), то хватается.
проверь.
тупизна, имхо, но с этим и живем
Старый 02.12.2010, 22:04   #4  
del_negrozzz is offline
del_negrozzz
Участник
 
35 / 10 (1) +
Регистрация: 11.07.2007
Цитата:
Сообщение от Sancho Посмотреть сообщение
замечена такая фишка:
выделение всех записей через нажатие на квадратик (аналог Ctrl+a) не хватается setselectionfilter, а если выделить все записи мышкой (нажать на первой и спуститься), то хватается.
проверь.
тупизна, имхо, но с этим и живем
Разве? у меня все нормуль
если че версия клиента

Build 30625
Старый 02.12.2010, 23:36   #5  
Sancho is offline
Sancho
Administrator
Аватар для Sancho
Лучший по профессии 2017
Лучший по профессии 2009
 
1,294 / 221 (10) ++++++
Регистрация: 11.01.2006
вживую столкнулся на версии 3.70.B с клиентом 5.0 SP1
Старый 03.12.2010, 09:33   #6  
del_negrozzz is offline
del_negrozzz
Участник
 
35 / 10 (1) +
Регистрация: 11.07.2007
и у меня клиент 5.00 SP1, Build 30625
не думаю, что тут какую-то роль версия БД играет...
Старый 03.12.2010, 15:26   #7  
Lrundom is offline
Lrundom
Участник
 
76 / 10 (1) +
Регистрация: 24.08.2007
Цитата:
Сообщение от Sancho Посмотреть сообщение
замечена такая фишка:
выделение всех записей через нажатие на квадратик (аналог Ctrl+a) не хватается setselectionfilter, а если выделить все записи мышкой (нажать на первой и спуститься), то хватается.
проверь.
тупизна, имхо, но с этим и живем
вот у меня именно так и работает..
 


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

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 20:40.