Аналитика
http://www.geosystema.net/forum/

Запрос на функцию
http://www.geosystema.net/forum/viewtopic.php?f=1&t=49
Страница 38 из 92

Автор:  Deffar [ 11 апр 2012 13:20 ]
Заголовок сообщения:  Re: Запрос на функцию

Чи можливо запустити перевірку XML із скрипта ?

Автор:  Bondarets Alexander [ 11 апр 2012 16:32 ]
Заголовок сообщения:  Re: Запрос на функцию

Вот скрипт для запуска проверки открытого XML

Код:
$S=@Map.Filename
@Run XMLChecker.exe -xml"$S"


в папке Digitals должна находиться программа XMLChecker.exe, которую можно взять из полного дистрибутива.

Автор:  Deffar [ 11 апр 2012 20:44 ]
Заголовок сообщения:  Re: Запрос на функцию

Скрипт открывает пустой генератор отчетов :(

Автор:  Bondarets Alexander [ 12 апр 2012 08:12 ]
Заголовок сообщения:  Re: Запрос на функцию

XMLChecker после окончания проверки открывает генератор отчетов с шаблоном протокола проверки. Этого делать не нужно?

Автор:  Deffar [ 12 апр 2012 20:26 ]
Заголовок сообщения:  Re: Запрос на функцию

Хотелось бы получить аналог того что имеем при сохранении файла (открытый xmlchecker.log), только по запросу. Лично мне, как пользователю, протокол проверки ненужен, а проверка при каждом сохранении только мешает.

Автор:  voha [ 13 апр 2012 08:01 ]
Заголовок сообщения:  Re: Запрос на функцию

Може хтось знає, підкажіть, будь-ласка. Хочу припинити аналіз карти після селектування об'єкта. Використовую функції API. Вікно "Анализ карты" має дочірнє вікно "Скасувати", і по суті код має працювати:
Код:
HDig& = FindWindow(vbNullString, "Анализ карты")
If HDig& <> 0 Then
   rc& = ProgChildWindow(HDig&, "Скасувати")
   If rc& <> 0 Then
       Call SendMessage(rc&, BM_CLICK, 0, 0)
   End If
End If

Ідентифікатори вікон HDig& та rc& визначаються, а от посилка повідомлення Call SendMessage(rc&, BM_CLICK, 0, 0) не дає результату. Мабуть, вікно "Скасувати" має якусь системну назву, і тоді саме її вказувати треба :?:
Але ж, працює код:
Код:
HDig& = FindWindow(vbNullString, "Розворот")
If HDig& <> 0 Then
   rc& = ProgChildWindow(HDig&, "Cancel")
   If rc& <> 0 Then
       Call SendMessage(rc&, BM_CLICK, 0, 0)
   End If
End If

Об'єкт селектується в скрипті. Після селектування, наступає аналіз карти а виконання скрипта - полетіло собі далі аж до кінця. Поки проходить аналіз карти і наступає виконання приведеного коду.
Ця думка виявилась хибною :!: Аналіз карти наступає зразу після селектування, а скрипт очікує до завершення аналізу. Було б добре мати функцію, для посилки команди припинення аналізу карти зі скрипта :oops: .

Автор:  Bondarets Alexander [ 13 апр 2012 08:56 ]
Заголовок сообщения:  Re: Запрос на функцию

Deffar писал(а):
Хотелось бы получить аналог того что имеем при сохранении файла (открытый xmlchecker.log), только по запросу. Лично мне, как пользователю, протокол проверки ненужен, а проверка при каждом сохранении только мешает.


Используйте приложенный файл XMLChecker.exe и следующий скрипт

Код:
$S=@Map.Filename
@Run XMLChecker.exe -XML"$S" -NoRunReports -SaveErrorList


В данном случае модуль отчетов после завершения проверки не запускается. Список ошибок (в виде Номер строки: Текст ошибки) сохраняется в текстовый файл, который затем открывается в блокноте.

Вложения:
XMLChecker.exe [478.5 Кб]
Скачиваний: 719

Автор:  Deffar [ 13 апр 2012 20:01 ]
Заголовок сообщения:  Re: Запрос на функцию

Спасибо, все работает !!
Но теперь возникает другая проблема - начинают плодится по каталогам никому ненужные логи проверки, приходится подчищать :( Почему нельзя использовать тот же xmlchecker.log ? + теперь если установлена галочка проверки при сохранении запускается генератор отчетов (чего и следовало ожидать), мне не критично (все равно отключаю), но все-таки как-то оно нехорошо...

Автор:  voha [ 14 апр 2012 08:55 ]
Заголовок сообщения:  Re: Запрос на функцию

Що-до обробки події %Events.OnChange - "который вызывается при изменении объекта".
Не нагально, але чи можна буде включити в поняття зміни об'єкта ще й вставку точки, видалення точки об'єкта :?:.
Адже зміна значення параметра об'єкта викликає подію, а зміна геометрії об'єкта (вставка точки, видалення точки) - ні. Це, як на мене, суперечить логіці.

Автор:  Bondarets Alexander [ 17 апр 2012 17:06 ]
Заголовок сообщения:  Re: Запрос на функцию

Цитата:
Но теперь возникает другая проблема - начинают плодится по каталогам никому ненужные логи проверки, приходится подчищать :( Почему нельзя использовать тот же xmlchecker.log ? + теперь если установлена галочка проверки при сохранении запускается генератор отчетов (чего и следовало ожидать), мне не критично (все равно отключаю), но все-таки как-то оно нехорошо...


Попробуйте версию во вложении. Запускать с ключом

Код:
$S=@Map.Filename
@Run XMLChecker.exe -XML"$S" -OpenLogInNotepad


Вложения:
XMLChecker.exe [478.5 Кб]
Скачиваний: 710

Автор:  Deffar [ 17 апр 2012 17:28 ]
Заголовок сообщения:  Re: Запрос на функцию

Все працює, дякую !!!

Автор:  ЕЦКО [ 19 апр 2012 13:53 ]
Заголовок сообщения:  Re: Запрос на функцию

Здравствуйте! Скажите можно ли в слое XMLОренда, в строке "Площа ділянки або її частини, наданої в оренду" сделать чтобы площадь вбивалась автоматически?
Когда будет функция "извлечь в XML"?

Автор:  voha [ 25 апр 2012 07:24 ]
Заголовок сообщения:  Re: Запрос на функцию

Доброго дня.
Виникає необхідність автоматизувати рутинну операцію створення полігонів. Гаряча клавіша "N" створює полігон в режимі збору, якщо курсор миші знаходиться всередині зони, обмеженої іншими полігонами чи лінійними об'єктами. Так от, є карта в лініях і є точкові об'єкти (центроїди). Уявіть собі що, треба створити полігони обмежені цими лініями, і таких полігонів (відповідно кількості центроїдів) - тисячі :( . Необхідна функція @Map.CreatePoligon X Y [Layer], де X Y - координати точки що знаходиться всередині створюваного полігону; [Layer] - ID шару, в якому буде створено полігон, якщо не вказано - ID шару збору. Функція має повертати номер об'єкта якщо полігон створений, або 0 - якщо полігон створити не вдалося із-за незамкнутості ліній (наявності висячих ліній).
Якби таку функцію "забумбурити" в цикл перебору всіх центроїдів, було-б Ого-го :!:

Ще одне :oops: . Чи можливо доробити обробку події %Events.OnChange :?: . Варто щоб подія виникала при видаленні/вставці точки з/в об'єкта/об'єкт, а обробку зміни значення параметрів об'єкта винести окремо, наприклад %Events.OnParameterChange

Автор:  Dmitriy Fedorov [ 25 апр 2012 08:40 ]
Заголовок сообщения:  Re: Запрос на функцию

voha писал(а):
Виникає необхідність автоматизувати рутинну операцію створення полігонів.

Как насчет кнопки Создать полигоны на панели Правка в разделе Сервис?
Вторым этапом - проверить вложенность на закладке Список.
Третьим - унаследовать параметры от вашиъ точечных объектов.

Автор:  voha [ 25 апр 2012 11:35 ]
Заголовок сообщения:  Re: Запрос на функцию

Цитата:
Как насчет кнопки Создать полигоны на панели Правка в разделе Сервис?
Все це добре, дякую за підказку, але лінії в багатьох випадках недотягнуті - висячі, тоді (якби була відповідна функція), в циклі скрипта, відбувався б перебір всіх точкових об'єктів (центроїдів) і: якщо полігон не створений, користувач дотягує лінію, далі продовжує виконання скрипта який ще раз спробує створити полігон відповідно для того-ж точкового об'єкта. Таким чином, в діалоговому режимі й робити.
Цитата:
Вторым этапом - проверить вложенность на закладке Список.
Відпаде необхідність аналізу вкладеності об'єктів, якщо створення полігонів відбуватиметься лише там де є точковий об'єкт.
Цитата:
Третьим - унаследовать параметры от вашиъ точечных объектов.
А як бути, коли параметр 13 полігона має бути успадкований від параметра 33 точкового об'єкта :?: А так, у скрипті використовуватиметься таблиця відповідності параметрів. Справа в тому, що таких карт багато, а операція створення полігонів - разова по кожній карті. Після створення полігонів всі лінії та точкові об'єкти видалятимуться. Міняти ж перелік параметрів, доступних полігонам - не бажано.

Страница 38 из 92 Часовой пояс: UTC + 2 часа
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/