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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 18.02.2011, 11:41   #1  
LOGIC_BBS is offline
LOGIC_BBS
Участник
 
61 / 10 (1) +
Регистрация: 14.12.2005
Долго думал, опубликовывать или нет, но пусть будет.
Готов выслушать конструктивные замечание.
Вложения
Тип файла: pdf Microsoft Dynamics NAV 5.0 Quick Reference RU.pdf (353.7 Кб, 720 просмотров)
Старый 18.02.2011, 13:05   #2  
DA_NEAL is offline
DA_NEAL
Участник
Аватар для DA_NEAL
Лучший по профессии 2017
Лучший по профессии 2009
 
788 / 54 (3) ++++
Регистрация: 05.08.2002
Адрес: Королев
Спасибо. Мне тут надо программеров обучать которые нав не видели до этого так дока вообще в самый раз для новичков.
__________________
Want to believe...
Старый 01.03.2011, 10:17   #3  
LOGIC_BBS is offline
LOGIC_BBS
Участник
 
61 / 10 (1) +
Регистрация: 14.12.2005
Уважаемые коллеги,
Поясните следующее, имеем в первоисточнике:
Цитата:
Ok := Record.FINDFIRST
Finds the first record in a table based on the current key and filter.
This function should be used instead of FIND('-') when you only need the first record.

You should only use this function when you explicitly want to find the first record in a table or set. Do not use this function in combination with REPEAT..UNTIL.
Теперь перевод:
Цитата:
Ok := Record.FINDFIRST
Используется для нахождения первой записи в таблице, основанной на текущем ключе и фильтре. Эта функция должна использоваться вместо FIND('-'), когда вам нужна только первая запись. Не используйте функцию совместно с REPEAT..UNTIL.
Непонятна фраза «Не используйте функцию совместно с REPEAT..UNTIL.» , Не использовать только когда нам нужна первая запись ИЛИ с функцией FINDFIRST не использовать, в общем?
Старый 01.03.2011, 10:34   #4  
Alterant is offline
Alterant
Участник
 
378 / 10 (1) +
Регистрация: 31.03.2004
Цитата:
Сообщение от LOGIC Посмотреть сообщение
Уважаемые коллеги,
Поясните следующее, имеем в первоисточнике:
Цитата:
Ok := Record.FINDFIRST
Finds the first record in a table based on the current key and filter.
This function should be used instead of FIND('-') when you only need the first record.

You should only use this function when you explicitly want to find the first record in a table or set. Do not use this function in combination with REPEAT..UNTIL.
Теперь перевод:
Цитата:
Ok := Record.FINDFIRST
Используется для нахождения первой записи в таблице, основанной на текущем ключе и фильтре. Эта функция должна использоваться вместо FIND('-'), когда вам нужна только первая запись. Не используйте функцию совместно с REPEAT..UNTIL.
Непонятна фраза «Не используйте функцию совместно с REPEAT..UNTIL.» , Не использовать только когда нам нужна первая запись ИЛИ с функцией FINDFIRST не использовать, в общем?
Это значит, что функция должна использоваться для поиска одной (первой) записи из набора. Если вам нужно перебрать все записи в цикле, то предпочтительней использовать FIND('-'):

Function ...
Rec.SETFILTER(...)
IF Rec.FINDFIRST THEN
EXIT(Rec.DecField)
else
EXIT(0);

Но
Function ...
Rec.SETFILTER(...)
IF Rec.FIND('-') THEN REPEAT
Ttl += Rec.DecField;
UNTIL Rec.NEXT = 0;
EXIT(Ttl);
Старый 01.03.2011, 10:50   #5  
prefreitor is offline
prefreitor
Участник
 
214 / 11 (1) +
Регистрация: 03.10.2006
Думаю, что наиболее предпочтительно совместно с циклами использовать при возможности
Код:
FINDSET
вместо
Код:
FIND('-')
или
Код:
FINDFIRST
. ссылка
Старый 01.03.2011, 12:18   #6  
Alterant is offline
Alterant
Участник
 
378 / 10 (1) +
Регистрация: 31.03.2004
Цитата:
Сообщение от prefreitor Посмотреть сообщение
Думаю, что наиболее предпочтительно совместно с циклами использовать при возможности
Код:
FINDSET
Да, согласен, FINDSET лучше.

