:: Visual Foxpro, Foxpro for DOS
снова не работает check в grid
Артём

Сообщений: 145
Дата регистрации: 23.04.2001
Замучался голову ломать.
Есть несколько работающих гридов со столбцами checkbox в разных формах, то есть я умею, и перед глазами примеры, написанные мной
Создаю новый грид в другой форме. всё делаю как там, а именно
затаскиваю check в грид мышкой в нужный столбик
окошке свойств столбика прописываю sparse false, currentcontrol =check1
и еще при обновлении запроса сбрасываю recordsource
ThisForm.PartsGrid.RecordSource=''
SELECT '***' AS title, .F. AS include FROM parts INTO CURSOR parts_s01 READWRITE
ThisForm.PartsGrid.RecordSourceType= 1
ThisForm.PartsGrid.RecordSource='parts_s01'
ThisForm.PartsGrid.ColumnCount=2
ThisForm.PartsGrid.Column1.ControlSource = "parts_s01.title"
ThisForm.PartsGrid.Column2.ControlSource = "parts_s01.include"

И это всё не работает. чеки пропадают и в текстовых ячейках T или F

Потом вписываю в окне свойств PartsGrid.RecordSource='something' (буквально любой текст) и всё работает. Ладно, я не против танцев с бубном, но дело в том, что другие мои гриды с чеками работают и без PartsGrid.RecordSource='something'. Всюду стоит Default . удивительно, что я, вообще, это нашел
получается, что я что-то упускаю, или не знаю. подскажите, пожалуйста, что еще может быть не так

а, еще забыл. при первом запуске формы грид работает правильно и при PartsGrid.RecordSource=(delault)' перезапускаю форму и всё ломается



Исправлено 7 раз(а). Последнее : Артём, 29.05.24 01:22
Ratings: 0 negative/0 positive
Re: снова не работает check в grid
akvvohinc

Сообщений: 4615
Откуда: Москва
Дата регистрации: 11.11.2008
Цитата:
окошке свойств столбика прописываю sparse false, currentcontrol =check1
Я не вижу, что вы пишете на самом деле, поэтому лишь замечу, что свойство currentcontrol должно быть строкой.

А в остальном - по обрывкам кода сложно что-то сказать.
Выложите здесь файлы форм - работающей и не работающей. Может, это поможет поискам проблемы.
Ratings: 0 negative/0 positive
Re: снова не работает check в grid
PaulWist

Сообщений: 14779
Дата регистрации: 01.04.2004
По хорошему надо определить

ThisForm.PartsGrid.Column1.CurrentControl = 'Check1'
ThisForm.PartsGrid.Column1.RemoveObject('Text1') <<-- это по памяти, возможно в синтаксисе ошибся


------------------
Есть многое на свете, друг Горацио...
Что и не снилось нашим мудрецам.
(В.Шекспир Гамлет)
Ratings: 0 negative/0 positive
Re: снова не работает check в grid
Burn

Сообщений: 5683
Откуда: Днепр
Дата регистрации: 02.01.2002
Из работающего куска

WITH ThisForm.Grid1
WITH .Column1
.RemoveObject([Text1])
.Bound=.F.
.Sparse=.F.
.AddObject([mycheck1],[mycheck])
WITH .mycheck1
.Visible=.T.
.Centered=.T.
.ControlSource=[reestr.opl]
ENDWITH
ENDWITH
ENDWITH

Лишнее опущено
Ratings: 0 negative/1 positive
Re: снова не работает check в grid
Каратаев

Сообщений: 4072
Откуда: Алматы
Дата регистрации: 04.12.2001
Ну вот у меня в одной из форм прописано так:
WITH .Columns[m.lnCol]
.ControlSource = "cur_avn.issued_"
.AddObject('Check1','CheckBox')
.Check1.Caption = ""
.CurrentControl = "Check1"
.removeobject("text1")
.Bound = .T.
.Sparse = .F.
.ReadOnly = .F.
.Enabled = .T.
.Check1.Visible = .T.
.Width = 40
.Header1.Caption = 'Выдано'
ENDWITH
Думаю, принцип понятен, под себя переделайте...


------------------
Никогда не бывает настолько плохо, чтобы не могло быть еще хуже.
Ratings: 0 negative/1 positive
Re: снова не работает check в grid
Артём

Сообщений: 145
Дата регистрации: 23.04.2001
Burn
Из работающего куска
...

.Bound = .F.
как то плохо влияет

Каратаев
Ну вот у меня в одной из форм прописано так:
...
так работает

получилось так.
DEFINE CLASS cGridCheckBox AS CheckBox
PROTECTED this_form, check_num
PROCEDURE Init
PARAMETERS tf, cn
this.this_form = tf
this.check_num = cn
RETURN
ENDPROC
PROCEDURE InteractiveChange
this.this_form.on_change_grid_check( this.check_num )
RETURN
ENDPROC
ENDDEFINE
* в init формы
WITH ThisForm.PartsGrid
.ColumnCount = 2
WITH .Column2
.ControlSource=parts.select && тут , похоже, можно любое логическое поле написать, а потом поменять
.RemoveObject([Text1])
.Bound=.T.
.Sparse=.F.
.AddObject([Check1],[cGridCheckBox], thisform, 1)
WITH .check1
.Visible=.T.
.Centered=.T.
ENDWITH
ENDWITH
ENDWITH

