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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 10.07.2006, 17:57   #1  
Hobo is offline
Hobo
Участник
 
37 / 10 (1) +
Регистрация: 07.10.2003
Адрес: Краснодар
Очень просто: создать новую запись в таблице
Оказывается я так много еще не знаю...
==
Дано: Таблица в аксапте. Любая.
Создаем новую запись - неважно как - через форму или обозревателем.
В InitValue можно даже инициировать значения полей - неважно.
Далее - в перещелкиваем мышей/руками курсор на следующую запись - и обратно.
Закрываем - открываем заново - опля! записи нет.
В результате - пользователи вбивая журнал - не жмут на принудительно сохранить (ну не приучены) - пытаются посмотреть данные по другим источникам - возвращаются - оппа! журнал исчез.
Что-то торомжу - а как принудительно сохранить запись, чтобы при переходе на другую запись - Инсерт был завершен.
У меня получается как то громоздко - через другую запись - Инсерт - обновление формы и т.д. Чую должен быть более короткий путь.
Спасибо за внимание.
Старый 10.07.2006, 18:19   #2  
MironovI is offline
MironovI
Участник
 
724 / 77 (4) ++++
Регистрация: 30.05.2005
У меня возникло только такое предложение навскидку - перекрой linkActive до супера сохраняй запись - правда если не все обязательные поля заполнены будет просто ругань а запись не сохранится - так что может лучше и пользователей научить..

void linkActive()
{
;

if(LedgerJournalTrans_ds.validateWrite())
LedgerJournalTrans_ds.write();

super();
}

PS При переходе на следующую запись в ТОЙ же форме предыдущая 100% сохраняется, так что я подумал что тут именно вариант с dynalink

Последний раз редактировалось MironovI; 10.07.2006 в 18:24.
Старый 10.07.2006, 18:35   #3  
Obapol is offline
Obapol
Участник
 
25 / 10 (1) +
Регистрация: 19.05.2003
И что Все таблицы так погано себя ведут? Имею в виду несохранение записи при переходе на другую строку или одна такая особая завелась?
Дело в том, что запись таки должна сохраняться, тем более в браузере.
Старый 10.07.2006, 18:37   #4  
lagr221374
Гость
 
n/a
Цитата:
Сообщение от Obapol
И что Все таблицы так погано себя ведут? Имею в виду несохранение записи при переходе на другую строку или одна такая особая завелась?
Дело в том, что запись таки должна сохраняться, тем более в браузере.
А Вы в ней ручками чего-нибудь меняли (в новой записи)? Если да и не сохранилась запись при переходе к другой строке то глюк однозначна.

Последний раз редактировалось lagr221374; 10.07.2006 в 18:39.
Старый 10.07.2006, 18:44   #5  
Obapol is offline
Obapol
Участник
 
25 / 10 (1) +
Регистрация: 19.05.2003
Цитата:
пользователи вбивая журнал - не жмут на принудительно сохранить
Бррр...
Какой ужос! Кнопка Сохранить и Аксапта! Ну настолько, гм.... ненормально...
Старый 10.07.2006, 18:55   #6  
lagr221374
Гость
 
n/a
Цитата:
Сообщение от Obapol
Бррр...
Какой ужос! Кнопка Сохранить и Аксапта! Ну настолько, гм.... ненормально...
По-моему как раз все нормально...Если не пользователь не меняет запись в форме (хоть программно хоть руками) то что-же он сохраняет? И зачем ему такая запись?
Старый 10.07.2006, 20:44   #7  
MironovI is offline
MironovI
Участник
 
