Делимся шаблонами

Доброго времени суток!
После долгого затишья и изнеможенный жестокой борьбой з техничками и проектами, жертвуя своим сном и силами, :smiley: выкладываю очередную версию XML Report 1.5 /beta/ (1.4 не ищите :smiley: я применяю тактику виндовс 8->10 ). За это денег не прошу – все ровно не дадите :smiley:.

  1. Возможно немного забегу наперед, но главная изюминка здесь – поддержка скриптов на языке Паскаль. Внутри программа значительно переработана, теперь почти все переменные «снаружи», т.е. видны сразу их значения после открытия ХМЛ на вкладке Data XML. Добавить скрипты очень просто с помощью кнопки «Add Var» или ручками в блокноте (я использую NotePad++ там есть подсветка кода, потому как редактор кода здесь пока убогий) и закинуть скрипт с расширением *.pas в VarScripts. Для человека не слыхавшего о Делфях придется трудновато, но пишите поможем чем сможем.
    Описание внедренных функций смотрите в ..\VarScripts\ ScriptDescription.txt.

В связи с этим перспективы более чем: гибкость программы, получение\редактирование значений любой фиксированной переменной из любого Отчетного режима (Групповой, Одиночный, Пофамильный), парсинг ХМЛ, объявление собственных типов, классов, подключение других модулей (из системных пока System.SysUtils и еще парочку - нет под рукой делфи сказал бы).

По примерам в папке VarScripts думаю догадаетесь.

Теперь немного о том как это все работает. Много раз уже писал, что есть три Отчетных режима: Групповой или общий, Одиночный или по-участковый, Пофамильный (по человеку) :slight_smile:. Не знаю понимаете Вы это или нет, но для примера откройте сперва один ХМЛ запустите генерацию на шаблонах _DemoTest, потом побольше ХМЛ – запустите снова, потом ХМЛ с несколькими владельцами в одном участке и надеюсь к Вам прийдет осознание мною задуманного.

В Групповом у любой переменной будь то даже скрипт, всегда ОДНА строка со значением, и она генерируется везде в шаблонах где стоит ползунок с данным режимом. По аналогии можно предположить, как работают остальные режимы по собственным названиям.

Двойной клик на любой из переменной открывает дополнительное окно. Редактор кода не активный на фиксированных переменных, естественно кроме скриптовых.

  1. Этот пункт после первого точно так себе будет.
  • добавил «Каталог координат», который поддерживает все Отчетные режимы. Наши знатоки называют его ведомостью вычисления площади, так что открываем шаблон (ПКМ – Открыть) и называем как душе угодно. Только без фанатизма - не трогайте саму структуру таблицы.
  • скажем Спасибо Embarcadero за Delphi XE7, в которой пропали мелкие баги в интерфейсе.
  • теперь можно грузить все ХМЛ и работать конкретно с выделенными.
  • добавлено в настройках точность\представление линейных и угловых величин.

Забыл, это скорее к разработчикам Digitals - не срабатывает связка Map.BeginUpdate и Map.EndUpdate, в которой находится код создания GPS векторов в шаблонах XML-DGM1.dmt и XML-GPStransfer1.dmt. Не отображаются созданные объекты даже после Window.Refresh. Проблема исчезает после Файл-Предварительный просмотр.
Может это к лучшему, шутка ли отобразить ГПС вектора с условным знаком, например от Киева до Львова. У меня компьютер зависает до минуты намертво.

П.С. Спасибо своим друзьям, которых доставал расспросами и особенно форумчанам за критику и предложения :exclamation: .

Sergey класна у вас програма, мені дуже помогла з технічками, але є в мене одна особливість при формуванні технічки з КОАТУУ 7110800000 видає: List index out of bounds (48) і викидає пустий шаблон, в чому може бути причина? Це кстаті у версіях 1.3 і 1.5 а в 2.1 все норм.
Буду вдячний за допомогу!
Додаю файл

також стикався з такою проблемою. Причина в тому, що у файлах в папці lists є списки не всіх КОАТУУ і населених пунктів. Вашого якраз немає. Перевірте списки і добавте свій. Це стосується як голів населених пунктів, списків населених пунктів в родовому відмінку, так і усіх інших, де вказані КОАТУУ. Перевірте кожен і, в яких нема - добавте. Тоді помилка зникне.

