Страница 1 из 2
Информация о выделенном объекте
Добавлено: 27 фев 2011, 08:16
Radost_
Добрый день,
как сделать так, чтобы при выделении объекта появлялось окошко и в нем информация о значении определенного столбца для этой таблицы. только чтоб не в таблице выделять а на карте.
Элемент выделения можно написать через ToolHander,
через SelectionInfo можно вывести имя таблицы, количество строк.
Мне нужно значение определенного параметра. Как это сделать, подскажите пожалуйста.
Мапинфо и мапбейсик 9.5
Re: Информация о выделенном объекте
Добавлено: 28 фев 2011, 10:33
Andrew
Самое простое - это вывод значения через команду Print. Если перед выводом очищать это окошко, то в нем будет всегда один результат.
Re: Информация о выделенном объекте
Добавлено: 28 фев 2011, 14:00
Radost_
что через Print я понимаю. Я не понимаю что внутри. Как правильно прописать чтоб выводилось значение конктретного поля.
Таблица.Поле не рабоает.
И я новичок, да
Re: Информация о выделенном объекте
Добавлено: 28 фев 2011, 14:06
Boris
используйте установку указателя на конкретную строку запроса, который получается при выделении командой
FETCH
после этого можно обращаться к отдельной колонке в формате [имя_таблицы].[имя_колонки]
Re: Информация о выделенном объекте
Добавлено: 28 фев 2011, 14:27
Radost_
но тогда же указывыются строки из таблицы.
мне нужно чтоб тыкалось на КАРТУ и появлялось соответствующее значение определенного параметра. урезанное Информация об объекте как бы
Re: Информация о выделенном объекте
Добавлено: 28 фев 2011, 14:29
Boris
а что вы понимаете под параметром? информацию, которая отсутствует в атрибутах таблицы? Геолинк точно не подходит?
Re: Информация о выделенном объекте
Добавлено: 28 фев 2011, 14:43
Radost_
геолинком не пользовалась и не знаю что это. не стала лезть.
есть карта. на ней есть объекты - полигоны. у полигона есть свои параметры, ну например - площадь, номер, количество населения, количество многоэтажных зданий.
вопрос в том как сделать чтобы при указании на объект выводилось новое окошко с информацией только о количестве населения в этом полигоне.
количество населения в таблице карты указано.
да, наверно это и есть атрибут.
просто я нашла только как можно обращаться к таблице из таблицы. или там Fetch. как из карты обращаться в таблицу непонятно.
про геолинк ушла читать.
Re: Информация о выделенном объекте
Добавлено: 28 фев 2011, 15:03
Boris
Radost_ писал(а):Добрый день,
как сделать так, чтобы при выделении объекта появлялось окошко и в нем информация о значении определенного столбца для этой таблицы. только чтоб не в таблице выделять а на карте.
Элемент выделения можно написать через ToolHander,
через SelectionInfo можно вывести имя таблицы, количество строк.
Мне нужно значение определенного параметра. Как это сделать, подскажите пожалуйста.
Мапинфо и мапбейсик 9.5
Т.е. после выделения таблицу Select вы знаете как получить? ИЛи проблема нажать и получить кроме Select еще и доступ подпрограмме на MapBasic'е?
Я не лез в механизм MapInfo с выделением объектов для их обработки в одно выделение-обработку. Но вот обработку по кнопке выделенного (-ных) объектов написать можно за одну строчку:
а) получаете имя запроса, в который сохранены выделенные объекты - то, что в самой MI называется таблицей (запрсом) Selection. Он всегда имеет имя, которое получается через SelectionInfo
б) через FETCH становитесь на 1-у запись в этой выборке
в) через имя_таблицы.имя_поля получаете данные из конкретного поля ТЕКУЩЕЙ строки в выборке
г) способ отображения этих данных придумываете сами - Print или окном-формой
Re: Информация о выделенном объекте
Добавлено: 28 фев 2011, 15:06
Radost_
ну вот наверно это то и есть. попробую и отпишусь. спасибо!
Re: Информация о выделенном объекте
Добавлено: 28 фев 2011, 16:08
Andrew
Попробуйте воспользоваться процедурой "SelChangedHandler". Как раз срабатывает при изменении выбора хоть в таблице, хоть на карте.
Re: Информация о выделенном объекте
Добавлено: 28 фев 2011, 16:19
Radost_
спасибо. тогда попробую и так и так и отпишусь
Re: Информация о выделенном объекте
Добавлено: 27 мар 2011, 14:18
Radost_
Boris писал(а):
Т.е. после выделения таблицу Select вы знаете как получить? ИЛи проблема нажать и получить кроме Select еще и доступ подпрограмме на MapBasic'е?
Я не лез в механизм MapInfo с выделением объектов для их обработки в одно выделение-обработку. Но вот обработку по кнопке выделенного (-ных) объектов написать можно за одну строчку:
а) получаете имя запроса, в который сохранены выделенные объекты - то, что в самой MI называется таблицей (запрсом) Selection. Он всегда имеет имя, которое получается через SelectionInfo
б) через FETCH становитесь на 1-у запись в этой выборке
в) через имя_таблицы.имя_поля получаете данные из конкретного поля ТЕКУЩЕЙ строки в выборке
г) способ отображения этих данных придумываете сами - Print или окном-формой
Что-то долго я пробовала
Пользователь делает один щелчок, данные появляются, пользователь делает второй - данные не обновляются. Подозреваю что это делать нужно закрытием таблицы Selection.
Пока у меня такой код
Include "mapbasic.def"
Declare Sub Main
Declare Sub ToolHandler
Sub Main
Note "пример процедуры "
+ "Выберете кнопочку (+) на панеле инструментов "
+ "затем выделите интересующую область"
End Sub
Sub ToolHandler
Set Map
Layer 1
Label With krsk_kd.p1
Dim s_name As String
Fetch First From Selection
s_name = Selection.p1
If WindowInfo( FrontWindow(),
WIN_INFO_TYPE ) = WIN_MAPPER Then
Print "krsk: " + s_name 'Str$(SelectionInfo(SEL_INFO_TABLENAME))
Print " "
End If
End Sub
Re: Информация о выделенном объекте
Добавлено: 27 мар 2011, 14:20
Radost_
Andrew писал(а):Попробуйте воспользоваться процедурой "SelChangedHandler". Как раз срабатывает при изменении выбора хоть в таблице, хоть на карте.
Замечание: Процедура SelChangedHandler не может активизировать другие окна. Другими словами, в процедуре SelChangedHandler не могут быть выполнены такие операторы, как Note, Print или Dialog - взято из мануала. поэтому не совсем понимаю как ей пользоваться
Re: Информация о выделенном объекте
Добавлено: 27 мар 2011, 22:24
Boris
Я позволю себе обратить внимание на два существенных момента.
1) вы описали замену инструменту Info - переключиться в режим нового инструмента и им щелкать. я говорил про использование кнопки или меню, уже после выделения объекта. эта кнопка вызывает РАЗОВЫЙ вывод информации о выделенном объекте, и затем возвращается к инструменту, который был активным до ее нажатия.
2) для того, что бы быть уверенным в использовании верных данных из актуального выделения, надо использовать не
а узнать имя запроса, который в данный момент имеет алиас Selection
Код: Выделить всё
UnDim q_name
UnDim c_name
print Chr$(12) '' это необязательные строки, они просто позволяют очистить окно print и использовать объявление переменных в примере
Dim q_name As String
Dim c_name As Alias
q_name=SelectionInfo( SEL_INFO_SELNAME ) ' SEL_INFO_SELNAME = 2
Fetch First From q_name
c_name=q_name+".col1"
Print "krsk 1: " + q_name
Print "krsk 2: " + c_name
Re: Информация о выделенном объекте
Добавлено: 01 июн 2011, 05:13
Radost_
Undim q_name - не хочет работать этот оператор.
что-то я разобраться не могу как очищать окно и обнулять запрос.
как в инфо - там же тыкаешь - узнаешь, на другую область тыкаешь - изменяются значения.