з.ы. почему не работало так и не разобрался. похоже, как то влияют типы полей в открытых dbf

Спасибо за советы и помощь



Исправлено 2 раз(а). Последнее : Артём, 29.05.24 11:18
Ratings: 0 negative/0 positive
Re: снова не работает check в grid
12345зайчик
Автор

Сообщений: 77
Дата регистрации: 24.06.2021
Артём
.ControlSource=parts.select && тут , похоже, можно любое логическое поле написать, а потом поменять

лучше б оно не заработало, чем так

беда фокспро - отсутствие проверки типов и тд при компил.

пыс пыс - там текст должен быть, но текст = назв.поля из акт области(курсор) = "parts.select".
например, редактор классов, программ в SAP на такое орет на стадии компил/активации кода, что не дает безобразить
и исключает множ проблем не давая перенести такое из среды разработки и тд.
Ratings: 0 negative/0 positive
Re: снова не работает check в grid
Артём

Сообщений: 145
Дата регистрации: 23.04.2001
12345зайчик
Артём
.ControlSource=parts.select && тут , похоже, можно любое логическое поле написать, а потом поменять
лучше б оно не заработало, чем так
да уж. спасибо. так действительно работало, в основном, у меня кавычки всюду есть



Исправлено 1 раз(а). Последнее : Артём, 30.05.24 12:45
Ratings: 0 negative/0 positive
Re: снова не работает check в grid
Артём

Сообщений: 145
Дата регистрации: 23.04.2001
обнаружил, что дело не в checkbox.
почти та же ситуация, и без чеков. а именно теперь в другой форме пропадают обработчики событий, которые прописаны в окне свойств
например, пропадает text1.valid()
И так меня это достало, что я поставил в окошке свойств Grid.RecordSource = ***** (прям звездочки!)
так работает
и так же, без звездочек работает только первый запуск формы, потом ломается



Исправлено 2 раз(а). Последнее : Артём, 30.05.24 13:17
Ratings: 0 negative/0 positive
Re: снова не работает check в grid
12345зайчик
Автор

Сообщений: 77
Дата регистрации: 24.06.2021
проганье методом тыка - это сила.

извините, поинтересуюсь.
а для кого разрабатываете?
и почему, именно, выбран фокспро как среда разработки?

+ что-то смотрели на просторе из более-менее поделок на фокспро
(аля парус и тд) - исходники паруса и тд?
стиль и тд?
(или какие-то еще поделки от кейсов и ежеи с ними ...)
Ratings: 0 negative/0 positive
Re: снова не работает check в grid
12345зайчик
Автор

Сообщений: 77
Дата регистрации: 24.06.2021
форма в фокспро - это набор объектов со своей послед инициации этих объектов и самой формы ....
взлет ду форм и подъем класс-формы - отличаются (в фокспро есть координально различные подходы/религии разработки).
грид в фокспро оч капризная штука (если не понимать послед и тд) - он при взлете начинает сам привязываться к открытым областям,
(если не заткнуты свойства , неправильно иницируются ... и тд )

я к тому чта ...
может посмотреть какой-то фрейм у кого-то, поучиться и тд...
+ почитать про последовательность инициации

скуль убили , а так-бы я пнул на примеры...
Ratings: 0 negative/0 positive
Re: снова не работает check в grid
PaulWist

Сообщений: 14779
Дата регистрации: 01.04.2004
12345зайчик

скуль убили , а так-бы я пнул на примеры...

Нуу, пни

sql.ru до 2022г FoxPro, Visual FoxPro


------------------
Есть многое на свете, друг Горацио...
Что и не снилось нашим мудрецам.
(В.Шекспир Гамлет)




Исправлено 2 раз(а). Последнее : PaulWist, 30.05.24 15:59
Ratings: 0 negative/0 positive
Re: снова не работает check в grid
12345зайчик
Автор

Сообщений: 77
Дата регистрации: 24.06.2021
я примеров там не нашел.

я выкладывал там примеры - виз.построители экранных форм на перечне свойств/описании полей ... (списочных и форм ред)

как вар - показать, что-то такое фрейм и тд ..
(нечто подобное есть и в исходниках самого фокспро ..)

там как раз привязка / инициация различн типов контролов в колонках грида была (в зависим от настройки: текстбок/чекбокс и тд ...)

нужно такое смотреть и понимать как управлять инициировать ...

сейчас вопрошающий бьется головой о монитор не понимая послед взлета/инициации объектов

+в фокспро есть прием, когда некотор св-ва объектов нужно забивать нуллами для того, чтобы они не лезли на взлете и тд...
(при разработке своих библиотек)

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

+ фокспро должен восприниматься как какой-то тренировочн.инстр для начального понимания и тд, , - и убегать
в какой-то коллектив писать на чем-то другом
Ratings: 0 negative/0 positive


Эта тема закрыта.

On-line: 21 leonid  (Гостей: 20)

© 2000-2025 Fox Club 
Яндекс.Метрика