Пошта

[ виправити ] текст може містити помилки, будь ласка перевіряйте перш ніж використовувати.

скачати

Федеральне агентство з освіти
Південно-Уральський Державний університет
Кафедра Інформатика
Пояснювальна записка до курсової роботи з дисципліни
«Система автоматизації економічних розрахунків»
на тему «Пошта»
Виконав:
студент II курсу факультету
Економіки та Управління
групи ЕіУ-264
Кадученко Вадим Дмитрович
Перевірив:
Гірських Є.М.

Челябінськ 2007

Анотація

Розроблено програму автоматизації обліку роботи пошти. Автоматизований облік отриманої, відправленої кореспонденції, видача кореспонденції, друк квитанцій про оплату і сповіщень для одержувачів. Програма надає сумарні звіти отриманої і відправленої кореспонденції, а також супровідні відомості для отриманої і відправленої кореспонденції за вибраний день.

Зміст

Анотація. 2
Зміст. 3
Введення. 4
Основна частина. 5
Постановка завдання. 5
Опис вихідних даних. 6
Опис структури програми. 9
Опис форм. 10
Опис звітів. 15
Висновок. 17
Список використаної літератури .. 18

Введення

Програма Microsoft Excel, що входить в пакет офісних програм Microsoft Office, являє собою потужну систему розробки систем автоматизації економічних розрахунків. Microsoft Excel представляє можливість як простого запису послідовності дій за допомогою макросів, так і створення складних алгоритмів і повноцінних додатків на його основі за допомогою вбудованої мови програмування Visual Basic for Applications. Велика кількість вбудованих функцій і процедур значно спрощує процес створення подібних програм. Ці можливості Microsoft Excel були широко використані в ході даної роботи.

Основна частина

Постановка завдання.

Використовуючи засоби Excel по створенню вікон діалогу і написання макросів на VB, створити додаток, що автоматизує облік відправленої та отриманої кореспонденції на пошті. Додаток повинен виконувати наступні функції:
§ Реєструвати відправлену кореспонденцію і друкувати квитанцію про оплату.
§ Реєструвати отриману кореспонденцію та її видачу.
§ Друкувати повідомлення для одержувача кореспонденції
§ Розраховувати вартість відправлення кореспонденції в залежності від пункту призначення.
§ Складати звіт про напрямки про вартість і вазі кореспонденції.
§ Формувати супровідну відомість.

Опис вихідних даних

Вихідними даними для програми є 5 таблиць. 3 таблиці містять вартості відправлення посилок, бандеролей і замовних листів (за 1 кг ) За напрямами і виглядають наступним чином (див. рис. SEQ Рисунок \ * ARABIC 1):

Рисунок 1 - Таблиця вартостей відправлення посилок
На малюнку представлена ​​таблиця вартостей відправлення посилок, відповідні таблиці для бандеролей та рекомендованих листів виглядають аналогічно, тому наводити їх у вигляді малюнків немає необхідності. Дані, занесені до таблиці вартостей, є незмінними. Дані з таблиці вартостей використовуються при автоматичному розрахунку вартості відправлення кореспонденції.
Наступні 2 таблиці є ізменямимі і заповнюються послідовно при роботі з додатком. Ці таблиці містять інформацію про надіслану та отриманої кореспонденції.

Рисунок 2 - Таблиця відправленої кореспонденції
Таблиця відправленої кореспонденції містить наступну інформацію: порядковий номер кореспонденції, дату відправлення, вид кореспонденції (посилка, бандероль або рекомендований лист), пункт призначення, ПІБ та точну адресу відправника, ПІБ та точну адресу одержувача, вага, вартість відправлення. Таблиця отриманої кореспонденції містить повністю аналогічні стовпці плюс 1 додатковий стовпець «Видано», який містить значення «ВИДАНИЙ», якщо кореспонденція видана одержувачу, і порожню комірку у противному випадку.

Рисунок 3 - Частина таблиці «Отримана кореспонденція»
До вихідних даних також можна віднести два бланки квитанцій, осередки яких заповнюються потрібними значеннями. На малюнку 4 представлений зразок повідомлення, що доставляється на будинок одержувачу, якщо на його ім'я отримана кореспонденція.

Рисунок 4 - Зразок повідомлення, що формується програмою
На малюнку 5 представлений зразок квитанції про оплату відправки кореспонденції. Дана квитанція видається на руки відправникові.

