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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 07.02.2007, 09:12   #1  
ruselhope is offline
ruselhope
Участник
 
71 / 10 (1) +
Регистрация: 26.10.2006
Здравствуйте, уважаемые!
Как-то на форуме встречала топик, в котором предлагалось бить смертным боем тех,
кто в коде пишет что-то наподобие

Код:
if Item."Item Category code"='ГОТОВЫЕ' then....

Вот и возник вопрос, а как писать-то?
Ведь написать нужно так, чтобы в случае изменения кода(например, Готовые зачем-то заменили на ГОТ) все продолжало работать.

Пожалуйста, поделитесь опытом.
Старый 07.02.2007, 09:38   #2  
TERRA is offline
TERRA
Участник
 
59 / 10 (1) +
Регистрация: 05.05.2005
Адрес: Moscow
Конкретно тот кусок кода, который Вы привели - сам по себе "переводу" не подлежит.
А вот если смотреть на ситуацию в целом, и если б Вы описали, для чего Вам это нужно - то возможно - можно придумать вариант без хардкода.
Старый 07.02.2007, 09:48   #3  
ruselhope is offline
ruselhope
Участник
 
71 / 10 (1) +
Регистрация: 26.10.2006
Цитата:
Сообщение от TERRA Посмотреть сообщение
Конкретно тот кусок кода, который Вы привели - сам по себе "переводу" не подлежит.
А вот если смотреть на ситуацию в целом, и если б Вы описали, для чего Вам это нужно - то возможно - можно придумать вариант без хардкода.
Таких ситуаций у меня возникает довольно много, например,
-при создании товара- в зависимости от выбранной КодТоварной Категории заполняются поля определенными значениями.

-при выгрузке в Клиент-Банк у меня все завязано на названия журналов, при любом изменении-все летит.

-в любом отчете(который мы пишем) по товару многочисленные проверки по группе

-с измерениями та же песня.
Старый 07.02.2007, 10:00   #4  
romeo is offline
romeo
Участник
Аватар для romeo
 
564 / 10 (2) +
Регистрация: 31.03.2004
Создаете поле в настроечной таблице (раздел выбирайте сами, в зависимости от того, как именно хотите использовать поле). В данном случае будет ссылка на Категории Товара. После этого в коде можно будет писать так :

ТоварНастройка.GET;
ТоварНастройка.TESTFIELD(НашеПоле); // по желанию
IF Item."Item Category code"= ТоварНастройка.НашеПоле THEN....
Старый 07.02.2007, 10:29   #5  
Fordewind is offline
Fordewind
Участник
 
1,134 / 10 (3) +
Регистрация: 01.12.2005
Цитата:
Сообщение от ruselhope Посмотреть сообщение
Здравствуйте, уважаемые!
Как-то на форуме встречала топик, в котором предлагалось бить смертным боем тех,
кто в коде пишет что-то наподобие

Код:
if Item."Item Category code"='ГОТОВЫЕ' then....

Вот и возник вопрос, а как писать-то?
Ведь написать нужно так, чтобы в случае изменения кода(например, Готовые зачем-то заменили на ГОТ) все продолжало работать.

Пожалуйста, поделитесь опытом.
И еще надо бить по рукам тех кто пишет IF и THEN строчными, а не заглавными ! Уважайте других, которым вполне возможно прийдется разбираться в вашем коде. Почитайте правила оформления
Старый 07.02.2007, 11:25   #6  
Corleone is offline
Corleone
Участник
 
355 / 10 (1) +
Регистрация: 27.05.2004
Адрес: London
Цитата:
Сообщение от Fordewind Посмотреть сообщение
И еще надо бить по рукам тех кто пишет IF и THEN строчными, а не заглавными ! Уважайте других, которым вполне возможно прийдется разбираться в вашем коде. Почитайте правила оформления
А какая разница, после компиляции все равно заглавные будут.
Старый 07.02.2007, 11:38   #7  
TERRA is offline
TERRA
Участник
 
59 / 10 (1) +
Регистрация: 05.05.2005
Адрес: Moscow
Цитата:
А какая разница, после компиляции все равно заглавные будут.
В форуме они сами не компилируются
Старый 07.02.2007, 11:39   #8  
Sitizen is offline
Sitizen
Участник
Аватар для Sitizen
 
