私は 3 つのイベント プロシージャ (つまり、3 つの異なるタスク ボタン: [メディアと見積もり資金の選択]、[代理店の追加]、および [レポートの生成]) で構成されるプログラムに取り組んでいます。
[Select Media and Estimated Fund] ボタンをクリックすると、入力ボックスがポップアップし、ユーザーに残高を入力するように求めます。その残高は、(残高 = 残高 * (1 + 金利) の式によって計算されます。残高は、ユーザー入力は、$500.00 未満または $3000.00 を超えることはできません。
( 予算の見積もりは、選択した資金調達リソースに応じて計算する必要があります (資金調達リソースは、選択した口座の種類です。普通預金 (7% の金利) と法人向け (5% の金利)) 計算結果は、すぐ隣の無効化されたテキスト ボックスに表示されます。 2 つのリソースを選択した場合は、それぞれの予算をまとめて計算する必要があります。計算プロセスは、イベント プロシージャで「FundingResource (Balance)」として定義されたサブ プロシージャを呼び出す必要があります。
現在の年である 2013 年に注意してください。現在、レポートは 2013 年に作成されていますが、残高は選択した年 (2015 年、2016 年、2017 年など) について計算する必要があります。繰り返しのトピックについて考えて、選択した年の最終残高を決定します。
私は信じているコードを完成させましたが、それをサブプロシージャに入れる方法がわかりません。上記の質問のコードは「btnMediaEstimatedFund」にあります。
Public Class Form1
Private Sub btnMediaEstimatedFund_Click(sender As Object, e As EventArgs) Handles btnMediaEstimatedFund.Click
Dim interestRate, balance, initialBalanceSavings, initialBalanceCorporate, finalBalance As Double
txtBoxEstimatedBudget.Enabled = False
txtBoxAgenciesNeeded.Enabled = False
If radButtonTraditional.Checked Then
txtBoxAgenciesNeeded.Text = 3
ElseIf radButtonEMedia.Checked Then
txtBoxAgenciesNeeded.Text = 2
End If
If checkBoxSavings.Checked Then
interestRate = 0.07
ElseIf checkBoxCorporate.Checked Then
interestRate = 0.05
ElseIf checkBoxCorporate.Checked And checkBoxSavings.Checked Then
interestRate = 0.12
End If
initialBalanceSavings = InputBox("Please Enter a balance for SAVINGS account between $500.00 and $3000.00")
If initialBalanceSavings > 3000 Then
InputBox("Please enter a balance for SAVINGS account equal to or below $3000.00 and no less than $500.00")
ElseIf initialBalanceSavings < 500 Then
InputBox("Please enter a balance for SAVINGS account equal to or above $500.00 and no more than $3000.00")
End If
initialBalanceCorporate = InputBox("Please Enter a balance for CORPORATE account between $500.00 and $3000.00")
If initialBalanceCorporate > 3000 Then
InputBox("Please enter a balance for CORPORATE account equal to or below $3000.000 and no less than $500.00")
ElseIf initialBalanceCorporate < 500 Then
InputBox("Please enter a balance for CORPORATE account equal to or above $500.00 and no more than $3000.00")
Else
finalBalance = initialBalanceCorporate + initialBalanceSavings
balance = finalBalance * (1 + interestRate)
txtBoxEstimatedBudget.Text = balance
End If
End Sub
Private Sub btnAddAgencies_Click(sender As Object, e As EventArgs) Handles btnAddAgencies.Click
Dim dict As Dictionary(Of String, Integer) = New Dictionary(Of String, Integer)()
dict.Add("U-Ad ($350)", 350)
dict.Add("Striker ($190)", 190)
dict.Add("New Ad ($250)", 250)
dict.Add("Samson ($530)", 530)
dict.Add("J & R ($420)", 420)
dict.Add("Victory ($120)", 120)
Dim selectedItems = (From i In lstBoxAgenciesList.SelectedItems).ToArray()
Dim total As Integer = 0
For Each selectedItem In selectedItems
lstBoxSelectedList.Items.Add(selectedItem)
lstBoxAgenciesList.Items.Remove(selectedItem)
Next
For Each item In lstBoxSelectedList.Items
total += dict(item)
Next
txtBoxEstimatedCost.Text = FormatCurrency(total.ToString())
End Sub
Private Sub btnGenerateReport_Click(sender As Object, e As EventArgs) Handles btnGenerateReport.Click
Dim employeeLevel, year, selectedMedia, numberOfAgencies As String
Dim today As Date
today = CStr(dtpToday.Text)
Name = CStr(txtBoxCreator.Text)
employeeLevel = CStr(lstBoxResults.Text)
year = CStr(lstBoxResults.Text)
selectedMedia = CStr(lstBoxResults.Text)
numberOfAgencies = CStr(txtBoxAgenciesNeeded.Text)
dtpToday.Text = FormatDateTime(today, DateFormat.ShortDate)
If radButtonManager.Checked Then
employeeLevel = "Manager"
ElseIf radButtonStaff.Checked Then
employeeLevel = "Staff"
End If
If radButton2015.Checked Then
year = "2015"
ElseIf radButton2016.Checked Then
year = "2016"
ElseIf radButton2017.Checked Then
year = "2017"
End If
If radButtonTraditional.Checked Then
selectedMedia = "Traditional Media (TV, Radio)"
ElseIf radButtonEMedia.Checked Then
selectedMedia = "New e-Media (SNS, e-Mail)"
End If
lstBoxResults.Items.Add("=======================================")
lstBoxResults.Items.Add(" ")
lstBoxResults.Items.Add("Date : " & today)
lstBoxResults.Items.Add(" ")
lstBoxResults.Items.Add("Reporting Entity : " & Name)
lstBoxResults.Items.Add(" ")
lstBoxResults.Items.Add("Level of Employee : " & employeeLevel)
lstBoxResults.Items.Add(" ")
lstBoxResults.Items.Add("=======================================")
lstBoxResults.Items.Add(" ")
lstBoxResults.Items.Add("Year" & " " & year & " " & "Budget of Advertising Report")
lstBoxResults.Items.Add(" ")
lstBoxResults.Items.Add("=======================================")
lstBoxResults.Items.Add(" ")
lstBoxResults.Items.Add("Total Estimated Cost : " & FormatCurrency(txtBoxEstimatedCost.Text))
lstBoxResults.Items.Add(" ")
lstBoxResults.Items.Add("Total Estimated Budget : " & FormatCurrency(txtBoxEstimatedBudget.Text))
lstBoxResults.Items.Add(" ")
lstBoxResults.Items.Add("Selected Media : " & selectedMedia)
lstBoxResults.Items.Add(" ")
lstBoxResults.Items.Add("Number of Agencies Involved : " & numberOfAgencies)
lstBoxResults.Items.Add(" ")
lstBoxResults.Items.Add("=======================================")
End Sub
End Class