协助创建名为“(FundingResource(Balance))”的子过程 Visual Basic

2024-04-16

我正在开发一个由三个事件过程组成的程序(换句话说,三个不同的任务按钮:“选择媒体和估计资金”、“添加机构”和“生成报告”)。

当点击“选择媒体和预估资金”按钮时,会弹出输入框并要求用户输入余额,该余额将通过(余额 = 余额 *(1 + 利率)的公式计算。用户输入不能少于 $500.00 或多于 $3000.00。

(预计预算应根据您选择的资金资源进行计算(资金资源是他们选择的帐户类型,储蓄(7% 利率)和公司(5% 利率))计算结果应显示在旁边的禁用文本框中到“预估预算”文本框。如果选择了两个资源,则每个预估预算都应该汇总在一起。计算过程应该称为事件过程中定义为“FundingResource(余额)”的子过程。

请注意当前年份 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

Update

您的输入框不正确,如果一致输入无效值,则例程将跳至下一行代码!

它们应该如下所示。

Do
  inputtedData = InputBox("Please Enter a balance for SAVINGS account between $500.00 and $3000.00", "Initial Savings Balance", "0.00")
  If inputtedData = "" Then
    MsgBox("User chose to Cancel calculation!")
    Exit Sub
  Else
    initialBalanceSavings = CType(inputtedData, Single)
    If initialBalanceSavings > 3000 Or initialBalanceSavings < 500 Then MsgBox("Please enter a balance for SAVINGS account equal to or above $500.00 and no more than $3000.00", MsgBoxStyle.Critical, "Error")
  End If
Loop Until initialBalanceSavings >= 500 And initialBalanceSavings <= 3000

Do
  inputtedData = InputBox("Please Enter a balance for CORPORATE account between $500.00 and $3000.00", "Initial Corporate Balance", "0.00")
  If inputtedData = "" Then
    MsgBox("User chose to Cancel calculation!")
    Exit Sub
  Else
    initialBalanceCorporate = CType(inputtedData, Single)
    If initialBalanceCorporate > 3000 Or initialBalanceCorporate < 500 Then MsgBox("Please enter a balance for CORPORATE account equal to or above $500.00 and no more than $3000.00", MsgBoxStyle.Critical, "Error")
  End If
Loop Until initialBalanceCorporate >= 500 And initialBalanceCorporate <= 3000

最后,所有代码绝对不在“btnMediaEstimatedFund”程序中,因为没有计算总值,也没有考虑到计算是针对未来几年的事实。事实上,关键计算部分丢失了!

我的意思是,如果你想计算出 2016 年的数据,现在是 2013 年,那么你的 7% 和 5% 利息在哪里计算?我看不到它实际计算的任何地方。

您“不知道”如何创建的子例程与您为按钮/文本框/列表框事件创建的子例程没有什么不同!

你传入参数,它就会进行计算,如果它是一个 SUB,那就结束了!如果它是一个函数,那么它返回一个值或一个对象。

要创建子例程,您可以为其指定名称和参数列表,如果需要,您可以拥有不带参数的子例程和函数,但函数必须始终返回值/对象。

Sub ThisIsMySubroutine(MyParam1 as string, My Param2 as Object)
   ' code here
End Sub


Function ThisIsMyFunction(MyParam1 as string, My Param2 as Object) As Boolean
   ' code here
End Function

我确信您已经知道参数和返回数据类型可以是任何可接受或认可的数据类型。

更新二

关于您的最后一条评论(从..开始。另外,我有一个小..)如果您交换代码并将原始代码放回去,您仍然会遇到同样的问题!

好的,最后一个代码示例和指针。

因此,要阻止你的程序(10%是你的,90%是我的哈哈哈)请求输入,你可以将其包含在 if 语句中......

If checkBoxSavings.Checked Then
  Do
    inputtedData = InputBox("Please Enter a balance for SAVINGS account between $500.00 and $3000.00", "Initial Savings Balance", "0.00")
    If inputtedData = "" Then
      MsgBox("User chose to Cancel calculation!")
      Exit Sub
    Else
      initialBalanceSavings = CType(inputtedData, Single)
      If initialBalanceSavings > 3000 Or initialBalanceSavings < 500 Then MsgBox("Please enter a balance for SAVINGS account equal to or above $500.00 and no more than $3000.00", MsgBoxStyle.Critical, "Error")
    End If
  Loop Until initialBalanceSavings >= 500 And initialBalanceSavings <= 3000
End If

If checkBoxCorporate.Checked Then
  Do
    inputtedData = InputBox("Please Enter a balance for CORPORATE account between $500.00 and $3000.00", "Initial Corporate Balance", "0.00")
    If inputtedData = "" Then
      MsgBox("User chose to Cancel calculation!")
      Exit Sub
    Else
      initialBalanceCorporate = CType(inputtedData, Single)
      If initialBalanceCorporate > 3000 Or initialBalanceCorporate < 500 Then MsgBox("Please enter a balance for CORPORATE account equal to or above $500.00 and no more than $3000.00", MsgBoxStyle.Critical, "Error")
    End If
  Loop Until initialBalanceCorporate >= 500 And initialBalanceCorporate <= 3000
End If

对于您的兴趣,这里有一个链接,http://math.about.com/od/businessmath/ss/Interest.htm http://math.about.com/od/businessmath/ss/Interest.htm

这是一个非常好的解释,因为它显示了超过一年的兴趣,这就是你问题的这一部分所要问的......

请注意当前年份 2013 年。现在,报告是在 2013 年准备的,但应根据您选择的年份(例如 2015 年、2016 年、2017 年)计算余额。考虑重复主题以确定所选年份的期末余额

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

协助创建名为“(FundingResource(Balance))”的子过程 Visual Basic 的相关文章

  • 如何从vb.net插入两个表

    我想将两个值插入到我创建的 SQL 数据库的两个表中 在我的 vb net 代码中 我的问题是 如果我插入它 它会被插入 但仅在一张表中 否则有时它不会进入内部 这是我使用过的代码 c TextBox1 Text sh TextBox2 T
  • 从文件夹中选择随机图像以显示在 picturebox、vb.net 中

    我有一个图片框 它从文件夹中读取图像进行显示 而不是通常的无聊图像 我认为在文件夹中包含许多图像并让我的 vb net 程序随机挑选一个来显示可能会更好使用 我怎样才能做到这一点 尝试这个 Public Function GetRandom
  • 将 C# Web 表单添加到 VB Web 应用程序

    有没有办法将 C Web 窗体添加到用 VB NET 编写的 ASP NET 4 0 Web 应用程序中 我有一个 ASP NET 2 0WEB SITE我最近转换为 ASP NET 4 0WEB应用程序 它主要是用 VB NET 编写的
  • MouseHover 事件中的鼠标坐标?

    我知道如何检索鼠标坐标PictureBox Click虽然事件e In a PictureBox MouseHover e不返回此类信息 如何获取鼠标坐标MouseHover事件 有办法吗 提前致谢 Control MouseHover h
  • BouncyCastle,生成 RSA 密钥对需要多长时间?

    我正在使用 Bouncy Castle c vb net 版本 并生成一个 4096 字节的 RSA 密钥对 以便通过以下例程在我的证书中使用 Public Shared Function GenerateRSAKeypair keylen
  • VB换行转义字符?

    在C中我使用 1st line 1 n2nd line 对于换行符 但是 VB 呢 我知道 1st line VbCrLf 2nd line 但它太冗长了 VB中换行符的转义字符是什么 我要打印 1st line 2nd line 我尝试使
  • 当 AutoGenerateColumns="true" 时动态设置 gridview 列的宽度

    当我使用属性 AutoGenerateColumns 为 AutoGenerateColumns true 时 我在设置 gridview 的宽度时遇到问题 gridview 是在代码后面进行数据绑定的 如果我使用 gridview1 co
  • VB.NET DatetimePicker - 错误的周数

    我的 vb net 扩展日期时间选择器有问题 当元素传递到新年 2016 时 左侧显示的周数是错误的 我有一个 datetimepicker 它不是默认组件 它是在此处下载的 http www codeproject com Article
  • Vb.net 捕获 Ctrl+C

    I want to capture when someone uses CtrlC even when off focus im using Visual Basic 2010 好的 我为您提供了一个经过验证有效的解决方案 不过 您将需要一
  • VB.NET 中的“阴影”与“覆盖”

    这两个关键词有什么意义Shadows http msdn microsoft com en us library 1h3wytf6 aspx and 覆盖 http msdn microsoft com en us library k777
  • 将 .NET P/Invoke 代码组织为 Win32 API 的最佳实践

    我正在 NET 中重构一个大型且复杂的代码库 该代码库大量使用 P Invoke to Win32 API 该项目的结构不是最好的 我发现 DllImport 语句遍布各处 经常为同一函数重复 并且还以多种方式声明 导入指令和方法有时声明为
  • Visual Studio 2022 - 编译旧应用程序时出错

    我们正在尝试在 Visual Studio 2022 中使用 VB6 32 位应用程序 编译 2002 年以来非常旧的应用程序 我们需要调试此应用程序并能够在 Windows 10 计算机上运行此应用程序 编译时 我们发现以下错误 这似乎是
  • 比较数组中的文件、从文本文件中删除行、函数、日志记录

    所以我创建了这两个数组 Approved Shares 和 Current Shares Reads Approvedshare txt and makes the txt file into an array public objFSO
  • VB.NET 中的模块变量何时实例化?

    我想知道在程序的生命周期中 模块中的变量将被初始化 如下例所示 Module Helper Friend m Settings As New UserSettings Sub Foo End Sub Sub Bar End Sub End
  • 在 String.Format 中插入格式化字符?

    我用谷歌搜索了这个 但 VB Net 2008 似乎不允许在 String Format 中插入格式化字符 例如 t r n BAD MessageBox Show String Format 0 tab 1 Foo Bar BAD Mes
  • 如何在vb.net中实现事务方式?

    我使用 VB net 200 开发一个连接到 MS Access 数据库的应用程序 我使用 TableAdapter 和 Dataset 连接到 Access DB 文件 我需要实现一个简单的事务方法 提交 回滚 来保存到数据库 有没有一种
  • VB.NET 类或模块的用途是什么?

    这里是新手酱 所以 我试图找到答案 但找不到 拥有类或模块的目的是什么 我读到的所有内容都试图告诉我它是什么 但不是它的用途 为什么我需要制作一个 我读到的所有内容似乎都对阅读教程的人做出了假设 就好像我知道很多一样 模块实际上与仅包含共享
  • 什么可能会在一台服务器上导致此错误,而在另一台服务器上则不会?

    我们有一个连接到外部 Web 服务的 ASP Net 网站 几天前它突然停止工作 基本代码是这样的 Try request New ExternalWebService ProcessRequestService Error occurs
  • 确定最接近的已知颜色

    我允许我的应用程序的用户选择自定义颜色 并希望有一种方法来显示每种颜色的友好名称 而不是显示十六进制代码的文本表示形式 我如何找到最近的System Drawing Color对于给定的十六进制代码 希望这对某人有帮助 Public Fun
  • 如果我使用客户端计算机上未安装的字体,会发生什么情况?

    有人可以告诉我 如果我在 WinForms 应用程序中使用目标计算机上不可用的字体 会发生什么情况 它是否使用同一系列的字体 只是 Sans Serif 还是其他字体 您的应用程序将回退到 Segoe UI Tahoma 然后是 MS Sa

随机推荐

  • Bash if 语句中何时需要方括号?

    通常 我在 if 语句中使用方括号 if name Bob then 但是 当我检查是否grep成功了我不使用方括号 if grep q text file then 什么时候需要方括号if陈述 方括号是同义词test命令 一个if语句检查
  • 分层代码优先 EF 绑定到 WPF Treeview...不可能

    在过去 我不得不求助于使用数据集和数据表 因为使用绑定来做到这一点仍然让我困惑 顶层 我在 VB 2012 中创建了一系列类 对它们进行了注释 并使用 Code First 在 EF6 中创建了 EF 模型 这个想法是表示路由器配置 配置的
  • 随机值生成 JavaScript

    我有一些代码用于将数组中的随机值存储到变量中 如下所示 Quest value1 value2 value3 value4 var random Math floor Math random Quest length var questio
  • 将控制台窗口添加到 ASP.NET Core 应用程序

    我有一个 ASP NET Core 2 0 应用程序在 NET Core 2 0 中的 Windows 上运行 命令行 C Program Files dotnet dotnet exe 执行 C Users zippy documents
  • 如何在 mysql 查询中将行放在顶部。

    您好 我的 SQL 表中有 100 条记录 我想按名称对它们进行 ASC 排序 但我需要在所有记录 nr 43 之上添加一条记录 有没有办法我可以先拉出这个记录 43 然后再按名称按 ASC 顺序排列其他所有内容 技巧是在一个查询中完成它
  • SSL 会话票证与会话 ID

    为了提高不保留 短 连接的 SSL 握手性能 有两个广为人知的独立功能 TLS 会话 ID TLS 会话票证 如果有很多短连接会话 就性能开销而言 哪种机制更可取并且应该使用 我知道服务器需要缓存会话 ID 并且在负载平衡的情况下会话票证也
  • 不在 In SQL 语句中?

    我在Excel中有一组大约5000个ID 在表中我有大约30000个ID 如果我在SQL语句中使用 In 条件 我将从Excel中拥有的ID中获得大约4300个ID 但是如果我将 Not In 与 Excel id 一起使用 我已经获得了大
  • node.js axios 下载文件流和 writeFile

    我想下载一个 pdf 文件axios并保存在磁盘 服务器端 上fs writeFile 我努力了 axios get https xxx my pdf responseType blob then response gt fs writeF
  • 四元数到欧拉角算法 - 如何转换为“Y = Up”和旋手性之间的转换?

    我有一个在四元数和欧拉角之间转换的算法 public static Vector3 ToEulerAngles this Quaternion q Store the Euler angles in radians Vector3 pitc
  • 在不同的数据集上运行经过训练的机器学习模型

    我是机器学习的新手 正在尝试在另一个相同格式的数据集上运行一个简单的分类模型 该模型是我使用 pickle 训练和保存的 我有以下 python 代码 Code Training set features pd read csv Data
  • 从 std::string 中提取(第一个)UTF-8 字符

    我需要使用一个PHP mb strtoupper 函数的 C 实现 http www zedwood com article cpp utf8 mb strtoupper function模仿维基百科的行为 我的问题是 我只想喂一个sing
  • 如何在 Android Canvas 上使用大量图元绘制游戏

    我在游戏的每一帧中画了很多线条矩形 这是老式手持电子游戏的娱乐 那些具有用于主游戏的原始点阵显示和用于文本或某些图像的自定义图像的内容 我在虚拟点阵屏幕上有 20x20 大 像素 我还在屏幕上绘制了一些 7 段显示和其他一些东西 根据Tra
  • 更改“corrplot()”中有意义的 pch 符号的位置?

    下面的脚本生成一个图 其中表示重要性的 pch 符号与 r 值重叠 如何移动 pch 符号的位置以使它们不与这些值重叠 library corrplot ex mat lt matrix c 1 00 0 46 0 75 1 00 0 46
  • Fluent NHibernate BinaryBlobType

    今天我正在研究 MySQL 数据库 我不知道如何将 Byte 映射到 BLOB 列 我的表看起来是这样的 CREATE TABLE images Id INT NOT NULL AUTO INCREMENT imgText VARCHAR
  • 函数数组的替代方案?

    我正在编写一个应用程序 php 它需要一个很长的列表相似但不同的功能 由一组按键调用 functions do this gt function does this do that gt function does that etc 我选择
  • 使用 Java API 制作 ePub

    我对 ePub 格式比较陌生 但如果我理解得很好 以编程方式从 XHTML 或 PDF 内容开始制作 ePub 可能意味着 选择 HTML 或 XHTML 内容并使用 XHTML 验证器验证它们 或使用 Tydy 清理它们 选择要插入 eP
  • 在 jQuery datepicker buttonImage 属性中引用 Bootstrap 图标?

    我应该为 jQuery 日期选择器使用什么值buttonImage属性 我想将 Bootstrap 日历图标与 jQuery 日期选择器一起使用 当像这样引用时 我可以在 html 页面中使用图标图像 i class icon calend
  • Identity 3 SignInManager.PasswordSignInAsync() 不返回任何结果

    我正在使用 Identity 3 0 创建 Web 应用程序 但 SignInManager PasswordSignInAsync 方法有问题 我像在文档中一样使用它 但它不会返回任何内容 应用程序代码就停在那里 这是我的控制器代码 pu
  • pygame.display.update 更新整个屏幕

    我正在创建一个分屏多人游戏 我首先在左侧绘制第一个玩家 宇宙飞船 燃烧弹 背景中的星星 以半速滚动 最后是背景 然后为第一个玩家更新屏幕的第一部分 然后我在屏幕的另一部分为第二个玩家做同样的事情 但大多数图像在两个半屏幕上重叠 见下图 所以
  • 协助创建名为“(FundingResource(Balance))”的子过程 Visual Basic

    我正在开发一个由三个事件过程组成的程序 换句话说 三个不同的任务按钮 选择媒体和估计资金 添加机构 和 生成报告 当点击 选择媒体和预估资金 按钮时 会弹出输入框并要求用户输入余额 该余额将通过 余额 余额 1 利率 的公式计算 用户输入不