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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 03.06.2002, 09:44   #1  
Андре is offline
Андре
Moderator
Сотрудники компании GMCS
 
2,375 / 464 (20) +++++++
Регистрация: 03.12.2001
Работа с номерными сериями.
Понадобилась возможность работать с номерными сериями из кода прогораммы, а именно - я програмно создаю новую закупку, при этом в соответствии с настроенной номерной серией ей должен присваиваться Id.

В результате экспериментов, я дошел до такого варианта:

PHP код:
    NumberSequenceReference _numberSecuenceReference;
    
NumberSequenceTable _numberSequenceTable;
    
PurchId    tmpPurchId;
    
PurchTable oldTbl;
    
str mask;
    
int ps;
    ;

    
super();


// ....................................................

//  a) Получаю новый номер закупки
    
_numberSecuenceReference purchParameters::numRefPurchId();
    
_numberSequenceTable NumberSequenceTable::find(_numberSecuenceReference.NumberSequence,true);

//  б) Составляю Id
    
mask _numberSequenceTable.Mask;
    
ps strscan(mask,'#'1strlen(mask));
    
tmpPurchId substr(mask,1,ps-1) + strrep('0',strlen(mask)-ps-2) + int2str(_numberSequenceTable.NextRec);

//  в) Увеличиваю счетчик в номерной серии
    
_numberSequenceTable.NextRec++;
    
_numberSequenceTable.update();

//----------------------------------------------------------------------------------------------------

    
oldTbl.PurchId tmpPurchId;
// .................................................... 
Не уверен, что делаю правильно, так как:

- пункт б) выглядит коряво. Наверное есть класси метод, который делает то же самое, но в общем случае, но я его не нашел.

- пункт в) - интуиция подсказывает мне, что должен быть метод, возвращающий очередной номер серии и увеличивающий его на единицу. Причем все это в одной транзакции. Конечно это могу делать и я, причем в транзакции, но неужели такого метода действительно нет ,
Старый 03.06.2002, 10:33   #2  
Wamr is offline
Wamr
----------------
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
 
1,737 / 858 (32) +++++++
Регистрация: 15.01.2002
Адрес: Москва
Записей в блоге: 7
генерация PurchId
В классе PurchTableType есть метод
PHP код:
PurchId  getNewPurchId()
{;
    
purchNumberSeq NumberSeq::newGetNum(purchParameters::numRefPurchId(), true);
    return 
purchNumberSeq.num();

Но в форме PurchCreateOrder работа с номерной серией выглядит несколько сложней (не только выделение, но и возможность отката) - это связано с сохранением непрерывности номерной серии.
Старый 20.11.2002, 17:23   #3  
delicia is offline
delicia
Участник
 
16 / 10 (1) +
Регистрация: 10.11.2002
привязка к новой номерной серии
Добавляю новую форму (на основе новой таблицы) в модуль Банки, как привязаться к новой номерной серии (для фомирования Id)? Заранее спасибо за любой ответ!
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Доступ к меню "Работа с документами" Kuat DAX: Администрирование 4 16.11.2007 17:07
Совместная работа заказчика и исполнителя в разных или одном слое? Кузин Владимир В. DAX: Программирование 6 08.08.2006 10:02
Проблема с номерными сериями soin DAX: Функционал 13 27.07.2004 15:36

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

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

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