:: Архив конференции по VFP до 2005 года
Grid
Carted
Автор
Здравствуйте, те кто нашел свободную минутку и уделил мне внимание!
Научите как правильно, на этапе выполнения, привязывать к гриду источники данных, меняя формат их отображения? Ну, например, чтобы хранилось число 100, а выводился результат вычисления 100*10=1 000, либо вырезать часть символьной строки. Вот если вырезать часть строки и писать:
1. thisform.grid1.recordsource = 'table1'
2. thisform.grid1.column1.controlsource = substr(table1.name,3,2)
то во всех строках грида продублируется результат "вырезания" только одного поля из источника. С вычислениями сложнее, вообще не работают в командах .controlsource = ...

Грид самый обычный с TexnBoxa'ми.

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

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

Заранее спасибо.

Ratings: 0 negative/0 positive
Re: Grid
Burn

Сообщений: 5643
Откуда: Днепр
Дата регистрации: 02.01.2002
. thisform.grid1.column1.controlsource = "substr(table1.name,3,2)"




------------------
В борьбе бобра с козлом побеждает бобро
Ratings: 0 negative/0 positive
Re: Grid
Владимир Максимов

Сообщений: 14097
Откуда: Москва
Дата регистрации: 02.09.2000
Для распространения "содержимого" ячейки текущей строки Grid вообще на все строки Grid, надо сделать настройку

Grid1.Column1.Sparse = .F.

Для форматирования содержимого ячейки используются специальные свойства Format и InputMask. Для числового поля в твоем случае надо указать

Grid1.Column1.Text1.InputMask = "999 999"

InputMask отвечает за формат отображения одного символа, а Format за отображение всего содержимого.




------------------
Ratings: 0 negative/0 positive
Re: Grid
matod

Сообщений: 3062
Откуда: Иркутск
Дата регистрации: 31.10.2001
В режиме разработки, в окне Properties установи свойство RecordSource равное пробелу (или, чтобы значение (None) отобразилось жирным шрифтом.) Это надо сделать для того, чтобы грид не инициализировался автоматически при открытии формы. Т.е. если значение RecordSource=(None) (В окне Properties отображается НЕ жирным шрифтом), то грид попытается сам привязаться в момент открытия формы к курсору, открытому в текущей области. Поэтому и получается, что привязан он, например, к таблице Table2, а выражение построено на основе полей table1, вот фокс и пишет значение для первой записи во всех строках.
В принципе, сразу можно задать и ControlSource для столбцов, но лучше сделать отдельный метод на форме для установки источников данных для столбцов и грида, в котором и пишешь

thisform.mygrid1.recordsourcetype=1
thisform.mygrid1.recordsource='Table1'
ну и дальше - источники данных для столбцов, учитывая приведенный Burn и Владимиром замечания...
Ratings: 0 negative/0 positive
Re: Grid
Carted
Автор
Спасибо всем большое за вашу помощь и участие

Поставил кавычки и все заработало

И Burn'у, и Владимиру, и Matod'у огромный респект, внял всем вашим советам

Удачи!
Ratings: 0 negative/0 positive


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

On-line: 7 (Гостей: 7)

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