www.map-info.ru :: Просмотр темы - Как управлять окном Отчёта?
                               РќР° главную страницу сайта

 
                                
ВходВход    РегистрацияРегистрация    ПрофильПрофиль    ПользователиПользователи    ГруппыГруппы    FAQFAQ    ПоискПоиск  

 
   Список форумов www.map-info.ru | Форум - программирование в среде MapInfo Добавить ответ
Предыдущая тема :: Следующая тема  
Автор Сообщение
agentbond007



Зарегистрирован: 08.12.2009
Сообщения: 56

СообщениеДобавлено: Чт Авг 19, 2010 7:28 am    Заголовок сообщения: Как управлять окном Отчёта? Добавить ответ со ссылкой на данный текст

Здравствуйте! Smile
Задача звучит так:
Есть векторный слой с полигонами и окном отчёта с картинкой. Требуется автоматически (при нажатии на кнопку) заполнить поля выделенного объекта в отчёте:
1) Название полигона
2) Площадь полигона
3) Масштаб.
вся информация берётся из атрибутивки векторного слоя.
Может ли мапинфо динамически сама менять значения в окне отчёта как реализовано в программе ArcGis?
Предполагаю что нет, поэтому планирую сделать так -
- Создать MapBasic прогу
- Выделить объект
- Нажать на кнопку, прога дёргает данные из атрибутивки и вставляет в окно отчёта в заданные позиции.
Но как программно обратиться к окну отчёта и вставить туда данные я не знаю, прошу помощи! Question
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Андрей Могильный



Зарегистрирован: 21.03.2006
Сообщения: 864

СообщениеДобавлено: Пн Авг 23, 2010 7:23 am    Заголовок сообщения: Добавить ответ со ссылкой на данный текст

По-моему, никак.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail Посетить сайт автора
agentbond007



Зарегистрирован: 08.12.2009
Сообщения: 56

СообщениеДобавлено: Пн Авг 23, 2010 7:49 am    Заголовок сообщения: Добавить ответ со ссылкой на данный текст

Проштудировал букварь по MapBasic 7.0 нашел описание таблицы LayoutN. Select * From Layout1 - выбирает все элементы на отчёте. LayoutN - это таблица с записями, непонятно с какими. Создал отчёт кинул на него рамку с картой несколько текстовых элементов. Запросил колличество записей в таблице LayoutN - результат 0. Может у кого есть соображения? Sad
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
reasonat



Зарегистрирован: 01.07.2009
Сообщения: 224
Откуда: Екатеринбург

СообщениеДобавлено: Вт Авг 24, 2010 1:20 pm    Заголовок сообщения: Добавить ответ со ссылкой на данный текст

можно пройтись по записям этой скрытой таблицы перебирая row_id
...
Fetch First From layout_name
Select * From layout_name Where RowID = row_id into sel_layout_name
...
тут будут работать и
ObjectInfo( sel_layout_name.obj, OBJ_INFO_TEXTSTRING )
и
Alter Object sel_obj Info OBJ_INFO_TEXTSTRING, "другое значение"

(для замены текста в текстовых объектах, если в них в шаблоне прописать некоторые псевдонимы для замены, или просто для записи текста в текстовые объекты по порядку, если их там заданное количество в заданном порядке)
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
agentbond007



Зарегистрирован: 08.12.2009
Сообщения: 56

СообщениеДобавлено: Вт Авг 31, 2010 3:50 am    Заголовок сообщения: Добавить ответ со ссылкой на данный текст

Приведённые выше методы отлично работают, но дают лиш информацию и ничего не делают с объектами на отчёте.
А как заменить определённое текстовое значение на отчёте?
Я так понял по имени поля, в таблице Layout, значение не получишь так как там имён нет и как тогда обращаться к полю?
Question
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
agentbond007



Зарегистрирован: 08.12.2009
Сообщения: 56

СообщениеДобавлено: Пт Мар 11, 2011 4:17 am    Заголовок сообщения: Добавить ответ со ссылкой на данный текст

Каким оператором можно выставить масштаб рамки в окне отчёта? Как автоматизировать действие: двойной клик на рамке отчёта/Настройка масштаба карты?
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
FedorinoFF



Зарегистрирован: 01.02.2007
Сообщения: 272
Откуда: Санкт-Петербург

СообщениеДобавлено: Пт Мар 11, 2011 11:30 am    Заголовок сообщения: Добавить ответ со ссылкой на данный текст

похоже кто-то плохо штудировал доку ;-)

1. Layout

2. Create Frame

и где-то еще было написано как высчитывать масштаб для фрагмента карты в окне отчета.

P.S. Всегда можно действовать простым способом: создал в mapinfo все необходимые окна, сохранил рабочий набор и, вуаля, куча кода Mapbasic у тебя в руках... Остается самое тяжелое - напряч мозг и RTFM-GOOGLE-RTFM-... и т.д. пока задача не будет решена.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
agentbond007



Зарегистрирован: 08.12.2009
Сообщения: 56

СообщениеДобавлено: Сб Мар 12, 2011 4:52 am    Заголовок сообщения: Добавить ответ со ссылкой на данный текст

Спасибо, так и сделал сохранил 2 рабочих набора с разным масштабом в рамке отчёта, нарыл различие в них:
---
Set Map
---
Zoom 1846 Units "m" - 1:10 000
---
Zoom 4615 Units "m" - 1:25 000 (183.2 - масштаб в окне карты)
---
Я так понимаю нужно высчитывать масштаб в окне "Карта" так чтобы в окне отчёта получился желаемый масштаб?
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Arhara



Зарегистрирован: 18.02.2009
Сообщения: 400
Откуда: Moscow, RF

СообщениеДобавлено: Вс Мар 13, 2011 1:36 am    Заголовок сообщения: Добавить ответ со ссылкой на данный текст

полагаете правильно. Архаизм мапинфо. Реальный масштаб связан с размерами окна в единицах экрана или отчета.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
agentbond007



Зарегистрирован: 08.12.2009
Сообщения: 56

СообщениеДобавлено: Пн Ноя 07, 2011 7:11 am    Заголовок сообщения: Добавить ответ со ссылкой на данный текст

Может кто подскажет как высчитывать масштаб для фрагмента карты в окне отчета?
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Показать сообщения:   
   Список форумов www.map-info.ru | Форум - программирование в среде MapInfo Добавить ответ
Страница 1 из 1

 
Перейти:  
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах


Top.Mail.Ru