Гость
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / ComboBox в Grid - первая строка неверно подтягивает код / 13 сообщений из 13, страница 1 из 1
22.01.2019, 08:01
    #39762629
AngelOKES
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ComboBox в Grid - первая строка неверно подтягивает код
Доброго всем дня, такая вот проблема обрисовалась. Вставляю я ComboBox в Grid динамически при открытии формы, всё просто замечательно работает, одна вещь никак не могу победить, первую запись в Grid ComboBox просто игнорирует, выдаёт код 0 и всё тут, может кто сталкивался с такой проблемой. Сразу укажу, что если поменять свойство BoudTo на .F. всё замечетельно начинает работать, но мне не нужен индекс комбика, мне нужен именно код из базы, а он к сожалению не всегда идёт по порядку, вроде бы уже все свойста прошерстил, не могу понять что делать или чем ещё заменить мне такоей компонент как комбик, он так идеально туда подходит
...
Рейтинг: 0 / 0
22.01.2019, 10:02
    #39762665
PaulWist
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ComboBox в Grid - первая строка неверно подтягивает код
AngelOKESДоброго всем дня, такая вот проблема обрисовалась. Вставляю я ComboBox в Grid динамически при открытии формы, всё просто замечательно работает, одна вещь никак не могу победить, первую запись в Grid ComboBox просто игнорирует, выдаёт код 0 и всё тут, может кто сталкивался с такой проблемой. Сразу укажу, что если поменять свойство BoudTo на .F. всё замечетельно начинает работать, но мне не нужен индекс комбика, мне нужен именно код из базы, а он к сожалению не всегда идёт по порядку, вроде бы уже все свойста прошерстил, не могу понять что делать или чем ещё заменить мне такоей компонент как комбик, он так идеально туда подходит

Допилишь напильником.

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

oForm = CREATEOBJECT('comboingrid')
oForm.Show

*
DEFINE CLASS comboingrid AS form


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


	ADD OBJECT grid1 AS grid WITH ;
		Height = 217, ;
		Left = 12, ;
		Top = 12, ;
		Width = 349, ;
		Name = "Grid1"


	PROCEDURE Load
		CREATE CURSOR test (id i, id_Child i)

		INSERT INTO test (id) VALUES (1)
		INSERT INTO test (id) VALUES (2)

		CREATE CURSOR test_Child (id i, comment c (50))

		INSERT INTO test_Child (id, comment) VALUES (1, '1234567890')
		INSERT INTO test_Child (id, comment) VALUES (3, '201918171615141312110987654321')
		GO TOP IN test
	ENDPROC


	PROCEDURE Init
		WITH this.grid1
			.columncount = 2
			.recordsource = "Test"
			.Column1.controlsource = "Test.id"
			.Column2.controlsource = "Test.id_Child"
			.Column2.Sparse = .f.
			.Column2.Bound = .t.

			WITH .Column2
				.removeobject('Text1')
				.Addobject('ComboBox1','ComboBox')
				.ComboBox1.AddProperty('Arr(2,2)')
				.ComboBox1.Visible = .t.
				.ComboBox1.rowsourcetype = 5
				.ComboBox1.rowsource = ".ComboBox1.Arr"
				SELECT CAST(Comment as C(30)) as comment, id FROM test_child INTO ARRAY .ComboBox1.arr
				.ComboBox1.BorderStyle = 0
				.ComboBox1.ColumnCount = 2
				.ComboBox1.BoundColumn = 2
				.ComboBox1.ColumnLines = .f.
				.ComboBox1.ColumnWidths = "300,10"
				.ComboBox1.BoundTo = .t.
				.ComboBox1.style = 2
				.ComboBox1.Format = Replicate('X',30)
			ENDWITH 
		
		replace id_child WITH 3 FOR id = 1 IN test
		INSERT INTO test (id, id_Child) VALUES (3, 3)
			

		ENDWITH 
	ENDPROC


ENDDEFINE
...
Рейтинг: 0 / 0
22.01.2019, 10:10
    #39762667
AngelOKES
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ComboBox в Grid - первая строка неверно подтягивает код
PaulWist, Пробовал я и через массив делать, весь данный код мне известен и понятен, через курсор думаю менее гемморойнее делать, особенно если всё есть уже в таблицах, непонятно как-то ведёт себя грид
И кстати если намерено переместиться на вторую или любую другую запись, то именно на ней и не будет считываться код, в чём может быть проблема не ясно, далее если работать и сохранять значения, всё будет замечательно отображаться и сохраняться, но если переоткрыть, то на текущей записи снова код будет равен 0
...
Рейтинг: 0 / 0
22.01.2019, 11:07
    #39762682
PaulWist
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ComboBox в Grid - первая строка неверно подтягивает код
AngelOKES,

Репо-код в студию с описанием, что не получается.
...
Рейтинг: 0 / 0
22.01.2019, 11:43
    #39762701
AngelOKES
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ComboBox в Grid - первая строка неверно подтягивает код
PaulWistAngelOKES,

Репо-код в студию с описанием, что не получается.

Как у вас такого кода у меня нет, там раскидано по всей программе, сам комбобокс как класс создаётся со своими процедурами, а в грид уже я его вставляю уже потом, BountTo кстати если отключить, то всё равно не получается, так как коды у меня идут от 0, а индесы от 1

В Init нужной колонки вставляю вот это код:

