Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Обратиться к свойству Grid / 23 сообщений из 23, страница 1 из 1
28.06.2006, 09:54
    #33818405
Кузнецов Игорь
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обратиться к свойству Grid
Добрый день.
Что-то я после отпуска не могу элементарные вещи проделать.
Фокс ругается на строчку
Код: plaintext
THISFORM.grd1.column1.ControlSource="dissrc.sname"
говорит, что Unknown member COLUMN1. Хотя в Debuger'e вижу у грида коллекцию Columns. Количество колонок - две. Какой должен быть синтаксис обращения к свойству?
...
Рейтинг: 0 / 0
28.06.2006, 10:01
    #33818430
StandD
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обратиться к свойству Grid
Кузнецов ИгорьДобрый день.
Что-то я после отпуска не могу элементарные вещи проделать.
Фокс ругается на строчку
Код: plaintext
THISFORM.grd1.column1.ControlSource="dissrc.sname"
говорит, что Unknown member COLUMN1. Хотя в Debuger'e вижу у грида коллекцию Columns. Количество колонок - две. Какой должен быть синтаксис обращения к свойству?

А может, вместо grd1 - grid1?
...
Рейтинг: 0 / 0
28.06.2006, 10:14
    #33818472
Кузнецов Игорь
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обратиться к свойству Grid
Да нет, здесь правильно. Я этому гриду присвоил имя grd1.
----------------------------------------------
Кто в армии служил - тот в цирке не смеется.
...
Рейтинг: 0 / 0
28.06.2006, 10:49
    #33818563
Aleksey-K
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обратиться к свойству Grid
Может прокралась русская буква "c" в строке:

Код: plaintext
THISFORM.grd1.column1.ControlSource="dissrc.sname"
Перебейте ее еще раз.
С уважением, Алексей
...
Рейтинг: 0 / 0
28.06.2006, 10:54
    #33818585
Кузнецов Игорь
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обратиться к свойству Grid
Перебил - не помогает. По Suspend в окне команд уже все варианты перепробовал.
---------------------------------------------
Кто в армии служил - тот в цирке не смеется.
...
Рейтинг: 0 / 0
28.06.2006, 11:25
    #33818712
PaulWist
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обратиться к свойству Grid
В дебагере обьект Columns() раскрывается?
...
Рейтинг: 0 / 0
28.06.2006, 11:35
    #33818745
ВладимирМ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обратиться к свойству Grid
На момент подачи команды

Код: plaintext
THISFORM.grd1.column1.ControlSource="dissrc.sname"

У Grid есть хотя бы один столбец? Т.е. не ПОСЛЕ открытия формы, а на тот момент, когда пытаешся обратится к столбцу.

Если вот так написать

Код: plaintext
1.
2.
3.
4.
5.
IF THISFORM.grd1.columnCount >  1 
	THISFORM.grd1.column1.ControlSource="dissrc.sname"
ELSE
	MessageBox("В Grid пока нет ни одного столбца")
ENDIF
...
Рейтинг: 0 / 0
28.06.2006, 11:37
    #33818752
Кузнецов Игорь
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обратиться к свойству Grid
PaulWistВ дебагере обьект Columns() раскрывается?
Нет, не раскрывается.
Name - columns, Value - (Collection), Type - A.
...
Рейтинг: 0 / 0
28.06.2006, 11:53
    #33818836
Aleksey-K
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обратиться к свойству Grid
Может где-то курсор dissrc закрывается?
Или он уже открыт на момент окрытия формы, а потом сносится.
GRID уже "привязал", а при закрытии dissrc все колонки сносятся.
Откуда, вообще, берется курсор dissrc ?
С уважением, Алексей
...
Рейтинг: 0 / 0
28.06.2006, 11:59
    #33818860
Кузнецов Игорь
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обратиться к свойству Grid
ВладимирМНа момент подачи команды

Код: plaintext
THISFORM.grd1.column1.ControlSource="dissrc.sname"

У Grid есть хотя бы один столбец? Т.е. не ПОСЛЕ открытия формы, а на тот момент, когда пытаешся обратится к столбцу.

