Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Listbox vs Grid / 14 сообщений из 14, страница 1 из 1
13.01.2006, 11:38
    #33480878
Barnaul
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Listbox vs Grid
Значит так кидаю в grid listbox на одну из колонок вместо родного text1
text1 удаляю.

В listboxe стоит Row source type =SQL statement

при простом просмотре все работает но в gride его не видно пока не получит фокус в чем проблема?
...
Рейтинг: 0 / 0
13.01.2006, 11:41
    #33480903
Недоходящий
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Listbox vs Grid
Refresh делал? Или передовай фокус после всех загрузок.
...
Рейтинг: 0 / 0
13.01.2006, 11:43
    #33480907
Valerii
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Listbox vs Grid
grid.Column.CurentControl = combo1
grid.Column.Sparse = .F.
...
Рейтинг: 0 / 0
13.01.2006, 12:05
    #33480999
Barnaul
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Listbox vs Grid
Sparse решил
...
Рейтинг: 0 / 0
13.01.2006, 12:09
    #33481022
Barnaul
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Listbox vs Grid
Но тут не приятная особенность у listboxa даже если один элемент присутствует полоса прокрутки которая создает неприглядный вид

Вообще сначала я хотел textbox оставить но не нашел возможности сделать ему sql statement есть ли такая возможность?

Если нет то как можно убрать у listboxa полосу scroll bar
...
Рейтинг: 0 / 0
13.01.2006, 12:12
    #33481044
PaulWist
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Listbox vs Grid
Посмотри пример, как обычно делается

Код: 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.
PUBLIC oForm 

oForm = CREATEOBJECT('gridlist')
oForm.Show( 1 )
*
DEFINE CLASS gridlist AS form


	DoCreate = .T.
	Caption = "Form1"
	Name = "Form1"


	ADD OBJECT edit1 AS editbox WITH ;
		Height =  228 , ;
		Left =  168 , ;
		Top =  12 , ;
		Width =  192 , ;
		Name = "Edit1"


	ADD OBJECT grid1 AS grid WITH ;
		Height =  229 , ;
		Left =  0 , ;
		Top =  12 , ;
		Width =  157 , ;
		Name = "Grid1"


	PROCEDURE Init
		WITH this.grid1
			.columnCount =  1 
			.recordSource = 'test'
			.column1.controlsource = 'Test.id'
		ENDWITH 

		this.edit1.ControlSource = 'Test.texts'
	ENDPROC


	PROCEDURE Load
		IF !USED('test')
			CREATE CURSOR test (id i , texts m)
			INSERT INTO test (id, texts) VALUES ( 1 , REPLICATE('First Record',  10 ))
			INSERT INTO test (id, texts) VALUES ( 2 , REPLICATE('Second Record ',  10 ))
		ENDIF 
		GO TOP IN test
	ENDPROC


	PROCEDURE grid1.AfterRowColChange
		LPARAMETERS nColIndex

		thisform.edit1.Refresh()
	ENDPROC


ENDDEFINE
**************************************************
...
Рейтинг: 0 / 0
14.01.2006, 21:47
    #33483109
Igor Korolyov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Listbox vs Grid
Hi Barnaul!

> Вообще сначала я хотел textbox оставить но не нашел возможности сделать
> ему sql statement есть ли такая возможность?

А зачем тебе это надо?
Вообще-то если у тебя всегда в ячейке одно значение, значит можно сделать
запрос (например используя локальное представление), который объединит 2 или
больше таблиц и соответственно все нужные поля будут в одном курсоре - т.е.
просто колонки привяжутся к этим полям и всё... Ну есть ещё и старый
способ - установить между 2-мя таблицами временную связь (SET Relation) - и
тогда в качестве источника данных колонки можно применить поле другого
курсора - не того который RecordSource самого грида - но на практике работа
грида с такой связью не очень стабильна - лучше через запрос/представление
делать.

Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
15.01.2006, 13:12
    #33483386
Barnaul
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Listbox vs Grid
Сделал как предложил PaulWist

В Gridе у меня 4 колонки с controlsourcom в dataenvironment

при создание курсора в load form
************************************************************
LOCAL inLine

