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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 05.07.2005, 09:43   #1  
Ruff
Гость
 
n/a
Решал похожую задачу для DBF-файлов. Выкрутился вот таким хитрым способом: подменил экземпляр AsciiIo экземпляром СВОЕГО класса, умеющего работать с DBF. Трюк правда основан на недокументированной особенности интерпретатора Х++ (см. обсуждение), но он прекрасно работает!

В Вашем случае можно сделать примерно следующее:
1. В наследнике CustVendOutPaym объявить переменную нужного Вам класса Например: <div class='XPPtop'>X++</div><div class='XPP'>[color=:blue]class[/color] VendOutPaym_MY_BANK [color=:blue]extends[/color] VendOutPaym
{
   XMLDocument fileXML;
}</div>
2. В наследнике CustVendOutPaym перекрыть метод file() следующим образом:
<div class='XPPtop'>X++</div><div class='XPP'>XMLDocument file()
{
   [color=:blue]return[/color] fileXML;
}</div>
3. В наследнике CustVendOutPaym в методе open() произвести открытие XML-файла необходимым образом (то есть инициализировать объект fileXML).

4. В наследниках CustVendOutPaymRecord, также должен быть объявлен объект требуемого нам класса (см. п. 1).

5. Осталось осуществить передчу этого объекта из наследника CustVendOutPaym наследникам CustVendOutPaymRecord. Это происходит, как Вы правильно заметили, в супер-классах (см. метод generatePaymentLines() класса CustVendOutPaym). Нам остается только перекрыть метод setFile() в наследнике CustVendOutPaymRecord:
<div class='XPPtop'>X++</div><div class='XPP'>[color=:blue]void[/color] setFile(XMLDocument _file)
{
   fileXML = _file;
}</div>

P.S.: Способ, конечно, выглядит запутанным. Возможно, Вы предпочтете перекодировку в UTF. Но, по-моему, с XML все-таки удобнее и правильнее работать через специальные классы, чем городить огород через AsciiIo.
 


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

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

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