Лабораторно упражнение №4



Дата12.02.2017
Размер122.66 Kb.

Лабораторно упражнение № 4

Разработка на приложение, използващо функционалните възможности на Excel

ЛАБОРАТОРНО УПРАЖНЕНИЕ № 4


РАЗРАБОТКА НА ПРИЛОЖЕНИЕ, ИЗПОЛЗВАЩО ФУНКЦИОНАЛНИТЕ ВЪЗМОЖНОСТИ НА MS EXCEL


  1. Въведение.

Съществува клас задачи, които са свързани с формиране, въвеждане и поддържане на таблично представена информация. Проблемът за разработването на приложение, използващо таблични данни може да бъде решен по два начина:



  • класически, посредством проектиране на файлова система или база от данни за съхранение на табличните данни и съответно разработване на потребителски интерфейс, осигуряващ визуализация на данните и изпълнение на проектираните манипулации с тях,

  • използване на функционалните възможности на MS EXCEL за поддържане и съхранение на таблични данни. MS EXCEL e комплектована с богата библиотека от функции за обработка на данните.

Във втория случай потребителския интерфейс може да бъде проектиран с предоставените от MS EXCEL средства или като се използват възможностите на Visual Basic.Net.


  1. Цел на лабораторното упражнение.

Лабораторното упражнение е ориентирано към разработване на приложение с потребителски интерфейс на Visual Basic.Net. В упражнението са демонстрирани програмни конструкции за установяване на референция към MS Excel, създаване на негови работни обекти, инициализация и обявяване на зони (граници) от клетки, въвеждане, обработка и извеждане на информация от тях, изпълняване на Excel функции, организиране на печат и обявяване на обекти за отстраняване. Тези действия се извършват значително по-лесно посредством Visual Basic.Net т.к. MS Excel разполага с VBA като програмен език за разработка на отделни обработващи процедури.

Функциите по създаване, поддържане, визуализация и обработка на данните се осигуряват от библиотеките на MS Excel.

За разработване на приложение, използващо функционалните възможности на MS Excel, е необходимо следното:



  • определяне номенклатурата на необходимите данни и тяхното таблично представяне,

  • разработване на потребителски интерфейс, осигуряващ въвеждането и верификацията на данните, както и комуникационни възможности за управление на операциите с тях,

  • осигуряване на референция към наличните класове и обекти на Excel, тяхното включване и извикване за изпълнение и не на последно място програмно унищожаване на създадените инстанции.

MS Excel предлага богата библиотека от обекти, поддържащи изключително разнообразие от методи. По-важните от тях са Application,Workbook ,Worksheet и Range. Както показват самите наименования, Application позволява управление и контрол на визуализацията, работа с обекти, изпълнение, манипулации с файлове, събития и др. Workbook организира работата с документи, стилове, страници, както с методите и свойствата на класа. Worksheet определя свойствата на обектите и тяхната защита. Range основно определя работната област от маркирани клетки, поддържа определени действия с тях и осигурява тяхната сортировка.



  1. Задание за лабораторно упражнение.

Да се проектира програмна система “Учебни планове” със следната функционалност:



  • разработване на нови учебни планове по специалности и години,

  • копиране на стари учебни планове с цел създаване на нови при значително съвпадение на по-голямата част от дисциплините,

  • интерфейсни възможности за добавяне, корекция и изтриване на дисциплини от избрани учебни планове,

  • съпоставяне на учебни планове от една и съща специалност и между различни специалности за осигуряването на случаите при преминаване от една специалност в друга или при презаписване на учебна година,

  • справка и документиране на учебни планове.

Съгласно заданието и поставената цел на лабораторното упражнение, учебните планове ще се съхраняват в MS Excel таблици, като плановете на всяка специалност ще са комплектовани съвместно по години.

За изпълнението на заданието е необходимо следното:




    1. Обявяване на ново приложение на VB.Net с форма за организиране на потребителския интерфейс с наименование frmMain.




    1. Създаване на референция към библиотеката на MS Excel.От главното меню на средата за развитие се избира Project | Add Reference. От диалоговата форма се избира страницата COM и съответно обектната библиотека Microsoft Excel 9.0 Object Library .




    1. В класа на frmMain се обявяват следните обекти и променливи:


Dim xlObj As Object

Dim xlApp As Excel.Application

Dim xlBook As Excel.Workbook

Dim xlSheet As Excel.Worksheet

Dim xlRange As Excel.Range

------------------------



Dim ParControl As Boolean ' за проверка за пълнота на въведените

данни

Dim ParSelect As Integer ' избрана позиция от главното меню

Dim FileName As String ' името на xls файла

