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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 18.04.2008, 16:20   #1  
Iceman is offline
Iceman
Участник
Аватар для Iceman
 
27 / 10 (1) +
Регистрация: 05.03.2008
На форме есть кнопка.
На кнопке код:
Код:
ForExport.COPY(Rec);
CurrForm.SETSELECTIONFILTER(ForExport);
ForExport.MARKEDONLY(TRUE);
MESSAGE:=FORMAT(ForExport.COUNT);
Mgt.ExportBody(ForExport,2);
MESSAGE выводит значение 1 сколько бы записей я не пометил... всё перепробовал, не работает. В функцию передаётся одна запись.
Это полбеды. Вторая беда:
Как организовать перебор записей в вызываемой функции?
То, что написано там сейчас после всех мучений с функцией:

Код:
Function ExportBody(JnlRecord: Record, Option:.....)

LRecord.COPY(JnlRecord);
LocRecord.COPYFILTERS(LRecord);
//LocRecord.MARKEDONLY(TRUE);

IF LocRecord.FIND('-') THEN
	REPEAT

	MESSAGE('Record Found');

	.............................................

	UNTIL LocRecord.NEXT = 0;
Понимаю что решение в функции неверное, но довести до ума никак не могу.
Помогите разобраться...

З.Ы. Записи маркируются по Ctrl+F1
__________________
<span style="color:#000000">Я не волшебник, я только учусь...</span>
Старый 18.04.2008, 16:46   #2  
Milk is offline
Milk
Участник
 
242 / 12 (1) ++
Регистрация: 08.06.2006
Насчет первого куска кода: SETSELECTIONFILTER(Record) фильтрует не маркированные записи, а выделенные в форме синим цветом (если таких нет, то возьмется запись, на которой стоит курсор), и маркирует их в переменной Record. Вторые полбеды я не понял
Старый 18.04.2008, 16:47   #3  
Iceman is offline
Iceman
Участник
Аватар для Iceman
 
27 / 10 (1) +
Регистрация: 05.03.2008
Код:
ForExport.COPY(Rec);
CurrForm.SETSELECTIONFILTER(Rec);

ForExport.MARKEDONLY(TRUE);

MESSAGE:=FORMAT(ForExport.COUNT);
Выдает верное количество промаркированных записей, но записи "пропадают" из формы...
Что делать?...

Цитата:
Сообщение от Milk Посмотреть сообщение
Насчет первого куска кода: SETSELECTIONFILTER(Record) фильтрует не маркированные записи, а выделенные в форме синим цветом, и маркирует их в переменной Record
А как в таком случае сделать маркер по Ctrl+F1?
__________________
<span style="color:#000000">Я не волшебник, я только учусь...</span>
Старый 18.04.2008, 16:49   #4  
Milk is offline
Milk
Участник
 
242 / 12 (1) ++
Регистрация: 08.06.2006
Очевидно, MARKEDONLY(TRUE) . Записи у вас пропадают тоже из-за SETSELECTIONFILTER. Он вам вообще не нужен в данных обстоятельствах.
Старый 18.04.2008, 16:54   #5  
Iceman is offline
Iceman
Участник
Аватар для Iceman
 
27 / 10 (1) +
Регистрация: 05.03.2008
Цитата:
Сообщение от Milk Посмотреть сообщение
Очевидно, MARKEDONLY(TRUE) . Записи у вас пропадают тоже из-за SETSELECTIONFILTER. Он вам вообще не нужен в данных обстоятельствах.
Точно
Разобрался...
А каким образом будет корректно перебрать записи на втором участке?
__________________
<span style="color:#000000">Я не волшебник, я только учусь...</span>
Старый 18.04.2008, 16:57   #6  
romeo is offline
romeo
Участник
Аватар для romeo
 
564 / 10 (2) +
Регистрация: 31.03.2004
В функции ExportBody() параметр JnlRecord нужно передавать ВАРом, чтобы с него снялись фильтры и марки. КОПИФИЛЬТЕРС можно убрать, достаточно одного КОПИ.
Старый 18.04.2008, 17:03   #7  
Iceman is offline
Iceman
Участник
Аватар для Iceman
 
27 / 10 (1) +
Регистрация: 05.03.2008
Огромное спасибо!
Заработало ©
__________________
<span style="color:#000000">Я не волшебник, я только учусь...</span>
Старый 18.04.2008, 17:06   #8  
Iceman is offline
Iceman
Участник
Аватар для Iceman
 
27 / 10 (1) +
Регистрация: 05.03.2008
З.Ы.
Пользуясь случаем хотел поитересоваться философским смыслом условия "IF LocRecord.FIND('-') THEN"...
Как оно работает?
__________________
<span style="color:#000000">Я не волшебник, я только учусь...</span>
Старый 18.04.2008, 17:17   #9  
randrews is offline
randrews
Участник
Аватар для randrews
 