Цитата:
Сообщение от prefreitor Посмотреть сообщение
Думаю, что наиболее предпочтительно совместно с циклами ... или
Код:
FINDFIRST
. ссылка
А вот с этим нет. FIND('-') будет лучше. Конечно, речь про SQL. Для native - разницы вроде бы нет.
Старый 01.03.2011, 13:02   #7  
LOGIC_BBS is offline
LOGIC_BBS
Участник
 
61 / 10 (1) +
Регистрация: 14.12.2005
В общем в Microsoft Dynamics NAV 5.0 Quick Reference RU исправил на так:
Цитата:
Ok := Record.FINDFIRST
Используется для нахождения первой записи в таблице, основанной на текущем ключе и фильтре.
Эта функция должна использоваться вместо FIND('-'), когда вам нужна только первая запись. Не используйте функцию совместно с REPEAT..UNTIL (циклом).
Если вам нужно перебрать все записи в цикле в порядке возрастания, то использовать нужно FINDSET.
Может есть еще что подредактировать, не плохая же дока получилась?
Старый 01.03.2011, 14:08   #8  
EdVegas is offline
EdVegas
Участник
Аватар для EdVegas
 
3 / 10 (1) +
Регистрация: 01.03.2011
Да, неплохая
Старый 10.03.2011, 17:50   #9  
Васыо is offline
Васыо
Участник
 
316 / 12 (1) ++
Регистрация: 15.11.2006
А что за операторы такие стали в коде появляться: += и -= ?
Старый 10.03.2011, 18:32   #10  
LOGIC_BBS is offline
LOGIC_BBS
Участник
 
61 / 10 (1) +
Регистрация: 14.12.2005
Цитата:
Сообщение от Васыо Посмотреть сообщение
А что за операторы такие стали в коде появляться: += и -= ?
Если Вы о A += B; -> A := A + B;
A -= B; -> A := A - B;
A *= B; -> A := A * B;
тык они всегда были
Старый 11.03.2011, 09:04   #11  
Васыо is offline
Васыо
Участник
 
316 / 12 (1) ++
Регистрация: 15.11.2006
Были-то они может и были, но никогда и нигде я не видел, чтобы они были описаны
Старый 11.03.2011, 10:01   #12  
LOGIC_BBS is offline
LOGIC_BBS
Участник
 
61 / 10 (1) +
Регистрация: 14.12.2005
Цитата:
Сообщение от Васыо Посмотреть сообщение
Были-то они может и были, но никогда и нигде я не видел, чтобы они были описаны
Ну не секрет что в навике много чего не описано, вот и поэтому пытаюсь уже 2 год систематизировать и описать, хоть для себя.

Я рад что мне удалось вам помочь.
Старый 02.11.2011, 15:38   #13  
Fly is offline
Fly
Участник
Аватар для Fly
 
102 / 10 (1) +
Регистрация: 05.10.2007
Цитата:
Сообщение от LOGIC Посмотреть сообщение
Цитата:
Сообщение от Васыо Посмотреть сообщение
А что за операторы такие стали в коде появляться: += и -= ?
Если Вы о A += B; -> A := A + B;
A -= B; -> A := A - B;
A *= B; -> A := A * B;
тык они всегда были
И все таки это не Best Practice. Для лучшей читабельности лучше использовать конструкцию типа <Переменная> := <Переменная> <Оператор> ...
Старый 21.11.2011, 11:30   #14  
Predatore is offline
Predatore
Участник
 
163 / 17 (1) ++
Регистрация: 29.09.2010
Цитата:
Сообщение от Fly Посмотреть сообщение
Цитата:
Сообщение от LOGIC Посмотреть сообщение
Цитата:
Сообщение от Васыо Посмотреть сообщение
А что за операторы такие стали в коде появляться: += и -= ?
Если Вы о A += B; -> A := A + B;
A -= B; -> A := A - B;
A *= B; -> A := A * B;
тык они всегда были
И все таки это не Best Practice. Для лучшей читабельности лучше использовать конструкцию типа <Переменная> := <Переменная> <Оператор> ...
Ну как сказать, по мне так a+=b; читается компактнее и понятнее, видимо сишная школа сказывается. Но тут дело в другом, сейчас уже деталей не вспомню, но однажды столкнулся с тем, что a+=b и a:=a+b выдавали разный результат. Первый вариант считал не правильно. С тех пор такую сокращённую запись и не использую.
P.S. Топик стартеру спасибо за доку.
 


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

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

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