Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
pESENKO pRACTICA.docx
Скачиваний:
1
Добавлен:
01.05.2025
Размер:
2 Мб
Скачать
☆

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]