Автоматизированная система управления «Деканат»: Руководство разработчика, страница 2

Показывает данные о студенте, код бюджетного места (если оно есть) и флаг актуальности (если есть бюджетное место и флаг равен нулю, значит студент был отчислен с бюджета, если флаг равен единице – это актуальный бюджетник). Этот запрос отличается наличием или отсутствием прокомментированной строки, который либо берет РЕАЛЬНО обучающихся людей (без отчисленных), либо всех. В процедуре 4 запроса, но RefreshSQL нужен только для корректного обновления данных в гриде. Его отдельное описание обусловлено кривостью компонента TibDataSet. Оставшиеся два отличаются только одной строкой, о которой говорилось выше.

procedure TForm1Main.N46Click(Sender: TObject);

Пункт «только Бюджет». Делает выборку из таблицы бюджетников и показывает только актуальных обучающихся бюджетников.

-Запрос на выборку бюджетников похож на запрос из N35Click()

select

s.*,

kb.nazv as BUD_PLACE,

b.last_flag as LF

from student s

left join budjet b on (b.student_id = s.id)

left join kod_budj kb on (kb.id = b.kod_id)

WHERE b.last_flag = 1 -- это условие находит ТОЛЬКО бюджет. Условие достаточно.

procedure TForm1Main.N43Click(Sender: TObject);

Пункт «Только контракт». Прячет бюджетников и оставляет только контрактников.

-Запрос на выборку контрактников похож на запрос из N35Click()

select

s.*,

kb.nazv as BUD_PLACE,

b.last_flag as LF

from student s

left join budjet b on (b.student_id = s.id)

left join kod_budj kb on (kb.id = b.kod_id)

WHERE b.last_flag IS NULL-- это условие находит ТОЛЬКО контракт.

procedure TForm1Main.N47Click(Sender: TObject);

Показывать и контракт и бюджет.

-Запрос на выборку ВСЕХ похож на запрос из N35Click(). Здесь просто нет строки с WHERE:

select

s.*,

kb.nazv as BUD_PLACE,

b.last_flag as LF

from student s

left join budjet b on (b.student_id = s.id)

left join kod_budj kb on (kb.id = b.kod_id)

procedure TForm1Main.N48Click(Sender: TObject);

Ставит галочку «выделить отчисленных» и перерисовывает форму.

procedure TForm1Main.N42Click(Sender: TObject);

«Изменить» → «студента». Открывает личную карточку.

procedure TForm1Main.cxDBTextEdit1KeyPress(Sender: TObject; var Key: Char);

«Защита от дурака». В фамилию можно писать только буквы и backspace.

procedure TForm1Main.cxDBTextEdit4KeyPress(Sender: TObject; var Key: Char);

Защита от дурака. В телефон можно писать только цифры и backspace.

procedure TForm1Main.N25Click(Sender: TObject);

Открывает форму «Других» отчетов.

procedure TForm1Main.cxGrid1DBTableView1DblClick(Sender: TObject);

Открываем личную карточку. Запрос внутри находить специальность.

См. запрос из RzBitBtn1Click();

**

RzBitBtn1Click() === cxGrid1DBTableView1DblClick()

procedure TForm1Main.N22Click(Sender: TObject);

Пункт «отчислить меню» контекстного меню PopupMenuStud. Если студент бюджетник – открыть окно бюджетных мест (их отчисление делается там), если контрактник – вывести диалоговое окно, если уже отчислен вывести сообщение об ошибке. Запрос на удаление берется из текстового файла 'SQL\otchis.sql' и подкружается в DataSet.

-Запрос в файле otchis.sql:

update student

set  OTCHIS_N= 'ВВЕДИТЕ №'

where (id = :LS)

Вписывает строку «Введите №» в строку с приказом на отчисление. Параметром передается ID студента.

procedure TForm1Main.N49Click(Sender: TObject);

Физическое удаление студента из БД. Здесь вываливается более интересное диалоговое окно = )

**

Form1Main.N49Click() → frmConfirm.FormShow() →..userActions → RzEdit1Change()→ RzOKClick()

unit Unit2 – модуль данных

procedure TDataModule2.IBDBBeforeConnect(Sender: TObject);

Логирование попытки соединения c БД в файл Logs\conn.log. Все процедуры логирования происходят одинаково – открыватеся файл на дозапись (append) и вставляется строчка с текущим датой и временем и операцией.

Например: 21.06.2011 2:30:24: попытка соединения SYSDBA c БД.

procedure TDataModule2.IBDBAfterConnect(Sender: TObject);

Логирование успешного соединения c БД в файл Logs\conn.log

procedure TDataModule2.IBDBBeforeDisconnect(Sender: TObject);

Логирование попытки отключения от БД в файл Logs\conn.log

procedure TDataModule2.IBDBAfterDisconnect(Sender: TObject);

Логирование успешного отключения от БД в файл Logs\conn.log

procedure TDataModule2.IBStudAfterInsert(DataSet: TDataSet);

Логирование добавил нового студента. Файл: Logs\stud.log