Малюнок 5 - Зразок квитанції про оплату

Опис структури програми

Додаток містить 2 форми: основну, «Пошта», і допоміжну «Довідка». Схема підпорядкування форм представлена ​​в додатку А. Форма «Пошта» містить необхідні елементи для введення даних про надіслану та отриманої кореспонденції, які заносяться в таблиці «Відправлена ​​кореспонденція» і «Отримана кореспонденція» відповідно. На етапі введення даних передбачено формування повідомлення, квитанції про оплату відправки (за умови коректності введених даних). Крім цього, на формі «Пошта» міститься список отриманої кореспонденції, ще не виданої на руки одержувачам. Вкладка «Звіти» форми «Пошта» містить 4 кнопки, кожна з яких викликає відповідний звіт: звіт за напрямками для відправленої або отриманої кореспонденції, а також супровідну відомість для відправленої або отриманої кореспонденції.
При запуску робочої книги додаток Excel стає прихованим, на екрані відображається основна форма «Пошта». Таблиці вихідних даних недоступні користувачеві для перегляду і редагування. При формуванні звіту стає видимим відповідний лист робочої книги Excel, на якій розташований цей звіт. Для продовження вводу даних або формування іншого звіту користувач повинен повернутися на форму, для чого передбачена кнопка «Повернутися на форму» на додаткової панелі інструментів.
При завершенні роботи з програмою всі дані, що містяться в робочій книзі (в тому числі останні звіти) зберігаються.
При розробці програми використаний офіційний логотип фірми «Пошта Росії».

Опис форм

Форма «Пошта» містить 4 вкладки «Відправлення», «Отримання», «Видача», «Таблиці та звіти».

Малюнок 6 - Вкладка «Відправлення» форми «Пошта»
Вкладка «Відправлення» (див. рис. 6) містить наступні елементи: TextBox «Дата», 2 компонента ComboBox для вибору виду кореспонденції (посилка, бандероль або рекомендований лист) і пункту призначення, 4 компоненти TextBox для введення ПІБ та адреси отримувача та відправника , окремий TextBox для введення ваги кореспонденції. При зміні виду кореспонденції, пункту призначення або ваги (обробляються події OnChange відповідних компонент) автоматично розраховується вартість відправлення, яка відображається на компоненті Label10. Кнопка «Відправити» додає введені користувачем дані в таблицю «Відправлена ​​кореспонденція», кнопка «Роздрукувати квитанцію про оплату» підставляє введені користувачем дані в комірки квитанції (див. рис. 5). Автоматично здійснюється перевірка введених користувачем даних: якщо будь-яка з полів не заповнене, в полі «Вага» міститься нечислове значення, в полі «Дата» - значення, яке не є датою, то запис даних проведена не буде і користувач побачить повідомлення про помилку .

Малюнок 7 - Вкладка «Отримання» форми «Пошта»
Вкладка «Отримання» форми «Пошта» (див. рис. 7) містить повністю аналогічні елементи для введення вихідних даних. Відсутній лише компонент Label, на який виводиться вартість відправки (за непотрібністю). Перевірка введених даних здійснюється аналогічно. Кнопка «Версія сповіщення» підставляє введені дані в комірки бланка повідомлення (представлений на малюнку 4), кнопка «Отримати» заносить дані в таблицю «Отримана кореспонденція», причому в осередок «Видано» значення не заноситься.

Малюнок 8 - Вкладка «Видача» форми «Пошта»
На вкладці «Видача» форми «Пошта» (див. рис. 8) міститься динамічно оновлюваний компонент ListBox, в якому відображаються всі рядки таблиці «Отримана кореспонденція», для яких у стовпці «Видано» знаходиться пусте значення. Список оновлюється при кожному натисканні кнопки «Отримати» на вкладці «Отримання» (збільшується на один рядок). При кожному натисканні кнопки «Видати» обрана рядок видаляється зі списку, а у відповідну клітинку таблиці «Отримана кореспонденція" заноситься значення «ВИДАНИЙ».

Рисунок 9 - Вкладка «Таблиці та звіти» форми «Пошта»
Вкладка «Таблиці та звіти» форми «Пошта» (див. рис. 9) містить 4 кнопки для 4 звітів відповідно. Докладно звіти за напрямами і супровідні відомості описані нижче, в розділі «Опис звітів».
Кнопка «Вихід» закриває форму і зберігає поточну робочу книгу, кнопка «Довідка» відображає форму «Довідка», яка містить короткі інструкції для користувача по роботі з програмою.

Рисунок 10 - Вікно довідки

Опис звітів

З повним програмним кодом звітів можна ознайомитися в додатку Б.
1) Звіт за напрямами (відправлення), звіт за напрямами (отримання). Формує таблицю, в якій відображається сумарна кількість відправлених (або, відповідно, отриманих) у кожне місто посилок, бандеролей і замовних листів, а також їх сумарна вага. Приклад цього звіту знаходиться в таблиці 1:
Таблиця 1
приклад звіту за напрямами.
Напрямок
Відправлено посилок, шт
Загальна вага посилок
Відправлено бандеролей, шт.
Загальна вага бандеролей
Відправлено листів, шт.
Загальна вага листів
Москва
1
3,5
0
0
0
0
Санкт-Петербург
0
0
1
2
0
0
Курган
0
0
0
0
0
0
Омськ
0
0
0
0
0
0
Єкатеринбург
0
0
0
0
2
0,5
Новосибірськ
0
0
0
0
0
0
Звіти за напрямками для надіслану та отриманої кореспонденції однакові, різниця лише в таблиці вихідних даних. Звіти розташовуються на аркуші «Звіти», який стає видно користувачеві при формуванні цього звіту. Вбудовані засоби і функції Excel не використовувалися, підрахунок ваги і кількості проводився безпосередньо, переглядом вихідної таблиці з використанням допоміжних змінних.
2) Супровідна відомість (відправлення), супровідна відомість (отримання). Формує вибірку з таблиці вихідних даних («Відправлена ​​кореспонденція» або «Отримана кореспонденція») за один день. Дата вводиться користувачем з клавіатури, при некоректному введенні відображається вікно вводу до тих пір, поки не буде введена коректна дата. У супровідній відомості не вказується вартість відправки кореспонденції. Приклад цієї супровідної відомості представлений на малюнку 11.

Малюнок 11 - Приклад супровідної відомості
Супровідна відомість для надіслану та отриманої кореспонденції однакові, різниця лише в оброблюваній таблиці вихідних даних. Звіти розташовуються на аркуші «Супровідна відомість». Використовувалися методи Copy і Paste, оскільки копіювання результатів розширеного фільтра безпосередньо на інший аркуш неможливо. Крім цього, не використовуються додаткові осередки робочих аркушів.
3) Звіт про невиданий кореспонденції. Цей звіт відображається не на комірках книги Excel, а на компоненті ListBox форми (див. рис. 8). Список оновлюється при кожному натисканні кнопки «Отримати» (тобто при отриманні кореспонденції). При кожному натисканні кнопки «Видати» обрана рядок видаляється зі звіту, так як обрана кореспонденція видається одержувачу. При розробці цього звіту використовувався механізм вбудованого в Excel розширеного фільтра, а осередки - результат цього розширеного фільтра використовувалися як RowSource для компоненти ListBox. Приклад звіту про невиданий кореспонденції знаходиться на рис. 8.

Висновок

У ході роботи було розроблено повноцінне додаток з використанням Microsoft Excel на мові VBA, що дозволяє автоматизувати діяльність пошти з обліку отриманих і відправлених посилок, бандеролей і листів без придбання додаткових спеціалізованих програмних продуктів. Розроблене додаток повністю задовольняє вимогам, поставленим в задачі: проводиться облік кореспонденції, формуються бланки сповіщення і необхідні для роботи пошти звіти. У ході роботи були вивчені засоби мови VBA, що дозволяють приховувати і відображати окремі листи та все застосування цілком; методи та засоби роботи як з окремими осередками, так і з їх діапазонами.
Подальший розвиток програмного продукту можливо в наступних напрямках:
§ розширення вихідних даних і оброблюваної кореспонденції (накладна плата, грошові перекази та ін)
§ додавання нових звітів на базі вже наявних вихідних даних (наприклад, формування списку кореспонденції, яка не була видана одержувачу протягом місяця, а тому підлягає поверненню відправнику і т.д.)

Список використаної літератури

1) Вбудована довідкова система Microsoft Office Excel.
2) Тематичний розділ форуму city.is74.ru з програмування на VBA.
3) Довідкова система MSDN

Додаток А

Схема зв'язку форм додатки.
Виклик форми «Довідка» здійснюється після натискання кнопки «Довідка» на головній формі «Пошта».
Виклик головної форми Пошта проводиться автоматично при відкритті робочої книги.

Додаток Б

Нижче представлені основні смислові фрагменти коду програми.
Дубльовані фрагменти коду (наприклад, супровідної відомості отриманої і відправленої кореспонденції) наводяться 1 раз.
'Обробка натискання кнопки «Відправити». Додавання даних у вихідну таблицю
Private Sub CommandButton11_Click ()
Dim Flag As Boolean
Flag = True
If IsNumeric (TextBox6.Text) = False Or IsDate (TextBox1.Text) = False Or ComboBox1.Value = "" Or _
ComboBox1.Value = "" Or TextBox1.Text = "" Or TextBox2.Text = "" Or TextBox3.Text = "" Or _
TextBox4.Text = "" Or TextBox5.Text = "" Or TextBox6.Text = "" Then Flag = False
If Flag = False Then
a = MsgBox ("Дані введені невірно або не повністю", vbCritical, "Помилка")
Exit Sub
End If
Sheets ("Відправлена ​​кореспонденція"). Select
Range ("A3"). Select
Selection.CurrentRegion.Select
i = Selection.Rows.Count
j = i + 3
Range ("A" & j). Value = i
Range ("B" & j). Value = TextBox1.Text
Range ("C" & j). Value = ComboBox1.Value
Range ("D" & j). Value = ComboBox2.Value
Range ("E" & j). Value = TextBox2.Text
Range ("F" & j). Value = TextBox3.Text
Range ("G" & j). Value = TextBox5.Text
Range ("H" & j). Value = TextBox4.Text
Range ("I" & j). Value = TextBox6.Text
Range ("J" & j). Value = Label10.Caption
End Sub
'Обробка натискання кнопки друку квитанції про оплату відправки кореспонденції
Private Sub CommandButton4_Click ()
If IsNumeric (TextBox6.Text) = False Or IsDate (TextBox1.Text) = False Or ComboBox1.Value = "" Or _
ComboBox1.Value = "" Or TextBox1.Text = "" Or TextBox2.Text = "" Or TextBox3.Text = "" Or _
TextBox4.Text = "" Or TextBox5.Text = "" Or TextBox6.Text = "" Then
a = MsgBox ("Дані введені невірно або не повністю", vbCritical, "Помилка")
Exit Sub
End If
Sheets ("Відправлена ​​кореспонденція"). Select
Range ("A3"). Select
Selection.CurrentRegion.Select
i = Selection.Rows.Count - 1
Sheets ("Бланки"). Select
Range ("Q18"). Value = TextBox1.Text
Range ("P19"). Value = i
Range ("M23"). Value = TextBox2.Text
Range ("M24"). Value = TextBox3.Text
Range ("M25"). Value = TextBox5.Text
Range ("M26"). Value = TextBox4.Text
Range ("N27"). Value = ComboBox1.Value
Range ("L28"). Value = TextBox6.Text
Range ("M29"). Value = Label10.Caption
Application.Visible = True
For Each m In Sheets
If m.Name <> "Бланки" Then m.Visible = False
Next m
Application.Visible = True
Почта.Hide
End Sub
'Функція, яка розраховує вартість відправлення
Private Function DispatchCost (City As String, Kind As String, Optional weight As Double)
Sheets ("Вартість відправки"). Select
Range ("A2"). Select
Selection.CurrentRegion.Select
n = Selection.Rows.Count
For i = 3 To n Step 1
If InStr (1, Sheets ("Вартість відправки"). Range ("A" & i). Value, City, vbTextCompare)> 0 Then
If Kind = "посилка" Then DispatchCost = weight * Range ("B" & i). Value
If Kind = "бандероль" Then DispatchCost = weight * Range ("E" & i). Value
If Kind = "рекомендований лист" Then DispatchCost = weight * Range ("H" & i). Value
End If
Next i
End Function
'Перерахунок вартості відправлення кореспонденції при зміні міста. Аналогічний код обробляє зміна ваги і типу кореспонденції
Private Sub ComboBox2_Change ()
If IsNumeric (TextBox6.Text) And ComboBox1.Value <> "" And ComboBox2.Value <> "" And TextBox6.Text <> "" _
Then Label10.Caption = DispatchCost (ComboBox2.Value, ComboBox1.Value, CDbl (TextBox6.Text)) _
Else Label10.Caption = ""
End Sub
"Звіт за напрямами (відправлення)
Private Sub CommandButton5_Click ()
Worksheets ("Звіти"). Activate
Cells (3, 1). Select
Selection.CurrentRegion.Select
n = Selection.Rows.Count + 2
Worksheets ("Відправлена ​​кореспонденція"). Select
Cells (3, 1). Select
Selection.CurrentRegion.Select
n2 = Selection.Rows.Count + 2
For i = 4 To n Step 1
Sheets ("Звіти"). Select
CurrentCity = Range ("A" & i). Value 'перебір міст
Count1 = 0
Count2 = 0
Count3 = 0
Sum1 = 0
Sum2 = 0
Sum3 = 0
Sheets ("Відправлена ​​кореспонденція"). Select
For j = 4 To n2 Step 1 'перебір відправленої кореспонденції
If Range ("D" & j). Value = CurrentCity Then
If Range ("C" & j). Value = "посилка" Then
Count1 = Count1 + 1
Sum1 = Sum1 + Range ("I" & j). Value
End If
If Range ("C" & j). Value = "бандероль" Then
Count2 = Count2 + 1
Sum2 = Sum2 + Range ("I" & j). Value
End If
If Range ("C" & j). Value = "рекомендований лист" Then
Count3 = Count3 + 1
Sum3 = Sum3 + Range ("I" & j). Value
End If
End If
Next j
Sheets ("Звіти"). Select
Range ("B" & i). Value = Count1
Range ("C" & i). Value = Sum1
Range ("D" & i). Value = Count2
Range ("E" & i). Value = Sum2
Range ("F" & i). Value = Count3
Range ("G" & i). Value = Sum3
Next i
For Each m In Sheets
If m.Name <> "Звіти" Then m.Visible = False
Next m
Application.Visible = True
Почта.Hide
End Sub
'Формування супровідної відомості (отримання)
Private Sub CommandButton8_Click ()
data = InputBox ("Вкажіть дату", "Супровідна відомість (отримання)")
While IsDate (data) = False
data = InputBox ("Вкажіть дату", "Супровідна відомість (отримання)")
Wend
Sheets ("Супровідна відомість"). Select
Range ("K4"). Select
Selection.CurrentRegion.Select
n = Selection.Rows.Count + 4
If n> 4 Then Range ("K5: S" & n). Clear
Sheets ("Отримана кореспонденція"). Select
Range ("A3"). Select
Selection.CurrentRegion.Select
n = Selection.Rows.Count + 2
c = 5
For i = 4 To n Step 1
Sheets ("Отримана кореспонденція"). Activate
If Range ("B" & i). Value = data Then
Range ("A" & i & ": I" & i). Copy
Sheets ("Супровідна відомість"). Activate
Range ("K" & c). Select
ActiveSheet.Paste
c = c + 1
End If
Next i
For Each m In Sheets
If m.Name <> "Супровідна відомість" Then m.Visible = False
Next m
Application.Visible = True
Почта.Hide
End Sub
'Обробка натискання кнопки «Видати»
Private Sub CommandButton13_Click ()
i = ListBox1.ListIndex
j = ListBox1.List (i, 0) + 3
Sheets ("Отримана кореспонденція"). Select
Range ("J" & j). Value = "ВИДАНИЙ"
Range ("A3"). Select
Selection.CurrentRegion.Select
n = Selection.Rows.Count + 2
Range ("N3"). Select
Selection.CurrentRegion.Select
Selection.Clear
Range ("A3: J" & n). AdvancedFilter Action: = xlFilterCopy, CriteriaRange: = Range (_
"L3: L4"), CopyToRange: = Range ("N3"), Unique: = False
Range ("N3"). Select
Selection.CurrentRegion.Select
n = Selection.Rows.Count + 3
ListBox1.RowSource = "N4: V" & n
End Sub
Додати в блог або на сайт

Цей текст може містити помилки.

Програмування, комп'ютери, інформатика і кібернетика | Курсова
53.5кб. | скачати


Схожі роботи:
Електронна пошта
Електронна пошта 3
Електронна пошта НБУ 2
Пошта Росії - історія
Електронна пошта НБУ
Електронна пошта 2 Поняття і
Факсимільні адреси та електронна пошта
Електронна пошта 2 Порівняльна характеристика
Електронна пошта як засіб ділових комунікацій
© Усі права захищені
написати до нас