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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 23.04.2004, 14:09   #1  
Omeo is offline
Omeo
Участник
 
129 / 50 (2) ++++
Регистрация: 18.03.2004
Адрес: Moscow
? что мешает findRecord ?
в datasource методе create сразу вызываю insert
и хочу чтобы выделена была только что вставленная запись

но

если начать вставлять записи не редактируя их, то данные предыдущих вставленных записей затираются ( так по крайней мере выглядит - где дата там 00:00:00 где текст там ""), после закрытия формы и открытия все записи на месте с нужными данными

если в create вставить research то все выглядит нормально кроме того что отмеченой записью всегда становится первая а вызов findRecord не приводит к нужному результату

объяснил как мог не подскажете новичку пути решения ?
Старый 23.04.2004, 18:12   #2  
Dron AKA andy is offline
Dron AKA andy
Moderator
 
944 / 253 (10) ++++++
Регистрация: 27.03.2002
Адрес: Москва
Если нужно сразу после создания записи на методе create() сохранить ее, лучше вызвать метод write() DS.
А research() как раз и вызывает сохранение текущей записи перед обновлением, поэтому все и выглядит как бы нормально.
__________________
Андрей.
Старый 24.04.2004, 10:48   #3  
George Nordic is offline
George Nordic
Модератор
Аватар для George Nordic
Злыдни
 
4,479 / 1250 (50) ++++++++
Регистрация: 17.12.2003
Адрес: Moscow
Записей в блоге: 9
Мови тон..
1) А почему бы на таблице не написать метод "createNewRecordFromMyForm" и из "create" не вызвать именно его?
2) Как можно меньше doInsert, doUpdate и write!!!!! На inserte-то тоже может код использоваться, котороый, допустим, заносит запись в связанную таблицу.
3) потом делайте research и 3.1 переходите на последнюю запись, 3.2 ищите запись и становитесь на неё. Вы же знаете её параметры
Старый 24.04.2004, 11:20   #4  
Garic is offline
Garic
NavAx
Аватар для Garic
NavAx Club
 
393 / 63 (3) ++++
Регистрация: 23.07.2002
Адрес: Москва
Цитата:
Изначально опубликовано Dron AKA andy
Если нужно сразу после создания записи на методе create() сохранить ее, лучше вызвать метод write() DS.
Вызывать метод write() нехоршо - могут быть незаполнены обязательные поля и т.п.
Пользуйтесь методом DS.forceWrite().
__________________
С уважением, Игорь Ласийчук.
Старый 26.04.2004, 12:23   #5  
Dron AKA andy is offline
Dron AKA andy
Moderator
 
944 / 253 (10) ++++++
Регистрация: 27.03.2002
Адрес: Москва
To George Nordic:
Не вижу ничего предосудительного в вызове write() на DS. Если создана новая запись, будет вызван insert(), если сохраняется существующая - update(). Вы же не имеете ничего против сохранения записи кнопкой "Save" сразу после ее создания (если задача так поставлена) ?

To Garic:
Работаю с 3.0 недавно, поясните вкратце, что и для чего делает метод DS.forceWrite().
И опять же про обязательные поля: если задача ставится таким образом, что записи должны сохраняться сразу (решал как-то подобную задачу), все проектируется для автоматического заполнения обязательных полей. А при сохранении через DS.write(), как и при ручном сохранении, все проверки выполнятся автоматически и запись просто не сохранится при наличии ошибок.
__________________
Андрей.
Старый 26.04.2004, 12:33   #6  
andreynikolai is offline
andreynikolai
Участник
 
133 / 10 (1) +
Регистрация: 11.04.2002
Ускорение записи

Метод formDatasource::forceWrite был добавлен для ускорения занесения записи. Этот метод можно использовать для пометки записи как измененной и, таким образом, возможной для занесения, невзирая на изменения, сделанные в этой записи. Метод можно вызывать после super в formDataSource::Create(). Однако, так невозможно сделать в методе formDataSource::initvalue.
Старый 26.04.2004, 12:46   #7  
Dron AKA andy is offline
Dron AKA andy
Moderator
 
944 / 253 (10) ++++++
Регистрация: 27.03.2002
Адрес: Москва
Спасибо за разъяснение. Мне, кстати, как раз такая фишка была нужна не так давно в 2.5
Но к вопросу, как мне кажется, данный совет имеет лишь косвенно отношение. Записи-то не сохраняются сразу же после создания, как требовалось.
__________________
Андрей.
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
findRecord - Out of memory Yprit DAX: Программирование 30 15.04.2005 13:43
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

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

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

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