Если вот так написать

Код: plaintext
1.
2.
3.
4.
5.
IF THISFORM.grd1.columnCount >  1 
	THISFORM.grd1.column1.ControlSource="dissrc.sname"
ELSE
	MessageBox("В Grid пока нет ни одного столбца")
ENDIF


Столбцов нет. Выскочил MessageBox.
В окне свойств грида я указал количество столбцов, которое мне потребуется. Проблемную команду подаю по InteractiveChange другого контрола.
...
Рейтинг: 0 / 0
28.06.2006, 12:03
    #33818878
Кузнецов Игорь
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обратиться к свойству Grid
Aleksey-KМожет где-то курсор dissrc закрывается?
Или он уже открыт на момент окрытия формы, а потом сносится.
GRID уже "привязал", а при закрытии dissrc все колонки сносятся.
Откуда, вообще, берется курсор dissrc ?
С уважением, Алексей
Курсор я создаю и наполняю значениями. В гриде хочу показать одно поле этого курсора в первой колонке, а во второй колонке показать CheckBox.
Изначально грид ни к чему не привязан.
...
Рейтинг: 0 / 0
28.06.2006, 12:19
    #33818933
Aleksey-K
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обратиться к свойству Grid
Где вы создаете курсор?
Если до запуска формы, то GRID имеет тенденция "автопривязываться" к открытому курсору.
С уважением, Алексей
...
Рейтинг: 0 / 0
28.06.2006, 13:42
    #33819158
Кузнецов Игорь
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обратиться к свойству Grid
Aleksey-KГде вы создаете курсор?
Если до запуска формы, то GRID имеет тенденция "автопривязываться" к открытому курсору.
С уважением, Алексей
Курсор создаю в этой же процедуре, непосредственно перед присвоением. Схема такая
Код: plaintext
1.
2.
3.
4.
5.
6.
CREATE CURSOR dissrc (sname C( 6 ))
FOR ...
   ...
   INSERT INTO dissrc VALUE ...
ENDFOR
THISFORM.grd1.column1.ControlSource="dissrc.sname"
...
Рейтинг: 0 / 0
28.06.2006, 13:47
    #33819172
ВладимирМ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обратиться к свойству Grid
Пропадают настройки Grid, события столбцов, заголовков, ячеек

Если на этапе дизайна формы для RecordSource ничего не указано, то необходимо явно присвоить ему пустое значение. Для этого достаточно встать на это свойство и нажать Enter. Главное, чтобы значение свойства RecordSource было выделено жирным шрифтом. Пусть это будет все то же (None).
...
Рейтинг: 0 / 0
28.06.2006, 14:32
    #33819315
Aleksey-K
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обратиться к свойству Grid
В INIT форме добавьте строчку:
THISFORM.grd1..RecordSource = ""
С уважением, Алексей
...
Рейтинг: 0 / 0
28.06.2006, 15:28
    #33819546
Кузнецов Игорь
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обратиться к свойству Grid
Aleksey-KВ INIT форме добавьте строчку:
THISFORM.grd1..RecordSource = ""
С уважением, Алексей
Это полумера. Как верно указал ВладимирМ, настройки всего грида сбрасываются при пересоздании источника данных. Я сейчас пытаюсь программно описать рассыпающийся грид после CREATE CURSOR.
...
Рейтинг: 0 / 0
28.06.2006, 15:58
    #33819681
Aleksey-K
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обратиться к свойству Grid
Кузнецов Игорь Aleksey-KВ INIT форме добавьте строчку:
THISFORM.grd1..RecordSource = ""
С уважением, Алексей
Это полумера. Как верно указал ВладимирМ, настройки всего грида сбрасываются при пересоздании источника данных. Я сейчас пытаюсь программно описать рассыпающийся грид после CREATE CURSOR.
Так вы и так его программно его инициируете!
Код: plaintext
THISFORM.grd1.column1.ControlSource="dissrc.sname"
Это же каш код. Он и является программной инициализацией 1-го столбца GRID.
Я полагаю, что вы и сам грид инициируете перед инициализацией колонок:
THISFORM.grd1.column1.RecordSource ="dissrc"
А преред тем, как закрыть (явно или не явно) курсор THISFORM.grd1.column1.RecordSource=""
С уважением, Алексей.
...
Рейтинг: 0 / 0
28.06.2006, 16:16
    #33819735
