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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 18.10.2013, 13:05   #1  
srg is offline
srg
Участник
 
116 / 10 (1) +
Регистрация: 20.08.2013
Как сделать фильтр по связанной таблице?
Старый 18.10.2013, 13:10   #2  
srg is offline
srg
Участник
 
116 / 10 (1) +
Регистрация: 20.08.2013
Вот мой код, нахожу данные на карточке, фильтрую их, но после этого мне нужно еще сделать фильтр по связанной таблице, таблица точно эта же, по полю "Tax Header No.", и вытянуть с карточки "Posting Date", в пятницу конкретно не варит голова
Код:
TaxBillHeader.RESET;
TaxBillHeader.SETRANGE(Type,Type);
TaxBillHeader.SETRANGE("No.",DocumentNo);
IF TaxBillHeader.FINDFIRST THEN;
    IF TaxBillHeader."Include to ERNN"=TaxBillHeader."Include to ERNN"::"1" THEN
      BEGIN ExcelMgt.FillCell('M3',FORMAT('X'))
           END;
    IF TaxBillHeader."Include to ERNN"=TaxBillHeader."Include to ERNN"::"0" THEN
          BEGIN    ExcelMgt.FillCell('M3',FORMAT(''));
END;

CASE TaxBillHeader.Type OF
  TaxBillHeader.Type::Responsibility:
  BEGIN
    Customer.GET(TaxBillHeader."Customer No.");
     
     IF Customer."Agreement Posting"=Customer."Agreement Posting"::Mandatory THEN
     CustomerAgreement.GET(TaxBillHeader."Customer No.",TaxBillHeader."Agreement No.");
END;
      TaxBillHeader.Type::Purchase:
     BEGIN
        Vendor.GET(TaxBillHeader."Vendor No.");

       IF Vendor."Agreement Posting"=Vendor."Agreement Posting"::Mandatory THEN
        VendorAgreement.GET(TaxBillHeader."Vendor No.",TaxBillHeader."Agreement No.");
       END;
END;
Старый 18.10.2013, 13:53   #3  
Constantine_imported is offline
Constantine_imported
Участник
 
126 / 10 (1) +
Регистрация: 28.04.2011
Во-первых, я бы обернул всю конструкцию в
Код:
BEGIN ... END или REPEAT ... UNTIL (если нужен цикл)
, т.к. строчка
Код:
IF TaxBillHeader.FINDFIRST THEN;
может не найти запись, а вы потом пытаетесь вывести данные в Excel и можете получить ошибку выполнения или неправильную логику работы кода. Конструкции
Код:
Customer.GET(TaxBillHeader."Customer No."); и Vendor.GET(TaxBillHeader."Vendor No.");
тоже лучше обернуть в
Код:
IF ... THEN
, т.к. могут быть случаи, когда вы не сможете затетиться на запись.
По поводу таблицы, не совсем понятно какая таблица вам нужна, TaxBillHeader? Можно объявить еще одну переменную, ссылающуюся на эту же таблицу (например TaxBillHeader2) и использовать ее для получения нужных данных.
Старый 18.10.2013, 14:18   #4  
srg is offline
srg
Участник
 
116 / 10 (1) +
Регистрация: 20.08.2013
Цитата:
Сообщение от Constantine Посмотреть сообщение
Во-первых, я бы обернул всю конструкцию в
Код:
BEGIN ... END или REPEAT ... UNTIL (если нужен цикл)
, т.к. строчка
Код:
IF TaxBillHeader.FINDFIRST THEN;
может не найти запись, а вы потом пытаетесь вывести данные в Excel и можете получить ошибку выполнения или неправильную логику работы кода. Конструкции
Код:
Customer.GET(TaxBillHeader."Customer No."); и Vendor.GET(TaxBillHeader."Vendor No.");
тоже лучше обернуть в
Код:
IF ... THEN
, т.к. могут быть случаи, когда вы не сможете затетиться на запись.
По поводу таблицы, не совсем понятно какая таблица вам нужна, TaxBillHeader? Можно объявить еще одну переменную, ссылающуюся на эту же таблицу (например TaxBillHeader2) и использовать ее для получения нужных данных.
Я имею проблему, в том, что не могу объяснить, что мне нужно сделать...(
Но я уже благо сделал, и благодарю за советы, они помогли мне сделать задачу!
 


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

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

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