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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 12.01.2010, 17:21   #1  
Константин! is offline
Константин!
Участник
 
180 / 10 (1) +
Регистрация: 13.04.2005
Адрес: Казань
Суть проблемы следующая: С нового года создали новую серию номеров и включили туда символ "/" (пример: ОТГР-10/00048)
При выгрузки в excel с помощью ф-и "Отпр. в Microsoft Office Excel Ctrl+E" открывался excel с сообщением, что обнаружены ошибка в xml файле (см вложение).
Поборол путем удаление из xml файла в атрибуте captio злорадного символа.

CU 403 создал ф-ю меняющею(а точнее удаляющею и заново создающею) нужный атрибут

Код:
SetAttributeValue(VAR DataXML : Automation "'Microsoft XML, v4.0'.DOMDocument40";XPath : Text[250];Name : Text[250];Value : Text[250])

локальные переменные

Name	DataType	Subtype	Length
TempAttribute	Automation	'Microsoft XML, v4.0'.IXMLDOMNode	
DOMNode	        Automation	'Microsoft XML, v4.0'.IXMLDOMNode	
Attributes	Automation	'Microsoft XML, v4.0'.IXMLDOMNamedNodeMap	
AttributeNode	Automation	'Microsoft XML, v4.0'.IXMLDOMNode

тело ф-и

DOMNode:=DataXML.selectSingleNode(XPath);
Attributes := DOMNode.attributes();
AttributeNode := Attributes.getNamedItem(Name);
Attributes.removeNamedItem(Name);

TempAttribute := DOMNode.ownerDocument.createAttribute(Name);
IF Value <> '' THEN
  TempAttribute.nodeValue := Value;
DOMNode.attributes.setNamedItem(TempAttribute);
CLEAR(TempAttribute);
в ф-и LaunchApp

сначала получил значение атрибута
caption1:=GetAttributeValue(DataXML,'//Object','caption');

потом удалил вредоносный символ
caption1:=DELCHR(caption1,'=','/');

и наконец, записал полученное значение
SetAttributeValue(DataXML,'//Object','caption',caption1);

Может, кому пригодится. На оригинальность решения не претендую
Изображения
 
Вложения
Тип файла: txt cu413.txt (35.1 Кб, 299 просмотров)
Старый 14.01.2010, 10:04   #2  
prefreitor is offline
prefreitor
Участник
 
214 / 11 (1) +
Регистрация: 03.10.2006
Цитата:
Сообщение от jopagames
ЗЫ: Просто приятно видеть человека, который поражён мощью и возможностями ф-ции delchr() до такой степени, что пишет её название БОЛЬШИМИ БУКВАМИ в отличие от имён остальных функций.
Сразу видно - что ЭТУ строку дописал сам автор! Лично!
Извиняюсь за оффтоп. jopagames а вы SETRANGE, SETFILTER или GET с маленькой буквы пишите?
 


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

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

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