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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 11.12.2010, 13:35   #1  
nikshev is offline
nikshev
Участник
 
54 / 10 (1) +
Регистрация: 11.12.2010
Здравствуйте! Я новичок в С/AL. Если можно разъясните следующую ситуацию:
Как инициализировать переменную с типом Record?
В Globals описаниях я ставлю Auto0->тип Record->subtype AutoInfo(требуемая таблица)
В следующем коде:
Auto0.RESET;
Auto0.SETFILTER(RecCode,RepairTimes);
Quantity:=Auto0.RepairTime;

Переменная Auto0 пустая. Строчка Quantity:=Auto0.RepairTime возвращает пустое значение.
Что делать ума не приложу. В документации и на форуме решения не нашел!
Заранее благодарен.
Старый 11.12.2010, 17:00   #2  
nikshev is offline
nikshev
Участник
 
54 / 10 (1) +
Регистрация: 11.12.2010
В общем разобрался уже сам!
Код должен быть такой:
Auto0.RESET; //Снимаем все фильтры
Auto0.SETRANGE(RecCode,RepairTimes,RepairTimes); //Вот это на всякий случай
Auto0.SETFILTER(RecCode,RepairTimes); //Устанавливаем фильр
Auto0.FIND('-'); //Находим первую запись
Quantity:=Auto0.RepairTime; //И присваеваем ее

В общем все гуд!
Старый 12.12.2010, 10:12   #3  
Sancho is offline
Sancho
Administrator
Аватар для Sancho
Лучший по профессии 2017
Лучший по профессии 2009
 
1,294 / 221 (10) ++++++
Регистрация: 11.01.2006
Цитата:
Сообщение от nikshev Посмотреть сообщение
В общем разобрался уже сам!
Код должен быть такой:
Auto0.RESET; //Снимаем все фильтры
Auto0.SETRANGE(RecCode,RepairTimes,RepairTimes); //Вот это на всякий случай
Auto0.SETFILTER(RecCode,RepairTimes); //Устанавливаем фильр
Auto0.FIND('-'); //Находим первую запись
Quantity:=Auto0.RepairTime; //И присваеваем ее

В общем все гуд!
косметика
Auto0.RESET; //вот это на всякий случай
Auto0.SETRANGE(RecCode,RepairTimes); //а вот это устанавливаем фильтр *
IF Auto0.FIND('-') THEN //Находим первую запись, если не нашли, ничего страшного
Quantity:=Auto0.RepairTime; //И присваеваем ее

только нифига не понятно, как это мы на RecCode накладываем фильтр, а потом ее же саму кидаем в Квантити...
мы по первичному ключу ищем? тогда юзаем GET...
Старый 12.12.2010, 10:26   #4  
nikshev is offline
nikshev
Участник
 
54 / 10 (1) +
Регистрация: 11.12.2010
Фильтр накладываем на RecCode, а в Квантити кидаем RepairTimes.
Проблема была в том что после наложения фильтра в Quantity заносилось пустое значение.
Но после добавления вот этой строчки:
Auto0.FIND('-');\\Найти первую запись.
Все начало работать.
Старый 12.12.2010, 11:12   #5  
Sancho is offline
Sancho
Administrator
Аватар для Sancho
Лучший по профессии 2017
Лучший по профессии 2009
 
1,294 / 221 (10) ++++++
Регистрация: 11.01.2006
да, наложение фильтра это еще не поиск.
но setrange уже накладывает фильтр, setfilter не нужен
а if find('-') then позволяет избежать ошибки, если запись не найдена.
 


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

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

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