Dim selectedMajor As String



    1. На фиг.4.1 е показано първоначалното състояние на формата frmMain.



Фиг. 4.1

Първоначално състояние на формата frmMain


Във формата са проектирани главно меню с позиции СПРАВКА, КОРЕКЦИЯ с падащо подменю Добави дисциплина, Коригирай дисциплина и Изтрий дисциплина, УЧЕБЕН ПЛАН с падащо меню Избери учебен план за копиране, Копирай избрания учебен план и Нов учебен план, СРАВНИ ПЛАНОВЕ и КРАЙ

Главното меню е дублирано с графично меню. Всеки бутон съдържа подходящо избрана икона и съответно помощен текст, съхранен като стринг в параметъра ToolTipText на колекцията ToolBarButton




    1. В два панела са разположени двойка RadioButton с надписи Редовно/Задочно обучение и Магистър/Бакалавър




    1. В ComboBox е въведен списък на специалностите, по които се обучават студенти. Препоръчително е ComboBox да визуализира наименованието на специалността, за която най-често се изменя учебния план. Ако такава информация липсва в параметъра Text се визуализира първата от списъка специалност.




    1. Следващият ComboBox определя годината, от която учебния план влиза в сила. Препоръчително е да се визуализира текущата година. Диапазонът на изменение на годините започва от целесъобразно начало и завършва пет години след текущата.




    1. Формата е комплектована с StatusBar. В неговият параметър Text се визуализира стринг, съдържащ информация за предназначението на съответния обект, над който се намира курсора, диагностична информация или необходимите следващи действия.

Във формата с определените размери се избират, а не въвеждат данни, които позволяват еднозначно да се идентифицира всеки учебен план. В демонстрационното приложение е приет следния начин за формиране и кодиране името на файла, съдържащ учебните планове по години за избрана специалност.

Първата буква R/Z показва редовно или задочно обучение, втората буква B/M – съответно бакалавър или магистър, последните четири цифри от наименованието показват годината на учебния план. Между тях е разположена абревиатурата на избраната специалност.

При формирано име на файл (учебни планове по години за специалност) могат да се изпълнят всички позиции от главното меню.




    1. За позициите свързани с корекция съдържанието на учебните планове е необходима допълнителна информация. При избор на съответна позиция от менюто се визуализира разширение на формата показано на фиг.4.2.



Фиг.4.2

Разширена форма frmMain




    1. Допълнителните текстови полета са разположени върху Panel обект, който се визуализира само при разширяване размера на формата. Тяхното предназначение е следното:

TB1 – пълно наименование на дисциплината. Полето е с филтър, пропускащ български букви, цифри, римските главни букви I,V и Х, специалните символи “,”,”-“ и др.

TB2 – съкратеното наименование на дисциплината. Филтърът е аналогичен на предното текстово поле. Дължината е определена до 5 символа.

TB3, TB4, TB5 и TB6 – текстови полета предназначени за въвеждане на семестъра в който се провежда изпитната процедура. Допуска се само една (две) цифри в диапазона от 1 до 8 при разработката на учебен план за образователно квалификационната степен “Бакалавър” и от 1 до 11 за “Магистър”.

TB7, TB8 и TB9 – текстови полета за въвеждане учебното натоварване на дисциплината, брой часове за лекции, семинарни и лабораторни упражнения. Въвеждат се само до три разрядни числа. В полето TB10 се сумират текущите стойности на предните три полета. Сумирането се извършва при всяко въвеждане на цифра в което и да е поле.

TB11 – броят на седмиците в семестър, до две цифри. По подразбиране стойността на полето е 15.

TB12 – шифър на дисциплината. Уникален код еднозначно идентифициращ дисциплината. Една и съща дисциплина може да бъде включена в различни учебни планове на определена специалност или в плановете на различни специалности.

    1. Трите бутона изпълняват следните функции:

ОТКАЗ – на всички тестови полета се присвоява празен стринг и TB11 приема стойност 15.

ЗАПИШИ – добавя нова дисциплина към идентифицирания учебен план, извършва корекция на дисциплина от плана според въведения шифър или отстранява дисциплина с посочения шифър.

ПОКАЖИ – визуализира идентифицирания учебен план за определената начална година.


    1. Процедурата за формиране наименованието на учебния план има следния програмен текст:


Sub SubFileName ()

' подпрограма за формиране името на файла

'----Check Control----------------------

If Trim (CB1.Text) = "" Then

MsgBox ("Изберете СПЕЦИАЛНОСТТА !", 32, "КОРЕКЦИЯ")

CB2.Focus ()

ParControl = True

Exit Sub

End If

If Trim (CB2.Text) = "" Then

MsgBox("Изберете ГОДИНАТА на учебния план !", 32, " КОРЕКЦИЯ ")

CB1.Focus ()

ParControl = True

Exit Sub

End If

' образуване името на файла при справка

FileName = "R"

If RB2.Checked = True Then FileName = "Z"

If RB3.Checked = True Then FileName = FileName + "B" Else FileName = FileName + "M"

Select Case CB1.SelectedIndex

Case 0 : FileName = FileName + "XM"

Case 1 : FileName = FileName + "MTT"

Case 2 : FileName = FileName + "TTT"

Case 3 : FileName = FileName + "T"

Case 4 : FileName = FileName + "ET"

Case 5 : FileName = FileName + "AIYT"

Case 6 : FileName = FileName + "E"

Case 7 : FileName = FileName + "KTT"

Case 8 : FileName = FileName + "KCT"

Case 9 : FileName = FileName + "EEEO"

Case 10 : FileName = FileName + "EFP"

Case 11 : FileName = FileName + "KMT"

Case 12 : FileName = FileName + "K"

Case 13 : FileName = FileName + "KMM"

Case 14 : FileName = FileName + "ID"

Case 15 : FileName = FileName + "IM")

Case 16 : FileName = FileName + "ETOMOC"

Case 17 : FileName = FileName + "P"

Case 18 : FileName = FileName + "PA"

End Select

FileName = FileName + Trim (CB2.Text) + ".xls"

ParControl = False

End Sub

Процедурата включва: проверка за минимално необходимите данни, формиране наименованието на файла, съдържащ учебния план и поддържане на параметъра ParControl за индикация на грешка. Примерната процедура има следните недостатъци: проверката на данните не е пълна, необходимо е да се разработи отделна процедура, например SubControl(), която да проверява всички полета, да връща фокуса в полето с липсващи или грешни данни, като отчита положението на курсора, да поддържа параметър за грешка, да визуализира съобщения, съдържащи избраните действия, например добави, промени, изтрий и т.н.

Списъкът на учебните специалности е фиксиран по брой и абревиатура. Проектното решение трябва да включва въвеждане на специалностите от външен носител, например от файл или от таблица на база от данни.


    1. Процедурата за визуализация на избрания учебен план (файл) съдържа следния програмен текст:


Private Sub showExcelFile ()

xlApp = New Excel.Application

