if strtoint(currtostr(d))<13 then

Begin

result:=''+currtostr(m)+'/'+currtostr(d)+'/'+currtostr(g)+'';

End

Else

Begin

result:=''+currtostr(d)+'/'+currtostr(m)+'/'+currtostr(g)+'';

end;

end;


 

Данную функцию можно использовать следующим образом: «FMain.Data2(dtp.Date)». Эту функции можно разместить в главной форме.

 

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

Для того чтобы вызывать запрос или отчет нам нужно сделать в меню соответствующие кнопки. Вы уже знаете, как это делать. Создадим новую форму и назовем ее «FZapros». Разместим на этой форме «ToolBar». На нем разместим два «DataTimePicker» и «Combobox», а также одну кнопку для выполнения запроса. Так же на форму разместим «DBGrid». На «DataModule» создадим новый набор данных и соединим его с новым «DataSource», который, в свою очередь, соединим с «DBGrid» на форме. Теперь напишем код в размещенной на форме нами кнопке. Код выглядеть следующим образом:

 


dm.Temp2.Active:=false;

dm.Temp2.CommandText:='select fio_st,nazv_zv,avg(oc_ej) FROM kadri,zvanie,eljur,uchgr WHERE (id_ug = id_ug_st ) AND (id_st = id_st_ej) AND (id_zv = id_zv_st) AND (data_ej BETWEEN #'+fmain.data2(fzapros.dtp1.date)+'# AND #'+fmain.data2(fzapros.dtp2.date)+'#) AND (nazv_ug = "'+fzapros.cb.Text+'") GROUP BY fio_st, nazv_zv';

dm.Temp2.Active:=true;

 


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

Рисунок 28 – «Форма запроса»

 

Теперь нам осталось сделать последний шаг – сделать графический отчет о популярности оценок среди студентов какой-либо группы за определенный период. Создадим такую же форму, как и форма для запроса только вместо «DBFrid» разместим на ней «Chart» с вкладки «Additional». После чего дважды щелкнем по «Chart1» и справа нажмем на кнопку «Add», после чего появится форма с видами графиков. Нам нужно круговая диаграмма «Pie» ее мы и выберем. Код кнопки для построения графика будет выглядеть следующим образом:

 


procedure TFotchet.ToolButton5Click(Sender: TObject);

var oc:string;

Begin

if cb.Text='' then

Begin

showmessage('Нужно выбрать группу');

exit;

end;

chart1.Series[0].Clear;

oc:='2';

While strtoint(oc)<= 5 do

Begin

dm.Temp4.Active:=false;

dm.Temp4.CommandText:='select count(oc_ej) FROM kadri,eljur,uchgr WHERE (id_ug = id_ug_st ) AND (id_st = id_st_ej) AND (data_ej BETWEEN #'+fmain.data2(fotchet.dtp1.date)+'# AND #'+fmain.data2(fotchet.dtp2.date)+'#) AND (nazv_ug = "'+fotchet.cb.Text+'") AND (oc_ej = '+oc+')';

dm.Temp4.Active:=true;

Fotchet.Chart1.Series[0].AddY(dm.TEMP4.Fields[0].asinteger,oc);

oc:=inttostr(strtoint(oc)+1);

end;

end;


 

В итоге должна получиться форма изображенная на рисунке 29.

 

Рисунок 29 – «Графический отчет»

 

Теперь нужно разграничить права доступа к разработанному нами приложению. Это можно сделать с помощью парольной формы. Создадим новую форму и назовем ее «Fpass» и сохраним под именем «Pass». Список пользователей будет браться из базы данных и представлен в виде выпадающего списка. Внешний вид данной формы представлен на рисунке 30.

Рисунок 30 – Авторизация пользователя

 

Нам нужно сделать так чтобы эта форма загружалась в самом начале. Для этого проделаем следующие действия «Project\options». Выбираем пункт «Form» и в списке «MainForm» выбираем форму «FPass». Скриншот представлен на рисунке 31.

 

Рисунок 31 – Определение основной формы

 

Теперь зайдем ан форму «Main» и зайдем в свойство «OnShow» и вырежем оттуда следующий код: «dm.Conn.Connected:=true;» и вставим данный код в свойство «OnShow» формы «FPass». Так же в данное свойство нужно вставить код для выгрузки имен пользователей. Код будет выглядеть следующим образом:

 


dm.Conn.Connected:=true;

dm.temp4.Active:=false;

dm.temp4.CommandText:='Select name FROM PAss';

dm.temp4.Active:=true;

While not dm.temp4.Eof do

Begin

cb.Items.Add(dm.temp4.Fields[0].AsString);

dm.temp4.Next;

end;


 

Теперь нужно написать код в кнопки формы «FPass». Напишем код для кнопки «Отмена». При нажатии данной кнопки должен задаваться вопрос и при положительном ответе на него программа должна закрыться. Код представлен ниже:

 


if application.MessageBox(Вы хотите выйти из программы?','Выход из программы', mb_yesno+mb_iconQuestion)=idyes then

Begin

application.Terminate;

End


 

Создадим новые глобальные переменные «namePol». После чего напишем код для кнопки «Вход». Данный код представлен ниже. Также нужно учесть, что у разных пользователей будут разные права.

 


{1}if (cb.Text='') OR (e.Text='') then showmessage(Введены не все данные')

Else

Begin

{4} dm.temp4.Active:=false;

{5} dm.temp4.CommandText:='Select * FROM Pass WHERE (name = "'+cb.Text+'") AND (pass = "'+e.Text+'")';

{6} dm.temp4.Active:=true;

{7} if dm.temp4.Fields[0].AsString='' then showmessage('Неверные имя или пароль')

Else

Begin

{10} if cb.Text='Пользователь' then

Begin

{12} fpass.Hide;

{13} fmain.Show;

{14} dm.N13.Visible:=false;

{15} dm.N11.Visible:=false;

{16} namePol:=cb.Text;

End

Else

Begin

{20} fpass.Hide;

{21} fmain.Show;

{22} namePol:=cb.Text;

{23} end;

{24} end;

{25} end;

 


 

{1} Проверяем, введены ли все данные

{4}-{6} Запрос к БД

{7} Проверяем, есть ли такая запись в БД

{10} Если запись есть, то проверяем, что за пользователь

{12} Скрыть форму

{13} Показать форму

{14,15} Делаем кнопки невидимыми

Далее по аналогии.

 

Теперь перейдем на форму «Fmain» и в свойстве «CloseQuery» наберем тот же код, что и для кнопки «Отмена».

 

Наша программа практически готова осталось только немного украсить главную форму программы. Для этого можно разместить на ней какой-нибудь изображение, чтобы она не смотрелась так скучно. Для этого можно воспользоваться компонентом «Image» с вкладки «Additional». Разместите его на форме, сделайте так чтоб он занимал все свободное пространство, и дважды щелкните по нему. В появившемся окне нажмите кнопку «Load» и выбирайте картинку, которая вам понравится. Должно получиться примерно то, что изображено на рисунке 30.

Рисунок 30 - «Главная форма»

 

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

 

Коли вопросы будут … пишите

http://vk.com/id4560920 :)

 



OCUMENT_ROOT"]."/cgi-bin/footer.php"; ?>