Кафедра «Информационных систем и технологий управления в строительстве»

Кафедра «Информационных систем и технологий управления в строительстве»

Методические указания по выполнению

Лабораторных работ

по дисциплине

«Программное обеспечение АСОИУ»

для студентов факультета ИСТАС, специальность 230102 «Автоматизированные системы обработки

Информации и управлении»

Москва 2009 г.

С.А. Королев. Методические указания по выполнению лабораторных работы студентов по дисциплине «программное обеспечение АСОИУ». – Москва, 2009. – 70 стр.

Лабораторная работа №1

Цель: Ознакомится со средой Visual Studio 2008, создать WinForm приложение.

Visual Studio 2008 – среда интерактивной разработки приложений, имеющая интуитивно понятный пользовательский интерфейс, предназначена, для разработки программных продуктов различной сложности и позволяющих решать задачи, в рамках АСО ИУ.

О среде .NET Framework.

Оболочка .NET Framework определяет среду для разработки и выполнения сильно распределенных приложений, основанных на использовании компонентных объектов. Она позволяет "мирно сосуществовать" различным языкам программирования и обеспечивает безопасность, переносимость программ и общую модель программирования для платформы Windows. Важно при этом понимать, что .NET Framework по своему существу не ограничена применением в Windows, т.е. программы, написанные для нее, можно затем переносить в среды, отличные от Windows. Связь среды .NET Framework с С# обусловлена наличием двух очень важных средств. Одно из них, Common Language Runtime (CLR), представляет собой систему, которая управляет выполнением пользовательских программ. CLR — это составная часть .NET Framework, которая делает программы переносимыми, поддерживает многоязыковое программирование и обеспечивает безопасность. Второе средство, библиотека классов .NET-оболочки, предоставляет программам доступ к среде выполнения. Например, если вам нужно выполнить операцию ввода- вывода, скажем, отобразить что-либо на экране, то для этого необходимо использовать .NET-библиотеку классов. Если вы — новичок в программировании, термин класс вам может быть незнаком. Ниже вы найдете подробное объяснение этого понятия, а пока ограничимся кратким его определением: класс — это объектно-ориентированная конструкция, с помощью которой организуются программы. Если программа ограничивается использованием средств, определенных .NET-библиотекой классов, она может выполняться везде (т.е. в любой среде), где поддерживается .NET- система. Поскольку С# автоматически использует .NET-библиотеку классов, С#- программы автоматически переносимы во все .NET-среды.

Кафедра «Информационных систем и технологий управления в строительстве» - student2.ru

1. Дизайнер форм приложения

2. Набор основных компонентов

3. Обозреватель проекта

4. Главное меню приложения

5. Функции запуска и отладки, выбор режима сборки (Release, Debug).

6. Окно свойств объектов (по умолчанию св-ва проекта)

Процедура: создание проекта Windows Forms Application

1. File -> New->Project

Кафедра «Информационных систем и технологий управления в строительстве» - student2.ru

2. Вводим имя проекта в поле ввода Name и нажимаем кнопку OK.

Кафедра «Информационных систем и технологий управления в строительстве» - student2.ru

3. Система готова к работе.

Кафедра «Информационных систем и технологий управления в строительстве» - student2.ru

Обозреватель проекта.

Кафедра «Информационных систем и технологий управления в строительстве» - student2.ru

1. Папка Properties содержит некоторую служебную информацию о решении.

2. Описывает список подключенных библиотек.

3. Файлы проекта, файл реализации.

Основные события формы.

Предварительно выделим форму, щелчком левой кнопки мыши, затем в окне свойств объектов выберем Кафедра «Информационных систем и технологий управления в строительстве» - student2.ru , для перехода на вкладку событий объекта.

Кафедра «Информационных систем и технологий управления в строительстве» - student2.ru

Load – Событие наступает еще до создания формы, но при уже загруженном приложении.

Paint – Прорисовка формы. Наступает при любом изменении какого-либо элемента формы.

Shown – Событие наступает после того как форма нарисована (наступает только при первой прорисовке формы).

Form Closed – Событие наступает после закрытия окна.

