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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 10.11.2004, 17:05   #1  
sassas
Гость
 
n/a
использование create() ds
привет

вопрос такой есть:
1. в run() формы вызываю _ds.create() (после super(), перед ним - еще хуже)
2. _ds.create(), в свою очередь, вызывает initValue() таблицы _ds-а.
3. в initValue() таблицы _ds-а (перед super()) я инициализирую одно поле. Делал так неоднократно, работало.
4. по выходу из _ds.create() (см п 1.) поле теряет инициализацию == пустое!!!!

Хочу сохранить инициализацию. что я делаю не так?


Предыстория


ttsbegin - insert - ttsrollback
не хочу исп, так как :
1. траффик
2. транзакция
3. тупое напряжение сервака бд и аос (а ведь create - это чистый клиент)
4. в станд функционале исп таки create()

так что хочу добить create()



форма отрывается, в ней - 1 строка (огромная)
форма эта (таблица) подвязывается к SalesLine 1:1.
Подязанных строк очень немного, но колонок в них оч много, поэтому и вынесено в отдельную табл. Поэтому и не нужно создавать заранее строки или оставлять ненужные.
При открытии формы идет подфильтрация и проверка - есть привязка уже или нужно создавать новую строку.
После редакции польз может от своих слов ) отказаться. Тогда новой строки остаться не должно. Как , впрочем, и изменений в старой (неуаляемой и несозданной только что) строке.
Старый 11.11.2004, 07:29   #2  
slava is offline
slava
сибиряк
Самостоятельные клиенты AX
 
468 / 23 (1) +++
Регистрация: 28.12.2001
Адрес: Москва
Re: использование create() ds
Цитата:
Изначально опубликовано sassas
привет

вопрос такой есть:
.....
3. в initValue() таблицы _ds-а (перед super()) я инициализирую одно поле. Делал так неоднократно, работало.
4. по выходу из _ds.create() (см п 1.) поле теряет инициализацию == пустое!!!!
а в initValue() таблицы поле не "переинициализируется"?
поставьте инициализацию после вызова super()/
__________________
С уважением, Вячеслав.
Старый 11.11.2004, 10:05   #3  
ta_and is offline
ta_and
Участник
 
226 / 122 (5) +++++
Регистрация: 26.02.2002
Адрес: СПб
При отрисовке формы автоматически срабатывают все связи дс.
Поэтому возникают проблемы при добавлении новых строк в дс с иннер джойном.

Выход один.
Убрать автоматическую связку по свойствам дс на форме и линковать эти дс программно (в методе актив и ехекутеКвери)

Нужно будет перекрыть метод врайт на СалесЛайне, и проверять РекИд на ноль.
Если ноль - то делать запись и вашей таблицы.

Нужно еще учесть, что при переходе с полей одного дс на поля другого происходит АВТОМАТИЧЕСКАЯ запись. Там вроде есть какое-то свойство за это отвечающее, или контролировать это программно в том же методе врайт.
Старый 11.11.2004, 13:08   #4  
sassas
Гость
 
n/a
2 slava
"переинициализируется". Только если до super(). Работает на др табл. Работает и на этой таблице. Вижу в отладчике , что иниц-ся в create(), вызывающем initvalue() таблицы автоматически. По выходу из create() поле == "".

2 ta_and
связей нет. На форме , в которой отраб create() 1 датасорс. Без грида и возможности перейти на др строку. 1 строка всегда.

В релайшнах таблиц нет связей тоже.

связь делается программно через args().

Проверка по рекайди ведется, запись создается именно по ее рез .
Не хочется записывать запись в базу. Вот в чем вопрос. Хочу использовать create(), а не insert().

Вот , правда есть тип , один и тот же исп на колонках SalesLine И моей табл... Попробую поменять EDT у SalesLine...


Попробовал
Да, на EDT был релайшн. Именно он отвечал за фильтрацию. После его снятия и программной реализации фильтра (через QBR & init() ds) стало не лучше - initValue() отрабатывает, а после выхоода из create() все благополучно затирается...

Да, нужно копаться... Скажу сразу, что обход я нашел. Но хочется взаимности и описанного в мануалах функционирвания добиться от create() + initValue(). Если такое возможно.
Старый 11.11.2004, 14:13   #5  
ta_and is offline
ta_and
Участник
 
226 / 122 (5) +++++
Регистрация: 26.02.2002
Адрес: СПб
А как устанавливается связь через аргс?
не через поле из аргс.рекорд в ранж?
если так - то это почти тот же автолинк.
Тут видимо нужно какой-то ключ через строковый параметр передавать....

Нужно еще клеарить диналинки на всякий случай...
Старый 11.11.2004, 15:22   #6  
sassas
Гость
 
n/a
спос
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Использование семейства InventDimCtrl_Frm_* - 2 DS InventDim на одной форме Pavlo AKA Panok DAX: База знаний и проекты 5 22.12.2008 17:15
Arijit Basu: Using AX .NET BC to create Purchase Orders Blog bot DAX Blogs 0 14.06.2008 14:10
Привязка фильтров от одного DS к другому Андрей К. DAX: Программирование 10 24.08.2007 14:57
Fred Shen: Create a new method in runtime Blog bot DAX Blogs 0 28.10.2006 16:40
Использование QueryBuildRange в отчетах SG DAX: Программирование 3 05.12.2002 17:55

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

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

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