fendak дуже дякую за допомогу, були відсутні КОАТУУ в записах про голів та міських рад, тепер робить на ура.
Ще одне питання в попередній версії 1,3 дані про Державний акт виходили так:
Державний акт на право власності на землю серії І-ЧР №019840, зареєстрований від “10” вересня 2001 р. №12-46.
а в новій 1,5 так:
Державний акт на право власності на земельну ділянку серія ЧР216172, зареєстрований від “15” червня 2007 р., виданий на підставі: рішення органу місцевого самоврядування від “18” листопада 2003 р. №2161
Питання в тому: чи можна зробити щоб державний акт виводило як у версії 1,3?
Зарання дякую!

Можна, зараз потрібно виконати обовязок геодезиста, пізніше напишу Вам скрипт.

Yaroslav помістити файл в VarScripts

Sergey велике дякую! Ви мені дуже допомогли!

Сергей Здравствуйте!! :slight_smile:. Есть просьбочка сделать програмулину типа TCPScript, простенькую на основе вашего компилятора кода, главное чтобы взаимодействие с Digitals и word осталось таким же как в TCPScript.
P.S. С меня пиво в Заманихе :slight_smile:

Чи є можливість прцювати на digitals 2013

питання вже піднімалось на першій сторінці…

видає помилку:

“ExecuteDocument XML-CadPlan1.dmt” “ Unknown command: EXECUTEDOCUMENT” <<-

Скопировать шаблоны из папки ДМТ в директорию где находиться гед.ехе

Все я зробив по інструкції. Проблема не тільки в мене, на першій сторінці цього форуму в “klaid” теж виникала така проблема. Не формує плани в digitals.

Билд Гед должен быть от 25.04.2013

Вибачте! Описка!
Виправлено!

Чи є можливість працювати на digitals 2012

питання вже піднімалось на першій сторінці…

видає помилку:

“ExecuteDocument XML-CadPlan1.dmt” “ Unknown command: EXECUTEDOCUMENT” <<-

Ні, в ньому відсутня дана команда executedocument

Помогите пожалуйста!
Пытаюсь написать следующий простой скрипт:

[code]var s: String;

begin

s : =XPath('/UkrainianCadastralExchangeFile/InfoPart/CadastralZoneInfo/CadastralQuarters/CadastralQuarterInfo/Parcels/ParcelInfo/Proprietors/ProprietorInfo/Authentication/NaturalPerson/Passport/DocumentType', 1);

SetLength(_RESULT, 1);
_RESULT[0] := s;

end.[/code]
Получаю в 4 строке “Argument out of range”. Что я делаю не так?

var s, res: String; iParcel: Integer; // Индекс участка begin res := ''; for iParcel := 0 to High(GetFiles) do begin s := XPath('/UkrainianCadastralExchangeFile/InfoPart/CadastralZoneInfo/CadastralQuarters/CadastralQuarterInfo/Parcels/ParcelInfo/Proprietors/ProprietorInfo/Authentication/NaturalPerson/Passport/DocumentType', iParcel); print(s); if res = '' then res := s else res := res +', '+ s; end ; SetLength(_RESULT, 1); _RESULT[0] := res; end.

Sergey, спасибо!
Но в чем было различие, кроме цикла по файлам? Я с Делфи не сильно знаком. То что строку нужно присваивать другой строке, для занесения в результат, это такая особенность языка? :slight_smile:

Нет, это просто пример.
Ошибка была в XPath(‘/…’, 1). Эта цифра указывает индекс участка, который ведет отсчет с нуля.

var s: String;

begin

//получаем в строковую переменную значение типа документа физ. особы
s:=XPath(‘/UkrainianCadastralExchangeFile/InfoPart/CadastralZoneInfo/CadastralQuarters/CadastralQuarterInfo/Parcels/ParcelInfo/Proprietors/ProprietorInfo/Authentication/NaturalPerson/Passport/DocumentType’);
//убрал 1 - второй аргумент функции, он здесь точно не нужен

// а дальше не понял, для чего это?
SetLength(_RESULT, 1);
_RESULT[0] := s;

end.

Dmitry_Zolotar, боюсь мы говорим о разных программах :slight_smile: