Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / FlexGrid / 21 сообщений из 21, страница 1 из 1
15.04.2010, 09:14
    #36579772
Korolyov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
FlexGrid
Добрый день.
Если кто-нибудь использует компонент FlexGrid или
True DB Grid откликнитесь.
Нужна информация и желательно с примерами
...
Рейтинг: 0 / 0
15.04.2010, 11:46
    #36580112
Ffffffffffffffff
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
FlexGrid
Это скорей на форум по VB. В FoxPro использовать контрол, в котором работа с данными не оптимизирована, особого смысла нет.
...
Рейтинг: 0 / 0
15.04.2010, 12:12
    #36580200
Korolyov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
FlexGrid
Дык что, нет никаких шансов пользователю
красивый ГРИД из фокса предоставить?
...
Рейтинг: 0 / 0
15.04.2010, 12:20
    #36580224
Ffffffffffffffff
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
FlexGrid
Korolyov, что в вашем понимании есть "красивый"?
...
Рейтинг: 0 / 0
15.04.2010, 12:44
    #36580313
Korolyov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
FlexGrid
Примерно так, как на рисунке в верхней таблице
...
Рейтинг: 0 / 0
15.04.2010, 12:46
    #36580319
Korolyov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
FlexGrid
сорри файл больше чем нужно оказался. Ща кину еще раз
...
Рейтинг: 0 / 0
15.04.2010, 12:46
    #36580322
Ffffffffffffffff
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
FlexGrid
Не вижу.
...
Рейтинг: 0 / 0
15.04.2010, 12:50
    #36580333
Korolyov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
FlexGrid
О как хочу + картинки в ячейках + выделение цветом
...
Рейтинг: 0 / 0
15.04.2010, 13:48
    #36580507
Ffffffffffffffffff
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
FlexGrid
Все это, в принципе, можно и в стандартном гриде сделать. Где-то в Фоксклубе даже был такой грид в решениях.
Но надо понимать, что стандартный грид оптимизирован для быстрой загрузки и просмотра данных, а в таком навороченном вы высокой скорости при больших объемах не добьетесь.

Так что, выбирайте, что важней-
субъективная красивость или удобство работы с данными.
...
Рейтинг: 0 / 0
15.04.2010, 15:04
    #36580767
Korolyov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
FlexGrid
Дело в том, что в гриде, как раз таки, и не должен присутствовать огромный объем
информации, так как в таком случае теряется сама суть информационности. Количество строк, превышающее определенного придела (скажем так более 500), мешает пользователю сосредаточится на том что нужно и замедляет его работу. Для этого в грид помещают выборку или результат запроса, ограничивающий объем информации.

Использую этот элемент можно как раз таки отобразить больше информации, так как в нем присутствует элемент ее группировки.

По поводу скорости, не думаю что технология ADO на этапе подготовки информации для отображения будет работать медленнее. Зато интерфейс по своей структуре получается более информационным, а доступ к нужному для пользователя быстрее.

Момент редактирования записи - вопрос второй, но не критический.
...
Рейтинг: 0 / 0
15.04.2010, 15:52
    #36580836
Ffffffffffffffff
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
FlexGrid
Korolyovне думаю что технология ADO на этапе подготовки информации для отображения будет работать медленнее.

Так во-первых, в стандартном ADO тоже нет такого иерархического рекордсета, как вам нужен.
FlexGrid заполняется программно, а не автоматически, как Grid в FoxPro.

А во-вторых, FoxPro работает со своими нативными данными. А это таблицы dbf или курсоры, и к ADO они никакого отношения не имеют.

При использовании ADO приходится дополнительно заниматься преобразованием из ADO в dbf и наоборот.

Так что даже при 500-х записях скорости будут ниже.

У каждого языка своя идеология и при написании программ лучше придерживаться ее.
...
Рейтинг: 0 / 0
15.04.2010, 21:27
    #36581474
Korolyov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
FlexGrid
Да???
Мне козалось все должно быть проще.
Я нашел кусок программы для организации MSHFlexGrid,
ничего не понял, так как никогда через ADO ничего не делал,
но по виду не очень мудрено :
Код: plaintext
1.
2.
3.
4.
5.
6.
this.AddProperty('cCntStr', "Provider=MSDataShape;Data Provider=VFPOLEDB;Data Source=" ;
	+ HOME( 2 ) + "data\testdata.dbc;")
this.AddProperty('cCmdTxt', "SHAPE {SELECT * FROM Customer WHERE company LIKE ? } AS Customer ";
	+ "APPEND ({SELECT * FROM Orders} AS Orders RELATE cust_id TO cust_id) AS Orders")
thisForm.RefreshData()  
*thisForm.Resize()
this.AddProperty('bFirstOpen',.T.)

Код: 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.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
#DEFINE adChar	 129  
#DEFINE adParamInput	 1  

LOCAL lcParam as String 
lcParam = ALLTRIM(ThisForm.Text1.Value)
IF !EMPTY(lcParam) AND ATC('%', lcParam) =  0 
	lcParam = lcParam + '%'
