АктСвер 3.01 (Чтение XML)
Модератор: Дед Пахом
					Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
	При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
- Admin
 - Администратор
 - Сообщения: 4022
 - Зарегистрирован: 05 Июль 2005, 15:59
 - Откуда: Хабаровск
 - Благодарил (а): 59 раз
 - Поблагодарили: 42 раза
 - Контактная информация:
 
АктСвер 3.01 (Чтение XML)
Ни у кого нет кода для разбора акта сверки взаиморасчетов с помощью iQXML ?
Что то мозгов не хватает его разобрать.
Или чем то другим. Или преобразование этого XML в XLS для удобства чтения.
А то присылают это, и нужно бухам глазками читать.
			
			
									
						Что то мозгов не хватает его разобрать.
Или чем то другим. Или преобразование этого XML в XLS для удобства чтения.
А то присылают это, и нужно бухам глазками читать.
Рай совершает ошибки ничуть не реже чем ад. Просто у него хорошая пресса
			
						- Admin
 - Администратор
 - Сообщения: 4022
 - Зарегистрирован: 05 Июль 2005, 15:59
 - Откуда: Хабаровск
 - Благодарил (а): 59 раз
 - Поблагодарили: 42 раза
 - Контактная информация:
 
АктСвер 3.01
Или напомните кусочек кода для ручного разбора XML т.к. повторюсь, iQXML не устраивает.
			
			
									
						Рай совершает ошибки ничуть не реже чем ад. Просто у него хорошая пресса
			
						- Игорь Столяров
 - Ветеран движения
 - Сообщения: 8269
 - Зарегистрирован: 07 Июль 2005, 10:19
 - Откуда: г. Ростов-на-ДоМу
 - Благодарил (а): 34 раза
 - Поблагодарили: 106 раз
 
АктСвер 3.01
iQXML сдох. Года 3-4 назад все парсеры переписали на штатный разбор Clarion по
примеру Юрия (ещё раз спасибо !): viewtopic.php?f=1&t=3390
Что такое "АктСвер 3.01" - не знаю, но если дадите описание, то посмотрю и скажу.
За теми, кто отстал, не возвращаться ! 
 Кодекс
			
						АктСвер 3.01
Поищи в этом форуме по слову FillDomQueue.
Рассказывал, как это делается встроенными классами Кларион, начиная с cw6.
			
			
									
						Рассказывал, как это делается встроенными классами Кларион, начиная с cw6.
- Игорь Столяров
 - Ветеран движения
 - Сообщения: 8269
 - Зарегистрирован: 07 Июль 2005, 10:19
 - Откуда: г. Ростов-на-ДоМу
 - Благодарил (а): 34 раза
 - Поблагодарили: 106 раз
 
АктСвер 3.01
Вот Ваше описание. Это же как настольная библия (или прикроватная камасутра) ...
- Вложения
 - 
			
		
		
				
- Clarion XML.txt
 - (2.6 КБ) 411 скачиваний
 
 
За теми, кто отстал, не возвращаться ! 
 Кодекс
			
						- Admin
 - Администратор
 - Сообщения: 4022
 - Зарегистрирован: 05 Июль 2005, 15:59
 - Откуда: Хабаровск
 - Благодарил (а): 59 раз
 - Поблагодарили: 42 раза
 - Контактная информация:
 
АктСвер 3.01
Спасибо. Завтра разберу.
			
			
									
						Рай совершает ошибки ничуть не реже чем ад. Просто у него хорошая пресса
			
						- Admin
 - Администратор
 - Сообщения: 4022
 - Зарегистрирован: 05 Июль 2005, 15:59
 - Откуда: Хабаровск
 - Благодарил (а): 59 раз
 - Поблагодарили: 42 раза
 - Контактная информация:
 
АктСвер 3.01
Не могу найти исходник FillDomQueue. Киньте кто ни будь сюда или в личку.
			
			
									
						Рай совершает ошибки ничуть не реже чем ад. Просто у него хорошая пресса
			
						- Игорь Столяров
 - Ветеран движения
 - Сообщения: 8269
 - Зарегистрирован: 07 Июль 2005, 10:19
 - Откуда: г. Ростов-на-ДоМу
 - Благодарил (а): 34 раза
 - Поблагодарили: 106 раз
 
АктСвер 3.01
Как-то Вы сразу решили начать с переписывания всего ...
А этот исходник вообще существует ? Реализация работы с XML в Clarion выполнена
в библиотеках Clacpxml.dll и Claxmlty.dll - они добавляются в проект. И это всё ...
За теми, кто отстал, не возвращаться ! 
 Кодекс
			
						- Admin
 - Администратор
 - Сообщения: 4022
 - Зарегистрирован: 05 Июль 2005, 15:59
 - Откуда: Хабаровск
 - Благодарил (а): 59 раз
 - Поблагодарили: 42 раза
 - Контактная информация:
 
АктСвер 3.01
Я не в теме. 
FillDomQueue генерирует дерево по которому потом в коде бежим в цикле.
FillDomQueue я так понял написал Юрий Философов но ссылка на Тактик Диполь не работает.
			
			
									
						FillDomQueue генерирует дерево по которому потом в коде бежим в цикле.