Код: sql
1.
2.
3.
This.AddObject("PrizG", "MyCombo")
This.CurrentControl='PrizG'
This.PrizG.Visible = .T.



А уже при построения грида

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
		With .Column32
			.PrizG.ColumnCount=2
			.PrizG.RowSourceType = 3
			.PrizG.RowSource='select Str(kod,1) as kod, Naim1, kod from qPrizG into cursor qPrizG1'
			.PrizG.BoundTo=.T.
			.PrizG.BoundColumn=3
			.PrizG.BorderStyle=0
			.PrizG.Style=2
		Endwith



Процедура создания класса:

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
Define Class MyCombo As ComboBox
	Procedure LostFocus
	Set Century On
	bb="update Dop2018 set PrizG="+Allt(Str(qDSN.PrizG))+", KodUser=(select kod from SprUser Where "
	bb=bb+" NaimFox='"+Allt(Sys(0))+"'), datelast1=GetDate() where nnn="+Allt(Str(qDSN.nnn))+" and PrizG<>"+Allt(Str(qDSN.PrizG))+""
	SQLExec(aaa,bb)
	Set Century Off
	Select NaimUser From qSprUser Where kod=(Select kod From qSprUser Where Upper(Allt(NaimFox))=Upper(Allt(Sys(0)))) Into Cursor q1
	mNaimUser=Allt(q1.NaimUser)+' '+Left(Ttoc(Datetime()),14)
	Sele qDSN
	Replace UserName With mNaimUser
	Set Century Off
	Endproc
	Procedure KeyPress
	Lparameters nKeyCode, nShiftAltCtrl
	If nKeyCode=13
		Sele qDSN
		Skip
	Endif
	Endproc
Enddefine
...
Рейтинг: 0 / 0
22.01.2019, 14:24
    #39762850
PaulWist
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ComboBox в Grid - первая строка неверно подтягивает код
AngelOKES,

А где у .Column32.ControlSource ?
...
Рейтинг: 0 / 0
22.01.2019, 14:56
    #39762877
AngelOKES
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ComboBox в Grid - первая строка неверно подтягивает код
PaulWist,

Тут сразу идёт вся привязка по всем столбцам:
Код: sql
1.
2.
	With Thisform.grid1
		.RecordSource = 'qDSN'
...
Рейтинг: 0 / 0
22.01.2019, 14:58
    #39762879
AngelOKES
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ComboBox в Grid - первая строка неверно подтягивает код
PaulWist,

Может вот это вы имеете ввиду:

Код: sql
1.
This.CurrentControl='PrizG'



Контрол всё правильно завязывается
...
Рейтинг: 0 / 0
22.01.2019, 15:02
    #39762883
AngelOKES
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ComboBox в Grid - первая строка неверно подтягивает код
PaulWist,

Ну на всякий случай добавил:

Код: sql
1.
.ControlSource = 'qDSN.PrizG'



Результат тот же
...
Рейтинг: 0 / 0
22.01.2019, 15:19
    #39762904
AngelOKES
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ComboBox в Grid - первая строка неверно подтягивает код
Попробовал перевести код из числа в строку, теперь в первой активной строке значение просто пустое, остальные строки всё нормально отображаются
...
Рейтинг: 0 / 0
22.01.2019, 15:28
    #39762911
PaulWist
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ComboBox в Grid - первая строка неверно подтягивает код
Репо-код в студию с описанием, что не получается.
...
Рейтинг: 0 / 0
23.01.2019, 21:36
    #39763837
ВладимирМ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ComboBox в Grid - первая строка неверно подтягивает код
Я так никогда не делал, но разве с такими настройками Вы вообще что-то сможете вернуть?

ColumnCount=2
BoundColumn=3

Т.е. столбцов 2, но возвращаете из не существующего 3 столбца?

Лично я делал так

ColumnCount=3
BoundColumn=3
ColumnWidths = 100,100,0

Т.е. 3 столбца, но ширина 3 столбца равна 0, чтобы он не отображался


Для справки

Содержимое выпадающего списка - это ВСЕГДА символьные данные. Вне зависимости от того, какой тип данных в источнике. Конверация выполняется автоматически. Поэтому нет никакого смысла делать 2 разных столбца для поля kod, если там число из 1 символа. Т.е. вполне можно сделать так

Код: sql
1.
2.
3.
ColumnCount=2
RowSource='select kod, Naim1 from qPrizG into cursor qPrizG1'
BoundColumn=1



Остальные реквизиты я пропустил, чтобы не отвлекали внимания :)
...
Рейтинг: 0 / 0
24.01.2019, 06:59
    #39763921
AngelOKES
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ComboBox в Grid - первая строка неверно подтягивает код
ВладимирМ,

Я знаю что так могу сделать, просто числовое значение слишком широкое, а так я его делаю шириной в 1 символ, больше ничего этим я не изменил и изначательно именно так и было, количество колонок это вообще параметр не обязательный, можно и пропустить, можно указать один столбец, их всё равно там будет ровно столько сколько в запросе

И да даже с такими настройками всё замечательно возвращается и присваивается, проблема почему-то только с первой активной строкой, далее, если менять по строкам значения, все сохраняется и отображается корректно и правильно, а вот первая строка какая-то заколдованная, никак не могу победить
...
Рейтинг: 0 / 0
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / ComboBox в Grid - первая строка неверно подтягивает код / 13 сообщений из 13, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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