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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 21.11.2006, 14:00   #1  
Eldar9x is offline
Eldar9x
MCTS
Аватар для Eldar9x
Oracle
MCBMSS
 
1,064 / 166 (8) ++++++
Регистрация: 29.09.2006
Адрес: Казань
Максимальная запись
Помогите пожалуйста выбрать из таблицы запись с максимальлным RecID.
Мое решение не работает:
Код:
 RecID getNewRecID()
    {
         RecID maxRecID;
         RHRMOrderTable locRHRMOrderTable;
         ;
         maxRecID = 0;
         select locRHRMOrderTable;
         while (!locRHRMOrderTable)
         {
            if (locRHRMOrderTable.RecId > maxRecID)
                maxRecID = locRHRMOrderTable.RecId;
            locRHRMOrderTable = NULL;
            select locRHRMOrderTable;
         }
         return maxRecID+1;
    }
Старый 21.11.2006, 14:05   #2  
KiselevSA is offline
KiselevSA
Злыдни
Аватар для KiselevSA
Злыдни
Лучший по профессии 2015
 
958 / 333 (13) ++++++
Регистрация: 25.01.2002
Адрес: Москва
Программисты сейчас Вам скажут, почему нельзя так делать и как получить следующий RecId. Я же только скажу: RecId могут быть отрицательными и текущее выделение может идти по нарастающей от минус максимального )))
Старый 21.11.2006, 14:05   #3  
oip is offline
oip
Axapta
Лучший по профессии 2014
 
2,564 / 1416 (53) ++++++++
Регистрация: 28.11.2005
Записей в блоге: 1
Сорри, но зачем все это?!
X++:
static void Job71(Args _args)
{
    CustTable custTable;
;
    select maxof(recId) from custTable;

    info (strFmt('%1', custTable.RecId));
}
Но зачем?!
За это сообщение автора поблагодарили: Eldar9x (1).
Старый 21.11.2006, 14:08   #4  
Eldar9x is offline
Eldar9x
MCTS
Аватар для Eldar9x
Oracle
MCBMSS
 
1,064 / 166 (8) ++++++
Регистрация: 29.09.2006
Адрес: Казань
Oip, огромное спасибо, а то вначале попробовал select max(... и бросил ))
Старый 21.11.2006, 14:09   #5  
oip is offline
oip
Axapta
Лучший по профессии 2014
 
2,564 / 1416 (53) ++++++++
Регистрация: 28.11.2005
Записей в блоге: 1
Объясните, ЗАЧЕМ?!
Старый 21.11.2006, 14:11   #6  
Eldar9x is offline
Eldar9x
MCTS
Аватар для Eldar9x
Oracle
MCBMSS
 
1,064 / 166 (8) ++++++
Регистрация: 29.09.2006
Адрес: Казань
кстати, объявление CustTable custTable; вовсе не нужно
Старый 21.11.2006, 14:13   #7  
Eldar9x is offline
Eldar9x
MCTS
Аватар для Eldar9x
Oracle
MCBMSS
 
1,064 / 166 (8) ++++++
Регистрация: 29.09.2006
Адрес: Казань
Цитата:
Сообщение от oip Посмотреть сообщение
Объясните, ЗАЧЕМ?!
да тут проблема такая, что поле RecID одной таблицы стоит как манд. а нам нужно ссылаясь на эту таблицу, записать в другую этот самый RecID, причем обе записи создаются новыми, а не берутся уже существующие из данных таблиц
Старый 21.11.2006, 14:14   #8  
Eldar9x is offline
Eldar9x
MCTS
Аватар для Eldar9x
Oracle
MCBMSS
 
1,064 / 166 (8) ++++++
Регистрация: 29.09.2006
Адрес: Казань
Вообще то было бы интересно увидеть реализацию, подобную той что я проделал
Старый 21.11.2006, 14:18   #9  
kashperuk is offline
kashperuk
Участник
Аватар для kashperuk
MCBMSS
Соотечественники
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,361 / 2084 (78) +++++++++
Регистрация: 30.05.2004
Адрес: Atlanta, GA, USA
Вообще-то RecId должен быть уникален в разрезе всей компании.
Или у вас 4.0?

Для связи двух таблиц по RecId создается поле RefRecId, и в него записывается значение RecId второй таблицы.

И еще, как вы узнали, что RecId у одной из таблиц - mandatory? RecId не видно в АОТ.
Старый 21.11.2006, 14:19   #10  
oip is offline
oip
Axapta
Лучший по профессии 2014
 
2,564 / 1416 (53) ++++++++
Регистрация: 28.11.2005
Записей в блоге: 1
Цитата:
Сообщение от Eldar9x Посмотреть сообщение
да тут проблема такая, что поле RecID одной таблицы стоит как манд. а нам нужно ссылаясь на эту таблицу, записать в другую этот самый RecID, причем обе записи создаются новыми, а не берутся уже существующие из данных таблиц
А теперь все тоже самое, но по-русски. А то что-то нет времени загадки разгадывать.

