Программа bde administrator 28





НазваниеПрограмма bde administrator 28
страница7/10
Дата публикации05.12.2014
Размер0.64 Mb.
ТипПрограмма
100-bal.ru > Информатика > Программа
1   2   3   4   5   6   7   8   9   10

2.3 Создание приложения BDE



Запустите C++ Builder. Далее перейдите на закладку Standard на панели в верхней части программы и вынесите на форму приложения компонент MainMenu — главное меню для будущего приложения. Затем щелкнула по добавленному на форму элементу (MainMenu) дважды левой кнопкой мышки. В открывшемся окне с заголовком Form1->MainMenu1 сформировала основные каскадные меню:

1. Студенты

1.1. Список

-полный

-по группам

1.2 Личная карточка

1.3 Успеваемость

1.4 Оценки по ведомости

2. Ведомости

2.1 Экзаменационная

2.2 Зачетная

2.3 Сводная

3. Преподаватели

3.1 Ввод часов преподавателей

3.2 Ведомость учета часов

3.3 Отчет по часам

4. Справочники

5. Год

Программная реализация меню должна быть очень проста. С каждой командой меню должен быть связан метод-обработчик, содержащий программный код для вызова необходимых функций приложения. Щелкните левой кнопкой мышки по свободной ячейке, вписываете произвольный текст — название пункта — в поле Caption окна инспектора объектов, наконец, щелкаете левой клавишей мышки по полю еще раз, чтобы завершить формирование определенного пункта меню. В верхней части формы будущей программы появилось полноценное главное меню.

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

Для работы с компонентами меню во время разработки используется специализированный Редактор меню представленный на рисунке ____. Он открывается при щелчке на кнопке свойства items компонента меню в Инспекторе объектов или при двойном щелчке на компоненте. Он обеспечивает отображение всех элементов меню, представленных в свойстве items.

Редактор меню активно взаимодействует с Инспектором объектов. Для каждого выбранного в Редакторе элемента в Инспекторе объектов появляются значения его свойств.

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


Рисунок 2.7 - Формируем элементы главного меню в окне Form1.

Рассмотрим создание приложения, использующего механизм доступа BDE и позволяющего перемещаться по записям таблицы БД, просматривать и редактировать поля, удалять записи из таблицы, а также вставлять новые записи. При создании приложения главной задачей является конструирование форм.

Вид формы приложения на этапе проектирования показан на рисунке ___, где в форме размещены компоненты Table1, DataSource1, DBGrid1 и DBNavigator1.

Компонент Table1 обеспечивает взаимодействие с таблицей БД. Для связи с требуемой таблицей нужно установить соответствующие значения свойству DataBaseName, указывающему путь к БД или алиас, и свойству TableName, указывающему имя таблицы. После задания таблицы для открытия набора данных свойству Active должно быть установлено значение true.

В рассматриваемом приложении использована таблица студентов. Файлы этой и других таблиц находятся в каталоге, путь к которому указывает псевдоним UCH1. Настройка псевдонима может быть выполнена с помощью программы BDE Administrator.

Компонент DataSource1 является промежуточным звеном между компонентом Table1, соединенным с реальной таблицей БД, и визуальными компонентами DBGrid1 и DBNavigator1, с помощью которых пользователь взаимодействует с этой таблицей. На компонент Table1 с которым связан компонент DataSource1, указывает свойство DataSet последнего.



Рисунок 2.8 - Форма приложения для работы с БД

Компонент DBGrid1 отображает содержимое таблицы БД в виде сетки, в которой столбцы соответствуют полям, а строки — записям таблицы. По умолчанию пользователь может просматривать и редактировать данные. Компонент DBNavigator позволяет пользователю перемещаться по таблице, редактировать, вставлять и удалять записи. Компоненты DBGrid1 и DBNavigator1 связываются со своим источником данных — компонентом DataSource1 — через свойства DataSource.

Схема взаимосвязи компонентов приложения и таблицы БД и используемые при этом свойства компонентов показаны на рисунке 2.9.

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





Рисунок 2.9 - Схема взаимосвязи компонентов приложения и таблицы БД

Доступ к остальным таблицам организуется аналогичным образом. В основном окне программы (Список студентов) находятся:

- Успеваемость студента;

- Успеваемость за семестр;

- Распечатать личную карточку.

При нажатии на кнопку успеваемость за семестр данные фильтруются по группе, а затем делается проверка оценок (отлично, хорошо, удовлетворительно, неудовлетворительно) с занесением в соответствующую таблицу [Приложение А].

if(Form3->ShowModal()!=mrOk) return;

