powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Снова вопрос по гриду
23 сообщений из 23, страница 1 из 1
Снова вопрос по гриду
    #34668934
k_a_t_e
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вопрос в принципе простой, как, зная столбец и строку ячейки грида, узнать ее содержимое.
...
Рейтинг: 0 / 0
Снова вопрос по гриду
    #34668943
Ну что же всех так и тянет использовать грид как электронную таблицу-то...

Грид показывает содержимое таблицы/курсора под ним. И значения надо брать оттуда, а не из грида. Нет в гриде никаких значений.

Если под столбцом понимается поле в таблице/курсоре, а курсор стоит на нужной строке, то искомое находится в YourTable.YourField
...
Рейтинг: 0 / 0
Снова вопрос по гриду
    #34668947
прошелмимо
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
у грида есть источник

может в источнике по айди ключа и поискать?


так, к размышлению на будущее ...
еще лучше вариант
когда есть перегруженный кад
это объект
у него можно сделать метод типа гетвал ....
у него есть свойства, которые сообщают кто у него курсор
(а по курсору и взад и объект ищется)
есть свойства, сообщающие, кто у него ключик,
что можно трогать а чего нет
ну и т.д.
...
Рейтинг: 0 / 0
Снова вопрос по гриду
    #34668949
k_a_t_e
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Дело в том,что грид строится не на основе таблицы (тогда действительно все ясно), а на основе запроса. Как быть в таком случае?
...
Рейтинг: 0 / 0
Снова вопрос по гриду
    #34668951
прошелмимо
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
если не сложно, то простенький пример
сюда покажите
и опишите чего нужно

а мы порезвимся

я покажу чего-нить в стиле самоговорящий бубен-грид
...
Рейтинг: 0 / 0
Снова вопрос по гриду
    #34668956
автора на основе запроса

у запроса есть курсор
у курсора есть данные и ключи
ну и т.д. ...

и рекно и реккоунт у них есть
и олдвальюе у буферизованных найдете
ну и т.д.
...
Рейтинг: 0 / 0
Снова вопрос по гриду
    #34668961
прошелмимо
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
автортак и тянет использовать грид

ну видят они объект,
понимают что это сущность ..
вот и добраться хотят ....

их бы сразу в ООП и сунуть
...
Рейтинг: 0 / 0
Снова вопрос по гриду
    #34668970
k_a_t_e
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
пришелмимо
у курсора есть данные и ключи
.
Мне не нужно выполнять поиск по ключам, данным.
Необходимо сделать следующее. Когда пользователь выбирает некоторую строчку в гриде, определить содержимое первой ячейки в гриде, то есть некоторое данное, с которым уже работать дальше.
P.S. запросы меняются, ибо произвожу сортировку данных.
...
Рейтинг: 0 / 0
Снова вопрос по гриду
    #34669009
прошелмимо
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
пример рисуйте

я Вам вставлю в Ваш пример код
...
Рейтинг: 0 / 0
Снова вопрос по гриду
    #34669026
k_a_t_e
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Собственно так заполняется грид.
Код: plaintext
1.
2.
3.
4.
5.
6.
thisform.Grid1.RecordSource =	'SElect Distinct abonent.clic_schet,abonent.cfio,ulitsa.ctext,abonent.ndom,'+;
								'abonent.nkvartira,domtip.ctext,normativ.ctext,isschet.ctext1 '+;
								"FROM abonent LEFT JOIN ulitsa ON abonent.nulitsaid = ulitsa.nulitsaid "+;
								"LEFT JOIN domtip ON abonent.ndomtip = domtip.ndomtip "+;
								"LEFT JOIN normativ ON abonent.ndomtip = normativ.ndomtip "+;
								"LEFT JOIN isschet ON abonent.n_nal_sch=isschet.isschet "+;
								"INTO CURSOR  me NOFILTER "
А теперь, зная номер выбранной строки, узнать abonent.cfio
P.S. прошу не ругаться , пишу на фоксе 2 недели и то не по собственному желанию (даже вопреки оному)
...
Рейтинг: 0 / 0
Снова вопрос по гриду
    #34669055
