了解VBScript

时间:2010-12-13 12:07:19

标签: php javascript html excel-vba vba

我有一个VBScript,我正在转换为PHP,我有一些我不理解的部分,并且不知道...的输出...如果可能的话,在HTML / PHP中为我提供类似的方法

TextBox1.Value = 1#
txtTurnoverIncl = TextBox1
Format(CDbl(txtTurnoverExcl.Text) * _
                             CDbl(txtRoyalty.Text) / 100, "#,##0.00")
If txtTurnoverExcl.Text <> "" Then
Format(Round(.Text * 14 / 114, 2), "#,##0.00")
TextBox1 = Now()
TextBox3 = Date
TextBox4 = Format(MyDate, "dddd")

这个功能:

Private Function SumCashUp() As Double
    Dim i As Long
    Dim tmp As Double
    For i = 10 To 12
        With Me.Controls("TextBox" & i)
            If IsNumeric(.Text) Then
                tmp = tmp + CDbl(.Text)
            End If
        End With
    Next i
    SumCashUp = tmp
End Function

我想这就是全部。

3 个答案:

答案 0 :(得分:1)

最后一个函数以非常复杂的方式返回名为“Textbox10”,“Textbox11”和“Textbox12”的文本框的值的总和。我想在PHP中你会做这样的事情(假设你正在张贴一个表格):

function sumCashUp() {
   return (double) $_POST['Textbox10'] + (double) $_POST['Textbox11'] + (double) $_POST['Textbox12'];
}

答案 1 :(得分:1)

  1. TextBox1.Value = 1# - 将格式为Double的值1分配给文本框控件。 (感谢MikeD)

  2. txtTurnoverIncl = TextBox1 - 将控件TextBox的引用分配给名为txtTurnoverIncl的变量

  3. CDbl(txtTurnoverExcl.Text) - 将文本框txtTurnoverExcl内的文字转换为 double ,即带小数点的数值,例如2.6 - 如果你想对这个值进行数学运算,这很有用。

  4. Format(..., "#,##0.00") - 格式编号如下所示:2.608.25,即小数点后两位数。

  5. Round(.Text * 14 / 114, 2) - .Text表示您在With (somecontrol)块内,因此它实际上是somecontrol.Text,即获取控件的文本。舍入函数将对数字进行舍入,例如Round(662.791, 2)将返回662.79Round(662.796, 2)将返回662.8

  6. Now() - 返回执行代码的机器上的当前日期和时间

  7. DateDate() - 就像现在()但只有日期,时间将是00:00:00

  8. Format(MyDate, "dddd") - 根据机器上的文化,获取MyDate星期几的名称。例如,对于希伯来文化,它将返回יום שלישי英语文化,它将返回Tuesday。通常,Format()给定日期和字符串将根据字符串格式化日期,例如Format(Now(), "dd/MM/yyyy")将返回14/12/2010

答案 2 :(得分:1)

首先,最好分析整个事情在做什么(语义上),而不是查看代码序列。所以这篇文章的其余部分有点推测......

屏幕上显示几个文本框

  • TextBox1 ...初始化为值1(双精度型),后来包含当前时间(now())(本身就是罪恶 - brrrr - 希望对此有良好的商业逻辑解释)< / LI>
  • TextBox3 ...使用当前日期初始化
  • TextBox4 ...用“我们不知道的东西”初始化 - 希望是日期(MyDate),并形成为工作日("dddd"
  • TextBox10 - TextBox12 ...似乎用于计算变量SumCashUp

我们还有一些可能是文本框的变量(有时我们会看到代码中添加了.Text)

  • txtTurnoverIncl
  • txtTurnoverExcl
  • txtRoyalty
  • SumCashUp

和一个从Gross(*14/114)计算14%边距的代码片段,对结果进行舍入和格式化......我们不知道该结果的使用位置。我们可以推测它可能是另一个表单字段(因为.Text) - 可能是txtRoyalty - 但我们不知道。

基本上所有代码片段都是将值放入屏幕上显示的文本框中和/或使用该文本框的值来计算某些东西(如SumCashUp或14%GM)。

所以我猜解决方案的路径必须是

  • 获取文本框的源布局
  • 了解业务逻辑
  • 创建一个HTML页面,其中包含具有类似对象(文本框,提交按钮等)的表单。
  • 编写实现业务逻辑的PHP代码 - 最有可能是对由提交按钮触发的POST事件的反应

您已经收到了几个代码片段,但是需要将其放入更大的上下文中,否则代码块将无济于事。