powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / ?: Grid
11 сообщений из 11, страница 1 из 1
?: Grid
    #32280072
lesha_spb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Подскажите, как получить значение активной ячейки. Такой вариант не прошел: ThisForm.Grid1.ActiveRow.Column2.Text1.value
Если кто объяснит почему буду благодарен.
...
Рейтинг: 0 / 0
?: Grid
    #32280084
Vlad11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ActiveRow-лишнее
...
Рейтинг: 0 / 0
?: Grid
    #32280103
lesha_spb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Тогда я получу значение первой ячейки.
Да ActiveRow не на месте, д.б. что-то похожее на ThisForm.Grid1.Column2.Text1.value( ThisForm.Grid1.ActiveRow )
Но все равно возращается значение первой ячейки. Почему?
...
Рейтинг: 0 / 0
?: Grid
    #32280108
lesha_spb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Извините, плохо сформулировал вопрос:
В гриде видна только column1, соответственно щелкают по ней, а получить нужно значение скрытой column2. Кто подскажет как это сделать?
...
Рейтинг: 0 / 0
?: Grid
    #32280134
Фотография brahew
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А разве нельзя спроашивать не у грида, а у текущей записи-источника грида, все что тебе необходимо.
...
Рейтинг: 0 / 0
?: Grid
    #32280147
lesha_spb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Т.е. делать select? По моему не самый быстрый вариант.
Или это сделать можно через propeties RecordSource? Если да то как?
...
Рейтинг: 0 / 0
?: Grid
    #32280156
Фотография brahew
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Может я до конца не вьехал, но делаеш чо то типа
m.per1=thisform.grid1.recordsource
m.per2=thisform.grid1.column2.controlsource
*ta 4o nevidimaja
store &per1::&per2 to per3
*eto i est iskomoe toboj zna4enie
вот так должно вроде работать
или если знаешь имя поля в таблице, то ты стоиш на этой строке
...
Рейтинг: 0 / 0
?: Grid
    #32281216
lesha_spb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Что-то я сам запутался. Давайте сначала: есть форма из двух гридов.
Источники данных: у первого грида-table1, у второго-table2.
table1 имеет структуру: idob name; в гриде отображается только name
table2 имеет структуру: idob id_t1 info
Необходимо для активной строки grid1 вывести table2.info для которой table1.idob=table2.id_t1
Да, ВАЖНО: table1, table2 - это на самом деле remote view и relation в стандартном понимании
по моему не сделать(нет индексов)
Я использую cursor, но это не принципиально.
Пожалуйста, подскажите решение проблемы и желательно поподробней.

2brahew: m.per1; m - это что за класс?
...
Рейтинг: 0 / 0
?: Grid
    #32281254
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Интересно, ты ответы на свои собственные вопросы читаешь?\r
\r
/topic/50855\r
\r
Так что индексировать View можно...\r
\r
А значение текущей ячейки берется именно из таблицы-источника. \r
\r
Например, если источником для 2 колонки Grid является поле Table1.Name, то прочитав значение этого поля ты и получишь значение поля активной в данный момент записи.\r
\r
Другое дело, как узнать какое именно поле (колонка) в данный момент активна. Это уже значительно сложнее, но это в большинстве случаев и не требуется.\r
\r
PS: Префикс "m." означает, что это именно переменная памяти, а не одноименное поле таблицы. Рекомендуется использовать всегда при работе с переменными памяти.
...
Рейтинг: 0 / 0
?: Grid
    #32281266
lesha_spb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А такой вариант не проще?
в InitEvent создаем курсор CREATE CURSOR curs1 ( ifmo C(10) )

в Grid1 в функции AfterRowColChange пишем:
ThisForm.Grid1.Column2.Text1.refresh()
select ifmo from table2 where ALLTRIM(table2.id_t1) = ALLTRIM(ThisForm.Grid1.Column2.Text1.value);
into cursor curs1

ThisForm.Grid2.RecordSource = 'curs1'
ThisForm.Grid2.Column1.ControlSource = 'curs1.year1'
ThisForm.Grid2.Column1.Header1.caption = "ifmo"
ThisForm.Grid2.refresh()

Если есть другие варианты буду рад, также по-моему мой вариант не самый оптимальный
(первое приближения). Предлагайте улучшения. Примечание: таблицы источники хранятся на
sql server и их размеры не более 80-100 записей.
Имеет ли смысл создавать индексы?
...
Рейтинг: 0 / 0
?: Grid
    #32281748
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Большинство твоих вопросов отпадет, если ты просто попробуешь это сделать.

1. Вариант с Select-SQL заведомо неприемлим по той причине, что Select-SQL работает не с буфером, а с исходными данными. Т.е. в случае табличной буферизации Select-SQL будет всегда возвращать те значения, которые были ДО внесения изменений.

2. Забудь про то, как и что у тебя хранится на SQL-сервере. Ты работешь с выборкой из сервера, которая физически расположена на машине клиента, поэтому и ориентироваться надо на то, что находится у клиента.

Все. Теперь просто попробуй, а потом спрашивай. Заодно сможешь понять о чем же собственно надо спрашивать. Пока из твоих вопросов это не ясно.
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / ?: Grid
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]