![]() |
#1 |
Участник
|
внесение новых клиентов
такая ерунда нужно перенести клиентов в уже рабочую базу...
раньше заносила по принципу. Axapta_Code = strRFix(Int2str(countCustind),5,"0"); где countCustind начинался с 1.. А теперь нужно добавлять записи в уже существующую таблицу.. понимаю, что нужно идти в номерные серии NumberSequenceTable и смотреть какой следующий номер будет у серии документов по клиенту.. но как лучше это прописать ума не приложу... может кто что подскажет... |
|
![]() |
#2 |
Участник
|
В принципе, если у вас код клиента всегда имеет именно приведенный вами формат, то можно просто найти максимальное значение кода клиента в таблице клиентов (maxof). Вытащить из него число и присвоить его countCustInd. И делать, как вы делали ранее.
А если через номерную серию идти, то вот пример: (для непрерывной) (выдернуто и переделано из класса SalesAutoCreate) X++: static void TestContinuousNumberSeq(Args _args) { NumberSeq num; SalesId tmpSalesId; SalesTable salesTable; ; salesTable.clear(); salesTable.initValue(); num = NumberSeq::newGetNumFromCode("TEST", true);//(SalesParameters::numRefSalesId()); tmpSalesId = num.num(); box::info(tmpSalesId); if (true)//SalesTable::exist(tmpSalesId)) { num.abort(); checkFailed("@SYS55111"); checkFailed(strfmt("@SYS55112", tmpSalesId)); throw error("@SYS23020"); } salesTable.salesId = tmpSalesId; num.used(); } |
|
![]() |
#3 |
Участник
|
спасибо... получилось всё нормально.
|
|
![]() |
#4 |
Участник
|
Что-то несуразица какая-то выходит...
custTable.clear() ; num = NumberSeq::newGetNumFromCode("КЛ", true); r= num.num(); countCustind =str2int(r); if (!custUpdate) countCustind++; Axapta_Code = strRFix(Int2str(countCustind),5,"0"); Само интересно у меня в номерных сериях следующий номер = 15420, а если проверять через дебаг, то почему -то 4301 ![]() |
|
![]() |
#5 |
Программатор
|
Видать у вас где то в номерных сериях так сказать высвободился номер и Акса хочет его заюзать...
|
|
![]() |
#6 |
Участник
|
1. Для получения серии документов по клиенту лучше использовать метод таблицы СustParameters::numRefCustAccount()
X++: NumberSeq::newGetNum(ustParameters::numRefCustAccount()) То есть в вашем случае нужно просто указать Axapta_Code = num.num() А номерную серию настроить так, чтобы в ней были эти ваше 5 нулей спереди. (странный кстати код - пять нулей и число) И сделайте очистку ей.(номерной серии) |
|
![]() |
#7 |
Участник
|
|
|
![]() |
#8 |
Программатор
|
Основное/настройка/серии документов/сери документов
находите вашу серию и чистите (кнопка очистка кажися справа) Последний раз редактировалось Sada; 22.02.2007 в 14:59. |
|
![]() |
#9 |
Участник
|
Цитата:
Сообщение от kashperuk
![]() 1. Для получения серии документов по клиенту лучше использовать метод таблицы СustParameters::numRefCustAccount()
2. И если Вы уже используете номерные серии, то уже их и используйте. А у вас получается, что используя номерные серии вы делаете свой инкремент. То есть в вашем случае нужно просто указать Axapta_Code = num.num() А номерную серию настроить так, чтобы в ней были эти ваше 5 нулей спереди. (странный кстати код - пять нулей и число) И сделайте очистку ей.(номерной серии) num = NumberSeq::newGetNumFromCode("КЛ", true); Axapta_Code = num.num() ; Но всё равно Axapta_Code равен не 15***, а 4*** |
|
![]() |
#10 |
Участник
|
|
|
![]() |
#11 |
Программатор
|
А тестовая база есть?
![]() |
|
![]() |
#12 |
Участник
|
всё... тут просто косяки в базе разработок были.. В тестовой подцепила- всё нормально... Спасибо...
Кстати.. мальчики с наступающим праздником... |
|
![]() |
#13 |
Участник
|
|
|
![]() |
#14 |
Участник
|
всё... тут просто косяки в базе разработок были.. В тестовой подцепила- всё нормально... Спасибо...
Кстати.. мальчики с наступающим праздником... |
|
|
Опции темы | Поиск в этой теме |
Опции просмотра | |
|