IF !USED("cmov")
CREATE CURSOR cmov (namebef C(20))
CURSORSETPROP("Buffering", 5, "cmov")

inLine = 1
DO WHILE inLine<= RECCOUNT("historymov")
GOTO inLine IN historymov
SEEK ALLTRIM(historymov.kodbefore) ORDER tag kodunion IN main

IF FOUND("main")
INSERT INTO cmov (namebef) VALUES (ALLTRIM(main.name_cab))
ELSE
INSERT INTO cmov (namebef) VALUES ("")
ENDIF
inLine = inLine + 1
ENDDO

GO TOP IN cmov
ENDIF

SELECT historymov
GOTO TOP
********************************************************
Создается правильная таблица

но при добавлении 5 колонки c controlsourcom "cmov.namebef"

вся колонка заполняется одним значением из cmov.namebef

Куда подевались остальные ?
...
Рейтинг: 0 / 0
16.01.2006, 10:57
    #33484318
PaulWist
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Listbox vs Grid
Мда, ужас.

Насколько я понял к гриду в котором 5 колонок подцеплена табличка historymov, причем из неё используются 4 колонки, а 5-ую ты пытаешься подцепить из созданного курсора, и вот в этой 5-ой колонке не отображаются данные накопленные в курсоре cmov.

Есть два решения

1. оставить код как есть и приделать relation между historymov-cmov для этого в cmov надо добавить поле первичного ключа. Но это сказать по мягче - не правильно

2. написать select (LV) и его отобразить в гриде.

Код: plaintext
1.
2.
select h.*, m.name_cab from main m
inner/full/right/left join historymov && смотря, что у тебя по условию задачи
on m.kodunion == h.kodbefore 
...
Рейтинг: 0 / 0
16.01.2006, 11:58
    #33484477
Barnaul
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Listbox vs Grid
Получилось с такой конструкцией

IF !USED("cmov")
CREATE CURSOR cmov (namebef C(20), ;
nominven C(10), datemov D, ;
datefin D, descr M)

inLine = 1
DO WHILE inLine <= RECCOUNT("historymov")
GOTO inLine IN historymov

IF !EMPTY(ALLTRIM(historymov.kodbefore))
SEEK ALLTRIM(historymov.kodbefore) ORDER tag kodunion IN main

IF FOUND("main")
lcnamebef = ALLTRIM(main.name_cab)
ELSE
lcnamebef = ""
ENDIF
ELSE
lcnamebef = ""
ENDIF

INSERT INTO cmov (namebef, nominven, ;
datemov, datefin, descr);
VALUES (lcnamebef, ALLTRIM(historymov.nominven), ;
historymov.datemov, historymov.datefin, historymov.descr)
inLine = inLine + 1
ENDDO

GO TOP IN cmov
SELECT * from cmov INTO CURSOR cbufmov READWRITE

CURSORSETPROP("Buffering", 5, "cbufmov")
ENDIF

Grid у меня заполнился нормально, но у меня форма с page1,2
на первом вводятся данные на 2ом readonly grid стоит

Как сделать при pageframe1.page2.activate()
его обновление + еще и он буферизирован?
...
Рейтинг: 0 / 0
20.01.2006, 01:10
    #33493133
Igor Korolyov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Listbox vs Grid
Hi Barnaul!

Ты попробуй лучше по-человечески (а не горой маловразумительного кода)
описать что у тебя имеется и что надо в итоге получить - практически на все
100% уверен что тут достаточно 2-3 строк, или вообще никакого кодирования а
только создать одно представление и всё.

Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
20.01.2006, 12:48
    #33493985
Barnaul
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Listbox vs Grid
К free table можно сделать LV?
...
Рейтинг: 0 / 0
20.01.2006, 12:53
    #33494013
PaulWist
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Listbox vs Grid
А попробовать самому и доложить о результатах, слабо.
...
Рейтинг: 0 / 0
21.01.2006, 01:53
    #33495371
Igor Korolyov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Listbox vs Grid
Hi Barnaul!

Да можно. Конечно сам этот LV должен находится в базе, а вот на что он
ссылается - это уже непринципиально - можно и на свободные таблицы.

Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Listbox vs Grid / 14 сообщений из 14, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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