Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / CheckBox в гриде пропадает / 11 сообщений из 11, страница 1 из 1
07.07.2008, 10:30
    #35414258
tem@
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
CheckBox в гриде пропадает
Использую чекбокс в гриде, когда сортирую данные (по коду и фио) чекбокс пропадает, и появляются надписи соответствующие значению чекбокса (T или F),
в чем причина исчезновения чекбокса?
Заранее спасибо!
...
Рейтинг: 0 / 0
07.07.2008, 10:45
    #35414303
Dima T
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
CheckBox в гриде пропадает
Поставь
Код: plaintext
column.sparse = .F.
...
Рейтинг: 0 / 0
07.07.2008, 11:25
    #35414430
tem@
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
CheckBox в гриде пропадает
sparse итак равен .F.

код сортировки по коду:
column1 - столбец с чекбоксом

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
	SELECT * FROM SYS( 5 )+SYS( 2003 )+'\DBF\polic';
	  ORDER BY Kkod INTO TABLE otbor_Vibor

	 WITH Thisform.grid1 
               .RecordSourceType =  1   	     
	    .RecordSource = "otbor_Vibor"
	    .column1.width =  44 
	    .column2.width =  53 
	    .column3.width =  82 
	    .column1.backcolor = RGB( 254 , 248 , 224 )
	    .column2.backcolor = RGB( 254 , 248 , 224 )
	    .column3.backcolor = RGB( 254 , 248 , 224 )
	    .Column1.ControlSource = "otbor_Vibor.Nodel_tf"   
	    .Column2.ControlSource = "otbor_Vibor.Ser"  
	    .Column3.ControlSource = "otbor_Vibor.Kkod" 
	    .Column1.Header1.Caption = 'Метка'
	    .Column2.Header1.Caption = 'Серия'    
	    .Column3.Header1.Caption = 'Код' 
               .sparse = .f.
	    .Refresh
	 ENDWITH  
...
Рейтинг: 0 / 0
07.07.2008, 12:02
    #35414519
tem@
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
CheckBox в гриде пропадает
просто с грида пропадает чекбокс, если дальше обращаться к данному чекбоксу
то возникнет ошибка "неизвестный элемент Check1", почему он у меня слетает с грида?
...
Рейтинг: 0 / 0
07.07.2008, 12:29
    #35414620
Dima T
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
CheckBox в гриде пропадает
tem@просто с грида пропадает чекбокс, если дальше обращаться к данному чекбоксу
то возникнет ошибка "неизвестный элемент Check1", почему он у меня слетает с грида?
После SELECT ... в вышеприведенном коде грид очищается, ты его программно восстанавливаешь, но чекбокса там уже нет.
Не уверен что поможет, но попробуй:
Код: plaintext
1.
2.
Thisform.grid1.RecordSource = ""
select ....
Thisform.grid1.RecordSource = "otbor_Vibor"

То что ты делаешь по другому надо. Один раз выбрал в курсор или временную таблицу в DE.BeforeOpenTables(), а потом:
Код: plaintext
1.
2.
sele otbor_Vibor
index on Kkod tag kkod
set order to Kkod

Или в гриде исходную таблицу показывать. Тогда индексы заранее надо создать, а при работе использовать только
set order to ...
...
Рейтинг: 0 / 0
07.07.2008, 13:52
    #35414892
CTAC-KO
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
CheckBox в гриде пропадает
а каким образом без ошибки отрабатывает строка:
Код: plaintext
.sparse = .f.
если у грида такого свойства вообще нет? Такое св-во есть только у колонок грида. По-идее должно бы быть
Код: plaintext
.Column1.sparse = .f.
а весь код дожен был бы быть таким
Код: 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.
	 WITH Thisform.grid1 

	    .RecordSource = ""
	    .Column1.ControlSource = ""   
	    .Column2.ControlSource = ""  
	    .Column3.ControlSource = "" 

SELECT * FROM SYS( 5 )+SYS( 2003 )+'\DBF\polic';
	  ORDER BY Kkod INTO TABLE otbor_Vibor

	    *.column1.width =  44 
	    *.column2.width =  53 
	    *.column3.width =  82 

	    *.column1.backcolor = RGB( 254 , 248 , 224 )
	    *.column2.backcolor = RGB( 254 , 248 , 224 )
	    *.column3.backcolor = RGB( 254 , 248 , 224 )

	    *.сolumn1.sparse = .f.

	    *.RecordSourceType =  1   	     
	    .RecordSource = "otbor_Vibor"

	    .Column1.ControlSource = "otbor_Vibor.Nodel_tf"   
	    .Column2.ControlSource = "otbor_Vibor.Ser"  
	    .Column3.ControlSource = "otbor_Vibor.Kkod" 

	    *.Column1.Header1.Caption = 'Метка'
	    *.Column2.Header1.Caption = 'Серия'    
	    *.Column3.Header1.Caption = 'Код' 

	    .Refresh
	 ENDWITH 