Variant A_,B_,T_,D_,V_;

char gg[6],sp[3];

int kurs, sem, i,oc5,oc4,oc3,oc2,kol[6],t=0;

String oo,pre2;

try{

A_ = CreateOleObject("Word.Application");

B_=A_.OlePropertyGet("WordBasic");

B_.OleProcedure("FileNew", (ExtractFilePath(ParamStr(0))+"usp.dot").c_str());

D_=A_.OlePropertyGet("ActiveDocument");

V_=D_.OlePropertyGet("Variables");

strcpy(gg,Form3->DBLookupComboBox1->Text.c_str());

if (gg[1]=='-') {sp[0]=gg[0];sp[1]=0; kurs=gg[2]-48;}

else {sp[0]=gg[0];sp[1]=gg[1];sp[2]=0; kurs=gg[3]-48;}

sem=(kurs-1)*2+(Form3->RadioButton1->Checked?1:2);

V_.OleProcedure("Add", "Nom_kurs", kurs);

V_.OleProcedure("Add", "Nom_gr", (Form3->DBLookupComboBox1->Text) .c_str());

V_.OleProcedure("Add", "Sem", Form3->RadioButton1->Checked?1:2);

V_.OleProcedure("Add", "Uch_god", ((String)uch_god+"-"+(String)(uch_god+1)).c_str());

D_.OlePropertyGet("Fields").OleProcedure("Update");

B_.OleProcedure("AppShow");

//student->Filter="Spec='"+(String)sp+"' AND Nom_kurs="+(String)kurs+" AND Nom_gr="+(String)gr;

student->Filter="Gruppa='"+Form3->DBLookupComboBox1->Text+"'";

student->Filtered=true;

Label23->Caption=Form3->DBLookupComboBox1->Text;

ocenka->Active=false;

ocenkafio_stud->Visible=false;

ocenkafio_stud->FieldKind=fkCalculated;

ocenkan_predmet->FieldKind=fkLookup;

ocenkan_predmet->Visible=true;

ocenka->IndexName="Nom_zach";

ocenka->MasterFields="";

ocenka->MasterSource=dstudent;

ocenka->MasterFields="nom_zach";

ocenka->Active=true;

student->First();

char sss[20];

kol[2]=0;

kol[3]=0;

kol[4]=0;

kol[5]=0;

while(!student->Eof)

{ocenka->First();

char oc[]="Oc0";

oc[2]=sem+48;

oc5=0;oc4=0;oc3=0;oc2=0;t=0;

pre2="";

while(!ocenka->Eof)

{if (ocenka->FieldByName(oc)->IsNull) {ocenka->Next();continue;}

oo=ocenka->FieldByName(oc)->AsString;

if (oo[1]=='2'||oo[1]=='н') {oc2++;pre2=pre2+ocenka->FieldByName("n_predmet")->AsString+" ,";}

if (oo[1]=='3') oc3++;

if (oo[1]=='4') oc4++;

if (oo[1]=='5') oc5++;

ocenka->Next();}

if (oc2>0) {t=2;T_=D_.OlePropertyGet("Tables").OleFunction("Item",5);}

else if (oc3>0) {t=3;T_=D_.OlePropertyGet("Tables").OleFunction("Item",4);}

else if (oc4>0) {t=4;T_=D_.OlePropertyGet("Tables").OleFunction("Item",3);}

else if (oc5>0) {t=5;T_=D_.OlePropertyGet("Tables").OleFunction("Item",2);}

if (t!=0) {

T_.OleFunction("Cell",kol[t]+1,2).OleProcedure("Select");

kol[t]++;

_.OlePropertyGet("Selection").OleProcedure("InsertRowsBelow",(int)kol[t]);

T_.OleFunction("Cell",kol[t]+1,2).OleProcedure("Select");

A_.OlePropertyGet("Selection").OlePropertySet("Text",student->FieldByName("Fio")->AsString.c_str());

T_.OleFunction("Cell",kol[t]+1,1).OleProcedure("Select");

A_.OlePropertyGet("Selection").OlePropertySet("Text",kol[t]);

if (t==2)

{ T_.OleFunction("Cell",kol[t]+1,3).OleProcedure("Select");

A_.OlePropertyGet("Selection").OlePropertySet("Text",pre2.c_str()); } }

student->Next();}

B_.OleProcedure("AppShow");}

catch(EOleException& e){ShowMessage("OleException "+e.Message);}

catch(EOleSysError& e){ShowMessage("OleSyserror "+e.Message);}

catch(Exception& e){ShowMessage("Exception "+e.Message);}

student->Filtered=false;

