AXForum  
Zurück   AXForum > Microsoft Dynamics AX > DAX: Программирование
All
Kennwort vergessen?
Registrieren Forum Rules Hilfe Benutzerliste Heutige Beiträge Suchen

 
 
Themen-Optionen Thema durchsuchen Ansicht
Alt 24.08.2005, 15:18   #21  
AndyD ist offline
AndyD
Участник
КОРУС Консалтинг
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
 
2.560 / 2499 (89) +++++++++
Registriert seit: 20.08.2005
Может я не понял вопрос , но метод buf2buf класса Global копирует поля таблиц.

Что имеется в виду под копированием контролов в гриде?
Alt 24.08.2005, 15:42   #22  
AndyD ist offline
AndyD
Участник
КОРУС Консалтинг
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
 
2.560 / 2499 (89) +++++++++
Registriert seit: 20.08.2005
Посмотрите как реализовано копирование ч/з кнопку "функции/копирование" журнала складских проводок в классе InventJournalCopy, метод run
Alt 24.08.2005, 17:32   #23  
novic ist offline
novic
Axapta Retail User
Axapta Retail User
 
168 / 25 (0) +++
Registriert seit: 14.04.2005
PHP-Code:
....
        
_to.data(_from.data());
        
_to.insert();
....
        
_to_ds.executeQuery(); 
по сути так -)
но это запись в таблицу. и после этого строки этой таблицы не редактируемы.

А скопировать в гриде , я имел ввиду - скопировать строку прямо на форме, отредактировать её и потом уже записать в таблицу.
Alt 25.08.2005, 08:18   #24  
AndyD ist offline
AndyD
Участник
КОРУС Консалтинг
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
 
2.560 / 2499 (89) +++++++++
Registriert seit: 20.08.2005
Добиться того, чтобы после вставке в датасоурс строк они оставались редактируемы (т.е. оставались в кэше датасоурса и не сохранялись в таблицах) независимо от параметра AlowEdit можно. Для этого достаточно перекрыть метод Write датасоурса формы и не давать вызываться super() этого метода (естественно, если в этом методе организована другая функциональность, связанная с сохранение данных в таблицах то это тоже необходимо обходить).

Только учтите, что при вызове метода Write() датасоурса также происходит вызов validateWrite() на полях таблицы и, соответственно, может возникнуть ситуация, что данные находятся в кэше и видны, а при их сохранении в таблицу будет вызвано исключение.

Еще одна проблема - это использование фильтра и сортировки, точнее невозможность их использования, т.к. при этом произойдет сброс кэша.

Ну и остается проблема - изучить все подводные камни, связанные с таким использованием датасоурса, да и со складскими журналами необходимо разобраться, как это повлияет на работу классов-обработчиков

Не знаю стоит ли овчинка выделки? ;-0
Alt 25.08.2005, 08:47   #25  
AndyD ist offline
AndyD
Участник
КОРУС Консалтинг
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
 
2.560 / 2499 (89) +++++++++
Registriert seit: 20.08.2005
Кстати насчет смысла доработки.

Позвольте заметить, но, конечная цель, которую заказчик планирует достич этой доработкой мне не ясна. Может быть стоит уточнить условия?
Alt 25.08.2005, 10:20   #26  
AndyD ist offline
AndyD
Участник
КОРУС Консалтинг
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
 
2.560 / 2499 (89) +++++++++
Registriert seit: 20.08.2005
Насчет validateWrite на датасоурсе и на таблице я погорячился. Вызов происходит до вызова Write.
Alt 25.08.2005, 17:29   #27  
novic ist offline
novic
Axapta Retail User
Axapta Retail User
 
168 / 25 (0) +++
Registriert seit: 14.04.2005
Вопрос решился пока след образом:
PHP-Code:

    InventJournalTrans InventJournalTransFrom
;
    
InventJournalTable  _table InventJournalTable::find(InventJournalTrans.JournalId);
    
super();

    
InventJournalTransFrom.data(InventJournalTrans);

    
InventJournalTrans_ds.create();
    
buf2buf(InventJournalTransFrom,InventJournalTrans);

    
select reverse InventJournalTransFrom order by LineNum
        where InventJournalTrans
.JournalId == InventJournalTransFrom.JournalId;

    
InventJournalTrans.LineNum InventJournalTrans::lastLineNum(InventJournalTrans.JournalId) + 1;  // вот тут тревожно  -  не совсем ясно, как формировать LineNum . т.к. если после копирванния сразу создать стрку - вылетает ошибка
    
InventJournalTrans.InventTransId '';  //  эта тема позволяет обойти проверку лота для возможности редактирования ItemId 
Что посоветуете?
Alt 25.08.2005, 17:53   #28  
AndyD ist offline
AndyD
Участник
КОРУС Консалтинг
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
 
2.560 / 2499 (89) +++++++++
Registriert seit: 20.08.2005
И все-таки я бы порекомендовал повнимательнее изучить класс InventJournalCopy


PHP-Code:
                    
                    inventJournalTransTo
.clear();
                    
inventJournalTransTo.initFromInventJournalTable(inventJournalTableTo);
                    
inventJournalTransTo.initFromInventJournalTrans(inventJournalTransFrom);
                    
inventJournalTransTo.journalId      inventJournalTableTo.journalId;
                    
inventJournalTransTo.voucher        '';
                    if (
inventJournalTableTo.voucherDraw == JournalVoucherDraw::Entering)
                        
inventJournalTransData.initVoucher(voucher_last,false);               // Voucher is assigned

                    
inventJournalTransData.addJournalTransVoucher();
                    
inventJournalTransTo.insert(); 
Alt 25.08.2005, 18:00   #29  
AndyD ist offline
AndyD
Участник
КОРУС Консалтинг
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
 
2.560 / 2499 (89) +++++++++
Registriert seit: 20.08.2005
И еще
PHP-Code:
 InventJournalTransFrom.data(InventJournalTrans.Data()); 
Alt 25.08.2005, 18:40   #30  
AndyD ist offline
AndyD
Участник
КОРУС Консалтинг
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
 
2.560 / 2499 (89) +++++++++
Registriert seit: 20.08.2005
Может пойдет такой вариант?

PHP-Code:
    InventJournalTrans InventJournalTransFrom;
    
LineNum             lineNum;
    ;

    
super();

    
InventJournalTransFrom.data(InventJournalTrans.data());

    
InventJournalTrans_ds.create();
    
lineNum InventJournalTrans.lineNum;
    
InventJournalTrans.initFromInventJournalTrans(InventJournalTransFrom);
    
InventJournalTrans.lineNum lineNum
Alt 26.08.2005, 10:50   #31  
novic ist offline
novic
Axapta Retail User
Axapta Retail User
 
168 / 25 (0) +++
Registriert seit: 14.04.2005
Да вот этот вариант вполне корректно отрабатывает. Спасибо всем огромное -))
 

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Количество строк в Query Владимир Максимов DAX: Программирование 19 11.08.2014 18:27
Тормозит копирование строк в буфер обмена ivas DAX: Программирование 20 21.08.2007 15:05
Итого по дебиту (кредиту) строки журналов titov DAX: Программирование 0 19.10.2006 13:49
Длительное создание складских журналов Paul_ST DAX: Программирование 2 13.09.2006 10:52
Отвязка формы строк платежа от формы журналов платежей Maximin DAX: Программирование 3 27.01.2005 19:33

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Gehe zu

Рейтинг@Mail.ru
Alle Zeitangaben in WEZ +3. Es ist jetzt 12:19 Uhr.
Powered by vBulletin® Version 3.8.5 (Deutsch)
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.