Объявление

Свернуть
Пока нет объявлений.

MsgBox при сравнении значений

Свернуть
X
  • Фильтр
  • Время
  • Показать
Очистить всё
новые сообщения

  • MsgBox при сравнении значений

    Добрый день!

    Столкнулся со следующей проблемой: в управлении заданиями есть поле типа combobox "Тип планирования" с пунктами "Фиксированные трудозатраты" и "Без планирования". Если выбирается пункт "Фиксированные трудозатраты", то обязательным полем для заполнения становится простое текстовое поле "Планирование", где указывается количество планируемых часов по заданию. Есть также поле "Фактические часы работ". Так вот... если итоговая сумма в часах в поле "Фактические часы работ" превышает число в поле "Планирование", то должен всплывать MsgBox с соответствующим предупреждением.

    Если же выбрать пункт "Без планирования", то после подсчета суммы часов в поле "Фактические часы работ" ничего не должно ругаться).... Для реализации этой идеи создал Action, в котором прописал вот такой код:

    If ActiveRequest.UserFields("ActualHours").TValue > ActiveRequest.UserFields("PlannedEffort").TValue Then

    MsgBox "Значение фактических трудозатрат больше значения планируемых" & vbNewLine & "Измените значение фактических затрат", vbCritical
    CancelAction

    End If


    Rule: Тип планирования = "Фиксированные трудозатраты"

    Проблема в том что правило почему то не срабатывает... Подскажите плз в какую сторону копать... Заранее благодарю
    С уважением,
    Евгений Хон

  • #2
    Как интересно работает у вас планирование А почему нельзя указать факт больше плана? Ведь для этого и имеет место быть планирование - если факт больше, значит планировщик где-то что-то упустил...

    А по сути вопроса:
    1. Правило не срабатывает совсем? Ошибок нет?
    2. Экшн BeforeModification? UseModifiedRequest на всякий случай установлен?
    3. Фактические трудозатраты подсчитываются не автоматом случайно?

    p.s. Я бы сразу написала CancelAction "Значение фактических трудозатрат больше значения планируемых" & vbNewLine & "Измените значение фактических затрат", без лишнего MsgBox...

    Комментарий


    • #3
      Сообщение от Ann Посмотреть сообщение
      Как интересно работает у вас планирование А почему нельзя указать факт больше плана? Ведь для этого и имеет место быть планирование - если факт больше, значит планировщик где-то что-то упустил...

      А по сути вопроса:
      1. Правило не срабатывает совсем? Ошибок нет?
      2. Экшн BeforeModification? UseModifiedRequest на всякий случай установлен?
      3. Фактические трудозатраты подсчитываются не автоматом случайно?

      p.s. Я бы сразу написала CancelAction "Значение фактических трудозатрат больше значения планируемых" & vbNewLine & "Измените значение фактических затрат", без лишнего MsgBox...
      1. Правило к сожалению не срабатывает совсем(
      2. Экшн AfterModification... UseModifiedRequest не установлен
      3. Фактические трудозатраты подсчитываются автоматом).

      ...

      За постскриптум спасибо
      С уважением,
      Евгений Хон

      Комментарий


      • #4
        Добрый день!

        Обошел ситуацию вот таким решением (добавил на форму событие OnSave):

        If ActiveRequest.UserFields("ActualHours").TValue > ActiveRequest.UserFields("PlannedEffort").TValue and ActiveRequest.UserFields("ActivityType").Value = "Фикс. трудозатраты" Then

        MsgBox "Значение фактических трудозатрат больше значения планируемых" & vbNewLine & "Измените значение фактических затрат", vbCritical
        CancelAction

        End If


        Всем, спасибо!
        С уважением,
        Евгений Хон

        Комментарий

        Обработка...
        X