Аналитика http://www.geosystema.net/forum/ |
|
XML против Reports http://www.geosystema.net/forum/viewtopic.php?f=1&t=2051 |
Страница 1 из 20 |
Автор: | kukin [ 10 фев 2011 11:52 ] |
Заголовок сообщения: | XML против Reports |
С XML в дигиталсе еще можно разобратся, поскольку элементы XMLя читаются как простые параметры, можем использовать уже накатанные пути заполнения параметров, к тому же разработчики постоянно дополняют функционал самой программы. Но что делать с отчетами (Reports)? Новые требования по технической документации запрашивают больше чем задано в ин4, по этому конвертацию из хмеля в ин4 не рассматриваю(собственно и развитие старых шаблонов). Открыл пример нового обменника с сайта, и попытался создать отчет. Сразу понял что придется начинать с белого листа, список шаблонов был пуст, и это не удивительно, откуда им взяться? Вставив буфер обмена в Notpade++, обнаружил совершенно новую картину: В шапке огромное количество текста (более 7000 символов), были обнаружены знакомые нам ранее параметры. Далее часть тела XML, далее описание межевых знаков, и угодий, далее каталог углов поворота и длин линий с координатами. В общем возникает вопрос, с какой стороны к этому подходить, и как начинать с этим работать. Не дублировать элементы обменника в параметры подобные ин4 и далее с ними работать? |
Автор: | Anton Shchavinsky [ 10 фев 2011 22:40 ] |
Заголовок сообщения: | Re: XML против Reports |
А что за новые требования по технической документации? Я думаю, что примеры работы с xml можно почерпнуть в отчетах для Регистратора. |
Автор: | kukin [ 12 фев 2011 10:18 ] |
Заголовок сообщения: | Re: XML против Reports |
Цитата: А что за новые требования по технической документации? На местном уровне чинуши извращаются. добавлено: сам шаблончик Цитата: Я думаю, что примеры работы с xml можно почерпнуть в отчетах для Регистратора. Не так все просто. |
Автор: | kukin [ 11 мар 2011 19:29 ] |
Заголовок сообщения: | Re: XML против Reports |
Продолжаем войну с ветряными мельницами Поскольку родной Report дигиталса пока адекватно не реагирует на XML, решил позаимствовать RegReports из регистратора (переименовав RegReports.exe в Reports.exe) Далее скормил ему шаблоны регистратора, после чего отчеты не стали ругаться на свежие функции типа XPATH (пропала надпись слишком много параметров). Насколько я понял теперь в буфер будет поступать чистое тело обменника(в отличии от "чистых" параметров ин4, и метрики), а уж далее операции будут производится с чистым XML. Можно сделать вывод, что нужные строки можно подтягивать по тегам, структура стандартна и можно с ней работать. Пока весит вопрос о метрической информации. Хотелось бы увидеть, как работают новые функции, желательно на простых примерах. PS: Так-же RegReports почему то очень долго выполняет обработку шаблонов на одном ядре 1,4гГц, и 512 оперативки, это нормально ? |
Автор: | kukin [ 17 мар 2011 10:42 ] |
Заголовок сообщения: | Re: XML против Reports |
Было б здорово, если выпустили наконец Reports для работы с XML, с работающими функциями |
Автор: | kukin [ 31 мар 2011 22:43 ] |
Заголовок сообщения: | Re: XML против Reports |
Dmitry_Zolotar могли бы вы описать существующие оси, системные функции, тд.. для Xpath в отдельной ветке форума(которую могли править только вы, чтоб лишить её лишнего флуда). Сам Xpath видимо увесистая функция. Тяжко незнающему догадыватся |
Автор: | Bondarets Alexander [ 01 апр 2011 09:46 ] |
Заголовок сообщения: | Re: XML против Reports |
Цитата: Сам Xpath видимо увесистая функция. Тяжко незнающему догадыватся Функция как раз очень простая. Передается один лишь параметр, непосредственно XPath запрос. Сами запросы могут быть довольно сложные. Но так как XPath в Reports может возвращать лишь значение одного текстового узла, все запросы упрощаются до конкретного указания пути к узлу. |
Автор: | kukin [ 02 апр 2011 11:01 ] |
Заголовок сообщения: | Re: XML против Reports |
Цитата: Функция как раз очень простая. а как-же? |
Автор: | kukin [ 02 апр 2011 13:26 ] | ||
Заголовок сообщения: | Re: XML против Reports | ||
Начнем изучение работы репорта с отчетов регистратора, но тут в шаблонах коды под иной XML, придется много править и разбирать. Пригодится легкий поиск пути в XML. Такс, для легкого отображения пути к элементу в XML, я использую полезный редактор Notpad++, распространяется бесплатно и открытым кодом (лицензия GNU GPLv2.0), также использую его с выбором определенного синтаксиса при кодинге в Reports. Тут понадобится плагин XML Tools (dll требуется распаковать в корневую папку программы notepad++, обратите внимание что не в папку плагин!) Также нужны библиотеки из архива ext_libs.zip которые тоже распаковываются в корневую папку программы notepad++. Далее Опции/Импортировать плагины выбираем XMLTools.dll и перезапускаем программу. Пользуемся плагином (дополнением)через главное меню, или быстрыми клавишами Ctrl+Alt+Shift+P. Получаем при этом в буфер нужный путь с отображением информационного меню на экране.
|
Автор: | kukin [ 02 апр 2011 15:08 ] | |||
Заголовок сообщения: | Re: XML против Reports | |||
Приходится начинать все с "0", поскольку программа в которой я работал совершенно не подготовлена к XML. Скачал установочный файл Digitals обрезал папку digitals и папку Templates до вида отображенных на картинках(удалил все "ненужное", чтоб пока не мешалось, вес программы при этом сократился до 30метров). В папку Templates и Lists вложил шаблоны и текстовые документы взятые из пакета Регистратора (LandBook.fr3; Zayava1.fr3; Zayava2.fr3). На всякий случай обновил XMLNormal.dmf Скачал образец XML файла.
|
Автор: | kukin [ 02 апр 2011 15:25 ] |
Заголовок сообщения: | Re: XML против Reports |
Открыв XML в дигиталсе, запускаю репорт. Далее правлю пакеты документов( добавляю в дизайнер), в которых самым интересным является LandBook.fr3 В этом шаблоне практически все работает без сбоев, надо лишь решить вопрос с открытием изображения(я просто его отключил): .... {procedure Picture1OnBeforePrint(Sender: TfrxComponent); var FN:String; begin FN:=WorkDir+'\Pictures\LBCP'+CadNumberClear+'.bmp'; Picture1.LoadFromFile(FN); end;} ... После запуска отчета, мы увидим странички поземельной книги, с экспликацией и многими полезными полями! Меня это сильно порадовало, думаю стоит сказать спасибо тем кто трудился над шаблоном, за такие заготовочки!* * заготовочки именно для технички, а не для того, чтоб заменить регистратор, на дигиталс (хотя это тоже полезно в некоторых случаях) Первое, что заинтересовало как Дмитрий (Dmitry_Zolotar) перевел форму 6-Зем на XML, насколько я понимаю это его труд. Тут понадобится потратить времени на изучение Интересно, что весь шаблон использует условный оператор (if..then...else) постоянно определяя перед нами ин4 , или же XML. У меня даже мысли не появлялось использовать ин4, в регистраторе наверное надо использовать два формата. При генерации шаблона LandBook.fr3 из ин4 для работы экспликации (формы 6-Зем) потребовалось файл 6ZemCols.txt записать в папку Templates. Удивительно, что файл в новом дистрибутиве дигиталса 6ZemCols (размером 7,5Кб) "порвал как Тузик тряпку" нашу экспликацию, пришлось доставать из старых "запасов " 6ZemCols (размером 7,4Кб, 07.04.09 даты рождения), при этом экспликация приобрела читабельный вид, но поля шифр рядка и номер рядка заполнились не правильно а вот, что это за зверь: XML573Root:String; //путь к корню XML573? ко всему применимо: then XML573Root:=IIF(IsNodeExists('InfoPart'),'','EmbeddedXML/UkrainianCadastralExchangeFile/'); ? |
Автор: | Bondarets Alexander [ 03 апр 2011 12:07 ] |
Заголовок сообщения: | Re: XML против Reports |
kukin писал(а): XPath запрос возвращает список узлов, удовлетворяющих условиям запроса. В Reports функция XPath не возвращает список узлов, не возвращает даже один узел. Она возвращает значение заданного текстового узла. Поэтому она намного проще чем полноценные XPath запросы. |
Автор: | Bondarets Alexander [ 03 апр 2011 12:21 ] |
Заголовок сообщения: | Re: XML против Reports |
Цитата: а вот, что это за зверь: XML573Root:String; //путь к корню XML573? ко всему применимо: then XML573Root:=IIF(IsNodeExists('InfoPart'),'','EmbeddedXML/UkrainianCadastralExchangeFile/'); ? Шаблоны новой версии Регистратора действительно создаются как универсальные, способные работать не только с данной программой, но и напрямую с Digitals. Регистратор последней версии передает в Reports все данные в виде XML файла, скопированного в буфер обмена. Данный XML содержит обменный UkrainianCadastralExchangeFile(он же XML573), целиком записанный в ветку EmbeddedXML. А также дополнительную информацию, которую XML573 не содержит: номер и тип заявления, данные о заявителе, данные о лице, заключающем договор и проч. Во всех шаблонах используется переменная XML573Root, которая как раз и указывает на узел, содержащий обменный XML. Это пустая строка, если в буфере только обменный файл, или путь EmbeddedXML/UkrainianCadastralExchangeFile/, если в буфере данные из Регистратора. |
Автор: | kukin [ 05 апр 2011 22:51 ] |
Заголовок сообщения: | Re: XML против Reports |
Продолжаем "пилить" программу . Добрался до setup.ini и папки Lists. В папке Lists удалил во всех списках "лишние" области. Вряд найдутся специалисты орудующие в нескольких областях. Далее ручки потянулись в setup.ini поправил нужные константы. Выяснилось, что область, областная санстанция, областные экологи, областная архитектура (названия в разных падежах) превратились из списков в одну строку, в бессмысленную кучу файлов которых и без этого многовато. Меняем: RepНазва(Область)=SEF(RegionID,'Obl.txt') DMTНазва(Область)=SEF(CUT(1,2,P[ID106]),Obl.txt) на: RepНазва(Область)=...... область DMTНазва(Область)=...... область и тд.. Таким образом было удалено 21 файл однострочных списков. Хорошо б, чтоб LEdit.exe понимал этот файл (хотя это не критично, увидим позже почему). Чтоб получить возможность работать в setup.ini с населенным пунктом, головой сельской рады(города), и сельским землеустроителем, в репорте требуется ввести еще одну константу аналогичную: RegionID:=Copy(CadNumberClear,1,2); RayonID:=Copy(CadNumberClear,1,5); RadaID:=Copy(CadNumberClear,1,8); LocID:=Copy(CadNumberClear,1,10); Аналогично для DMF и репорт в setup.ini запишем: RepНазва(.....)=SEF(LocID,'....txt') DMTНазва(......)=SEF(P[ID106],......txt) Тут придется дописать списки голов, сельских землеустроителей и населенных пунктов. Вот только LEdit.exe после такого надругательством над ini нужно похоронить . В общем займусь правкой списков, благо они уже существуют(но устарели). |
Страница 1 из 20 | Часовой пояс: UTC + 2 часа |
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group http://www.phpbb.com/ |