Кузнецов Игорь
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обратиться к свойству Grid
В Init'e я решил не трогать грид. Буду формировать его, когда потребуется.
Мне осталось решить одну проблему.
На данный момент вот полный код события InteractiveChange, который формирует показ данных в гриде.
Код: 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.
GO RECORD (THIS.ListIndex) IN n1k
CREATE CURSOR dissrc (sname C( 6 ), chk L)
SELECT lsrc
FOR i= 0  TO  999 
	searchname=n1k.s1k+STRTRAN(STR(i, 3 )," ","0")
	LOCATE FOR sname=searchname
	IF !FOUND()
		INSERT INTO dissrc VALUES (searchname, .F.)
	ENDIF
ENDFOR
GO TOP IN dissrc 
WITH THISFORM.grd1
	.ScrollBars		=  2 
	.ColumnCount	  	=  2 
	.GridLines		  =  0 
	.RecordSourceType 	=  1 
	.RecordSource		="dissrc"
	.AllowHeaderSizing	=.F.
	.AllowRowSizing		=.F.
	.DeleteMark		=.F.
ENDWITH
WITH THISFORM.grd1.column1
	.ControlSource	="dissrc.sname"
	.Header1.Caption   ="Отсутствуют"
	.ReadOnly		= .T.
ENDWITH
WITH THISFORM.grd1.column2
	.AddObject("Chk1","CheckBox")
	.CurrentControl		="Chk1"
	.chk1.Caption		=""
	.Sparse			=.F.
	.Header1.Caption        ="Получить"
	.ControlSource		="dissrc.chk"
	.ReadOnly		=.F.
	.chk1.ReadOnly		=.F.
	.chk1.SpecialEffect	=  0 
ENDWITH
Так вот при попытке поставить птичку в CheckBox'e его свойство вдруг меняется на ReadOnly=.T. Почему?
...
Рейтинг: 0 / 0
28.06.2006, 16:48
    #33819845
PaulWist
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обратиться к свойству Grid
Код: plaintext
1.
2.
3.
WITH THISFORM.grd1.column2
	.AddObject("Chk1","CheckBox")
	.VISIBLE	= .T.
ENDWITH
...
Рейтинг: 0 / 0
28.06.2006, 16:53
    #33819863
Aleksey-K
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обратиться к свойству Grid
PaulWist
Код: plaintext
1.
2.
3.
WITH THISFORM.grd1.column2
	.AddObject("Chk1","CheckBox")
	.VISIBLE	= .T.
ENDWITH

Может быть еще не помешает
Код: plaintext
.CurrentControl = "Chk1"
С уважением, Алексей.
...
Рейтинг: 0 / 0
28.06.2006, 17:04
    #33819893
PaulWist
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обратиться к свойству Grid
Aleksey-K PaulWist
Код: plaintext
1.
2.
3.
WITH THISFORM.grd1.column2
	.AddObject("Chk1","CheckBox")
	.VISIBLE	= .T.
ENDWITH

Может быть еще не помешает
Код: plaintext
.CurrentControl = "Chk1"
С уважением, Алексей.

Не только не помешает, а будет даже правильно.
...
Рейтинг: 0 / 0
28.06.2006, 17:05
    #33819897
Кузнецов Игорь
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обратиться к свойству Grid
To PaulWist.
Спасибо, помогло.
To Aleksey-K.
Это я указывал.
...
Рейтинг: 0 / 0
29.06.2006, 08:25
    #33820685
Aleksey-K
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обратиться к свойству Grid
Виноват, слона то я и не приметил :)
С уважением, Алексей
...
Рейтинг: 0 / 0
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Обратиться к свойству Grid / 23 сообщений из 23, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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