condition.php

来自「通达OA2007SE源代码 非常好的」· PHP 代码 · 共 255 行

PHP
255
字号
<?
  function get_form ($FORM_ID, $RUN_ID)
  {
    global $connection;
    $query = (((''.'SELECT ITEM_ID,ITEM_DATA from FLOW_RUN_DATA WHERE RUN_ID=').$RUN_ID).' ORDER BY ITEM_ID');
    $cursor = exequery ($connection, $query);
    while ($ROW = mysql_fetch_array ($cursor))
    {
      $ITEM_ID = $ROW['ITEM_ID'];
      $ITEM_DATA = $ROW['ITEM_DATA'];
      $TMP_DATA[($ITEM_ID - 1)] = $ITEM_DATA;
    }
    $query = ((''.'SELECT PRINT_MODEL from FLOW_FORM_TYPE WHERE FORM_ID=').$FORM_ID);
    $cursor1 = exequery ($connection, $query);
    if ($ROW = mysql_fetch_array ($cursor1))
    {
      $PRINT_MODEL = $ROW['PRINT_MODEL'];
    }
    $ELEMENT_ARRAY = html_element ($PRINT_MODEL);
    $ITEM_ID_MAX = sizeof ($ELEMENT_ARRAY);
    $ITEM_ID = 0;
    for ($ITEM_I = 0; ($ITEM_I < $ITEM_ID_MAX); ++$ITEM_I)
    {
      $ELEMENT = $ELEMENT_ARRAY[$ITEM_I];
      $ECLASS = get_attr ($ELEMENT, 'CLASS');
      $ETITLE = get_attr ($ELEMENT, 'TITLE');
      if ((($ECLASS != 'DATE') AND ($ECLASS != 'USER')))
      {
        $FORM_DATA[$ETITLE] = $TMP_DATA[$ITEM_ID];
        ++$ITEM_ID;
        continue;
      }
    }
    return $FORM_DATA;
  }
  function check_condition ($FORM_DATA, $CONDITION, $CONDITION_SET, $RUN_ID, $PRCS_ID)
  {
    global $connection;
    if (($CONDITION == ''))
    {
      return '';
    }
    $CONDITION_SET_VALUE = $CONDITION_SET;
    $CONDITION_SET_DESC = $CONDITION_SET;
    $CONDITION_SET_DESC = str_replace ('and', '并且', $CONDITION_SET_DESC);
    $CONDITION_SET_DESC = str_replace ('or', '或者', $CONDITION_SET_DESC);
    $CONDITION_SET_DESC = str_replace ('!', '非', $CONDITION_SET_DESC);
    $CON_ARRAY = explode ('
', $CONDITION);
    $ARRAY_COUNT = sizeof ($CON_ARRAY);
    if (($CON_ARRAY[($ARRAY_COUNT - 1)] == ''))
    {
      --$ARRAY_COUNT;
    }
    for ($I = 0; ($I < $ARRAY_COUNT); ++$I)
    {
      $RULE = $CON_ARRAY[$I];
      $RULE_ARRAY = explode ('\'', $RULE);
      $ITEM_TITLE = $RULE_ARRAY[1];
      $ITEM_CON = $RULE_ARRAY[2];
      $ITEM_VALUE = $RULE_ARRAY[3];
      if ((strstr ($ITEM_TITLE, '[主办人会签意见]') OR strstr ($ITEM_TITLE, '[从办人会签意见]')))
      {
        $query = ((((''.'SELECT USER_ID from FLOW_RUN_PRCS where RUN_ID=').$RUN_ID).' and PRCS_ID=').$PRCS_ID);
        if (strstr ($ITEM_TITLE, '[主办人会签意见]'))
        {
          ($query .= ' and OP_FLAG=1');
        }
        else
        {
          ($query .= ' and OP_FLAG=0');
        }
        $cursor = exequery ($connection, $query);
        $FEED_CONTENT = '';
        while ($ROW = mysql_fetch_array ($cursor))
        {
          $PRCS_USER = $ROW['USER_ID'];
          $query1 = (((((((''.'SELECT CONTENT from FLOW_RUN_FEEDBACK where RUN_ID=').$RUN_ID).' and PRCS_ID=').$PRCS_ID).' and USER_ID=\'').$PRCS_USER).'\'');
          $cursor1 = exequery ($connection, $query1);
          while ($ROW = mysql_fetch_array ($cursor1))
          {
            ($FEED_CONTENT .= $ROW['CONTENT']);
          }
        }
        $FORM_DATA[$ITEM_TITLE] = $FEED_CONTENT;
      }
      else
      {
        if (strstr ($ITEM_TITLE, '[公共附件名称]'))
        {
          $query1 = (((''.'SELECT ATTACHMENT_NAME from FLOW_RUN WHERE RUN_ID=\'').$RUN_ID).'\'');
          $cursor1 = exequery ($connection, $query1);
          if ($ROW = mysql_fetch_array ($cursor1))
          {
            $ATTACHMENT_NAME = $ROW['ATTACHMENT_NAME'];
          }
          $FORM_DATA[$ITEM_TITLE] = $ATTACHMENT_NAME;
        }
      }
      $CHECK_PASS = 0;
      if (stristr ($ITEM_CON, 'include'))
      {
        $ITEM_CON_DESC = '包含';
        if (($FORM_DATA[$ITEM_TITLE] == ''))
        {
          $CHECK_PASS = 1;
        }
        else
        {
          if (stristr ($FORM_DATA[$ITEM_TITLE], $ITEM_VALUE))
          {
            $CHECK_PASS = 1;
          }
        }
      }
      else
      {
        if (stristr ($ITEM_CON, 'exclude'))
        {
          $ITEM_CON_DESC = '不包含';
          if (($FORM_DATA[$ITEM_TITLE] == ''))
          {
            $CHECK_PASS = 0;
          }
          else
          {
            if (!stristr ($FORM_DATA[$ITEM_TITLE], $ITEM_VALUE))
            {
              $CHECK_PASS = 1;
            }
          }
        }
        else
        {
          if (stristr ($ITEM_CON, '>='))
          {
            $ITEM_CON_DESC = '大于等于';
            if (($ITEM_VALUE <= $FORM_DATA[$ITEM_TITLE]))
            {
              $CHECK_PASS = 1;
            }
          }
          else
          {
            if (stristr ($ITEM_CON, '<='))
            {
              $ITEM_CON_DESC = '小于等于';
              if (($FORM_DATA[$ITEM_TITLE] <= $ITEM_VALUE))
              {
                $CHECK_PASS = 1;
              }
            }
            else
            {
              if (stristr ($ITEM_CON, '<>'))
              {
                $ITEM_CON_DESC = '不等于';
                if (($FORM_DATA[$ITEM_TITLE] != $ITEM_VALUE))
                {
                  $CHECK_PASS = 1;
                }
              }
              else
              {
                if (stristr ($ITEM_CON, '>'))
                {
                  $ITEM_CON_DESC = '大于';
                  if (($ITEM_VALUE < $FORM_DATA[$ITEM_TITLE]))
                  {
                    $CHECK_PASS = 1;
                  }
                }
                else
                {
                  if (stristr ($ITEM_CON, '<'))
                  {
                    $ITEM_CON_DESC = '小于';
                    if (($FORM_DATA[$ITEM_TITLE] < $ITEM_VALUE))
                    {
                      $CHECK_PASS = 1;
                    }
                  }
                  else
                  {
                    if (stristr ($ITEM_CON, '='))
                    {
                      $ITEM_CON_DESC = '等于';
                      if (($FORM_DATA[$ITEM_TITLE] == $ITEM_VALUE))
                      {
                        $CHECK_PASS = 1;
                      }
                    }
                    else
                    {
                      $ITEM_CON = '';
                    }
                  }
                }
              }
            }
          }
        }
      }
      if (($ITEM_VALUE == ''))
      {
        $ITEM_VALUE = '空';
      }
      $SET_DESC = (((((''.$ITEM_TITLE).' ').$ITEM_CON_DESC).' ').$ITEM_VALUE);
      if (!$CHECK_PASS)
      {
        if ((($ITEM_CON == '') OR ($ITEM_TITLE == '')))
        {
          $NOT_PASS = (('条件表达式错误:
'.$RULE).'
');
          return $NOT_PASS;
        }
        else
        {
          if (($CONDITION_SET == ''))
          {
            $NOT_PASS = (('不符合条件:
'.$SET_DESC).'
');
            return $NOT_PASS;
          }
          $SET_VALUE = '0';
        }
      }
      else
      {
        $SET_VALUE = '1';
      }
      $COUNT = ($I + 1);
      $CONDITION_SET_VALUE = str_replace ((((''.'[').$COUNT).']'), $SET_VALUE, $CONDITION_SET_VALUE);
      $CONDITION_SET_DESC = str_replace ((((''.'[').$COUNT).']'), (((''.'[').$SET_DESC).']'), $CONDITION_SET_DESC);
    }
    if (($CONDITION_SET != ''))
    {
      eval ((((''.'$RESULT=(').$CONDITION_SET_VALUE).');'));
      if (!$RESULT)
      {
        $NOT_PASS = ('不符合条件公式:'.$CONDITION_SET_DESC);
      }
      else
      {
        $NOT_PASS = ('SETOK'.$CONDITION_SET_DESC);
      }
    }
    return $NOT_PASS;
  }
  include_once 'inc/auth.php';
  include_once 'inc/utility_html.php';
?>

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?