305 / 10 (1) +
Регистрация: 10.01.2006
Цитата:
Сообщение от ruselhope Посмотреть сообщение
Пожалуйста, поделитесь опытом.
Добавляете в настройки соответсвующего раздела поле со ссылкой на соответсвующий справочник- в данном случае, на справочник Товар Категория - а в коде сравниваете не с конкретним значением, а со значением поля из настроек.
У меня все именно так сделано - дополнительные настройки сгрупированны по тематике и вынесены в настройки соответсвующего модуля.
Старый 07.02.2007, 11:55   #9  
TERRA is offline
TERRA
Участник
 
59 / 10 (1) +
Регистрация: 05.05.2005
Адрес: Moscow
Цитата:
Сообщение от Sitizen Посмотреть сообщение
Цитата:
Сообщение от ruselhope Посмотреть сообщение
Пожалуйста, поделитесь опытом.
Добавляете в настройки соответсвующего раздела поле .......
Может, я чего-то не понимаю, но кажется, все это уже romeo посоветовал...
Старый 07.02.2007, 11:55   #10  
randrews is offline
randrews
Участник
Аватар для randrews
 
312 / 10 (1) +
Регистрация: 06.12.2004
Цитата:
Таких ситуаций у меня возникает довольно много, например,
-при создании товара- в зависимости от выбранной КодТоварной Категории заполняются поля определенными значениями.
Если у вас очень много товарных категорий и на каждую категорию - свои поля, то можно создать таблицу с шаблонами товаров. Кстати, в эту таблицу можно завести крое товарной категории и другие ключевые поля.

Правда придется целую таблицу потратить (а они дороги)
Старый 07.02.2007, 12:06   #11  
grif is offline
grif
Участник
Аватар для grif
 
236 / 10 (1) +
Регистрация: 31.08.2006
Цитата:
Сообщение от ruselhope Посмотреть сообщение
Пожалуйста, поделитесь опытом.
Всё просто - добавляете в настройки соответсвующего раздела поле со ссылкой на соответсвующий справочник (в данном случае, на справочник Товар Категория), а в коде сравниваете не с конкретним значением, а со значением поля из настроек.
У меня все именно так сделано - дополнительные настройки сгрупированны по тематике и вынесены в настройки соответсвующего модуля.
Старый 07.02.2007, 12:15   #12  
Галина is offline
Галина
Участник
 
1,132 / 28 (3) +++
Регистрация: 01.07.2003
grif,Sitizen - Народ вам что делать нечего?
Решили все ответить одно и то же?
Займитесь лучше делом-изучайте 5 навижин.
ruselhope-а вам посоветую изучить программирование . Ни в одной уважаемой системе значение полей не прописывается в коде. И не важно Навижин-это или что либо другое.
Как делать правильно-в Навижине столько примеров. Откройте глаза-и смотрите на Наивжин. Для чего там сделаны - setup таблицы например? Где прописаны серии номеров для заказов?
Вообщем смотрите.
Старый 07.02.2007, 13:30   #13  
randrews is offline
randrews
Участник
Аватар для randrews
 
312 / 10 (1) +
Регистрация: 06.12.2004
Цитата:
Сообщение от Галина Посмотреть сообщение
grif,Sitizen - Народ вам что делать нечего?
Цитата:
Сообщение от Галина Посмотреть сообщение
ruselhope-а вам посоветую изучить программирование
Цитата:
Сообщение от Галина Посмотреть сообщение
Откройте глаза-и смотрите на Наивжин.


Галина, спокойнее надо реагировать
Старый 07.02.2007, 19:00   #14  
Sitizen is offline
Sitizen
Участник
Аватар для Sitizen
 
305 / 10 (1) +
Регистрация: 10.01.2006
Детский сад
Галин, ну ты то уж тоже... прям и ответить нельзя... даже и не знаю, что теперь делать
Старый 07.02.2007, 19:38   #15  
randrews is offline
randrews
Участник
Аватар для randrews
 
312 / 10 (1) +
Регистрация: 06.12.2004
Цитата:
Сообщение от Sitizen Посмотреть сообщение
Детский сад


Чтож вы так самокритично
Старый 07.02.2007, 20:52   #16  
balashov is offline
balashov
Участник
Аватар для balashov
 