Label23->Caption=" ";

TabSheet1->Show(); }

На главной форме разместила PageControl, состоящий из вкладок:

студенты - просмотр, добавление, поиск, изменение и удаление студентов, также с этой вкладки можно распечатать успеваемость студента, группы и личную карточку;

личная карточка - сдержит основные сведения о студенте (номер зачетки, ФИО, группу, приказы о зачислении и переводе с курса на курс) и учебно-производственные практики;

оценки по студенту - при помощи компонента DBGrid выставляются оценки по всем предметам для конкретного студента;

оценки по предмету - выставление оценок по конкретному предмету студентам одной группы;

справочники - просмотр, добавление, поиск, изменение и удаление предметов, преподавателей, групп и специальностей соответственно;

часы - позволяет вводить данные об отработанных часах преподавателя.

Пользователю переход на вкладки невиден, для перехода к тем или иным выше описанным данным необходимо воспользоваться меню (расположенному в верхней части окна программы).

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

{String aaa=((TMenuItem *)Sender)->Caption;

int aa=aaa.Pos("&");

if (aa) aaa.Delete(aa,1);

student->Filter="Gruppa='"+aaa+"'";

student->Filtered=true;

Label23->Caption=aaa;

TabSheet1->Show();}

При выборе в меню подпункта Личная карточка пользователь имеет возможность просмотреть либо добавить данные по студенту.

Для создания надписей (№ зачетки, ФИО, группа, курс, специальность и т.д) выбрала компонент label (надпись) расположенный на вкладке Standard.

Для группы и специальности поместила DBLookupComboBox, компонент представляющий собой комбинированный список значений поля синхронного просмотра для поля, заданного свойством DataFieid, из набора данных DataSource. Его основное назначение — автоматически устанавливать соответствие между полями двух наборов данных по одинаковому значению заданного поля исходной таблицы и ключевого поля таблицы синхронного просмотра. В списке синхронного просмотра отображаются возможные значения для редактирования поля основной таблицы. По своим функциональным возможностям компонент совпадает с компонентом TDBComboBox.

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

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

В поле можно передавать фиксированные значения, связанные с отдельными переключателями в группе.

Если текущее значение связанного поля соответствует значению какого либо переключателя, то он включается. Если пользователь включает другой переключатель, то связанное с переключателем значение заносится в поле. Возможные значения, на которые должны реагировать переключатели в группе, заносятся в свойство Values при помощи специального редактора в Инспекторе объектов или программно посредством методов класса TStrings. Каждому элементу свойства values соответствует один переключатель представленный на рисунке ___ (М, Ж).

Свойство items содержит список поясняющих надписей для переключателей группы М, Ж. Если для какого-либо переключателя нет заданного значения, но есть поясняющий текст, то такой переключатель включается при совпадении значения связанного поля с поясняющим текстом.

Текущее значение связанного поля содержится в поле value.

Использование переключателя DBRadioGroup исключает возможность появления ошибок.



Рисунок 2.10 - Задание параметра Values компонента DBRadioGroup
Все остальные поля установлены с вкладки DataControl компонентом DBEdit, он представляет собой стандартный однострочный текстовый редактор, в котором отображаются и изменяются данные из поля связанного набора данных.

Компонент может осуществлять проверку редактируемых данных по заданной для поля маске.

В нижней части окна программы находится таблица ввода практики созданная элементом DBGrid. Этот компонент инкапсулирует двумерную таблицу, в которой строки представляют собой записи, а столбцы — поля набора данных.

В компоненте DBGrid можно отображать произвольное подмножество полей используемого набора данных, но число записей ограничить нельзя — в компоненте всегда присутствуют все записи связанного набора данных. Требуемый набор полей можно составить при помощи специального Редактора столбцов, который открывается при двойном щелчке на компоненте, перенесенном на форму, или кнопкой свойства Columns в Инспекторе объектов.

Новая колонка добавляется при помощи кнопки Add New, после этого ее название появляется в списке колонок представленном на рисунке ___. Для выбранной в списке колонки доступные для редактирования свойства появляются в Инспекторе объектов. Колонки в списке можно редактировать, удалять, менять местами. При помощи кнопки Add All Fields в сетку можно добавить все поля набора данных.

Каждая колонка компонента TDBGrid описывается специальным классом Column, а совокупность колонок доступна через свойство columns компонента, оно имеет тип DBGridColumns и представляет собой индексированный список объектов колонок. Поле набора данных связывается с конкретной колонкой при помощи свойства FieidName класса Column. При этом в колонку автоматически переносятся все необходимые параметры поля, в частности заголовок поля, настройки шрифтов, ширина поля. После ручного изменения параметров первоначальные значения восстанавливаются методами соответствующих объектов Column.