FillDomQueue я так понял написал Юрий Философов но ссылка на Тактик Диполь не работает.
Рай совершает ошибки ничуть не реже чем ад. Просто у него хорошая пресса
			
						- Игорь Столяров
 - Ветеран движения
 - Сообщения: 8269
 - Зарегистрирован: 07 Июль 2005, 10:19
 - Откуда: г. Ростов-на-ДоМу
 - Благодарил (а): 34 раза
 - Поблагодарили: 106 раз
 
АктСвер 3.01
Нет. Метод FillDomQueue описан в cpxml.inc / clw которые находятся в папке LibSrc Clarion.
Есть штатный PDF с описанием, он полезен для понимания как это вообще работает.
- Вложения
 - 
			
		
		
				
- clarionxmlsupport.pdf
 - (424.05 КБ) 404 скачивания
 
 
За теми, кто отстал, не возвращаться ! 
 Кодекс
			
						- Admin
 - Администратор
 - Сообщения: 4022
 - Зарегистрирован: 05 Июль 2005, 15:59
 - Откуда: Хабаровск
 - Благодарил (а): 59 раз
 - Поблагодарили: 42 раза
 - Контактная информация:
 
АктСвер 3.01
Я правильно понимаю что XML с русскими тегами не читаются?
Обычный английский без проблем.
При чтении русского через XMLFileToDOM получаю NULL
			
			
									
						Обычный английский без проблем.
При чтении русского через XMLFileToDOM получаю NULL
Код: Выделить всё
<?xml version="1.0" encoding="windows-1251"?>
<Файл Формат="АктСвер" ВерсияФормата="3.01" Имя="ON_ACCOUNTS___20201123_f36a5aa6-5cb1-4c2c-94ae-31f1df41bf18">
...
</Файл>Рай совершает ошибки ничуть не реже чем ад. Просто у него хорошая пресса
			
						АктСвер 3.01
1. В Кларионе есть шаблон ViewXML. Если его вызвать вызовом кнопки где-то в уголке, то всё подключится на автомате. 
Обычно я так и делаю
2. Шаблон загружает файл в очередь, используя FillDomQueue, после чего показывает XML в виде очереди.
Кстати, полезно посмотреть загруженный XML-файл, сразу будет видно, где что лежит.
3. Если при загрузке происходит авария, то XML-файл не загрузится, надо менять кодовую таблицу.
Вот рабочий фрагмент ( документ лежит в Блоб-поле БД )
Документ загружается в память, в начале документа ищем "WINDOWS-1251" ( такие у меня документы ), заменяем на "UTF-8" и перекодируем текс, а потом загружаем через XMLStringToDOM.  
Если документ лежит не в Блобе, заменяем LoadFromBlob на LoadFromFile.
4. Если ViewXML работает, но показывает кракозябли - это нормально, данные надо будет перекодировать из UTF-8 в Win1251.
5. Мой адрес на tacis-dipol.ru давно ликвидирован.
			
			
									
						Обычно я так и делаю
2. Шаблон загружает файл в очередь, используя FillDomQueue, после чего показывает XML в виде очереди.
Кстати, полезно посмотреть загруженный XML-файл, сразу будет видно, где что лежит.
3. Если при загрузке происходит авария, то XML-файл не загрузится, надо менять кодовую таблицу.
Вот рабочий фрагмент ( документ лежит в Блоб-поле БД )
Код: Выделить всё
LoadXMLDoc   Routine  ! Разборка XML
             Data
XMLText      Cstr
WinPos       Long
             Code
             XMLText.LoadFromBlob(BlobField)
             WinPos=Instring('"WINDOWS-1251"',XMLText.S[1:60],1,1)
             If WinPos
                XMLText.S[WinPos : WinPos+13]='"UTF-8"'
                XMLText.ToUtf8()
             End
             xmlDoc &= XMLStringToDOM(XMLText.S)
             If XMLDoc &= Null
              If BlobToFile(BlobField, 'Error.XML') .
              Return(1)
            End
            Exit
Если документ лежит не в Блобе, заменяем LoadFromBlob на LoadFromFile.
4. Если ViewXML работает, но показывает кракозябли - это нормально, данные надо будет перекодировать из UTF-8 в Win1251.
5. Мой адрес на tacis-dipol.ru давно ликвидирован.
АктСвер 3.01
Надо перекодировать файл в UTF-8, после чего всё будет, никаких проблемAdmin писал(а): 01 Декабрь 2020, 9:42 Я правильно понимаю что XML с русскими тегами не читаются?
Обычный английский без проблем.
При чтении русского через XMLFileToDOM получаю NULL
Код: Выделить всё
<?xml version="1.0" encoding="windows-1251"?> <Файл Формат="АктСвер" ВерсияФормата="3.01" Имя="ON_ACCOUNTS___20201123_f36a5aa6-5cb1-4c2c-94ae-31f1df41bf18"> ... </Файл>
- Admin
 - Администратор
 - Сообщения: 4022
 - Зарегистрирован: 05 Июль 2005, 15:59
 - Откуда: Хабаровск
 - Благодарил (а): 59 раз
 - Поблагодарили: 42 раза
 - Контактная информация:
 
АктСвер 3.01
Это понял. Только нужно еще encoding="UTF-8" добавить
			
			
									
						Рай совершает ошибки ничуть не реже чем ад. Просто у него хорошая пресса
			
						