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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 06.04.2005, 12:22   #1  
Red Stranger is offline
Red Stranger
Участник
 
102 / 19 (1) ++
Регистрация: 01.04.2005
? Как расчитать значение курсора при вызове initValue в таблице?
Доброго всем времени суток.

Я переопределил метод initValue на таблице.

public void initValue()
{
InventSerial inventSerial;
InventTable inventTable;
int maximum;
;
ttsbegin;

select forupdate InventTable
where InventTable.ItemId == inventTable.ItemId;

InventTable.MaxSerialNum++;
maximum = InventTable.MaxSerialNum;
InventTable.update();

inventSerial.InventSerial = InventSerial.InventSerialNum(this.ItemId, int2str(maximum));

if ( (select firstonly RecId
from InventSerial
where InventSerial.InventSerial == this.InventSerial ).RecId == 0 )
{

box::warning("Íîìåð íå óíèêàëåí","Îøèáêà","Ok");
ttsabort;
}
else
{
super();
ttscommit;
}
}

но у переменных this и inventTable recId всегда равно 0
Подскажите как расчитать значение курсора в inventTable

P.S. метод переопределен на таблице InventSerial
Старый 06.04.2005, 12:30   #2  
George Nordic is offline
George Nordic
Модератор
Аватар для George Nordic
Злыдни
 
4,479 / 1250 (50) ++++++++
Регистрация: 17.12.2003
Адрес: Moscow
Записей в блоге: 9
1) Не inventSerial.InventSerial = InventSerial.InventSerialNum(this.ItemId, int2str(maximum));
А this.InventSerial = InventSerial.InventSerialNum(this.ItemId, int2str(maximum));
2) Если RecId == 0, значит, такого значения, удв. критериям запроса, в таблице нет.
3) Что-то, честно говоря, не так с логикой....
Я понял, в чем состоит Ваша задача, но все-таки я бы её решал не так...
Крыжить аналитику, да еще вот тк напрямую... то-то здесь не так в постановке задачи.

С Уважением,
Георгий.
Старый 06.04.2005, 12:41   #3  
macklakov is offline
macklakov
NavAx
Аватар для macklakov
 
2,232 / 974 (37) +++++++
Регистрация: 03.04.2002
Re: Как расчитать значение курсора при вызове initValue в таблице?
Цитата:
Изначально опубликовано Red Stranger
расчитать значение курсора в inventTable
1. Поясните, пожалуйста, что означает этот термин.
2. Что вы планировали получить в результате исполнения этого запроса:
select forupdate InventTable
where InventTable.ItemId == inventTable.ItemId;
3. Не стоит обновлять что либо до того, как были произведены все проверки. Я имею в виду:
InventTable.update();
__________________
Isn't it nice when things just work?
Старый 06.04.2005, 13:09   #4  
Red Stranger is offline
Red Stranger
Участник
 
102 / 19 (1) ++
Регистрация: 01.04.2005
1) У меня метод на таблице не статик => вызывается для конкретного значения курсора => при вызове д.б. это значение
2) В таблице InventSerial надо добавиь запись, где в поле InventSerial нодо запихнуть значение рассчитаное функцией, у которой один входных параметров ItemId, котрый лежит в InventTable
Старый 06.04.2005, 13:40   #5  
macklakov is offline
macklakov
NavAx
Аватар для macklakov
 
2,232 / 974 (37) +++++++
Регистрация: 03.04.2002
Red Stranger, прошу прощения за нескромный ворос. Чем вы занимались до аксапты? Мне кажется, мы с вами разговариваем на несколько разных языках.
__________________
Isn't it nice when things just work?
Старый 06.04.2005, 13:43   #6  
Dron AKA andy is offline
Dron AKA andy
Moderator
 
944 / 253 (10) ++++++
Регистрация: 27.03.2002
Адрес: Москва
В this как раз и содержится курсор, это правильно. RecId у него на момент исполнения метода initValue() равен 0, т.к. не было сохранения. Все остальные поля курсора при вызове этого метода обычно тоже пустые, т.к. именно в нем происходит инициализация полей по умолчанию. Вопрос лишь в том, откуда взять ItemId для выдачи значения, должно быть что-то типа
PHP код:
maximum InventTable::find(this.ItemId).MaxSerialNum
__________________
Андрей.
Старый 06.04.2005, 13:49   #7  
macklakov is offline
macklakov
NavAx
Аватар для macklakov
 
2,232 / 974 (37) +++++++
Регистрация: 03.04.2002
2 Dron AKA andy: а вы уверены, что на момент вызова initValue(), курсор ввобще существует?
__________________
Isn't it nice when things just work?
Старый 06.04.2005, 15:21   #8  
Red Stranger is offline
Red Stranger
Участник
 
102 / 19 (1) ++
Регистрация: 01.04.2005
Цитата:
Изначально опубликовано macklakov
Red Stranger, прошу прощения за нескромный ворос. Чем вы занимались до аксапты? Мне кажется, мы с вами разговариваем на несколько разных языках.
На аксе я пытаюсь программить всего 3-ю неделю. До этого я немного програмил на
дельфях. И до сих пор не могу привыкнуть к Аксе. Нелогичная она. =)

А процитировал я вам всем то, что мне сказал мой начальник, когда я выпытывал у него xyuj да как надо делать. За ошибки я не вответе. Пока не в ответе.

Всем спасибо за участие, но я уже сделал то, чего от меня хотели.
Старый 06.04.2005, 16:24   #9  
macklakov is offline
macklakov
NavAx
Аватар для macklakov
 
2,232 / 974 (37) +++++++
Регистрация: 03.04.2002
Цитата:
Изначально опубликовано Red Stranger
И до сих пор не могу привыкнуть к Аксе. Нелогичная она.
На самом деле логичная, просто непривычная. Хотя, после java, на 2.5, я схожие эмоции испытвал
Цитата:
уже сделал то, чего от меня хотели.
поздравляю
__________________
Isn't it nice when things just work?
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Ввести значение, которого нет в связанной таблице nano3 DAX: Программирование 5 14.07.2008 14:50
Значение/поле пос связаной таблице на форме Delfins DAX: Программирование 1 13.06.2007 20:53
Как узнать значение фильтра пользователя? dd DAX: Программирование 2 11.10.2004 14:38
Как в таблице rassetDeprAccount.Dimension[8] добавить значение аналитики velk DAX: Программирование 2 25.08.2004 16:37
Значение по умолчанию в таблице bocman DAX: Программирование 4 15.08.2003 16:20

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

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

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