Понимание VBScript - PullRequest
       6

Понимание VBScript

0 голосов
/ 13 декабря 2010

У меня есть 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 ]

1 голос
/ 14 декабря 2010
  1. TextBox1.Value = 1# - присвоить значение 1 в формате Double элементу управления textbox. (спасибо MikeD)

  2. txtTurnoverIncl = TextBox1 - Присвоение ссылки на элемент управления TextBox переменной, называемой txtTurnoverIncl

  3. CDbl(txtTurnoverExcl.Text) - преобразовать текст внутри текстового поля txtTurnoverExcl в double , то есть числовое значение с десятичной точкой, например, 2.6 - это полезно, если вы хотите выполнить математические операции над значением, например.

  4. Format(..., "#,##0.00") - Формат номера должен выглядеть следующим образом: 2.60 или 8.25, т. Е. С двумя цифрами после десятичной точки.

  5. Round(.Text * 14 / 114, 2) - .Text означает, что вы находитесь внутри блока With (somecontrol), так что на самом деле somecontrol.Text, то есть, взяв текст элемента управления. Функция округления округляет число, например, Round(662.791, 2) вернет 662.79 и Round(662.796, 2) вернет 662.8

  6. Now() - Возвращает текущую дату и время на компьютере, на котором выполняется код

  7. Date или Date() - как сейчас (), но только с датой, время будет 00: 00: 00

  8. Format(MyDate, "dddd") - Получить название дня недели MyDate в соответствии с культурой на машине. Например, для еврейской культуры он вернет יום שלישי для английской культуры он вернет Tuesday. Как правило, заданная дата и строка Format () будут форматировать дату в соответствии со строкой, например, Format(Now(), "dd/MM/yyyy") вернет 14/12/2010

1 голос
/ 14 декабря 2010

Прежде всего было бы лучше проанализировать, что все это делает (семантически), а не смотреть на последовательности кода. Таким образом, остальная часть этого поста является немного умозрительной ....

На экране отображается пара текстовых полей

  • TextBox1 ... инициализируется значением 1 (double), позже содержит текущее время (now()) (imho грех сам по себе - brrrr - надеюсь, что для этого есть хорошая логика)
  • TextBox3 ... инициализировано с текущей датой
  • TextBox4 ... инициализируется с помощью «чего-то, чего мы не знаем» - возможно, с датой (MyDate) и форматируется как «День недели» ("dddd")
  • TextBox10 - TextBox12 ... похоже, используется для вычисления переменной SumCashUp

у нас есть еще несколько переменных, которые также могут быть текстовыми полями (как иногда мы видим текст, добавленный в код)

  • txtTurnoverIncl
  • txtTurnoverExcl
  • txtRoyalty
  • SumCashUp

и фрагмент кода, который вычисляет маржу в 14% от брутто (*14/114), округляет и форматирует результат ... и мы понятия не имеем, где этот результат используется. Мы можем предположить, что это может быть другое поле формы (из-за .Text) - может быть, txtRoyalty - но мы не знаем.

В основном все фрагменты кода предназначены для помещения значений в текстовые поля, отображаемые на экране, и / или использования значений этих текстовых полей для вычисления чего-либо (например, SumCashUp или 14% GM).

Так что я думаю, что путь к решению должен быть

  • получить исходный макет текстовых полей
  • понять бизнес-логику
  • создать HTML-страницу, содержащую форму с похожими объектами (текстовые поля, кнопку отправки и т. Д.)
  • написать PHP-код, который реализует бизнес-логику - скорее всего, как реакция на событие POST, инициируемое кнопкой Submit

Вы уже получили пару фрагментов кода, но нужно поместить это в более широкий контекст, иначе блоки кода не помогут.

1 голос
/ 13 декабря 2010

Последняя функция возвращает сумму значений текстовых полей с именами «Textbox10», «Textbox11» и «Textbox12» довольно сложным способом.Я думаю, в PHP вы бы сделали что-то вроде этого (при условии, что вы размещаете форму):

function sumCashUp() {
   return (double) $_POST['Textbox10'] + (double) $_POST['Textbox11'] + (double) $_POST['Textbox12'];
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...