Вывод информации из файла в таблицу интерфейса пользователя.
Для вывода информации в таблицу, необходимо проделать следующие действия.
- Создания объекта DataGridView. Для этого необходимо в дизайнере рабочей формы «WorkForm», из набора основных компонентов перенести компонент DataGridView. При переносе данного объекта на форму откроется окно, где необходимо отключить галочки в соответствии с рисунком. Рис 1.
рис 1.
Также необходимо изменить свойства DataGridView в соответствии с данными в таблице.
Название свойства | Заначение |
(Name) | WorkDataGridView |
Dock | Fill |
- В событие рабочей формы «Activated» необходимо добавить следующий код. Для того чтобы в момент когда форма станет активной произошло чтение данных из файла и заполнение объекта DataTable.
private void WorkForm_Activated(object sender, EventArgs e) { try { Program._MainForm.ToolBT_Add.Enabled = _IDocuments.bAdd; … // Подключение хранилища WorkDataGridView.DataSource = _IDocuments.RefreshData(); // Определение Таблицы WorkDataGridView.DataMember = _IDocuments.sTableName; } catch(Exception ex) { Program._MainForm.ToolBT_Add.Enabled = false; … } } |
После того как выполнены данные действия запустим нашу программу и выберем в дереве справочник №1. Должна открыться рабочая форма и отобразиться данные как на рис. 2.
Рис 2.
Самостоятельно:
11. По аналогии со справочником №1 создать справочник №2.
Файл данных должен быть следующего формата.
Название столбца | Заначение |
id | Уникальный ключ строки |
NameOBJ | Наименование объекта |
Adress | Адресс |
Telefon | Телефон |
Fax | Факс |
Почта |
Лабораторная работа №5
Цель: Обеспечить вывод информации для входного документа.
Для выполнения лабораторной работы №5 необходимо выполнить все шаги предыдущих лабораторных работ.
Создание файла с данными.
Для работы с входным документом сделаем файл, в том же хранилище где и файлы справочников, с именем InDoc.dat, структура файла должна выглядеть следующим образом.
id | ID_SPR1 | DateInCome | Count |
01.01.2008 | |||
01.02.2008 | |||
01.03.2008 | |||
01.04.2008 | |||
01.05.2008 | |||
01.06.2008 |
Разделитель между колонками такой же, как и в справочниках «^».
Таблицы, представления и ключи.
Перед переходом к следующим действиям необходимо разобраться с четырьмя понятиями, которыми в дальнейшем будем использовать.
Таблица – хранилище данных в нашем случае это данные из файлов.
Представление – данные представленные определенным образом. При работе с представлениями данные берутся из различных таблиц и связываются при помощи определенных ключей. Различают два вида ключей первичные и внешние.
Первичный ключ – уникальный номер строки, при котором можно однозначно идентифицировать запись.
Внешний ключ – поле в таблице, при помощи которого, обеспечиваться связь с данными из другой таблицы.
Теперь для построения представления первого входного документа нам понадобиться две таблицы, Spr1.dat и InDoc1.dat. Эти две таблицы связываются между собой при помощи первичного и внешнего ключа. Пирвичный ключ из таблицы Spr1.dat «id» и внешний ключ из таблицы InDoc1.dat «id_spr1». Наше создаваемое представление будет иметь следующий вид.
id | NameSP1 | WidthSP1 | HeightSP1 | DateInCome | Count |
Перед выводом данных и построения представления необходимо проделать определенные действия.
Добавление свойств.
Добавим в класс существующих справочников переменную
Создадим в этих же класса свойство, определяющее имя представления.
В интерфейсе IDocuments подключим наше свойство, чтоб к нему был доступ.
В созданную переменную мы запишем имя таблицы, так как для справочников представление создавать мы не будем. В конструкторе каждого класса справочника присвоим значение переменных. Для справочника 1 это
Для справочника 2 соответствующие данные.
После этого необходимо изменить код события активации формы для рабочей формы. Для этого перейдем в файл реализации WorkForm в событие Activated и изменим, параметр для выводимого объекта из DataSet в GridView, для этого поменяем следующую строку.
Запустим нашу программу, все функции для справочников, которые мы создали до этого, должны работать.
Класс входного документа.
Так как класс входного документа наследуется от интерфейса IDocuments, в нем должны быть описаны все необходимые переменные и свойства, также необходимо снять комментарий с описания класса (описание конструкора измениться далее по тексту) заказа памяти и секции в событии компонента MainTreeView для класса TInDoc1. При формировании представления для входного документа нам понадобятся данные из справочника 1, для удобства работы с этими данными нам понадобиться передать в класс TInDoc1 ссылку на класс TSpr1.
В файле входного документа подключим два необходимых пространства имен System.IO и System.Data. Создадим все необходимые переменные для класса TInDoc1 по аналогии с представленным далее кодом.
Далее в этом же классе опишем все необходимые свойства.
Конструктор класса TInDoc1 должен выглядеть следующим образом.
Теперь создадим функцию InitDataTable() где опишем объекты таблицы и представления и все необходимые для этого элементы, Сначала таблицу потом представление.
Теперь в эту же функцию добавим описание представления для первого входного документа.
Теперь переступим к созданию функции, которая будет объединять две таблицы и формировать представление для вывода данных входного документа 1.
Для этого сделаем следующую функцию
Теперь для работы с нашим входным документом необходимо в конструкторе главной формы, где мы заказываем память для классов, указать следующий код для заказа памяти класса TInDoc1.
После этого запустим программу и вызовем первый входной документ. Должно получиться нечто следующее. Рис 1.
Рис 1.
Самостоятельно:
Создать второй входной документ, который будет связан с двумя справочниками.
Spr2.dat
id | NameOBJ | Adress | Telefon | Fax | |
Объект 1 | Москва ул. дм. 1 | 123-45-76 | 123-45-77 | [email protected] | |
Объект 2 | Москва ул. дм. 2 | 123-55-76 | 123-55-75 | [email protected] | |
Объект 3 | Москва ул. дм. 3 | 123-45-36 | 123-45-37 | [email protected] |
InDoc2.dat
id | ID_SPR1 | ID_SPR2 | DateOutCome | Count |
03.01.2008 | ||||
03.02.2008 | ||||
03.03.2008 | ||||
03.04.2008 | ||||
03.05.2008 | ||||
03.06.2008 |
Создать представление для вывода данных из входного документа 2.
id | NameSP1 | WidthSP1 | HeightSP1 | NameOBJ | Adress | DateOutCome | Count |
Лабораторная работа №6