78 / 10 (1) +
Регистрация: 01.09.2005
Цитата:
Сообщение от Галина Посмотреть сообщение
grif,Sitizen - Народ вам что делать нечего?
Решили все ответить одно и то же?
Займитесь лучше делом-изучайте 5 навижин.
Извеняюсь, может не в тему.
Галина, а где взять 5ую демку, или она пока только для партнеров?
Старый 07.02.2007, 21:08   #17  
Галина is offline
Галина
Участник
 
1,132 / 28 (3) +++
Регистрация: 01.07.2003
randrews- я сама решаю как мне и на что реагировать Если я отреагировала так, значит на то были веские причины.
sitizen - наверно сделать выводы?
balashov - да только для партнеров пока. в России выйдет только вроде через год.
Старый 07.02.2007, 23:15   #18  
randrews is offline
randrews
Участник
Аватар для randrews
 
312 / 10 (1) +
Регистрация: 06.12.2004
Цитата:
Сообщение от Галина Посмотреть сообщение
randrews- я сама решаю как мне и на что реагировать Если я отреагировала так, значит на то были веские причины.
Ок. Давайте мочить всех новичков, кто не прочитал или не запомнил adg и прочие хелпы. И тыкать их в это, пока они не запомнят А, когда запомнят, поработают с годик, то будем им передавать навыки - как учить новичков

Помню кто-то спросил на форуме - в каких случаях ставят CALCFIELDS, а в каких SETFILTER (в контексте, что эти функции несут похожий смысл). Там, может, и уместно просить человека посмотреть хелп.
Но здесь человек хотел узнать - какие есть способы бороться с хардкодом. Узнать различные способы борьбы с этим явлением. По-моему, нормальный вопрос.
Старый 07.02.2007, 23:22   #19  
Галина is offline
Галина
Участник
 
1,132 / 28 (3) +++
Регистрация: 01.07.2003
randrews-зря вы так. Я новичков не мочу. Посмотрите мои ответы, данные и новичкам в большом количестве тоже.
Просто вопрос очень общий. Если у вас есть время написать здесь полный ответ-и описать правила архитектуры и программирования. Отлично, так и сделайте.
У меня лично нет. Я дала конкретный совет-посмотрите Setup таблицы и там все поймете.
Человеку же и с другими вещами разбираться после. Также?
Я просто даю удочку ловить рыбу, а не рыбу, если человек голоден. Есть такая притча.
Старый 07.02.2007, 23:46   #20  
TERRA is offline
TERRA
Участник
 
59 / 10 (1) +
Регистрация: 05.05.2005
Адрес: Moscow
Цитата:
Сообщение от randrews Посмотреть сообщение
Ок. Давайте мочить всех новичков
randrews, а где Вы увидели "мочить"?

Между прочим, Галка, единственная из всех, высказала УНИВЕРСАЛЬНУЮ мысль, подходящую к любой затруднительной ситуации, с которой только может столкнуться новичок, а Вы это за наезд сочли... Грустно

Конечно, идея "вместо хардкода по значению поля - вынести это в настройку товаров" - ценная, но далеко не универсальная. В следующий раз - у ruselhope возникнет другая проблема, и "настройка товаров" - уже не поможет

Зато НАВЕРНЯКА поможет мысль (если ей проникнуться как следует), что почти все, что может понадобиться в работе - УЖЕ реализовано в САМОМ Navision - и осталось только открыть форму/таблицу/отчет - и посмотреть, как это сделано там. Когда мне на второй же неделе знакомства с Navision (до того - и не подозревала о его существовании вообще - на собеседовании в первый раз само слово услышала) - пришлось делать динамические-плавающие контролы - я ТОЛЬКО этим и спаслась тогда. И спасалась еще не раз В условиях полного отсуствия документации - очень даже мощный метод (и главное, опять-таки - универсальный ), чтобы "понять, как это сделать правильно".

ЗЫ: замечу к своему стыду, что никакую документацию я так никогда и не прочла... Пару-тройку раз делала над собой усилие прочесть хотя бы "Основы" - и каждый раз засыпала на третьей-четвертой странице...

Так что совет, данный Галиной - ОЧЕНЬ даже правильный. Если действительно "открыть глаза - и смотреть на Navision" - можно понять, что "почти все уже придумано до нас", и ломать голову над "велосипедом" (aka "как сделать так, чтоб при переименовании записи все не рушилось?") - совершенно необязательно... достаточно "открыть глаза"
 


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

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

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