kazpgmの日記

『プログラム自動作成@自動生成』作成の日記

TOOL更新_”バグ情報など”を一つづつ修正している。つづき

TOOL更新_”バグ情報など”を一つづつ修正している。つづき

c.『バグ情報など』(http://kazpgm.ddo.jp/bugInfo.html)の7.をツールに反映しました。
  「小数点なし及びカンマあり数値」も属性=BIGINTで使うと
  maxlength=0とかに自動作成◎自動生成されて使えないバグを修正した。

・・・(昨日作成したものたち)・・・
・・・(ここからが今日作成したもの)・・・

  ■201101122100_からの作成例\kaz_PHP自動作成◎自動生成お助けTOOL\
   作成先フォルダ\.kazphp\common\AppCheckUtil.php 修正
  ■201101122100_からの作成例\kaz_PHP自動作成◎自動生成お助けTOOL\
   作成先フォルダ\.システムphpBasePgm\common\AppCheckUtil.php 修正
  ■kaz_PHP自動作成◎自動生成お助けTOOL\
   作成先フォルダ\.システムphpBasePgm\common\AppCheckUtil.php 修正

   <<削除>>
       function checkCommaNumeric(&$vars, &$errorMessages, $typeNm, $result,
                               $data, $min, $max, $inputCheck, $elementsIdx = '0') {    
           return true;
       }
   <<追加>>
       function checkNumeric(&$vars, &$errorMessages, $typeNm, $result,
                               $data, $min, $max, $inputCheck, $elementsIdx = '0') {    
           $vars[$data] = trim($vars[$data]);
           // 未入力をエラーとするかしないかの切り分け(未入力時は処理終了)
           if ('' == $vars[$data] ) {
               if ($inputCheck == true) { // 未入力をチェック
                   // ?を入力してください。
                   if ($elementsIdx == '0') {
                       $errorMessages[$data] = '『' . $typeNm . '』を入力してください。';
                   } else {
                       $errorMessages[$data] = 'Please input "' . $typeNm . '"';
                   }
                   return false;
               }
               return true;
           }
           if (!preg_match('/^-?[0-9]+$/', (string)$vars[$data]) ) {
               if ($elementsIdx == '0') {
                   $errorMessages[$data] = '『' . $typeNm . '』の文字種が違っています。';    
               } else {
                   $errorMessages[$data] = 'The character kind is different. "' . $typeNm . '"';
               }
               return false;
           } else {
               if ((($vars[$data] + 0) < ($min + 0)) || (($vars[$data] + 0) > ($max + 0))) {
                   if ($elementsIdx == '0') {
                       $errorMessages[$data] = '『' . $typeNm . '』の数値範囲に入っていません。';    
                   } else {
                       $errorMessages[$data] = 'Not in the range of numbers. "' . $typeNm . '"';
                   }
                   return false;
               }
           }
           return true;
       }

   <<修正前>>
       function checkDotNumeric(&$vars, &$errorMessages, $typeNm, $result,
                               $data, $min, $max, $up, $down, $inputCheck, $elementsIdx = '0') {    
           return true;
       }
   <<修正後>>
       function checkDotNumeric(&$vars, &$errorMessages, $typeNm, $result,
                               $data, $min, $max, $up, $down, $inputCheck, $elementsIdx = '0') {    
           $vars[$data] = trim($vars[$data]);
           // 未入力をエラーとするかしないかの切り分け(未入力時は処理終了)
           if ('' == $vars[$data] ) {
               if ($inputCheck == true) { // 未入力をチェック
                   // ?を入力してください。
                   if ($elementsIdx == '0') {
                       $errorMessages[$data] = '『' . $typeNm . '』を入力してください。';
                   } else {
                       $errorMessages[$data] = 'Please input "' . $typeNm . '"';
                   }
                   return false;
               }
               return true;
           }
           if (!preg_match('/^-?([0-9]+)(.?)([0-9]*)$/', (string)$vars[$data], $matches )) {
               if ($elementsIdx == '0') {
                   $errorMessages[$data] = '『' . $typeNm . '』の文字種が違っています。';    
               } else {
                   $errorMessages[$data] = 'The character kind is different. "' . $typeNm . '"';
               }
               return false;
           } else {
               if ((($vars[$data] + 0) < ($min + 0)) || (($vars[$data] + 0) > ($max + 0))) {
                   if ($elementsIdx == '0') {
                       $errorMessages[$data] = '『' . $typeNm . '』の数値範囲に入っていません。';    
                   } else {
                       $errorMessages[$data] = 'Not in the range of numbers. "' . $typeNm . '"';
                   }
                   return false;
               } else {
                   if (strlen($matches[2]) == 0) { // 小数点がない場合
                       if (strlen($matches[1]) > $up) { // 整数部
                           if ($elementsIdx == '0') {
                               $errorMessages[$data] = '『' . $typeNm . '』の整数部桁数が違っています。';    
                           } else {
                               $errorMessages[$data] = 'Different from the integer digits. "' . $typeNm . '"';
                           }
                           return false;
                       }
                   } else { // 小数点がある場合
                       if (strlen($matches[1]) > $up || strlen($matches[1]) == 0) {
                           if ($elementsIdx == '0') {
                               $errorMessages[$data] = '『' . $typeNm . '』の整数部桁数が違っています。';    
                           } else {
                               $errorMessages[$data] = 'Different from the integer digits. "' . $typeNm . '"';
                           }
                           return false;
                       }
                       if (strlen($matches[3]) > $down || strlen($matches[3]) == 0) {
                           if ($elementsIdx == '0') {
                               $errorMessages[$data] = '『' . $typeNm . '』の小数部桁数が違っています。';    
                           } else {
                               $errorMessages[$data] = 'Different from the number of decimal places. "' . $typeNm . '"';
                           }
                           return false;
                       }
                   }
               }
           }
           return true;
       }

20110113 21:00-1:00 作ってないことをwasurekaketeita数字のチェックロジック。使う場面もあるので、作っておくことにした。・・・今まではチェックしないでtrueを返してた。ちなみに、『checkCommaNumericメソッド』を使うように自動作成◎自動生成していない。これ使うようにTOOL修正しようかとも思う。今自動作成されるものはマイナスがエラーになるので。・・・よしあしだな。。。あとでかんがえよ。
『TOOL更新_AppCheckUtil.php(チェッククラス) 』http://d.hatena.ne.jp/kazpgm/20100318/1268924796 も同様に修正した。