ENDIF
LOCAL loRS as ADODB.Recordset, lbIsRsObj as Boolean  
loRS = ThisForm.Olecontrol1.OBJECT.Recordset 
lbIsRsObj = (VARTYPE(loRS) = 'O')
IF !lbIsRsObj
	loRS = CREATEOBJECT("ADODB.Recordset")
ENDIF
LOCAL loCn as ADODB.Connection 
loCn = loRS.ActiveConnection 
IF VARTYPE(loCn) # 'O'
	loCn = CREATEOBJECT("ADODB.Connection")
	loCn.ConnectionString = ThisForm.cCntStr
ENDIF
WITH loCn
	IF .State =  0  
		.Open()
	ENDIF
ENDWITH	
LOCAL loCm as ADODB.Command
loCm = loRS.ActiveCommand
IF VARTYPE(loCm) # 'O'
	loCm = CREATEOBJECT("ADODB.Command")
	WITH loCm
		.CommandText = ThisForm.cCmdTxt
		IF loCm.Parameters.Count =  0 
			LOCAL loPr as ADODB.Parameter
			loPr = CREATEOBJECT("ADODB.Parameter")
			WITH loPr
				.Type = adChar
				.Name = "company"
				.Direction = adParamInput
				.Size =  40 
				.Value = lcParam
			ENDWITH	      
			.Parameters.Append(loPr)
		ENDIF
		.ActiveConnection = loCn
	ENDWITH	 
ELSE	
	loCm.Parameters( 0 ).Value = lcParam
ENDIF
IF !lbIsRsObj
	ThisForm.Olecontrol1.OBJECT.Recordset = loCm.Execute()
ELSE
	loRS.Requery()
	WITH ThisForm.Olecontrol1.OBJECT
		.Recordset = loRS
		.Refresh()
	ENDWITH	  	
ENDIF

Вроде как объект сам всасывает все, что ему нужно для отображения
...
Рейтинг: 0 / 0
15.04.2010, 22:05
    #36581507
Ffffffffffffffffff
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
FlexGrid
Ну возможно. SHAPE это как раз иерархический рекордсет. Я писал о стандартном. В том флексгриде, с которым я работал, такого не было. Хотя я в этом коде не вижу, где происходит объединение ячеек.

Но все остальное - про нативность данных и удобство работы все равно в силе.

P.S.
А зачем вам FoxPro, если вы с флексгридом работаете

P.P.S.
Примеры с Flexgrid, основанном на иерархическом рекордсете есть на форуме по Access.
...
Рейтинг: 0 / 0
16.04.2010, 10:06
    #36581817
Korolyov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
FlexGrid
Я всю жизнь с фоксом. Для работы с базами данных среды удобнее нет (или небыло как минимум до последнего времени). Это сейчас можно делать все что хочешь и где хочешь и через что хочешь. Проблема в том, что на фоксе создать более или менее современный интерфейс уже проблема. Вот и приходится или из него методом извращений что-то выжимать или модули подключать сторонних фирм.

Что я и пытаюсь сделать
...
Рейтинг: 0 / 0
16.04.2010, 10:08
    #36581822
Korolyov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
FlexGrid
P.S. Все что связано с VB меня сильно раздражает
...
Рейтинг: 0 / 0
16.04.2010, 14:15
    #36582509
FlexGrid
Для FoxPro тоже есть дополнительные контролы.
Вот здесь, например, посмотрите.
...
Рейтинг: 0 / 0
16.04.2010, 17:03
    #36582899
xvictor
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
FlexGrid
Рекомендую ctGrid от dbi-tech. Единственное, чего там нет, так это объединения ячеек
Или ctTree той-же фирмы. Это комбинация tree и grid.
...
Рейтинг: 0 / 0
16.04.2010, 20:50
    #36583220
Korolyov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
FlexGrid
Посмотрим. А где контрол взять?
...
Рейтинг: 0 / 0
16.04.2010, 20:54
    #36583227
Korolyov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
FlexGrid
Туплю. Ссылку не заметим. Спасибо. Ща покрутим
...
Рейтинг: 0 / 0
17.04.2010, 11:41
    #36583501
Александр Третьяков
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
FlexGrid
есть несколько вариантов
...
Рейтинг: 0 / 0
17.04.2010, 11:41
    #36583502
Александр Третьяков
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
FlexGrid
Код: 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.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
thisform.VSFlexGrid.clear( 0 , 0 )

thisform.VSFlexGrid.Rows =  1 
thisform.VSFlexGrid.Redraw =  0 

thisform.VSFlexGrid.AutoSize( 0 ,  1 , ,  200 )
thisform.VSFlexGrid.Redraw =  2 