прошелмимо
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторне по собственному желанию

нужен учитель,
иначе это превратится в кАшмар

лисичка не виновата

сейчас че-нить придумаем и покажем ООП в лисе
...
Рейтинг: 0 / 0
Снова вопрос по гриду
    #34669087
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
k_a_t_e... А теперь, зная номер выбранной строки, узнать abonent.cfio
... А номер строки откуда взялся?
...
Рейтинг: 0 / 0
Снова вопрос по гриду
    #34669189
Дело в том,что грид строится не на основе таблицы (тогда действительно все ясно), а на основе запроса. Как быть в таком случае?

А запрос не таблицу/курсор возвращает? Почему Вы решили, что здесь какой-то совершенно другой механизм?
...
Рейтинг: 0 / 0
Снова вопрос по гриду
    #34669304
k_a_t_e
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
авторА запрос не таблицу/курсор возвращает? Почему Вы решили, что здесь какой-то совершенно другой механизм?
Можно примерчик работы с курсором. Например как использовать recno()?
...
Рейтинг: 0 / 0
Снова вопрос по гриду
    #34669328
k_a_t_eСобственно так заполняется грид.
Код: plaintext
1.
2.
3.
4.
5.
6.
thisform.Grid1.RecordSource =	'SElect Distinct abonent.clic_schet,abonent.cfio,ulitsa.ctext,abonent.ndom,'+;
								'abonent.nkvartira,domtip.ctext,normativ.ctext,isschet.ctext1 '+;
								"FROM abonent LEFT JOIN ulitsa ON abonent.nulitsaid = ulitsa.nulitsaid "+;
								"LEFT JOIN domtip ON abonent.ndomtip = domtip.ndomtip "+;
								"LEFT JOIN normativ ON abonent.ndomtip = normativ.ndomtip "+;
								"LEFT JOIN isschet ON abonent.n_nal_sch=isschet.isschet "+;
								"INTO CURSOR  me NOFILTER "
А теперь, зная номер выбранной строки, узнать abonent.cfio
P.S. прошу не ругаться , пишу на фоксе 2 недели и то не по собственному желанию (даже вопреки оному)
Все достаточно просто. Надо указать точное количество столбцов (колонок) в Гриде (по умолчанию там стоит -1). Тогда к каждой колонке будут привязаны свои контролы (по умолчанию текст-боксы). После этого получить значение из ячейки можно так:
Код: plaintext
1.
2.
3.
* i - номер колонки в гриде... как его получить - другой вопрос
* номер активной строки отслеживается Гридом автоматически
messagebox(thisform.Grid1.Columns(i).text1.Text)
...
Рейтинг: 0 / 0
Снова вопрос по гриду
    #34669372
таблицы (тогда действительно все ясно),

Курсор - это точно такая же таблица. А с таблицей, судя по цитате, Вам все должно быть ясно. Какие еще примерчики? Что Вы блуждаете в даже не в трех, а вокруг одной сосны? Еще раз спрашиваю, почему Вы решили, что здесь используется какой-то особенный механизм? Зачем Вы сами себе проблему на ровном месте ищете?
...
Рейтинг: 0 / 0
Снова вопрос по гриду
    #34669391
k_a_t_e
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Станислав С...кий, огромное спасибо, то что надо.
...
Рейтинг: 0 / 0
Снова вопрос по гриду
    #34669398
прошелмимо
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
обратите внимание на пример

если ВЫ это поймете,то облегчите себе жизнь
...
Рейтинг: 0 / 0
Снова вопрос по гриду
    #34669405
Все достаточно просто. Надо указать точное количество столбцов (колонок) в Гриде (по умолчанию там стоит -1). Тогда к каждой колонке будут привязаны свои контролы (по умолчанию текст-боксы). После этого получить значение из ячейки можно так:

* i - номер колонки в гриде... как его получить - другой вопрос
* номер активной строки отслеживается Гридом автоматически
messagebox(thisform.Grid1.Columns(i).text1.Text)