312 / 10 (1) +
Регистрация: 06.12.2004
Цитата:
Сообщение от Iceman Посмотреть сообщение
З.Ы.
Пользуясь случаем хотел поитересоваться философским смыслом условия "IF LocRecord.FIND('-') THEN"...
Как оно работает?
Ищет первую запись с учетом фильтров и ключа. Если находит, то присваивает переменной LocRecord значения полей из найденой записи. И возвращает TRUE. Если не находит, то переменная LocRecord остается нетронутой и возвращает FALSE.

Да.... забыл филосовский смысл
Очень часто используется в связке
Код:
IF LocRecord.FIND('-') THEN
	REPEAT
	UNTIL LocRecord.NEXT = 0;
чтобы пробежаться по все записям и что-то с ними сделать
Старый 18.04.2008, 18:09   #10  
Iceman is offline
Iceman
Участник
Аватар для Iceman
 
27 / 10 (1) +
Регистрация: 05.03.2008
Цитата:
Сообщение от randrews Посмотреть сообщение
Ищет первую запись с учетом фильтров и ключа. Если находит, то присваивает переменной LocRecord значения полей из найденой записи. И возвращает TRUE. Если не находит, то переменная LocRecord остается нетронутой и возвращает FALSE.

Да.... забыл филосовский смысл
Очень часто используется в связке
Код:
IF LocRecord.FIND('-') THEN
	REPEAT
	UNTIL LocRecord.NEXT = 0;
чтобы пробежаться по все записям и что-то с ними сделать
Я так понимаю в данном случае '-' - и есть сам ключ. Именно он меня и интересует.
Остальное очевидно... =)
__________________
<span style="color:#000000">Я не волшебник, я только учусь...</span>
Старый 18.04.2008, 18:16   #11  
romeo is offline
romeo
Участник
Аватар для romeo
 
564 / 10 (2) +
Регистрация: 31.03.2004
Цитата:
Сообщение от Iceman Посмотреть сообщение
Я так понимаю в данном случае '-' - и есть сам ключ. Именно он меня и интересует.
Остальное очевидно... =)
Можно почитать справку по кодингу в нави.. Это помогает на первых порах. Извините за резкость.
Просто будучи людьми рациональными и я и Вы понимаем - нажать F1 выйдет намного быстрее, чем писать пост на форум.
Старый 18.04.2008, 18:52   #12  
Iceman is offline
Iceman
Участник
Аватар для Iceman
 
27 / 10 (1) +
Регистрация: 05.03.2008
Цитата:
Сообщение от romeo Посмотреть сообщение
Можно почитать справку по кодингу в нави.. Это помогает на первых порах. Извините за резкость.
Просто будучи людьми рациональными и я и Вы понимаем - нажать F1 выйдет намного быстрее, чем писать пост на форум.
Ясно, спасибо.
F1 - наше всё

З.Ы. Штудировал я справки... но ведь не факт что я всё понял верно?
__________________
<span style="color:#000000">Я не волшебник, я только учусь...</span>
Старый 22.04.2008, 14:24   #13  
randrews is offline
randrews
Участник
Аватар для randrews
 
312 / 10 (1) +
Регистрация: 06.12.2004
Цитата:
Сообщение от Iceman Посмотреть сообщение
Ясно, спасибо.
F1 - наше всё
З.Ы. Штудировал я справки... но ведь не факт что я всё понял верно?
Даже заинтересовало, что там написано такого сложного, что можно понять неверно Полез сам в справку
Цитата:
'-' The first record in the table ('-' can only be used alone)
"первая запись в таблице"...
Старый 22.04.2008, 20:30   #14  
Greggy_imported is offline
Greggy_imported
Участник
Аватар для Greggy_imported
 
291 / 10 (1) +
Регистрация: 24.09.2004
может я ошибаюсь конечно ... но тут двояко ... все таки не первая запись в таблице а первая запись в рекордсете ограниченном фильтрами ... ну и если фильтров нет то в таблице
Старый 23.04.2008, 13:19   #15  
randrews is offline
randrews
Участник
Аватар для randrews
 
312 / 10 (1) +
Регистрация: 06.12.2004
Цитата:
Сообщение от Greggy Посмотреть сообщение
может я ошибаюсь конечно ... но тут двояко ... все таки не первая запись в таблице а первая запись в рекордсете ограниченном фильтрами ... ну и если фильтров нет то в таблице
Да, Вы правы. Фраза вырванная из контекста выглядит двояко.

Там комментарии есть в хелпе еще
Код:
Comments
FIND retrieves the first record that meets the conditions set by SearchStr and the filters associated with Record. The search path reflects the sort order defined by the current key  ....
и т.п.
 

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

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

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

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