- •Содержание
- •Введение
- •Общая структура и характеристика предприятия
- •Информационные технологии предприятия
- •2.1 Информационная политика предприятия
- •2.2 Прикладное программное обеспечение предприятия
- •2.3 Сетевое программное обеспечение предприятия
- •Индивидуальное задание
- •3.1 Отдел «Управление учебным процессом»
- •3.2 Индивидуальное задание
- •3.3 Детали и особенности выполнения
- •Заключение
3.2 Индивидуальное задание
В период прохождения практики в отделе «Управление учебным процессом» было полученное следующее индивидуальное задание:
- Добавить фильтры для выборки записей и контроля учета успеваемости учащихся по ведомостям (зачетная ведомость, экзаменационная и т.д);
3.3 Детали и особенности выполнения
При выполнении задания использовалась «Галактика Управление Вузом». В частности, один из модулей «Учет успеваемости студентов» (рисунок 3.2).
Рисунок 3.2 – Модуль учета успеваемости студентов
Открыв модуль переходим в всплывающее меню, где выбираем ведомость для редакции (рисунок 3.3).
Рисунок 3.3 – Меню модуля учета успеваемости студентов
Затем выберем экзаменационную ведомость, которую требуется отредактировать по заданию. В результате получаем данные о всех экзаменационных ведомостях находящихся в базе данных (рисунок 3.4).
Рисунок 3.4 – Список всех ведомостей хранящихся в базе данных
После чего нажимаем на кнопку фильтров в левом верхнем углу. По заданию нужно было запрограммировать фильтры на семестр, учебный год и два фильтра на дату сдачи. Пометив нужный фильтр галочкой мы задаем условие отбора данных (рисунок 3.5).
Рисунок 3.5 – Установка / снятие текущего фильтра
Появится результат – те записи, которые соответствовали заданному условию фильтра. Отбор происходил по учебному году (рисунок 3.6).
Рисунок 3.6 – Результат выборки по учебному году 2013
Также в модуле учета успеваемости студентов предусмотрено добавление новых записей в базу данных, изменение, удаление существующих (рисунок 3.7).
Рисунок 3.7 – Редактирование экзаменационной ведомости
Приложение а
Procedure AddMyBounds (FilBound : longint);
{
if (not BoundActive (FilBound))
AddBounds (FilBound);
}
//------------------------------------------------------------------------------
Procedure SubMyBounds (FilBound : longint);
{
if (BoundActive (FilBound))
SubBounds (FilBound);
}
//------------------------------------------------------------------------------
Procedure SubMyBoundsList;
{
SubMyBounds (tbbyBDate);
SubMyBounds (tbbyDiscpl);
SubMyBounds (tbbyFac);
SubMyBounds (tbbyChair);
SubMyBounds (tbbyExam);
SubMyBounds (tbbyStGr);
SubMyBounds (tbbyCurr);
SubMyBounds (tbbySem) ;
SubMyBounds (tbbyEDate);
// SubMyBounds (tbbyYear);
SetFilterAn;
}
//------------------------------------------------------------------------------
Function SetFilters: boolean;
{
SetFilters := true;
if ( boGetTune('UCS.Access') )
ReSetFilterAn;
SubMyBoundsList;
if IsBit (wFilter,cwFilt_Discpl)
AddMybounds (tbbyDiscpl);
if IsBit (wFilter,cwFilt_Fac)
AddMybounds (tbbyFac);
if IsBit (wFilter,cwFilt_Chair)
AddMybounds (tbbyChair);
if IsBit (wFilter,cwFilt_Exam)
AddMybounds (tbbyExam);
if IsBit (wFilter,cwFilt_StGr)
AddMybounds (tbbyStGr);
if IsBit (wFilter,cwFilt_Curr)
AddMybounds (tbbyCurr);
if IsBit (wFilter,cwFilt_BDate)
{
AddMybounds (tbbyBDate);
AddMyBounds (tbbyEDate);
}
if IsBit (wFilter,cwFilt_Sem)
AddMybounds (tbbySem);
//If IsBit (wFilter,cwFilt_EDate)
// if IsBIit (wFilter,cwFilt_Year)
// AddMyBounds (tbbyYear);
if ( boGetTune('UCS.Access') )
SetFilterAn;
/*
if (GetFirst U_List <> tsOK) And (wFilter <> 0)
{
message ('Нет записей, удовлетворяющих условиям фильтра!'#13 +
'Пожалуйста, переустановите фильтры.', warning);
SubMyBoundsList;
SetFilters := false;
}
*/
}
//------------------------------------------------------------------------------
Procedure ReadDataDsk;
Var
isError : boolean;
{
var _cFaculty : comp;
_cFaculty := coGetTune('UUP.USERFACULTY');
if (not ReadMyDsk (wFilter, 'U_List_' + 'wFilter' + string (TypeDoc), isError))
wFilter := 0;
if (not ReadMyDsk (fFilt_BDate, 'U_List_' + 'fFilt_BDate' + string (TypeDoc), isError))
fFilt_BDate := year (Cur_Date);
if (not ReadMyDsk (fFilt_EDate, 'U_List_' + 'fFilt_EDate' + string (TypeDoc), isError))
fFilt_EDate := year (Cur_Date);
if (not ReadMyDsk (cFilt_Discpl, 'U_List_' + 'cFilt_Discpl' + string (TypeDoc), isError))
cFilt_Discpl := comp(0);
if ( _cFaculty <> 0 )
{
Set cFilt_Fac := _cFaculty;
BitOn (wFilter, cwFilt_Fac);
ClearFieldOption(#fFac, ofSelectable);
ClusterDisabledField(#wFilter, word(4));
}
else
if (not ReadMyDsk (cFilt_Fac, 'U_List_' + 'cFilt_Fac' + string (TypeDoc), isError))
cFilt_Fac := comp(0);
if (not ReadMyDsk (cFilt_Chair, 'U_List_' + 'cFilt_Chair' + string (TypeDoc), isError))
cFilt_Chair := comp(0);
if (not ReadMyDsk (cFilt_Exam, 'U_List_' + 'cFilt_Exam' + string (TypeDoc), isError))
cFilt_Exam := comp(0);
if (not ReadMyDsk (cFilt_StGr, 'U_List_' + 'cFilt_StGr' + string (TypeDoc), isError))
cFilt_StGr := comp(0);
if (not ReadMyDsk (cFilt_Curr, 'U_List_' + 'cFilt_Curr' + string (TypeDoc), isError))
cFilt_Curr := comp(0);
if (not ReadMyDsk (wFilt_Sem, 'U_List_' + 'wFilt_Sem' + string (TypeDoc), isError))
wFilt_Sem := 1;
if (not ReadMyDsk (wFilt_Year, 'U_List_' + 'wFilt_Year' + string (TypeDoc), isError))
wFilt_Year := year (Cur_Date);
}
//------------------------------------------------------------------------------
Procedure SaveDataDsk;
{
SaveMyDsk (wFilter, 'U_List_' + 'wFilter' + string (TypeDoc));
SaveMyDsk (fFilt_BDate, 'U_List_' + 'fFilt_BDate' + string (TypeDoc));
SaveMyDsk (cFilt_Discpl, 'U_List_' + 'cFilt_Discpl' + string (TypeDoc));
SaveMyDsk (cFilt_Fac, 'U_List_' + 'cFilt_Fac' + string (TypeDoc));
SaveMyDsk (cFilt_Chair, 'U_List_' + 'cFilt_Chair' + string (TypeDoc));
SaveMyDsk (cFilt_Exam, 'U_List_' + 'cFilt_Exam' + string (TypeDoc));
SaveMyDsk (cFilt_StGr, 'U_List_' + 'cFilt_StGr' + string (TypeDoc));
SaveMyDsk (cFilt_Curr, 'U_List_' + 'cFilt_Curr' + string (TypeDoc));
SaveMyDsk (wFilt_Sem, 'U_List_' + 'wFilt_Sem' + string (TypeDoc));
SaveMyDsk (fFilt_EDate, 'U_List_' + 'fFilt_EDate' + string (TypeDoc));
SaveMyDsk (wFilt_Year, 'U_List_' + 'wFilt_Year' + string (TypeDoc));
}
//******************************************************************************
Window U_List_Filter 'Установка ограничений' (,, sci1Esc) EscClose, Gray;
Show at (,,75,15);
Screen ScFiltrStud 'Установка ограничений на просмотр' ('',,sci1Esc);
Show at (,,,12);
//NoTableNavigation;
table U_LIST;
Fields
wFilter ('Установка/снятие текущего фильтра') : NoProtect;
fFilt_BDate ('Фильтр по начальной дате'): NoProtect, SpinButton [1, 1950, 2999];
fFilt_EDate ('фильтр по конечной дате') : NoProtect, SpinButton [1, 1950, 2999];
fDiscpl ('Фильтр по дисциплине',,) : PickButton, protect;
fFac ('Фильтр по факультету',,) : PickButton, protect;
fChair ('Фильтр по кафедре',,) : PickButton, protect;
fExam ('Фильтр по преподавателю',,) : PickButton, protect;
fStGr ('Фильтр по академической группе',,) : PickButton, protect;
fCurr ('Фильтр по учебному плану',,) : PickButton, protect;
wFilt_Sem ('фильтр по семестру',,): NoProtect, SpinButton[1, 1, 12];
wFilt_Year ('фильтр по учебному году',,): NoProtect, SpinButton[1, 1950, 2999];
<<
`Фильтры `
[.] Дата сдачи ` с: .@@@@@@@@@@ по: .@@@@@@@@@@
[.] Дисциплина ` .@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[.] Факультет ` .@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[.] Кафедра ` .@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[.] Преподаватель ` .@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[.] Академическая группа ` .@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[.] Учебный план ` .@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[.] Семестр ` .@@@@@@@@@@
[.] Учебный год ` .@@@@@@@@@@
>>
end; // Screen ScFiltrPlPor
//******************************************************************************
Screen StatLowerButtonScreen;
Show at (,13,,);
Buttons
cmValue30,,, 'Снять наложение фильтра';
cmValue31,,, 'Очистить все поля';
cmDo, Default,,'Применить фильтр';
cmCancel,,, 'Отмена применения фильтра';
<<
<.Снять фильтр.> <. Очистить .> <. Продолжить .> <. Отмена .>
>>
end; // Screen StatLowerButtonScreen
//******************************************************************************
panel panU_LIST;
table U_LIST;
HandleEvent
cmCheckField:
{
if (CurField = #fFilt_BDate)
BitOn (wFilter,cwFilt_BDate);
// UpdateTable;
If (#fFilt_BDate = 0)
set fFilt_BDate := year (cur_date);
}
end; // handleevent
end; // panel
//******************************************************************************
HandleEvent // window
cmInit:
ReadDataDsk;
//------------------------------------------------------------------------------
cmSetDefault: {};
//------------------------------------------------------------------------------
cmValue30:
{
set wFilter := 0;
ReReadRecord (#U_List);
PutCommand(cmPositionChanged);
}
//------------------------------------------------------------------------------
cmValue31:
{ //Очистить все поля
set wFilter := 0;
set fFilt_BDate := cur_date;
set cFilt_Discpl := 0;
set cFilt_Fac := 0;
set cFilt_Chair := 0;
set cFilt_Exam := 0;
set cFilt_StGr := 0;
set cFilt_Curr := 0;
set wFilt_Sem := 1;
set fFilt_EDate := cur_date;
set wFilt_Year := year (cur_date);
ReReadRecord (#U_List);
}
//------------------------------------------------------------------------------
cmDo:
{
if (not SetFilters)
{
abort;
exit;
}
SaveDataDsk;
SetTitle (GetTitleName);
CloseWindow (U_List_Filter);
ReReadRecord (#U_List);
PutCommand(cmPositionChanged);
}
//------------------------------------------------------------------------------
cmCancel:
{}
//------------------------------------------------------------------------------
end; // HandleEvent
//******************************************************************************
end; // Window
