Введение
Начнем с того, что я расскажу чем я занимаюсь, а занимаюсь я тем, что пишу бухгалтерские проги для малого частного бизнеса под заказ. Почему для малого, потому что не веду план счетов в проге, от этого прога становится легче и дешевле. Хотя мне разницы нет. И вот по роду работы я очень часто использую DataGrid, и всегда Access совские базы данных. Почему Access, да потому что легче всего её конструировать. А так как данных в таблицах очень много, и за разный период, то отображаю я это всё на экране при помощи DataGrid, и изучил я его очень хорошо. И так начнем. На форме помещаем DataGrid (далее DG) и Аdodc (далее ADO). АDO делаем невидимым, или помещаем за пределы формы, в окне свойств кликаем на строке Пользовательский. Открывается диалог настройки АDO. На вкладке General выбираем Use Connection String и давим на кнопочку Build. В открывшемся диалоге на вкладке Поставщик данных выбираем Microsoft Jet 3.51 OLE DB Provider (для Access 2000 и XP версия Jet 4.0), потом кнопка Далее и в поля для ввода базы данных пишем имя нашей базы. Если полный путь не указывать, то прога будет открывать базу из своей папки, что дает некоторые преимущества, в частности нет привязки к пути. Для успокоения совести кликаем на кнопке Проверить подключение. Жмем Ок и возвращаемся к первому диалогу. Если требуется вход по паролю, то вводим эти данные на вкладке Authentication, переходим на вкладку RecordSource и вот здесь нужно решить как будет использоваться DG, если нам необходимо отображать всю таблицу в том виде, в каком она заполняется, то в списке Command Tupe выбираем 2-adCmdTable и ниже в списке выбираем имя таблицы. А если нам нужно динамически менять условия отбора, то в списке Command Tupe выбираем
1-adCmdText и в поле Command Text (SQL) пишем "SELECT * FROM Имя_Таблицы". На этом настройка ADO закончена.
Теперь переходим к настройке DG:
В свойствах DataSourse выбираем имя нашего ADO. Потом кликаем правой кнопкой на DG и выбираем меню Retrieve Fields. После этого DG обращается к ADO и загружает список полей. После этого в этом же меню выбираем Properties. В открывшемся диалоге будем настраивать DG.
Вкладка General основные настройки:
Caption - отвечает за содержимое текста над названиями колонок.
ColumnHeaders - отвечает за то, будет ли отображаться слева колонка для выбора строк.
HeadLines - количество строк отведенных под текст названия колонок.
RowHeigth-высота строк в твипах.
Всё остальное и так понятно.
Вкладка Keyboard отвечает за то как будет DG реагировать на нажатие кнопок при навигации по DG, я всё отключаю.
Вкладка Columns отвечает за порядок размещения и названия колонок, в DG.
Вкладка Layout:
Здесь задаются параметры для каждой колонки
Locked - что-то фиксирует не помню что, но я флажок ставлю
AllowSizing - Разрешает изменение ширины колонки юзером, я отключаю
Visible - отмечаем если нужно отобразить колонку.
WrapText - разрешает функцию переноса текста в колонке.
Button - по моему если в данной колонке в таблице находится список то разрешает использовать этот список и в DG
DividerStyle - тип сетки
Alignment - выравнивание текста
Width - ширина колонки.
Вкладки Color and Font - и так понятно.
Вкладка Split - это настройка области, DG позволяет иметь несколько областей и настраивать каждую в отдельности, здесь убираем все флажки кроме Locked, единственно что настраиваем, так это скролбар.
Вкладка Format - здесь настраивается формат отображения данных в колонках.
Тут всё и так понятно, но есть маленькая хитрость. К примеру нужно отображать цифры с 2 знаками после запятой и прижать их к правому краю, так вот, крайняя правая цифра так близко к сетке, что почти сливается с ней. Выход: выбираем колонку где эти самые цифры отображаются, Format Tupe выбираем Custom в поле Format String пишем 0.00 (ноль точка ноль ноль и всё без кавычек) количество нулей после точки определяет разрядность дробной части и после нулей ставим пробел. Вот этот пробел при отображении и вставляется после цифры, что и отодвигает число в ячейке чуть левее и не даёт сливаться с сеткой.
Теперь пара нюансов для тех, кому нужно отображение строк в DG по определённому условию и кто в ADO прописал 1-adCmdText и в поле Command Text (SQL) "SELECT * FROM Имя_Таблицы".
В ходе процедуры для изменения содержимого делаем так:
...
Adodc.RecordSource = "Здесь текст команды SQL на выборку данных"
Adodc.Refresh
DataGrid.Refresh
...
После этих строк DG отображает то, что Вы указали в запросе Adodc.