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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 15.02.2021, 20:57   #1  
dech is offline
dech
Участник
Аватар для dech
Самостоятельные клиенты AX
 
647 / 350 (13) ++++++
Регистрация: 25.06.2009
Адрес: Омск
Записей в блоге: 3
Поиск NumberSequenceTable по полю Voucher
Доброго времени суток.
В АХ2012 возникла нетривиальная задача. Для финансового отдела край как стало необходимо видеть в отчете, по какой номерной серии был сгенерирован ваучер.
Т.е. на таблице VendTrans имеется Voucher с префиксом и суффиксом, например VNC######R1, и нужно найти NumberSequenceTable.Txt. По данному шифру любой сотрудник может без труда определить, что за номерная серия использовалась. В ТЗ как обычно тыкают пальцем и говорят, вот мы же смогли определить, почему ты не можешь?
Конечно можно выполнить задачу, распарсив значения ваучера, однако это будет код зависимый от данных, т.е. любой другой сотрудник, который не "в теме", создаст номерную серию по другому и у нас уже отчет не выводит корректные данные. Я уже вижу в своей базе другой пример: VNCF1######. И парсить его придется по другим правилам.
Но есть выход, к которому я пришел, через пару промежуточных таблиц я нахожу поле с описанием номерной серии (см. пример ниже). Однако, для части данных LedgerJournalTrans отсутствует. И вот в этом-то и загвоздка. Может ли кто подсказать, как еще можно добраться до номерной серии "правильным" способом?
X++:
private Name voucherDescription()
{
    NumberSequenceTable numberSequenceTable;
    LedgerJournalTrans  ledgerJournalTrans;
    LedgerJournalTable  ledgerJournalTable;

    select firstOnly Txt from numberSequenceTable
    exists join ledgerJournalTable
        where ledgerJournalTable.NumberSequenceTable == numberSequenceTable.RecId
    exists join ledgerJournalTrans
        where ledgerJournalTrans.JournalNum         == ledgerJournalTable.JournalNum
           && ledgerJournalTrans.Voucher            == vendTrans.Voucher;

    return numberSequenceTable.Txt;
}
P.S. Если что, VendTrans.JournalNum пустой для всех записей в базе.
__________________
// no comments
Теги
numbersequencetable, voucher

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
dynamicsaxtraining: Purchase Blog bot DAX Blogs 0 11.03.2012 05:25
Поиск в Grid по полю DataMethod Tiruvileijadal' DAX: Программирование 20 14.05.2007 13:37
По полю InventSizeId в формах не работает поиск и сортировка? Hidden DAX: Функционал 4 04.04.2006 17:24
Поиск по полю временной таблицы Swetik DAX: Программирование 2 10.12.2003 11:35
Поиск в Grid по полю из другой таблицы Dron AKA andy DAX: Программирование 9 01.08.2002 16:36

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

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

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