**
RzSpinEdit1Change() === RzNumericEdit1Change()
procedure TForm3AddGrup.RzNumericEdit2Change(Sender: TObject);
Замечательная процедура. Она ничего не делает ее можно удалить.
procedure TForm3AddGrup.cxLookupComboBox1PropertiesCloseUp(Sender: TObject);
Вытаскивает продолжительность обучения по ID специальности и подставляет в cxDBTextEdit1.
-Запрос на выборку продолжительности обучения:
SELECT prodolj_ob
FROM specialnost
WHERE specialnost.id = cxLookupComboBox1.EditValue
procedure TForm3AddGrup.RzSpinEdit1Change(Sender: TObject);
Меняя количество групп, формируем для них шифр из года набора и кода специальности. Небольшая проверка на год, чтобы из 2001 получалось 01, а не 1. Номер группы получаем через вычитание 2000 из года набора. Вываливаем получившееся в RzStringGrid1.
**
RzSpinEdit1Change() === RzNumericEdit1Change()
procedure TForm3AddGrup.RzBitBtn1Click(Sender: TObject);
Вносим данные из RzStringGrid1 в БД. После этого создаем запрос с параметром в DataModule2.IBTemp2. Название берем из RzStringGrid1. И создаем бюджетные места, если они были указаны в RzStringGrid1.
-Запрос нахождения группы
SELECT ID
FROM gruppa
WHERE gruppa.nazv=:NAZV
Запрос возвращает ID группы по ее называнию.
procedure TForm3AddGrup.cxDBTextEdit1KeyPress(Sender: TObject; var Key: Char);
«Защита от дурака». Нельзя вводить буквы в cxDBTextEdit1.
Хотя вообще не понимаю зачем тут что-то вводить если все берется из БД.
procedure TForm4SvodVed.xls1Click(Sender: TObject);
Экспорт в MS Excel. Последовательный. Перебором каждой ячейки.
procedure TForm4SvodVed.xls2Click(Sender: TObject);
Экспорт в шаблон MS Excel 'shab\FactPlan.xls'. Последовательный. Перебором каждой ячейки.
procedure TForm4SvodVed.N3Click(Sender: TObject);
Открывает окно формирования экзаменационной ведомости.
Учебный план – какая дисциплина в каом семестре у какой специальности ведется и какая форма контроля.
Текущий план – расширяет учебный план, разворачивая «специальности» до конкретных групп (генерируется программой из УП) и добавляя расчасовку с преподавателем (указывается пользователем).
Сводная ведомость – расширяет Текущий план, разворачивая академические группы до конкретных студентов. Пользователю остается только указать оценки за форму контроля
procedure TForm5UchPlan.N1Click(Sender: TObject);
Пункт меню «Добавить строку». Добавляет запись в таблицу.
procedure TForm5UchPlan.N2Click(Sender: TObject);
Пункт меню «Удалить строку». Удаляет запись в таблице.
procedure TForm5UchPlan.xls1Click(Sender: TObject);
«Импорт» → «Новый файл..». Экспортирует таблицу в MS Excel.
procedure TForm5UchPlan.xls2Click(Sender: TObject);
«Импорт» → «Шаблон». Экспортирует таблицу в шаблон MS Excel shab\UchPlan.xls.
procedure TForm5UchPlan.RzBitBtn1Click(Sender: TObject);
Берем запрос из файла 'SQL\UP-FPnorepeatPARAM.sql', передаем параметры Года и Сезона из cxComboBox2 и cxComboBox1 соответственно и формируем фактический план из учебного.
-Запрос на формирование фактического плана из учебного (файл SQL\UP-FPnorepeatPARAM.sql)
insert into tecplan (gruppa_id,
kalen_semestr_id,
disciplina_id,
attectation_id,
semestr_id)
SELECT
gp.id,
giveme_kalsem.id,
up.disciplina_id,
up.attestation_id,
up.semestr_id
FROM
giveme_kalsem(:G,:S),
gruppa gp
left join specialnost sp on (gp.specialnost_id = sp.id)
left join uchplan up on (up.specialnost_id = sp.id)
where
(up.semestr_id = 2* (:G - gp.god_post)+:S)
and not exists(
select tp.id
from tecplan tp
where
(
gruppa_id = gp.id
and kalen_semestr_id = giveme_kalsem.id
and disciplina_id = up.disciplina_id
and attectation_id = up.attestation_id
and semestr_id = up.semestr_id
)
)
Вставить в текущий план группу, календарный семестр, дисциплину, форму контроля и номер семестра из учебного плана и хранимой процедуры giveme_kalsem() с проверкой на существование записи.
giveme_kalsem() – возвращает ID календарного семестра из таблицы KALEN_SEMESTR Входные параметры – год и {осень=1, весна=0}
up.semestr_id = 2* (:G - gp.god_post)+:S - узнает текущий номер семестра по году набора группы. Входные параметры – текущий год (G) и семестр (S - {осень=1, весна=0} )
Блок and not exists() проверяет перед вставку существует ли уже подобная запись в текущем плане.
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.