14 декабря 2019 года    
Суббота | 08:40    
Главная
 Новости
Базы данных
Безопасность PC
Всё о компьютерах
Графика и дизайн
Интернет-технологии
Мобильные устройства
Операционные системы
Программирование
Программы
Связь
Сети
 Документация
Статьи
Самоучители
 Общение
Форум







Разделы / Всё о компьютерах / Другие

Взаимодействие ADO Data Control и DataGrid ActiveX Control

Взаимодействие ADO Data Control и DataGrid ActiveX Control


Кононенко Роман


Введение

    Начнем с того, что я расскажу чем я занимаюсь, а занимаюсь я тем, что пишу бухгалтерские проги для малого частного бизнеса под заказ. Почему для малого, потому что не веду план счетов в проге, от этого прога становится легче и дешевле. Хотя мне разницы нет. И вот по роду работы я очень часто использую 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.

  •  Взаимодействие ADO Data Control и DataGrid ActiveX Control
    Лента новостей


    2006 (c) Copyright Hardline.ru