Цитата:
кстати, объявление CustTable custTable; вовсе не нужно
В смысле?
Можно, конечно, и так:
X++:
static void Job71(Args _args)
{
    print (select custTable order by RecId desc).RecId;
    pause;
}
Старый 21.11.2006, 14:27   #11  
Eldar9x is offline
Eldar9x
MCTS
Аватар для Eldar9x
Oracle
MCBMSS
 
1,064 / 166 (8) ++++++
Регистрация: 29.09.2006
Адрес: Казань
Вообще-то RecId должен быть уникален в разрезе всей компании. - ооо, ну тогда меня еще больше проблем .

а по поводу того обявления - прошу прощения, это я сам ошибся
Старый 21.11.2006, 14:28   #12  
Eldar9x is offline
Eldar9x
MCTS
Аватар для Eldar9x
Oracle
MCBMSS
 
1,064 / 166 (8) ++++++
Регистрация: 29.09.2006
Адрес: Казань
mandatory - не RecID, а поле другой таблицы, в которую это значение копируется
Старый 21.11.2006, 14:28   #13  
oip is offline
oip
Axapta
Лучший по профессии 2014
 
2,564 / 1416 (53) ++++++++
Регистрация: 28.11.2005
Записей в блоге: 1
Да нет никаких проблем, задачу объясните только. Только ЗАДАЧУ, а не предложенный Вами метод решения.
Старый 21.11.2006, 14:29   #14  
Eldar9x is offline
Eldar9x
MCTS
Аватар для Eldar9x
Oracle
MCBMSS
 
1,064 / 166 (8) ++++++
Регистрация: 29.09.2006
Адрес: Казань
да, еще - у меня 3.0
Старый 21.11.2006, 14:33   #15  
Eldar9x is offline
Eldar9x
MCTS
Аватар для Eldar9x
Oracle
MCBMSS
 
1,064 / 166 (8) ++++++
Регистрация: 29.09.2006
Адрес: Казань
Проблема в том, что мы меняли функционал: создали на форме элемент на основе EDT, в котором выводится значение из другой формы, все было хорошо )), пока не отправили на тестирование, оказалось, что при открытии этой формы создаются 2 датасорса - из этой таблицы, и из другой. Затем значение RecID второй таблицы, должно по сути (по коду) записаться в поле RecIDfromOrderTable но пишется туда то ли ноль, то ли вообще ничего...
Старый 21.11.2006, 14:34   #16  
Eldar9x is offline
Eldar9x
MCTS
Аватар для Eldar9x
Oracle
MCBMSS
 
1,064 / 166 (8) ++++++
Регистрация: 29.09.2006
Адрес: Казань
Вот это самое поле и стоит манд., а поскольку необходимо его заполнение, то и валит весь код
Старый 21.11.2006, 14:35   #17  
Eldar9x is offline
Eldar9x
MCTS
Аватар для Eldar9x
Oracle
MCBMSS
 
1,064 / 166 (8) ++++++
Регистрация: 29.09.2006
Адрес: Казань
щас тут второй программист будет с Вами разговорить, мне необходимо уйти
Старый 21.11.2006, 14:36   #18  
Eldar9x is offline
Eldar9x
MCTS
Аватар для Eldar9x
Oracle
MCBMSS
 
1,064 / 166 (8) ++++++
Регистрация: 29.09.2006
Адрес: Казань
...Himan
Старый 21.11.2006, 14:37   #19  
oip is offline
oip
Axapta
Лучший по профессии 2014
 
2,564 / 1416 (53) ++++++++
Регистрация: 28.11.2005
Записей в блоге: 1
Если я не путаю, ясновидящие сегодня в отпуске.

Может вам выложить эту самую форму? А то все равно ничего не понятно.
Старый 21.11.2006, 14:55   #20  
Himan is offline
Himan
Участник
Аватар для Himan
 
312 / 12 (1) ++
Регистрация: 07.11.2006
Адрес: Tumen
Цитата:
Сообщение от oip Посмотреть сообщение
Если я не путаю, ясновидящие сегодня в отпуске.

Может вам выложить эту самую форму? А то все равно ничего не понятно.
Тут на Ельдара это все повешали ноформу я выкладываю, помогите разобраться в чем касяк

Последний раз редактировалось Himan; 19.02.2007 в 15:35.
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Бага в сопоставлении «Максимальная переплата или недоплата». Starling DAX: Функционал 1 03.04.2009 17:16
Максимальная длина типа String в DAX 4.0 alex55 DAX: Программирование 31 29.01.2009 15:33
Не корректно сохраняет запись в inventTable Starling DAX: Программирование 8 31.03.2008 15:30
Очень просто: создать новую запись в таблице Hobo DAX: Программирование 20 11.07.2006 13:02
Ошибка при импорте демоданных (Axapta 3.0 CIS SP1) KocDm DAX: Администрирование 2 11.08.2005 12:04

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

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

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