если Вы не "убиваете" грид, т.к. это в принципе бессмыссленно, не "убиваете" колонки в гриде посредством .ColumnCount=-1,то закоментаренное абсолютно не нужно, так же как и .сolumn1.sparse = .f., которое должно быть определено 1 раз и навсегда (разве что реально необходимо восстанавливать такие параметры, но для сортировки этого точно не нужно), так же как и ширины столбцов и Header1.Caption-ы.
...
Рейтинг: 0 / 0
07.07.2008, 15:02
    #35415172
tem@
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
CheckBox в гриде пропадает
если делать по вышеуказанному примеру то на первом же Column1
выдается ошибка - "неизвестный элемент Column1"

если же задать кол-во столбцов то грид станет пустым
...
Рейтинг: 0 / 0
07.07.2008, 19:55
    #35416165
1010100021
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
CheckBox в гриде пропадает
Вот что у меня получается

Вот обычный список.
...
Рейтинг: 0 / 0
07.07.2008, 19:55
    #35416166
1010100021
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
CheckBox в гриде пропадает
Далее нажимаю на кнопку в которой такой код:
Код: plaintext
1.
2.
3.
4.
5.
SELECT gurnal
SELECT * FROM gurnal WHERE Reg =  20  INTO TABLE xxx

Thisform.grid1.RecordSource='xxx'
Thisform.grid1.Refresh()

Получается это:
...
Рейтинг: 0 / 0
07.07.2008, 19:57
    #35416168
1010100021
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
CheckBox в гриде пропадает
Это нужно было?
...
Рейтинг: 0 / 0
08.07.2008, 02:55
    #35416436
CTAC-KO
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
CheckBox в гриде пропадает
tem@если делать по вышеуказанному примеру то на первом же Column1
выдается ошибка - "неизвестный элемент Column1"

если же задать кол-во столбцов то грид станет пустым
CTAC-KOесли Вы не "убиваете" грид, т.к. это в принципе бессмыссленно, не "убиваете" колонки в гриде посредством .ColumnCount=-1,то закоментаренное абсолютно не нужно
соотв. снимите * и еще добавьте строку с кол-вом колонок сразу после SELECT * FROM ... :
Код: 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.
	 WITH Thisform.grid1 

	    .RecordSource = ""

SELECT * FROM SYS( 5 )+SYS( 2003 )+'\DBF\polic';
	  ORDER BY Kkod INTO TABLE otbor_Vibor

	    .ColumnCount =  3 

	    * из-за уничтожения колонок, с ними уничтожился и чекбокс!
	    * и теперь его надо снова добавлять!!!
	    .сolumn1.AddObject('Check1','CheckBox')
	    .сolumn1.CurrentControl  = 'Check1'
	    .сolumn1.sparse = .f.

	    .column1.width =  44 
	    .column2.width =  53 
	    .column3.width =  82 

	    .column1.backcolor = RGB( 254 , 248 , 224 )
	    .column2.backcolor = RGB( 254 , 248 , 224 )
	    .column3.backcolor = RGB( 254 , 248 , 224 )

	    .RecordSourceType =  1   	     
	    .RecordSource = "otbor_Vibor"

	    .Column1.ControlSource = "otbor_Vibor.Nodel_tf"   
	    .Column2.ControlSource = "otbor_Vibor.Ser"  
	    .Column3.ControlSource = "otbor_Vibor.Kkod" 

	    .Column1.Header1.Caption = 'Метка'
	    .Column2.Header1.Caption = 'Серия'    
	    .Column3.Header1.Caption = 'Код' 

	    .Refresh
	 ENDWITH 
Только лучше не прибегать к "убийству" грида/колонок посредством .ColumnCount=-1, тогда код уменьшается и чекбокс не пропадет:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
	 WITH Thisform.grid1 

	    .RecordSource = ""
	    .Column1.ControlSource = ""   
	    .Column2.ControlSource = ""  
	    .Column3.ControlSource = "" 

SELECT * FROM SYS( 5 )+SYS( 2003 )+'\DBF\polic';
	  ORDER BY Kkod INTO TABLE otbor_Vibor

	    .RecordSource = "otbor_Vibor"

	    .Column1.ControlSource = "otbor_Vibor.Nodel_tf"   
	    .Column2.ControlSource = "otbor_Vibor.Ser"  
	    .Column3.ControlSource = "otbor_Vibor.Kkod" 


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


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