Соответствие информационных объектов и элементов проекта 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Соответствие информационных объектов и элементов проекта



 

Объект Реквизиты Льготы Расписание UserForm1 Билет
Организация b1       a1
Город b2       a2
№ кассы b3       a3
Пункт назначения     a2:ai ComboBox1 c6
№ рейса     b2:bi TextBox1 c7
Время отправления     c2:ci TextBox2 c8
Время в пути     d2:di TextBox3 c9
Тариф     e2:ei TextBox4 c10
№ места     g2:gi TextBox5 c11
Кол-во свободных мест     f2:fi TextBox6  
Тип (льгота)   a2:ai   CombotBox1 c12
Код льготы   b2:bi   TextBox7  
Скидка   c2:ci   TextBox8  
Стоимость       TextBox9 c13
Дата       TextBox10 c14
Время       TextBox11 c15

 

       В первую очередь программируются процедуры, обрабатывающие событие загрузки диалоговой формы. При загрузке формы должны автоматически заполняться два раскрывающихся списка (ComboBox1 и ComboBox2) – «Пункт назначения» и «Льготы». Нужные данные хранятся на соответствующих рабочих листах проекта. Двойным щелчком мыши по области формы переключиться в окно процедур и выбрать событие Activate.

Текст процедуры приведен ниже.

 

Private Sub UserForm_Activate()

Dim i, j As Integer

i = 2

Do While Расписание.Cells(i, 1) <> ""

ComboBox1.AddItem (Расписание.Cells(i, 1))

i = i + 1

Loop

j = 2

Do While Льготы.Cells(j, 1) <> ""

ComboBox2.AddItem (Льготы.Cells(j, 1))

j = j + 1

Loop

TextBox10.Text = Date

TextBox11.Text = Time

End Sub

       Данная процедура просматривает и добавляет в раскрывающиеся списки ComboBox1 и ComboBox2 содержимое заполненных ячеек первых столбцов рабочих листов «Льготы» и «Расписание». Заполнение списков прекращается, как только в очередной строке данные отсутствуют. Поскольку первая строка в таблицах – строка заголовков, заполнение списков начинается со второй строки рабочих листов. В текстовые поля TextBox1 и TextBox2 выводятся текущие дата и время.

       При написании процедуры следует обратить особое внимание на соответствие имен объектов в процедуре именам, используемым в проекте. В случае выявления их несоответствия рекомендуется сделать следующее. В окне редактора VB выбрать «Вид» (View) – «Окно проекта» (Project). Из списка объектов выбрать нужный рабочий лист и вывести на экран окно свойств «Вид» (View) – «Окно свойств» (Propety)). Затем ввести нужное имя в строке «Name» окна свойств. 

       Следующий шаг – программирование процедуры события выбора строки из раскрывающегося списка ComboBox_Change. При выборе элемента списка объекта ComboBox в полях TextBox должны появляться данные из связанных с ними столбцов, соответствующие выбранной строке рабочего листа. Поскольку в рассматриваемом примере диалоговое окно располагает двумя объектами ComboBox, то для каждого из них программируется собственная процедура обработки события ComboBoxi_Change. Содержание процедуры, связанной с пунктом назначения приводится ниже.

 

Private Sub ComboBox1_Change()

Dim i As Integer

i = ComboBox1.ListIndex + 2

TextBox1.Text = Расписание.Cells (i, 2)

TextBox2.Text = Расписание.Cells (i, 3)

TextBox3.Text = Расписание.Cells (i, 4)

TextBox4.Text = Расписание.Cells (i, 5)

TextBox5.Text = Расписание.Cells (i, 6)

TextBox5.Text = Расписание.Cells (i, 7

End Sub

 

       При выборе льготы программа должна пересчитать стоимость продаваемого билета и обновить ее в соответствующем текстовом поле. То же самое должно происходить и при изменении пункта назначения. Эти действия инициализирует процедура обработки события ComboBox2_Change путем изменения содержимого поля, хранящего величину скидки:

 

Private Sub ComboBox2_Change()

Dim ji As Integer

j = ComboBox2.ListIndex + 2

TextBox7.Text = Льготы. Cells (j, 2)

TextBox8.Text = Льготы. Cells (j, 3)

TextBox9.Text = Льготы. Cells (j, 4)

End Sub

 

На основании обновленных значений тарифа и льготы процедуры обработки события изменения содержимого соответствующих текстовых полей пересчитывают стоимость билета:

 

Private Sub TextBox4_Change()

TextBox9.Text = Val(TextBox4.Text) – (Val(TextBox8.Text) / 100) * Val_ (TextBox4.Text)

End Sub

Private Sub TextBox8_Change()

TextBox9.Text = Val(TextBox4.Text) – (Val(TextBox8.Text) / 100) * Val(TextBox4.Text)

End Sub

       Командные кнопки должны обеспечивать работу приложения по следующим сценариям: а) отказ от дальнейших действий с сохранением исходного состояния таблиц и бланка билета (кнопка «Отмена»); б) очистка заполняемых полей бланка билета (кнопка «Бланк»); в) генерация продаваемого билета с одновременным пересчетом количества оставшихся свободных мест и изменением номера места для следующего сеанса (кнопка «ОК»).

       Процедура обработки события нажатия на кнопку «Отмена» имеет вид:

 

Private Sub CommandButton3_Click()

UserForm1. Hide

End Sub

 

       Процедура обработки события нажатия на кнопку «Бланк» выглядит следующим образом:

 

Private Sub CommandButton2_Click()

Билет.Activate

Range("c6: c12; a1:a3").Select

Selection.Clear

UserForm1. Hide

End Sub

       Процедура обработки события CommandButton1_Click выглядит так:

Private Sub CommandButton1_Click()



Поделиться:


Последнее изменение этой страницы: 2021-06-14; просмотров: 45; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.222.111.24 (0.009 с.)