Для того чтобы проверить наступление событий, двойной щелчок мышке на событие и осуществляется переход в дизайнер кода, прописываем команду MessageBox.Show(”Имя события”); при запуске программы, можем отследить, когда это событие наступает.

Функции отладки

Для ознакомления с функциями отладки перейдем в пункт меню Debug

Кафедра «Информационных систем и технологий управления в строительстве» - student2.ru

Самостоятельно:

1. Добавить к проекту файл реализации.

2. Ознакомиться со структурой проекта на диске.

3. Выполнить сборку в двух режимах Release и Debug.

4. Создать несколько событий формы.

5. Прописать команду отображения сообщения в событиях.

6. Поставить контрольные точки и пройти проект в режиме отладки.

Лабораторная работа №2

Создание Главного меню.

С панели основных компонентов поместим на нашу форму элемент под названием MenuStrip (Рис. 3), это можно сделать путем перетаскивания компонента на форму.

Кафедра «Информационных систем и технологий управления в строительстве» - student2.ru Рис. 3

Создадим несколько пунктов меню. Для этого щелкнем в поле (TypeHere) и впишем туда текст пункта меню (например Файл), значок «&» ставиться после буквы которую необходимо подсветить , в дальнейшем при нажатии сочетаний клавиш (подсвеченная буква + Alt) мы сможем приходить в этот пункт меню. Рис 4.

Кафедра «Информационных систем и технологий управления в строительстве» - student2.ru Рис. 4

Также настройку данного компонента можно произвести из специального меню, для этого щелкнем правой кнопкой мышки по компаненту и выберем пункт «Edit Item». Перед нами откроется следующее меню настройки. Рис 5.

Кафедра «Информационных систем и технологий управления в строительстве» - student2.ru Рис. 5

Создавая каждый пункт меню любым из способов, впоследствии, в окне «Properties» мы можем изменять его свойства и создавать события. Обязательно при создании пунктов необходимо указать их свойство «(Name)». При создании меню главные пункты называются «MenuItem», все остальные дочерние элементы называются «SubItem». При создании дочерних элементов изменяя свойство «ShortcutKeys» можно выставить название кнопки на клавиатуре или сочетание клавиш, которые будут дублировать вызов данного пункта.

Самостоятельно создадим следующие пункты.

Text Name ShortcutKeys Type
Ф&айл File_MenuItem   MenuItem
С&охранить Save_SubItem   SubItem
Сохранить как SaveAS_SubItem   SubItem
В&ыход Exit_SubItem   SubItem
П&равка Edit_MenuItem   MenuItem
Д&обавить Add_SubItem F6 SubItem
У&далить Dell_SubItem F8 SubItem
И&зменить Change_SubItem F7 SubItem
О&бновить Refresh_SubItem F5 SubItem

После этого главное меню у нас должно принять следующий вид (Рис 6 и 7)

Кафедра «Информационных систем и технологий управления в строительстве» - student2.ru Рис 6.

Кафедра «Информационных систем и технологий управления в строительстве» - student2.ru Рис 7.

Создание компонента панель.

С панели основных компонентов поместим на нашу форму элемент под названием Panel. это можно сделать путем перетаскивания компонента на форму.

Изменить свойства данного компонента на следующие:

Название свойства Заначение
(Name) MainPanel
Dock Left
MinimumSize  
Width

После создания данного компонента наша форма выглядит следующим образом. Рис 15.

Кафедра «Информационных систем и технологий управления в строительстве» - student2.ru Рис 15

Создание объекта документа.

Для создания объекта класса документ объявим его в описании класса MainForm, для этого в файле реализации MainForm пропишем следующую информацию.

