-execute pr_6_1 5
-------------------------------------------------------------------------------------------------------------------------------------------------------------
-------------------------------------------------------------------------------------------------------------------------------------------------------------
-7.Відомості про щеплення, які були зроблені певній дитині; object_id ('pr_7_1') is not nullprocedure pr_7_1proc pr_7_1
@idRebenka intdeti.idRebenka, deti.familyaRebenka, deti.imyaRebenka, deti.dataRogdenya, ISNULL(privivki.nazvaniePrivivki, '-') nazvaniePrivivki, ISNULL(convert(varchar(max),privivki.vozrastDlyaPrivivki),'-') vozrastDlyaPrivivki, (convert (varchar(max), zhurnalPrivivki.dataPrivivki), '-') dataPrivivki,
(case when zhurnalPrivivki.sdelanaPrivivka=1 THEN 'да' ELSE case when zhurnalPrivivki.sdelanaPrivivka IS NULL THEN '-' ELSE 'нет' END END) sdelanaPrivivka, ISNULL (prichinaNePrivivki.prichina, '-') prichinajoin zhurnalPrivivki on deti.idRebenka=zhurnalPrivivki.idRebenkajoin privivki on zhurnalPrivivki.idPrivivki=privivki.idPrivivkijoin prichinaNePrivivki on zhurnalPrivivki.idPrichinaNePrivivki=prichinaNePrivivki.idPrichinaNePrivivkideti.idRebenka=@idRebenka
-execute pr_7_1 5
-execute pr_7_1 6
-execute pr_7_1 1
--------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------
-8.Списки та загальні кількість дітей, яким мають бути зробленні щеплення у найближчий час;object_id ('pr_8_1') is not nullprocedure pr_8_1proc pr_8_1detiVozrast.*, privivki.*, ISNULL(prichinaNePrivivki.prichina, '-') kommentardetiVozrastprivivki on detiVozrast.vozrast>=privivki.vozrastDlyaPrivivkijoin zhurnalPrivivki on detiVozrast.idRebenka=zhurnalPrivivki.idRebenka and privivki.idPrivivki=zhurnalPrivivki.idPrivivkijoin prichinaNePrivivki on zhurnalPrivivki.idPrichinaNePrivivki=prichinaNePrivivki.idPrichinaNePrivivki
(zhurnalPrivivki.sdelanaPrivivka=0 OR zhurnalPrivivki.sdelanaPrivivka IS NULL)by detiVozrast.idRebenka
-exec pr_8_1
----------------------------------------------------------------------------------------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------------------------------------------------------------------------------------
- 9.Список та загальна кількість дітей, яким не були зробленні вчасно щеплення (з вказанням причини).
if object_id ('pr_9_1') is not nullprocedure pr_9_1proc pr_9_1deti.idRebenka, deti.familyaRebenka, deti.imyaRebenka, deti.dataRogdenya, ISNULL(privivki.nazvaniePrivivki, '-') nazvaniePrivivki, ISNULL(convert(varchar(max),privivki.vozrastDlyaPrivivki),'-'), (convert (varchar(max), zhurnalPrivivki.dataPrivivki), '-') dataPrivivki,
(case when zhurnalPrivivki.sdelanaPrivivka=1 THEN 'да' ELSE case when zhurnalPrivivki.sdelanaPrivivka IS NULL THEN '-' ELSE 'нет' END END) sdelanaPrivivka, ISNULL (prichinaNePrivivki.prichina, '-') prichinajoin zhurnalPrivivki on deti.idRebenka=zhurnalPrivivki.idRebenkajoin privivki on zhurnalPrivivki.idPrivivki=privivki.idPrivivkijoin prichinaNePrivivki on zhurnalPrivivki.idPrichinaNePrivivki=prichinaNePrivivki.idPrichinaNePrivivkizhurnalPrivivki.sdelanaPrivivka=0
-exec pr_9_1
--------------------------------------------------------------------------------------------------------------------------------------------------------------------
-------------------------------------------------------------------------------------------------------------------------------------------------------------------
-10.Повний переляк занять, які відвідувала вказана дитина в певний проміжок часу
if object_id ('pr_10_1') is not nullprocedure pr_10_1proc pr_10_1
@idRebenka int
@beginData date,
@endData date*deti on zurnalZanyatia.idRebenka=deti.idRebenkazanyatie on zurnalZanyatia.idZanyatie=zanyatie.idZanyatienazvanieZanyatia on zanyatie.idNazvanieZanyatia=nazvanieZanyatia.idNazvanieZanyatia
@beginData date,
@endData date* fromzanyatieGruppa on zanyatie.idZanyatie=zanyatieGruppa.idZanyatiegruppa on zanyatieGruppa.idGruppy=gruppa.idGruppyrebenokGruppa on gruppa.idGruppy=rebenokGruppa.idGruppydeti on rebenokGruppa.idRebenka=deti.idRebenkazanyatieSotrudnik on zanyatieSotrudnik.idZanyatie=zanyatie.idZanyatiesotrudniki on zanyatieSotrudnik.idSotrudnika=sotrudniki.idSotrudnikadeti.idRebenka=@idRebenka.dataZanyatia between @beginData and @endDatamasterkinderGartobject_id ('detiVozrast') is not nullview detiVozrastview detiVozrastdeti.*, DATEDIFF (year, deti.dataRogdenya, GETDATE()) vozrastdeti
------------------------------------------------------------------------------------------------------------------------------------------------------------object_id ('actualPost') is not nullview actualPostview actualPost asactualAssign.idSotrudnika, sotrudniki.imyaSotrudnika, sotrudniki.familyaSotrudnika, sotrudniki.userName, dolgnosti.idDolgnosti, nazvanieDolgnosty
(select idSotrudnika, MAX(dataNaznachenia) assignDate from naznachenieNaDolgnostdataUvolnenia is nullby naznachenieNaDolgnost.idSotrudnika) as actualAssignnaznachenieNaDolgnost on naznachenieNaDolgnost.idSotrudnika=actualAssign.idSotrudnika and naznachenieNaDolgnost.dataNaznachenia=actualAssign.assignDatesotrudniki on actualAssign.idSotrudnika=sotrudniki.idSotrudnikadolgnosti on naznachenieNaDolgnost.idDolgnosti=dolgnosti.idDolgnosti
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------object_id ('userRole') is not nullproc userRoleproc userRole@curUser nvarchar(30)@t table(UserName varchar(25), RoleName nvarchar(50), LoginName nvarchar(50), DefDBName nvarchar(50), DefSchemaName nvarchar(50), UserID smallint, [SID] varbinary(100)) @RoleName nvarchar(50) @curUser = USERinto @tsp_helpuser @curUseractualPost.idSotrudnika, actualPost.imyaSotrudnika, actualPost.familyaSotrudnika, actualPost.nazvanieDolgnosty,.UserName, t.RoleName@t tjoin actualPost on t.UserName=actualPost.userName
------------------------------------------------------------------------------------------------------------------------------------------------------------object_id
('actualGruppa') is not nullview actualGruppaview actualGruppa
asrebenokGruppa.idZapisiRebenokGruppa, rebenokGruppa.idRebenka,
rebenokGruppa.idGruppy, gruppa.nazvanieGruppy,
obchiyTypGruppy.nazvanieTypaGruppy nazvanieObchTypaGruppy,
typGruppy.nazvanieTypaGruppy, rebenokGruppa.dataPostuplenya,
rebenokGruppa.dataUhodagruppa on rebenokGruppa.idGruppy=gruppa.idGruppyobchiyTypGruppy
on gruppa.idObchiyTypGruppy=obchiyTypGruppy.idObchiyTypGruppytypGruppy on
gruppa.idTypGruppy=typGruppy.idTypGruppy(rebenokGruppa.dataUhoda is null or
rebenokGruppa.dataUhoda>GETDATE()) and rebenokGruppa.dataPostuplenya<=GETDATE();
2.4 Опис Windows інтерфейсу
Після запуску виконуваного файлу програма перевіряє налаштування, які зберігаються у файлі “tradeOrg.exe.Config”. Якщо клієнт не може з’єднатися з сервером, то буде виведено повідомлення користувачу про неможливість з’єднання.
Якщо користувач вирішить зробити нове з’єднання то буде виведено вікно для налаштування нового з’єднання (Рисунок 3). Це вікно дозволяє вибрати сервер, та аутентифікацію. Якщо з’єднання буде успішне, то нові налаштування будуть збережені у файлі “PhotoCenter.exe.Config” і при наступному запуску програми користувачу не потрібно буде вводити ці налаштування.
Головне вікно програми зображене на рисунку 4. При запуску клієнта чи зміні налаштувань визначається роль користувача. Наприклад на рисунку 4 зображено інтерфейс доступний адміністратору, а на рисунку 5 інтерфейс користувача, який зайшов під роллю відділу кадрів, і він не має тих можливостей, що має адміністратор.
Рисунок 3.
Інтерфейс програми розділено на 6 вкладок: (Рисунок 4) “Подключение”, ”Продажи” ”Склад”, “Кадри”, ”Платежи”, ”Справочники” , «Администрирование». На приклад, через вкладку “Продажи”
відбувається
робота з заказами, тобто додавання заказу, його редагування та видалення.
Рисунок 4.
Розглянемо на приклад додавання нової дитини. Це відбувається
натисканням кнопки «Добавить ребенка», після чого виводиться вікно (Рисунок 9)
в якому треба ввести дані дитини.
Рисунок 5.
Якщо потрібне буде зачислити дитину в групу потрібно
натиснути кнопку «Зачислити», після чого з’явиться вікно (Рисунок 6), де
потрібно групу.
Рисунок 6.
1. Microsoft SQL Server 2005. Библия пользователя: Пер. с англ. - М.: ООО «И.Д.Вильямс»,2008.
2. Дж. Грофф, П. Вайнберг SQL: Полное руководство: Пер. с англ. - 2-е изд., перераб. И доп. - К.: Издательская группа BHV, 2001.
. Б. Гамильтон ADO.NET Сборник рецептов. Для профессионалов. - СПб.: Питер, 2005.
. Сеппа Д. Программирование на Microsoft ADO.NET 2.0 Мастер-класс. / Пер. с англ. - М.: Издательство «Русская редакция»,2005.