thisform.VSFlexGrid.TextMatrix( 0 ,  0 ) = "Âèä íàêë."
thisform.VSFlexGrid.TextMatrix( 0 ,  1 ) = "¹"
thisform.VSFlexGrid.TextMatrix( 0 ,  2 ) = "Äàòà"
thisform.VSFlexGrid.TextMatrix( 0 ,  3 ) = "Ê볺íò"
thisform.VSFlexGrid.TextMatrix( 0 ,  4 ) = "Ðàõ."
thisform.VSFlexGrid.TextMatrix( 0 ,  5 ) = "Ñóìà"
thisform.VSFlexGrid.TextMatrix( 0 ,  6 ) = "Îïåðàòîð"
thisform.VSFlexGrid.TextMatrix( 0 ,  7 ) = "Òèï îïåð."
thisform.VSFlexGrid.TextMatrix( 0 ,  8 ) = "Òîâàð"
thisform.VSFlexGrid.TextMatrix( 0 ,  9 ) = "Ö³íà"
thisform.VSFlexGrid.TextMatrix( 0 ,  10 ) = "Ê-ñòü"
thisform.VSFlexGrid.TextMatrix( 0 ,  11 ) = "Êóðñ"
thisform.VSFlexGrid.TextMatrix( 0 ,  12 ) = "Ñóìà"
thisform.VSFlexGrid.TextMatrix( 0 ,  13 ) = "Îïåðàòîð  çì³í."
thisform.VSFlexGrid.TextMatrix( 0 ,  14 ) = "Äàòà çì³í."

select (thisform.filef)

_npos =  0 
count to _npos



do dgr_box with round(_npos/ 100 , 0 ), 'Òðèâຠçàâàíòàæåííÿ äàíèõ','...'
do dgr_mov

local i
i= 1 

select (thisform.filef)
go top
SCAN 
	if thisform.type= 21 
		thisform.VSFlexGrid.AddItem(alltrim(nametype)+'	'+;
		alltrim(str(nomn))+'	'+;
		substr(alltrim(ttoc(daten)), 1 , 10 )+'	'+;	
		alltrim(namep)+'	'+;
		alltrim(str(rah))+'	'+;	
		alltrim(str(sumall, 10 , 2 ))+'ãðí'+'	'+;
		alltrim(nameop)+'	'+;
		IIF(type1= 1 ,'Çíèùèëè',IIF(type1= 2 ,'Äîáàâèëè','Çì³íèëè'))+'	'+;
		alltrim(nametv)+'	'+;
		alltrim(str(cena_r, 12 , 2 ))+alltrim(namevaluta)+'	'+;
		alltrim(str(kol))+'	'+;
		alltrim(str(kurs))+'	'+;
		alltrim(str(cena_r*kol*kurs, 10 , 3 ))+alltrim(namevaluta)+'	'+;
		IIF(isnull(nameoped)=.t.,'Íåâ³äîìî',alltrim(nameoped))+'	'+;
		alltrim(ttoc(datenlog)) ) 
	else
		thisform.VSFlexGrid.AddItem(alltrim(nametype)+'	'+;
		alltrim(str(nomn))+'	'+;
		substr(alltrim(ttoc(daten)), 1 , 10 )+'	'+;	
		alltrim(namep)+'	'+;
		alltrim(str(rah))+'	'+;	
		alltrim(str(sumall, 10 , 2 ))+'ãðí'+'	'+;
		alltrim(nameop)+'	'+;
		IIF(type1= 1 ,'Çíèùèëè',IIF(type1= 2 ,'Äîáàâèëè','Çì³íèëè'))+'	'+;
		alltrim(nametv)+'	'+;
		alltrim(str(cena_p, 12 , 2 ))+alltrim(namevaluta)+'	'+;
		alltrim(str(kol))+'	'+;
		alltrim(str(kurs))+'	'+;
		alltrim(str(cena_p*kol*kurs, 10 , 3 ))+alltrim(namevaluta)+'	'+;
		IIF(isnull(nameoped)=.t.,'Íåâ³äîìî',alltrim(nameoped))+'	'+;
		alltrim(ttoc(datenlog)) ) 
	endif
*!*		thisform.VSFlexGrid.AddItem(alltrim(nametype)+'	'+;
*!*		alltrim(str(nomn))+'	'+;
*!*		substr(alltrim(ttoc(daten)), 1 , 10 )+'	'+;	
*!*		alltrim(namep)+'	'+;
*!*		alltrim(str(rah))+'	'+;	
*!*		alltrim(str(sumall, 10 , 2 ))+'ãðí'+'	'+;
*!*		alltrim(nameop)+'	'+;
*!*		IIF(type1= 1 ,'Çíèùèëè',IIF(type1= 2 ,'Äîáàâèëè','Çì³íèëè'))+'	'+;
*!*		alltrim(nametv)+'	'+;
*!*		alltrim(str(cena_r, 12 , 2 ))+alltrim(namevaluta)+'	'+;
*!*		alltrim(str(kol))+'	'+;
*!*		alltrim(str(kurs))+'	'+;
*!*		alltrim(str(cena_r*kol*kurs, 10 , 3 ))+alltrim(namevaluta)+'	'+;
*!*		IIF(isnull(nameoped)=.t.,'Íåâ³äîìî',alltrim(nameoped))+'	'+;
*!*		alltrim(ttoc(datenlog)) ) 
	
	IF i= 100 
		do dgr_mov
		i= 1 
	ENDIF	
    i=i +  1 
ENDSCAN

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


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