xlBook = xlApp.Workbooks.Open ("C:\" + FileName)

xlApp.Visible = True

End Sub

Пътят до файла е фиксиран. Препоръчително е пътят да се определя от текущата директория където е инсталирано приложението. На Workbooks обекта се визуализира първата страница. Ако избраната специалност има няколко плана в различни години трябва да се визуализира този план, който отговаря на избраната година.




    1. Ако за избраната специалност липсва учебен план, то трябва да се създаде такъв по образец валиден и утвърден за съответния университет. За целта е препоръчително да се разполага с файл образец, съдържащ постоянните надписи и съответните настройки на колони и редове. Примерна процедура


'----CheckFileControl ------------------

If File. Exists ("C:\" + FileName) Then

MsgBox ("За избраната специалност” + CB2.Text + “и " +

CB1.Text + “година” + Chr (13) + " съществува учебен план"

+ Chr(13) + " СЛЕДВА ОТКАЗ !", 16, "Нов учебен план”)

ParControl = False

Else

FileCopy ("C:\NewCopyFileName", "C:\" + FileName)

End If
xlSheet = xlBook.Worksheets (1)

xlSheet.Name = CB1.Text
Процедурата проверява наличието на файл с образуваното име. Ако файлът съществува следва отказ. В противен случай образецът NewCopyFileName се копира с име съхранено в FileName. Пътищата до файловете са фиксирани. Препоръчително те да зависят от директорията на приложението.

Определя се първата страница и се присвоява име, съответствуващо на избраната година.




    1. За да се въведат данни в учебния план е необходимо следното:

  • да се определи номера на страницата, съдържаща учебния план на специалността за избраната година и да се въведат новите данни.



Dim i As Integer = 5

Dim j As Integer = 0

Dim k As Integer = 0
SheetsCount = xlBook.Worksheets.Count
For k = 1 To SheetsCount

xlSheet = xlBook.Worksheets(k)

If Val(xlSheet.Name) = Val(CB1.Text) Then

ParSheetExists = True

Do While xlSheet.Range ("B" & i).Text <> ""

i = i + 1

Loop

j=i - 5

xlSheet.Cells (i, 1) = TB12.Text

xlSheet.Cells (i, 2) = j.ToString

xlSheet.Cells (i, 3) = TB1.Text

xlSheet.Cells (i, 4) = TB3.Text

xlSheet.Cells (i, 5) = TB4.Text

xlSheet.Cells (i, 6) = TB5.Text

xlSheet.Cells (i, 7) = TB6.Text

xlSheet.Cells (i, 8) = TB10.Text

xlSheet.Cells (i, 9) = TB7.Text

xlSheet.Cells (i, 10) = TB8.Text

xlSheet.Cells (i, 11) = TB9.Text

Exit For

End If

Next

В процедурата, със SheetsCount се определят броя на страниците в книгата. В цикъл се търси съвпадение между избраната година и наименованието на страницата, което също е година. След определянето на страницата, в случая, например добави се търси първия свободен ред в таблицата (плана). Шифърът на дисциплината се записва в първа колона. Не е задължително шифъра да се визуализира. Ширината на първата колона се нулира.

Параметърът ParSheetExists индицира открита страница – учебен план с избрана година.

В процедурата липсва проверка дали дисциплината, която се добавя вече не съществува в плана.



  • по аналогичен начин се проектират възможностите промени и изтрий.




    1. За добавянето на нов учебен план към съществуващите планове на зададена специалност е необходимо да се определи местоположението на новата страница спрямо останалите. За целта


If Val(xlSheet.Name) < Int32.Parse(CB1.Text) Then

xlSheet.Copy (Before:=xlBook.Sheets((k)))

xlSheet = xlBook.Worksheets (k)

xlSheet.Name = CB1.Text

Exit For

End If

Ако годината на новия план е с година по-голяма от вече съществуващ, то образецът на новия план се записва преди него, в частност и като първи. В противен случай се записва като последен.


xlSheet.Copy (After:=xlBook.Sheets((SheetsCount)))


    1. Копирането на учебен план се извършва в следната технологична последователност:

  • въвеждат се данните на плана образец и се избира позиция Избери учебен план за копиране,

  • след това се въвеждат данните на новия план и се избира Копирай избрания учебен план.

При копирането на планове се извършва проверка за наличност на плана за копиране и съответно дали съществува вече план, който трябва да бъде създаден като нов


    1. Технологично процедурата за сравняване на учебни планове се извършва в следната последователност:

  • въвеждат се данните на първия учебен план (специалност и година) като се проверява неговата наличност,

  • избира се позицията за сравняване на планове,

  • въвеждат се данните на втория учебен план, като се проверява неговата наличност

Резултатът представлява таблица, в която са посочени кои дисциплини от втория учебен план не са включени в първия. Студент, който е започнал обучението си по първия план, трябва допълнително да изучава тези дисциплини, които са пропуснати до неговия курс на обучение в момента.

Дисциплините се сравняват по шифър, а не по наименование. Дисциплини с еднакъв шифър, но различен хорариум също се отчитат като отделна таблица.





  1. Задания за самостоятелна разработка.




    1. Да се разработи програмна система за отчитане успеха на студентите по учебни групи от избран курс и специалност.

Формата, осигуряваща потребителския интерфейс, трябва да съдържа списък на специалностите, учебните планове, курсовете и групите. За всяка избрана група да се визуализира списък на студентите, техните факултетни номера и оценки от положените изпити. Посредством функциите на MS Excel автоматично да се изчислява средния успех от следването до момента, средния успех на групата по дисциплини, по всички дисциплини и съответно средния успех на курса.

Главното меню съдържа позиции за добавяне/отстраняване на нов курс и/или нова група. За всяка група – добавяне/отстраняване на студент или корекция на личните му данни.

При въведен факултетен номер на студент да се изработва справка за успеха от следването или да се въвежда/изтрива или коригира оценка по зададена дисциплина.


    1. Да се разработи приложение за изчисляване на работната заплата на отделни звена от структурата на университета.

Потребителският интерфейс включва добавяне/изтриване и корекция на звена в структурата. За всяко избрано звено добавяне/изтриване и корекция на личния състав. За избран служител от звено, въвеждане на личните данни свързани с изчисляване на работната заплата. С помощта на MS Excel се изчислява заплатата на всеки служител, отделно за звеното данните се визуализират в таблица като се изчислява фонда работна заплата за звено и за университета като цяло. Примерна номенклатура на приходната и разходна части на заплатата:

Номенклатура на приходната част:

Основна заплата

Класове – 2% върху основната заплата

Научна степен

Наднормени часове брой х лв. за един час

Допълнително стимулиране



Номенклатура на разходната част (удръжки):

Данък общ доход

Данък обществено осигуряване

Здравно осигуряване

Отсъствия по болест брой раб.дни х лв за един ден

Други





База данных защищена авторским правом ©obuch.info 2016
отнасят до администрацията

    Начална страница