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
Старый 15.02.2021, 21:59   #2  
S.Kuskov is offline
S.Kuskov
Участник
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
3,438 / 1775 (66) ++++++++
Регистрация: 28.04.2007
Адрес: Калуга
Посмотрите как работает кнопка Исходный документ из бухгалтерских проводок. Какой именно ваучер будет выделяется определяется именно исходным документом. Найдёте исходный документ - найдёте номерную серию
Старый 16.02.2021, 01:41   #3  
Владимир Максимов is offline
Владимир Максимов
Участник
КОРУС Консалтинг
 
1,691 / 1195 (43) ++++++++
Регистрация: 13.01.2004
Записей в блоге: 3
По-моему, все-равно парсить придется. Есть уже готовый метод, который слегка допилить под свою задачу (добавить параметр, чтобы без сообщений только true/false возвращал)

NumberSeq::numCheckFormat()

Ну и в цикле все (или только избранные) записи NumberSequenceTable прогнать до первой попавшейся, удовлетворяющей условиям
__________________
- Может, я как-то неправильно живу?!
- Отчего же? Правильно. Только зря...
За это сообщение автора поблагодарили: trud (1).
Старый 16.02.2021, 07:10   #4  
TasmanianDevil is offline
TasmanianDevil
Мрачный тип
Аватар для TasmanianDevil
Злыдни
 
886 / 389 (14) ++++++
Регистрация: 24.01.2005
Адрес: Томск
Дичь и блажь какие-то
Что такого информационно важного и функционально значимого, кроме функции генерации идентификатора операций определенного типа, может быть завязано на номерную серию и генерируемые ей значения ?
__________________
Мы летаем, кружимся, нагоняем ужасы ...
Теги
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, время: 19:18.