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

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

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

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

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

Код: 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
Listbox vs Grid
    #33483109
Igor Korolyov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hi Barnaul!

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

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

Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
Listbox vs Grid
    #33483386
Barnaul
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Сделал как предложил 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
Listbox vs Grid
    #33484318
PaulWist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мда, ужас.

Насколько я понял к гриду в котором 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
Listbox vs Grid
    #33484477
Barnaul
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Получилось с такой конструкцией

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
Listbox vs Grid
    #33493133
Igor Korolyov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hi Barnaul!

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

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

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

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


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