И чем это лучше получения содержимого поля таблицы прямым обращением к полю? Если все равно содержимое текстбокса определяется содержимым поля? Просто почесать левое ухо левой рукой - это не круто, а вот правой, да еще через одно место - вот это круть немерянная, хоть и будет это тем же чесанием и того же левого уха.
...
Рейтинг: 0 / 0
Снова вопрос по гриду
    #34669413
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
k_a_t_eМожно примерчик работы с курсором. Например как использовать recno()?
Функция recno() возвращает номер текущей записи в таблице (курсоре), причем независимо от порядка сортировки при использовании индексов.

обычно используется для запоминания текущей записи, для последующего возврата на нее же:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
lnRe = recno()
... что-то расчитываем с перемещением по записям
skip
...
scan
endscan
... возвращаем указатель на ту же запись
go (lnRe)

Если под recno() подразумевалась фраза "... А теперь, зная номер выбранной строки ...", то recno() тут не надо, нужная запись и так текущая (при перемещении грид перемещает указатель в отображаемой таблице), достаточно просто взять значения полей:
Код: plaintext
MessageBox(me.cFio)
Именно me а не abonent , т.к. результат запроса курсор me
...
Рейтинг: 0 / 0
Снова вопрос по гриду
    #34669433
прошелмимо
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 k_a_t_e

посмотрите пример, который я приложил
если возникнут вопросы, то я отвечу

Важно просто понять механизм и подход
...
Рейтинг: 0 / 0
Снова вопрос по гриду
    #34669441
проходящий. Все достаточно просто. Надо указать точное количество столбцов (колонок) в Гриде (по умолчанию там стоит -1). Тогда к каждой колонке будут привязаны свои контролы (по умолчанию текст-боксы). После этого получить значение из ячейки можно так:

* i - номер колонки в гриде... как его получить - другой вопрос
* номер активной строки отслеживается Гридом автоматически
messagebox(thisform.Grid1.Columns(i).text1.Text)



И чем это лучше получения содержимого поля таблицы прямым обращением к полю? Если все равно содержимое текстбокса определяется содержимым поля? Просто почесать левое ухо левой рукой - это не круто, а вот правой, да еще через одно место - вот это круть немерянная, хоть и будет это тем же чесанием и того же левого уха.
Я же не говорил, что это правильно... И что так надо всегда делать...(На самом деле, я всегда использую прямое обращение к полям таблицы...) Но как альтернативный вариант - с пивом потянет...
...
Рейтинг: 0 / 0
Снова вопрос по гриду
    #34669531
прошелмимо
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
подмените метод

получилась балалайка
с пом.кот, можно ссылаться
от объекта к источнику с извратом и возвратом

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
lparameters tnId, tcFields
if empty(tcFields)
	this.cError = 'не хорошо! не передали список полей!'
	return .f.
endif
lcOldAlias = alias()
lnOldRec = recno()
if alias()<>this.Alias
	select (this.Alias)
endif
* если передали айди, то ищем по ключу,
* нет возвращаем значения той записи, на которой стоим
if !empty(tnId)
	* на взлете нужно индекс сотворить, но возиться в данном примере нет смысла
	locate for (this.KeyFieldList) = tnId
	if !found(this.Alias)
		this.cError = 'нет такого айди!'
		return .f.
	endif
endif
local luReturn
if at(',',tcFields)> 0 
	local lnFields, laFields( 1 )
	luReturn = createobject('empty')
	for lnFileds= 1  to alines( laFields, tcFields,',')
		*... нет времени - дошаманю
	endfor
else
	dimension luReturn( 1 )
	try
		scatter fields (tcFields) to luReturn   &&= curval(tcFields,this.Alias)
		luReturn = luReturn( 1 )
	catch
		luReturn = .f.
		this.cError = 'нет такого поля!'
	endtry
endif
if !empty(lcOldAlias) and alias()<>lcOldAlias
	select (lcOldAlias)
endif
if !empty(lnOldRec) and recno()<>lnOldRec
	locate record lnOldRec
endif
return luReturn
...
Рейтинг: 0 / 0
23 сообщений из 23, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Снова вопрос по гриду
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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