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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 12.08.2005, 15:24   #1  
apanko is offline
apanko
MCTS
MCBMSS
Лучший по профессии 2009
 
1,164 / 139 (7) +++++
Регистрация: 24.02.2005
Здравствуйте,

Хочется иметь такую функцию:

<div class='CALtop'>C/AL</div><div class='CAL'>ЗначениеПоляТаблицыТовар(НомерТовара,НазваниеПоля)
//устанавливаем фильтр по коду
Если товар найден
     Екзит(Товар.названиеПоля)</div>

Проблема в том как предобразовать переменную НазваниеПоля типа текст в тип Фиелд, т.е. одинарные кавычки заменить на парные.

Может есть механизм перебора полей в таблице?

Например
<div class='CALtop'>C/AL</div><div class='CAL'>Пока Поле.Следующее=1 Цикл
 Если Поле.Название=НазваниеПоля Тогда
   Возврат (поле);</div>

АП
Старый 12.08.2005, 15:36   #2  
Yoil is offline
Yoil
NavAx
NavAx Club
Лучший по профессии 2017
Лучший по профессии 2009
 
1,574 / 70 (6) ++++
Регистрация: 20.11.2002
Адрес: Msk
Есть конечно.
Есть такая табличка, называется Field (ID 2000000041).
Фильтруете ее по нужной табличке и начинаете перебирать поля.
__________________
"Моей лошадке ядрышком полмордочки снесло..."
А.В.Суворов, письма к дочери
Старый 12.08.2005, 15:53   #3  
rootadmin is offline
rootadmin
Участник
Аватар для rootadmin
 
224 / 10 (1) +
Регистрация: 25.03.2003
Адрес: Москва
Участок кода вернет значение поля
<div class='CALtop'>C/AL</div><div class='CAL'>
RecRef1.GETTABLE(Item);
EXIT(RecRef1.FIELD(FldNom).VALUE)
</div>
где
Item - переменная типа record::Item
RecRef1 - переменная типа RecordRef
FldNom - номер поля в таблице

а вот номер поля в таблице действительно можно узнать так, как предложил Дуд.
Проще в вашу функцию сразу передавать не название поля, а его номер

ЗЫ не тестил, но должно работать
__________________
С уваженем,
rootadmin
Старый 12.08.2005, 16:14   #4  
johndoe is offline
johndoe
Участник
 
88 / 10 (1) +
Регистрация: 15.10.2004
Адрес: Москва
Post
Цитата:
Сообщение от rutadmeen
Проще в вашу функцию сразу передавать не название поля, а его номер

ЗЫ не тестил, но должно работать
Не только должно, но и работает

<div class='CALtop'>C/AL</div><div class='CAL'>
PROCEDURE Foo(FldNo: Integer)
BEGIN
 CASE FldNo OF
   FIELDNO(<поле1>):
   BEGIN
     ... // работаем с полем номер 1
   END;

   FIELDNO(<поле2>):
   BEGIN
     ... // работаем с полем номер 2
   END;

   FIELDNO(<полеN>):
   BEGIN
     ... // работаем с полем номер N
   END;
END
</div>

И все в шоколаде
Старый 12.08.2005, 16:35   #5  
apanko is offline
apanko
MCTS
MCBMSS
Лучший по профессии 2009
 
1,164 / 139 (7) +++++
Регистрация: 24.02.2005
Спасибо,
все работает.

Спасибо Дуд за таблицу 2000000041.
Спасибо Rutadmin за подсказку, как использовать совет Дуда
Спасибо johndoe за совет описать все поля вручную :-) Хотя так наверное работать будет быстрее всего.

АП
 


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

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

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