Рисунок 2.11 - Редактор колонок компонента DBGrid

Для управления записями таблицы установлен навигатор – DBNavigator связанный с таблицей практика (praktika) через DataSource (dpraktika).

Для настройки свойств компонента DataSource необходимо выполнить следующие действия.

1. Связать набор данных и компонент DataSource. Для этого используется свойство DataSet компонента DataSource, доступное через Инспектор объектов. Это указатель на экземпляр компонента доступа к данным. В списке этого свойства в Инспекторе объектов перечислены все доступные компоненты наборов данных.

2. Переименовать компонент. Это не обязательное действие. Тем не менее желательно присваивать компонентам осмысленные имена, соответствующие названиям связанных наборов данных. Обычно название компонента комбинирует имя набора данных например dstudent, dspecial.

1   2   3   4   5   6   7   8   9   10

Похожие:

Программа bde administrator 28 iconПрограмма по формированию навыков безопасного поведения на дорогах...
Программа: Примерная программа основного общего образования по географии «География Земли» (V-VII классы), авторская программа Алексеева...
Программа bde administrator 28 iconПрограмма по формированию навыков безопасного поведения на дорогах...
...
Программа bde administrator 28 iconПрограмма по формированию навыков безопасного поведения на дорогах...
Образовательная система «Школа 2100». Фгос. Примерная образовательная программа. Программа отдельных предметов, курсов для начальной...
Программа bde administrator 28 iconПрограмма по формированию навыков безопасного поведения на дорогах...
Образовательная система «Школа 2100». Фгос. Примерная образовательная программа. Программа отдельных предметов, курсов для начальной...
Программа bde administrator 28 iconРабочая программа по природоведению в V классе на 20
Кому адресована программа: программа для 5 класса основной общеобразовательной школы
Программа bde administrator 28 iconПрограмма (базовая программа общеуниверситетской дисциплины)*
Основная образовательная программа для направления 140400. 62 Электроэнергетика и электротехника
Программа bde administrator 28 iconПрограмма по биологии II отделение 1 вариант в 9 классе
Программа по биологии 6 – 11 классы, В. В. Пасечник М.; Дрофа, 2001) и требований к уровню подготовки обучающихся 5-9 классов. Программа...
Программа bde administrator 28 iconПрограмма по биологии II отделение 1 вариант в 8 классе
Программа по биологии 6 – 11 классы, В. В. Пасечник М.; Дрофа, 2001) и требований к уровню подготовки обучающихся 5-9 классов. Программа...
Программа bde administrator 28 iconПрограмма кружка «Моя малая Родина»
Программа составлена на основе авторской программы Гречухина Г. Б. Историческое краеведение. Учебная программа для общеобразовательных...
Программа bde administrator 28 iconРабочая программа Курса «География. Земля и люди». 7 класс Линия...
Программа: примерные программы по географии 6-9 классы, М., Просвещение, 2010; программа по географии 6 -9 классов под редакцией...
Программа bde administrator 28 iconПрограмма по формированию навыков безопасного поведения на дорогах...
Программа по биологии 6 – 11 классы, В. В. Пасечник М.; Дрофа, 2001) и требований к уровню подготовки обучающихся 5-9 классов. Программа...
Программа bde administrator 28 iconПрограмма по формированию навыков безопасного поведения на дорогах...
Программа по биологии 6 – 11 классы, В. В. Пасечник М.; Дрофа, 2001) и требований к уровню подготовки обучающихся 5-9 классов. Программа...
Программа bde administrator 28 iconПрограмма по формированию навыков безопасного поведения на дорогах...
Программа: примерная программа основного общего образования по географии, «География Земли» ( 6-7 классы), авторская программа по...
Программа bde administrator 28 iconПрограмма по учебным предметам программа духовно-нравственного развития и воспитания
Программа формирования экологической культуры, здорового и безоопасного образа жизни
Программа bde administrator 28 icon5 Основная образовательная программа моу сош№53
Данная программа адресована учащимся 5-11 классов. Рабочая программа составлена на основе следующих нормативных документов
Программа bde administrator 28 iconПрограмма А. В. Горячева «Программа по информатике и ит,1-4 начальной общеобразовательной школы»
Основу рабочей программы составляет авторская программа А. В. Горячева «Программа по информатике и ит,1-4 начальной общеобразовательной...


Школьные материалы


При копировании материала укажите ссылку © 2013
контакты
100-bal.ru
Поиск