Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Foxpro/Clipper/Dbase > Как убрать лишний столбец в grid?


Автор: DVS83 24.9.2008, 12:06
Подскажите как можно убрать лишний столбец в grid? у меня в таблице 4-е поля. справа  от последнего в гриде появляется еще один столбец в котором не отображается никаких данных.
Программирую на 9-м фоксе

Автор: oigolikova 25.9.2008, 09:20
Обманите фокс. Сделайте размер грида, как вам надо (побольше, поменьше), размер столбцов. Уберите нижнюю прокрутку и сдвиньте границу последнего столбца до конца грида. Ничего никто не увидит и не узнает smile

Автор: DVS83 26.9.2008, 09:14
Цитата(oigolikova @ 25.9.2008,  09:20)
Обманите фокс. Сделайте размер грида, как вам надо (побольше, поменьше), размер столбцов. Уберите нижнюю прокрутку и сдвиньте границу последнего столбца до конца грида. Ничего никто не увидит и не узнает smile

Спасибо за подсказку, но я так уже сделал  smile 
Хотелось бы иметь возможность пользоваться вертикальной полосой прокрутки, а так она остается скрытой.

Еще заметил глюк: у меня на форме размещен комбобокс при выборе определенного значения, я присваиваю гриду значения выборки. Изначально в гриде настроили нужную ширину столбцов, так вот после каждой выборки ширина меняется и получается не очень то красиво.
Пробовал устанавливать свойство AllowAutoColumnFit=2 не помогает.
Пришлось прописывать в обработчике refresh грида явно ширину столбцов, но это вызывает заметные мерцания при перерисовке грида.
Буду рад советам как это можно обойти

Автор: utyf1982 15.10.2008, 10:56
Могу предположить что перед тем как "присваиваю гриду значения выборки" вы не очищаете RecordSource грида
то есть должно происходить примерно так:
Код



*очищаем источник данных грида
THISFORM.GRID1.RecordSource=' '
*делаем выборку
select * from t1 where t1.kod=thisform.combo.value into cursor tForGrid
*заново присваиваем источник но уже с новыми данными
THISFORM.GRID1.RecordSource='tForGrid'
THISFORM.GRID1.Column1.ControlSource='tForGrid.NAME'
THISFORM.GRID1.Column2.ControlSource='tForGrid.kod'

* и т.д. .......................................................................................
*ControlSource для столбцов можно сохранить например в массив автоматом а потом считать назад

при такой организации настройки грида не сбиваются

Автор: Cashey 17.10.2008, 08:35
Код
this.RemoveObject('columnN')

Автор: DVS83 18.10.2008, 16:12
Цитата(Cashey @ 17.10.2008,  08:35)
Код
this.RemoveObject('columnN')

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

Автор: Cashey 20.10.2008, 22:20
 smile 
так это не стобец. это пустое место в гриде. раздвиньте колонки грида и он пропадет

Автор: DVS83 21.10.2008, 10:43
это свободное пространство появляется постоянно какую я б ширину грида и колонок не ставил.
Каждый раз раздвигать их не очень то удобно, как можно избавиться от этого пространства программно или на этапе разработки, чтоб не изменять их вручную? 


еще один вопрос по гриду, как передать активную строку из одного грида в другой находящиеся на одной форме?

Автор: Cashey 29.10.2008, 13:57
можно запомнить необходимые размеры колонок и прописать их размеры в Init грида


Цитата(DVS83 @  21.10.2008,  11:43 Найти цитируемый пост)
еще один вопрос по гриду, как передать активную строку из одного грида в другой находящиеся на одной форме?

у грида нет активной строки. грид отображает таблицу, указанное в ее controlsource. роэтому "активная строка в гриде" есть ничто иное как текущая запись в таблице (recno()))

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)