724 / 77 (4) ++++
Регистрация: 30.05.2005
Если нет обязательных полей, то и пустая запись - тоже полноправная запись - у меня закрались подозрения уже на другую тему - поскольку в браузере трабатывают все стандартные методы - можно глянуть на перекрытый insert таблицы, а заодно повторить эксперимент на любой другой таблице - допустим вы видели как выглядит insert у InventDim? ооот..
Старый 10.07.2006, 23:01   #8  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Сообщение от Hobo
Далее - в перещелкиваем мышей/руками курсор на следующую запись...
В этот момент должен сработать метод write на форме, метод insert или update на таблице.
Поищите диаграмы по ключевому слову sequence в руководстве разработчика.

Скорее всего, вы перекрыли один из этих методов и забыли вызвать супер.
Насчет "Таблица в аксапте. Любая" - это вы погорячились.
__________________
полезное на axForum, github, vk, coub.
Старый 11.07.2006, 10:18   #9  
Hobo is offline
Hobo
Участник
 
37 / 10 (1) +
Регистрация: 07.10.2003
Адрес: Краснодар
Так ведут себя абсолютно все таблицы. И вновь созданные и даже такие монстры как SalesTable и пр...
Опробовано раз десять - результат один.
Что-то мне не верится - что только у нас так.
Эксперимент:
1.Открываем в обозревателе SalesTable
2. Создаем новую запись
Ничего не меняем руками!!! InitValue - заполнит кое-какие значения, неважно
3. В Браузере перещелкиваемся на другую запись - и обратно.
4. Закрываем браузер.
5. Открываем - опля! записи нет!
Если было изменение руками - то срабатывает метод "врите" - все изменения как положено сохранены.

==
Моя проблема - создает пользователь журнал (складской) - и заполняет строки. Потом, если переходит (теряет фокус) на другое место - и возвращается - строки журкнала есть - заголовка (шапки) - нет.
Sp1 - частично 3-й.
Старый 11.07.2006, 10:30   #10  
olesh is offline
olesh
Участник
 
58 / 26 (1) +++
Регистрация: 02.04.2002
Адрес: Москва
Добавьте вызов this.forceWrite(true) в методе create источника данных.
За это сообщение автора поблагодарили: kashperuk (2).
Старый 11.07.2006, 11:07   #11  
Hobo is offline
Hobo
Участник
 
37 / 10 (1) +
Регистрация: 07.10.2003
Адрес: Краснодар
Цитата:
Сообщение от olesh
Добавьте вызов this.forceWrite(true) в методе create источника данных.
ДА!!! Помогло! Спасибо очень очень очень большое!
Старый 11.07.2006, 11:22   #12  
MironovI is offline
MironovI
Участник
 
724 / 77 (4) ++++
Регистрация: 30.05.2005
Цитата:
Сообщение от olesh
Добавьте вызов this.forceWrite(true) в методе create источника данных.

И что это было?..
Старый 11.07.2006, 11:23   #13  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Сообщение от Hobo
5. Открываем - опля! записи нет!
Блин, только что проверил. Запись есть.

Цитата:
Сообщение от Hobo
Sp1 - частично 3-й.
Угу. Может дело в этом.
У меня SP5 Kernel Rollup 2.

Накатывайте обновления на экзешник и избавитесь от кучи странностей. Это несложно и недолго (главное обновить экзешник у всех клиентов и на сервере).
__________________
полезное на axForum, github, vk, coub.
Старый 11.07.2006, 11:23   #14  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Сообщение от olesh
Добавьте вызов this.forceWrite(true) в методе create источника данных.
Это похоже на закат солнца вручную.
В принципе и так можно...
__________________
полезное на axForum, github, vk, coub.
Старый 11.07.2006, 11:41   #15  
Dron AKA andy is offline
Dron AKA andy
Moderator
 
944 / 253 (10) ++++++
Регистрация: 27.03.2002
Адрес: Москва
Подтверждаю проблему. 3.0 SP3CU1.

Вообще-то так всегда было. Система, видимо, считает, что пользовательских изменений записи нет (initValue не в счет - значения по умолчанию), и не сохраняет запись. В нескольких местах системы, где нужно сохранение даже "пустой" записи, используется forceWrite().
__________________
Андрей.
За это сообщение автора поблагодарили: mazzy (9).
Старый 11.07.2006, 11:44   #16  
Recoilme is offline
Recoilme
злыдень
Аватар для Recoilme
Злыдни
 