… using System.Windows.Forms;   namespace ASU_Sklad { public partial class MainForm : Form { TSpr1 _TSpr1; public MainForm() { InitializeComponent(); _TSpr1 = new TSpr1(); } …

Вызов объекта документ.

Теперь сделаем таким образом, чтобы при выборе элемента в дереве у нас создавалась рабочая форма, работающая с передаваемым ей классом, для этого изменим в файле MainForm.cs следующий код.

private bool CreateWorkForm(string sNameForm, string sClassName) { WorkForm newf; //object a = switch (sClassName) { case "Spr1": newf = new WorkForm((IDocuments)_TSpr1); break; default: newf = new WorkForm(); break; } newf.Text = sNameForm; newf.MdiParent = this; newf.Show(); return true; } private void treeView1_NodeMouseClick(object sender, TreeNodeMouseClickEventArgs e) { for (int i = this.MdiChildren.Length - 1; i >= 0; i--) { if (MdiChildren[i].Text == e.Node.Text) { MdiChildren[i].Activate(); return; } } string []sClassName = e.Node.Name.Split('_'); bool bFormOpen = (e.Node.Parent != null) ? CreateWorkForm(e.Node.Text,sClassName[1]) : false; }

Создание свойств документа.

Каждый документ уникален, но с ним можно выполнять определенные действия, такие как: отображение информации, добавление информации, изменение информации, удаление информации, обновление информации. Каждые из этих действий в свою очередь тоже уникальны, но мы можем заложить в программу возможность этих действий и в определенный момент вызвать соответствующие операции. Как раз для этого мы и создали специальные классы для документов и интерфейс, через который вызывается соответствующий класс. Теперь применим это на практике. Сделаем так чтобы при открытии документа (в нашем примере справочник Spr1) кнопки на панели ToolStrip и соответствующие пункты меню становились доступными или нет, для этого проделаем следующие действия.

  1. Создание свойств документа.

Создадим специальные переменные в классе Spr1, которые будут определять возможность пользоваться функциями добавления, изменения и удаления, для этого файл Spr1.cs изменим следующим образом.

using System; using System.Collections.Generic; using System.Linq; using System.Text;   namespace ASU_Sklad { class TSpr1 : IDocuments { // Переменные определяющие возможность // добавления изменения и удаления bool _bAdd, _bChange, _bDell;   // Свойство только для чтения возвращающее заначение // соответсвующей переменной public bool bAdd { get { return _bAdd;} } public bool bChange { get { return _bChange; } } public bool bDell { get { return _bDell; } } // Конструктор класс где задаются значения переменных public TSpr1() { _bAdd = true; _bChange = true; _bDell = true; }   } }
  1. Описание интерфейса.

Для того чтобы созданными свойствами можно было пользоваться и они были одинаковы для всех документов необходимо их описать в интерфейсе IDocuments, для этого в файле IDocuments.cs изменим код следующим образом.

using System; using System.Collections.Generic; using System.Linq; using System.Text;   namespace ASU_Sklad { public interface IDocuments { // Свойства документа bool bAdd {get ; } bool bChange{ get ; } bool bDell{ get;} } }
  1. Доступность объектов из главной формы в дочерних формах.

Теперь необходимо сделать так чтобы при создании формы для документа изменялись свойства кнопок на ToolStrip и MenuStrip. Это можно сделать путем создания события для рабочей формы WorkForm, это событие должно обрабатываться в момент активации формы на экране, но перед этим необходимо сделать доступность изменяемых объектов главной формы в дочерних формах. Нас будут интересовать следующие объекты, представленные в таблице и измененные их свойства.

Имя объекта (Name) Свойство Modifiers Свойство Enabled
ToolBT_Add Public False
ToolBT_Dell Public False
ToolBT_Change Public False
ToolBT_Refresh Public False
Add_SubItem Public False
Dell_SubItem Public False
Change_SubItem Public False
Refresh_SubItem Public False

После изменения свойств объектов необходимо сделать так чтобы объект MainForm был доступен во всех дочерних формах, для этого необходимо изменить код в файле Programs.cs следующим образом.

using System; using System.Collections.Generic; using System.Linq; using System.Windows.Forms;   namespace ASU_Sklad { static class Program { // Описане объекта public static MainForm _MainForm; /// <summary> /// The main entry point for the application. /// </summary> [STAThread] static void Main() { Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); // Заказ памяти для объекта. _MainForm = new MainForm(); Application.Run(_MainForm); } } }
  1. Создание события активации формы WorkForm.

Перейдем в дизайнер формы WorkForms, в окне свойств создадим событие Activated. Перейдем в редактор кода данного события, укажем, чтобы при наступлении данного события кнопки и пункты меню главной формы соответствовали значениям свойств документа, а также обработаем возможные исключения, возникающие при присваивания этих свойств. В случае возникновения исключений соответствующие пункты меню и кнопки сделаем недоступными. Для этого пропишем следующий код.

private void WorkForm_Activated(object sender, EventArgs e) { try { Program._MainForm.ToolBT_Add.Enabled = _IDocuments.bAdd; Program._MainForm.Add_SubItem.Enabled = _IDocuments.bAdd; Program._MainForm.ToolBT_Change.Enabled = _IDocuments.bChange; Program._MainForm.Change_SubItem.Enabled = _IDocuments.bChange; Program._MainForm.ToolBT_Dell.Enabled = _IDocuments.bDell; Program._MainForm.Dell_SubItem.Enabled = _IDocuments.bDell; Program._MainForm.ToolBT_Refresh.Enabled = true; Program._MainForm.Refresh_SubItem.Enabled = true; } catch(Exception ex) { Program._MainForm.ToolBT_Add.Enabled = false; Program._MainForm.Add_SubItem.Enabled = false; Program._MainForm.ToolBT_Change.Enabled = false; Program._MainForm.Change_SubItem.Enabled = false; Program._MainForm.ToolBT_Dell.Enabled = false; Program._MainForm.Dell_SubItem.Enabled = false; Program._MainForm.ToolBT_Refresh.Enabled = false; Program._MainForm.Refresh_SubItem.Enabled = false; } }
  1. После запуска программы мы должны увидеть следующее. Рис. 4, 5

Кафедра «Информационных систем и технологий управления в строительстве» - student2.ru Рис. 4.

Кафедра «Информационных систем и технологий управления в строительстве» - student2.ru Рис 5.

Самостоятельно:

8. По аналогии со справочником №1 создать класс для справочника №2 и подключить их к событиям в дереве.

9. Создать классы для входных документов и подключить их к событиям в дереве.

10. Создать класс для выходного документа и подключить его к событию в дереве.

Лабораторная работа №4

Создание файла с данными.

Для работы с входным документом сделаем файл, в том же хранилище где и файлы справочников, с именем 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

Разделитель между колонками такой же, как и в справочниках «^».

Добавление свойств.

Добавим в класс существующих справочников переменную

Кафедра «Информационных систем и технологий управления в строительстве» - student2.ru

Создадим в этих же класса свойство, определяющее имя представления.

Кафедра «Информационных систем и технологий управления в строительстве» - student2.ru

В интерфейсе IDocuments подключим наше свойство, чтоб к нему был доступ.

Кафедра «Информационных систем и технологий управления в строительстве» - student2.ru

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

Кафедра «Информационных систем и технологий управления в строительстве» - student2.ru

Для справочника 2 соответствующие данные.

После этого необходимо изменить код события активации формы для рабочей формы. Для этого перейдем в файл реализации WorkForm в событие Activated и изменим, параметр для выводимого объекта из DataSet в GridView, для этого поменяем следующую строку.

Кафедра «Информационных систем и технологий управления в строительстве» - student2.ru

Запустим нашу программу, все функции для справочников, которые мы создали до этого, должны работать.

Класс входного документа.

Так как класс входного документа наследуется от интерфейса IDocuments, в нем должны быть описаны все необходимые переменные и свойства, также необходимо снять комментарий с описания класса (описание конструкора измениться далее по тексту) заказа памяти и секции в событии компонента MainTreeView для класса TInDoc1. При формировании представления для входного документа нам понадобятся данные из справочника 1, для удобства работы с этими данными нам понадобиться передать в класс TInDoc1 ссылку на класс TSpr1.

В файле входного документа подключим два необходимых пространства имен System.IO и System.Data. Создадим все необходимые переменные для класса TInDoc1 по аналогии с представленным далее кодом.

Кафедра «Информационных систем и технологий управления в строительстве» - student2.ru

Далее в этом же классе опишем все необходимые свойства.

Кафедра «Информационных систем и технологий управления в строительстве» - student2.ru

Конструктор класса TInDoc1 должен выглядеть следующим образом.

Кафедра «Информационных систем и технологий управления в строительстве» - student2.ru

Теперь создадим функцию InitDataTable() где опишем объекты таблицы и представления и все необходимые для этого элементы, Сначала таблицу потом представление.

Кафедра «Информационных систем и технологий управления в строительстве» - student2.ru

Теперь в эту же функцию добавим описание представления для первого входного документа.

Кафедра «Информационных систем и технологий управления в строительстве» - student2.ru

Кафедра «Информационных систем и технологий управления в строительстве» - student2.ru

Кафедра «Информационных систем и технологий управления в строительстве» - student2.ru

Теперь переступим к созданию функции, которая будет объединять две таблицы и формировать представление для вывода данных входного документа 1.

Для этого сделаем следующую функцию

Кафедра «Информационных систем и технологий управления в строительстве» - student2.ru

Кафедра «Информационных систем и технологий управления в строительстве» - student2.ru

Кафедра «Информационных систем и технологий управления в строительстве» - student2.ru

Кафедра «Информационных систем и технологий управления в строительстве» - student2.ru

Теперь для работы с нашим входным документом необходимо в конструкторе главной формы, где мы заказываем память для классов, указать следующий код для заказа памяти класса TInDoc1.

Кафедра «Информационных систем и технологий управления в строительстве» - student2.ru

После этого запустим программу и вызовем первый входной документ. Должно получиться нечто следующее. Рис 1.

Кафедра «Информационных систем и технологий управления в строительстве» - student2.ru

Рис 1.

Самостоятельно:

Создать второй входной документ, который будет связан с двумя справочниками.

Spr2.dat

id NameOBJ Adress Telefon Fax Mail
Объект 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

Создание событий.

Теперь необходимо сделать так чтобы по нажатию кнопки «ToolBT_Add», которая расположена на «toolStrip1» главной формы, открывалась созданная панель, также эта панель должна открываться для активного в данный момент документа. Так как мы это делаем для соответствующего документа то обработку события кнопки «ToolBT_Add» необходимо делать в рабочей форме. Для этого выполним следующие шаги:

1. Создадим событие «ToolBT_Add_Click» в фале реализации рабочей формы.

Кафедра «Информационных систем и технологий управления в строительстве» - student2.ru

2. Присвоим кнопке «ToolBT_Add» созданное событие в момент активации рабочей формы. Для этого в событии «WorkForm_Activated», в секции «try { }», добавим следующий код, который будет выполняться в случае если в вызываемом классе параметр определяющий активность кнопки выставлен в true. Данный код надо прописать после того как мы изменяем значение «Enabled» для кнопки «ToolBT_Add».

Кафедра «Информационных систем и технологий управления в строительстве» - student2.ru

3. Создадим событие «Deactivate» для рабочей формы, для того чтобы когда форма станет не активной у кнопки «ToolBT_Add» отключить присвоенное событие. Для этого

a. в дизайнере формы «WorkForm» выберем нашу форму;

b. перейдем в ее свойства;

c. перейдем в события;

d. найдем там событие «Deactivate»;

e. зайдем в редактирование кода данного события и пропишем там следующий код.

Кафедра «Информационных систем и технологий управления в строительстве» - student2.ru

Запустим приложение, выберем в дереве документ, и после нажатия на кнопку «добавить» у нас открывается наша панель.

Далее необходимо сделать так чтоб по нажатию на кнопки «button_Ok» и «button_Cancell», а также при переходе на другой открытый документ наша панель закрывалась, для этого проделаем следующие шаги:

  1. Первоначально надо сделать функцию, которая будет очищать события кнопок «button_Ok» и «button_Cancell».Для этого в классе рабочей формы создадим следующую функцию.

Кафедра «Информационных систем и технологий управления в строительстве» - student2.ru

  1. Теперь в этом же классе создадим события для кнопок, «button_Ok» и «button_Cancell», по нажатию которых мы будем закрывать панель. Для этого добавим следующий код.

Кафедра «Информационных систем и технологий управления в строительстве» - student2.ru

  1. После этого необходимо изменить событие для кнопки «ToolBT_Add». Чтобы выглядело следующим образом.

Кафедра «Информационных систем и технологий управления в строительстве» - student2.ru

Запустим программу. При выборе документа и нажатии кнопки «Добавить» у нас открывается панель с двумя кнопками при нажатии, на которые, она закрывается. Также если у нас открыто два документа, мы нажали кнопку «Добавить» и после этого, выбрали другой документ, то панель тоже закрывается.

Label

Название свойства Значение
Name label_name
Text Наименование
Название свойства Значение
Name label_Width
Text Ширина
Название свойства Значение
Name label_Height
Text Высота

TextBox

Название свойства Значение
Name textBox_name
Text  
Название свойства Значение
Name textBox_Width
Text  
Название свойства Значение
Name textBox_Height
Text  

В итоге у нас должна получится вот такая форма. Рис 2.

Кафедра «Информационных систем и технологий управления в строительстве» - student2.ru

Именно эти компоненты мы и будем использовать для справочника №1. Для этого нам понадобится код, который описывает объявление и создание данных компонентов, и нам остается только его взять и правильно изменить для нашего справочника. Проделаем следующие действия:

1. Перейдем в файл реализации дизайна формы <фома>.Disigner.cs.

2. Из этого файла нам, сначала, понадобиться секция, которая описывает созданные компоненты. На рис. 3. эта секция выделена красным, копируем ее и вставляем в класс нашего справочника (рекомендую данную секцию поместить между операторами определяющими регион #region и #endregion ).

Кафедра «Информационных систем и технологий управления в строительстве» - student2.ru

Рис 3.

3. После того как мы объявили эти компоненты нам надо заказать для них память, поместить их на панель и выставить соответствующие свойства, все это можно проделать программным путем, для этого в созданную до этого функцию «CreateInterfaseAddChange» справочника №1 мы можем скопировать еще часть кода например рис 4. (Из одного проекта копируем в другой)

Кафедра «Информационных систем и технологий управления в строительстве» - student2.ru

Рис. 4

Единственное необходимо уточнить, что когда мы вставим этот код в функцию «CreateInterfaseAddChange» необходимо удалить операторы «this.». Таким образом, мы для наших компонентов закажем память.

4. Теперь эти компоненты необходимо поместить на панель, для этого нам понадобиться следующий код рис 5.

Кафедра «Информационных систем и технологий управления в строительстве» - student2.ru

Рис. 5

Только в место this.panel1. надо прописать панель, которую мы передаем в функцию

Кафедра «Информационных систем и технологий управления в строительстве» - student2.ru

После этого наша функция «CreateInterfaseAddChange» для справочника №1 должна выглядеть следующим образом. Рис 6.

Кафедра «Информационных систем и технологий управления в строительстве» - student2.ru

Рис. 7

5. После этого для этих компонентов необходимо определить их координаты расположения, размер, отображаемый текст, для этого нам в эту функцию понадобиться добавить следующий код, для «Label» рис 8. для «TextBox» рис 9.

Кафедра «Информационных систем и технологий управления в строительстве» - student2.ru

Рис 8.

Кафедра «Информационных систем и технологий управления в строительстве» - student2.ru

Рис 9.

6. Далее необходимо сделать функцию, которая бы удаляла созданные компоненты. Для этого мы в функцию «DeleteInterfaseAddChange()» пропишем следующий код. Рис 10

Кафедра «Информационных систем и технологий управления в строительстве» - student2.ru

Рис 10.

Самостоятельно.

1. Сделать так чтобы событие, при котором открывается панель для добавления, работало и для пункта меню «Добавить».

2. Сделать так чтобы при открытии панели для добавления, кнопка «Добавить» и пункт меню «Добавить» были не активны.

3. Сделать аналогичный интерфейс добавления для всех остальных документов (кроме входного).

Для справочника №2

Label

Название свойства Значение
Name label_NameOBJ
Text Наименование объекта
Название свойства Значение
Name label_Adres
Text Адрес
Название свойства Значение
Name label_Telefon
Text Телефон
Название свойства Значение
Name label_Fax
Text Факс
Название свойства Значение
Name label_Mail
Text Почта

TextBox

Название свойства Значение
Name textBox_NameOBJ
Text  
Название свойства Значение
Name textBox_Adres
Text  
Название свойства Значение
Name textBox_Telefon
Text  
Название свойства Значение
Name textBox_Fax
Text  
Название свойства Значение
Name textBox_Mail
Text  

Кафедра «Информационных систем и технологий управления в строительстве» - student2.ru

Для Входного документа №1

Label

Название свойства Значение
Name label_NameSP1
Text Наименование материала
Название свойства Значение
Name label_InCome
Text Дата поступления
Название свойства Значение
Name label_Count
Text Количество

ComboBox

Название свойства Значение
Name comboBox_NameSP1
Text  

DateTimePicker

Название свойства Значение
Name dateTimePicker_InCome
Text  

TextBox

Название свойства Значение
Name textBox_Count
Text  

Кафедра «Информационных систем и технологий управления в строительстве» - student2.ru

Для Входного документа №2

По аналогии с первым входным документом

Кафедра «Информационных систем и технологий управления в строительстве» - student2.ru

Лабораторная работа №7

Самостоятельно сделать подобные функции для справочника №2.

Самостоятельно сделать подобные функции для входного документа №2.

Лабораторная работа №8

Самостоятельно.

Для остальных документов и справочника сделать так, чтобы можно было изменять данные.

Лабораторная работа №9

Цель: Удаление данных.

Для выполнения лабораторной работы №9 необходимо выполнить все шаги предыдущих лабораторных работ.

Удаление данных.

Процесс удаление данных намного проще, чем процессы добавление и изменения, так как для него нет необходимости строить интерфейс, данные должны удаляться по нажатию кнопки на панеле быстрых кнопок. Удаление будет происходить из «DataSet» после того как данные будут удалены из него мы перезапишем информацию в файл, после этого его заново прочитаем, тем самым визуально будет казаться что произошло удаление.

Для работы данного процесса нам понадобятся следующие события и функции.

  1. Создать событие для кнопки на панеле быстрых кнопок.
  2. Организовать присваивание в событии активации рабочей формы.
  3. Снять присваивание события в момент деактивации формы.
  4. Создать описание функции удаления в интерфейсе.
  5. Создать функцию удаления информации из «DataSet» для каждого документа кроме выходного.
  6. Вызвать функцию Commit() после того как данные будут удалены из «DataSet».
  7. Обновить данные функцией Refresh().

Преступим к реализации. Для начала добавим следующие функции в класс справочника №1.

  1. Создадим функцию, которая будет удалять строку соответствующего кода из таблицы.

Кафедра «Информационных систем и технологий управления в строительстве» - student2.ru

  1. Не забудем подключить данную функцию в интерфейсе «IDocuments».
  2. Для остальных документов создадим временную заглушку, чтобы не было ошибки при запуске программы.

Кафедра «Информационных систем и технологий управления в строительстве» - student2.ru

  1. В файле реализации рабочей формы создадим событие для кнопки удалить.

Кафедра «Информационных систем и технологий управления в строительстве» - student2.ru

  1. Подключим это событие в момент активации формы.

Кафедра «Информационных систем и технологий управления в строительстве» - student2.ru

  1. Отключим событие в момент деактивации рабочей формы.

Кафедра «Информационных систем и технологий управления в строительстве» - student2.ru

  1. Запустим программу. Если все правильно сделано то когда мы будем нажимать кнопку удалить у нас будут удаляться данные из справочника №1.

Самостоятельно.

  1. Для остальных документов и справочника сделать так, чтобы можно было удалять данные.
  2. Для пунктов меню «Добавить», «Удалить», «Изменить» сделать так чтобы они дублировали нажатие кнопок на панеле быстрых кнопок.
  3. Кнопка «Обновить» и пункт меню «Обновить», должны обновлять данные в таблице, т.е. по нажатию этих кнопок должна вызываться функция Refresh() соответствующего документа.

Кафедра «Информационных систем и технологий управления в строительстве»

Наши рекомендации