895 / 192 (8) ++++++
Регистрация: 18.06.2003
Цитата:
Сообщение от Dron AKA andy
Подтверждаю проблему. 3.0 SP3CU1.

Вообще-то так всегда было. Система, видимо, считает, что пользовательских изменений записи нет (initValue не в счет - значения по умолчанию), и не сохраняет запись. В нескольких местах системы, где нужно сохранение даже "пустой" записи, используется forceWrite().
В чём проблема то???
Скорей проблема добавлена в СП5 КР2
Во всяком случае с этим поведением системы живем не первый год а что за автосохранялку они там намутили и какие будут проблемы - ещё вопрос..
Если конечно mazzy ничего не напутал..
__________________
Ибо зло есть лучшая сила человека. "Человек должен становиться все лучше и злее" -- так учу я. /Ф. Ницше/
Старый 11.07.2006, 11:47   #17  
Hobo is offline
Hobo
Участник
 
37 / 10 (1) +
Регистрация: 07.10.2003
Адрес: Краснодар
Спасибо. Спробуем вариант с sp разными.
forceWrite() - впрочем проблему решил - там посмотрим.

Последний раз редактировалось Hobo; 11.07.2006 в 11:54.
Старый 11.07.2006, 11:57   #18  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Наврал

Ключевая фраза - "ничего не меняем руками!!!"
Цитата:
Сообщение от Hobo
1.Открываем в обозревателе SalesTable
2. Создаем новую запись
Ничего не меняем руками!!!
Если например в SalesTable ничего не менять руками, то останется куча незаполненных полей. Запись не будет записана хотя бы из-за того, что не пройдет validateWrite().

Если заполнить хотя бы одно поле, то Аксапта попытается записать при переходе на другую запись. Если ничего руками не трогать, то Аксапта будет считать, что ничего не изменилось и записывать не будет.

Ничего не понимаю.
В чем прикол то?
__________________
полезное на axForum, github, vk, coub.
Старый 11.07.2006, 12:03   #19  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Сообщение от Dron AKA andy
Подтверждаю проблему. 3.0 SP3CU1.

Вообще-то так всегда было. Система, видимо, считает, что пользовательских изменений записи нет (initValue не в счет - значения по умолчанию), и не сохраняет запись. В нескольких местах системы, где нужно сохранение даже "пустой" записи, используется forceWrite().
Еще раз перечитал - полностью согласен. Респект.
__________________
полезное на axForum, github, vk, coub.
Старый 11.07.2006, 12:24   #20  
vashilov is offline
vashilov
Участник
 
3 / 11 (1) +
Регистрация: 28.07.2003
Цитата:
Сообщение от mazzy

Ничего не понимаю.
В чем прикол то?
Сделали так, я думаю, когда натолкнулись на проблемы со "случайным" созданием записей в таблицах.
Например: Есть две таблицы на форме - Главная и Подчиненная.
У подчиненного источника данных стоит свойство InsertIfEmpty = Yes.
Пользователь просто перемещается по главному источнику данных.
Если бы не эта заглушка - в Подчиненной таблице создались бы много "лишних" строк
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Фильтрование записей при "переходе к основной таблице" demID DAX: Программирование 10 18.11.2015 12:52
Как в аксапте создать разделяемую блокировку на запись в SALESTABLE. sergeypp DAX: Программирование 2 01.09.2006 15:09
Как Узнать из класса - Текущую выбранную запись в таблице djoker DAX: Программирование 1 01.12.2004 07:36
Переход на правильную запись при Переходе к основной таблице. - 2 Anais DAX: Программирование 2 01.11.2004 17:14
Опции темы Поиск в этой теме
Поиск в этой теме:

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

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

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

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