kazpgmの日記

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

TOOL更新_”バグ情報など”を一つづつ修正している。つづき(1月20日からの)

TOOL更新_”バグ情報など”を一つづつ修正している。つづき(1月20日からの)
[0]小数点なし及びカンマあり数値、小数点あり及びカンマあり数値の範囲指定の検索条件のView用HTMLの自動作成◎自動生成ロジックを修正する。

■201101122100_からの作成例\kaz_PHP自動作成◎自動生成お助けTOOL\hinagata\View\hinagata_ListSrch_数字項目FromTo01.txt を新規に作成した。
kaz_PHP自動作成◎自動生成お助けTOOL\hinagata\View\hinagata_ListSrch_数字項目FromTo01.txt を新規に作成した。

<!-- suji01 Fromto -->
<tr>
  <th width="18%" nowrap ><label for="■{ITEM_NAME}■_from">■{ITEM_NAME_KANJI}■</label></th>
  <td class="<?=($err['■{ITEM_NAME}■_from']=='' && $err['■{ITEM_NAME}■_to']=='')?'none':'error' ?>"><input name="■{ITEM_NAME}■_from" ■{CLASS_NAME}■  id="■{ITEM_NAME}■_from" type="text" size="■{ITEM_SIZE}■" maxlength="■{ITEM_MAX_SIZE}■" value="<?= stz($o['■{ITEM_NAME}■_from'])?>">
    から
  <input name="■{ITEM_NAME}■_to" ■{CLASS_NAME}■  type="text" size="■{ITEM_SIZE}■" maxlength="■{ITEM_MAX_SIZE}■" value="<?= stz($o['■{ITEM_NAME}■_to'])?>">
    まで&nbsp;&nbsp;■{ITEM_ZOKUSEI}■&nbsp;&nbsp;<?= $err['■{ITEM_NAME}■_from']?><?= $err['■{ITEM_NAME}■_to']?></td>
</tr>

1、VBAの修正
「hinagata_ListSrch_通常項目FromTo01.txt」を使用している箇所で、小数点なし及びカンマあり数値、小数点あり及びカンマあり数値の範囲指定の検索条件の箇所を「hinagata_ListSrch_数字項目FromTo01.txt」に変更する。

■『201101122100_からの作成例\kaz_PHP自動作成◎自動生成お助けTOOL』のVBA『module1』 修正
■『kaz_PHP自動作成◎自動生成お助けTOOL』のVBA『module1』 修正

<<修正前 start>>
Private Function JSP項目値作成(j, SRCH区分, KBN)を修正
・・・
    For i = 1 To cy
        If Cells(j, cont項目チェック内容列) = Rng.Cells(i, 1) Then 'Range1列 項目チェック内容と同じか
            JSP雛形名 = Rng.Cells(i, 8)
            If Rng.Cells(i, 9) = "△" Then
                C_CLASS_NAME = " class=""form-eng"" "
            ElseIf Rng.Cells(i, 9) = "○" Then
                C_CLASS_NAME = " class=""form-jpn"" "
            End If
            Exit For
        End If
    Next i
・・・
                変換後data = 変換後data & hinagata_通常項目FromTo01(KBN, ITEM日本語名, IIf(必須 = True, 必須表示取得(), ""), 編集後項目名, _
                                                            入力桁取得(桁数), 桁数, Cells(j, cont項目チェック内容列), 文字桁表示取得(桁数, 桁固定名), srchLike条件)
・・・
                    変換後data = 変換後data & hinagata_通常項目FromTo01(KBN, ITEM日本語名, IIf(必須 = True, 必須表示取得(), ""), 編集後項目名, _
                                                            入力桁取得(桁数), 桁数, Cells(j, cont項目チェック内容列), 文字桁表示取得(桁数, 桁固定名), srchLike条件)
・・・
                    変換後data = 変換後data & hinagata_通常項目FromTo01(KBN, ITEM日本語名, IIf(必須 = True, 必須表示取得(), ""), 編集後項目名, _
                                                            入力桁取得(桁数), 桁数, Cells(j, cont項目チェック内容列), "", "")
<<修正前 end>>

<<修正後 start>>
Private Function JSP項目値作成(j, SRCH区分, KBN)を修正
・・・
    Dim C_NUMERIC_ITEME
・・・
    C_NUMERIC_ITEME = ""
    For i = 1 To cy
        If Cells(j, cont項目チェック内容列) = Rng.Cells(i, 1) Then 'Range1列 項目チェック内容と同じか
            JSP雛形名 = Rng.Cells(i, 8)
            If Rng.Cells(i, 3) = "○" or Rng.Cells(i, 4) = "○" Then
                C_NUMERIC_ITEME = "○"
            End If
            If Rng.Cells(i, 9) = "△" Then
                C_CLASS_NAME = " class=""form-eng"" "
            ElseIf Rng.Cells(i, 9) = "○" Then
                C_CLASS_NAME = " class=""form-jpn"" "
            End If
            Exit For
        End If
    Next i
・・・
                if C_NUMERIC_ITEME = "○" then
                    変換後data = 変換後data & hinagata_数字項目FromTo01(KBN, ITEM日本語名, IIf(必須 = True, 必須表示取得(), ""), 編集後項目名, _
                                                            入力桁取得(桁数), 桁数, Cells(j, cont項目チェック内容列), 文字桁表示取得(桁数, 桁固定名), srchLike条件)
                else
                    変換後data = 変換後data & hinagata_通常項目FromTo01(KBN, ITEM日本語名, IIf(必須 = True, 必須表示取得(), ""), 編集後項目名, _
                                                            入力桁取得(桁数), 桁数, Cells(j, cont項目チェック内容列), 文字桁表示取得(桁数, 桁固定名), srchLike条件)
                end if
・・・
                    if C_NUMERIC_ITEME = "○" then
                        変換後data = 変換後data & hinagata_数字項目FromTo01(KBN, ITEM日本語名, IIf(必須 = True, 必須表示取得(), ""), 編集後項目名, _
                                                            入力桁取得(桁数), 桁数, Cells(j, cont項目チェック内容列), 文字桁表示取得(桁数, 桁固定名), srchLike条件)
                    else
                        変換後data = 変換後data & hinagata_通常項目FromTo01(KBN, ITEM日本語名, IIf(必須 = True, 必須表示取得(), ""), 編集後項目名, _
                                                            入力桁取得(桁数), 桁数, Cells(j, cont項目チェック内容列), 文字桁表示取得(桁数, 桁固定名), srchLike条件)
                    end if
・・・
                    if C_NUMERIC_ITEME = "○" then
                        変換後data = 変換後data & hinagata_数字項目FromTo01(KBN, ITEM日本語名, IIf(必須 = True, 必須表示取得(), ""), 編集後項目名, _
                                                            入力桁取得(桁数), 桁数, Cells(j, cont項目チェック内容列), "", "")
                    else
                        変換後data = 変換後data & hinagata_通常項目FromTo01(KBN, ITEM日本語名, IIf(必須 = True, 必須表示取得(), ""), 編集後項目名, _
                                                            入力桁取得(桁数), 桁数, Cells(j, cont項目チェック内容列), "", "")
                    end if
<<修正後 end>>

■『201101122100_からの作成例\kaz_PHP自動作成◎自動生成お助けTOOL』のVBA『module3』 修正
■『kaz_PHP自動作成◎自動生成お助けTOOL』のVBA『module3』 修正

<<追加 start>>
Function hinagata_数字項目FromTo01(KBN, ITEM_NAME_KANJI, ITEM_HISSU, ITEM_NAME, ITEM_SIZE, ITEM_MAX_SIZE, ITEM_ZOKUSEI, ITEM_KETA, ITEM_LIKE)
    Dim 変更内容Array(10, 2)
    
    変更内容Array(1, 1) = "■{ITEM_NAME_KANJI}■"
    変更内容Array(2, 1) = "■{ITEM_HISSU}■"
    変更内容Array(3, 1) = "■{ITEM_NAME}■"
    変更内容Array(4, 1) = "■{ITEM_SIZE}■"
    変更内容Array(5, 1) = "■{ITEM_MAX_SIZE}■"
    変更内容Array(6, 1) = "■{ITEM_ZOKUSEI}■"
    変更内容Array(7, 1) = "■{ITEM_KETA}■"
    変更内容Array(8, 1) = "■{ITEM_LIKE}■"
    変更内容Array(9, 1) = "■{MENU_DIR}■"
    変更内容Array(10, 1) = "■{CLASS_NAME}■"
    変更内容Array(1, 2) = ITEM_NAME_KANJI
    変更内容Array(2, 2) = ITEM_HISSU
    変更内容Array(3, 2) = ITEM_NAME
    変更内容Array(4, 2) = ITEM_SIZE
    変更内容Array(5, 2) = ITEM_MAX_SIZE
    ITEM_ZOKUSEI = 項目属性変換(ITEM_ZOKUSEI)
    変更内容Array(6, 2) = ITEM_ZOKUSEI
    変更内容Array(7, 2) = ITEM_KETA
    ITEM_LIKE = 条件変換(ITEM_LIKE)
    変更内容Array(8, 2) = ITEM_LIKE
    変更内容Array(9, 2) = C_MENU_DIR
    変更内容Array(10, 2) = C_CLASS_NAME

    If KBN = "AV" Then
        hinagata_数字項目FromTo01 = hinagata変換("hinagata_AmendView_通常項目FromTo01.txt", 変更内容Array)
    ElseIf KBN = "DV" Then
        hinagata_数字項目FromTo01 = hinagata変換("hinagata_DetailView_通常項目FromTo01.txt", 変更内容Array)
    ElseIf KBN = "LS" Then
        hinagata_数字項目FromTo01 = hinagata変換("hinagata_ListSrch_数字項目FromTo01.txt", 変更内容Array)
    ElseIf KBN = "LV" Then
        hinagata_数字項目FromTo01 = hinagata変換("hinagata_ListView_通常項目FromTo01.txt", 変更内容Array)
    Else
        hinagata_数字項目FromTo01 = ""
    End If
    
End Function
<<追加 end>>

★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★
★★ Vectorに載せた今回修正内容(201101122100のTOOL修正内容.txt)
★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★

201101122100のTOOL修正内容.txt

【0】『kaz_PHP自動作成◎自動生成お助けTOOL』に以下の修正を行いました。

a.『バグ情報など』(http://kazpgm.ddo.jp/bugInfo.html)の5.をツールに反映しました。
  『AppCheckUtil.php』のcheckIUPPhotoメソッド修正
 内容:『初期データアップロード管理』の画像、ファイル名のチェック処理の間違い修正。
    補足ですが当システムでの、画像名は”英字項目名.拡張子”例:map.gifです。
      保存場所もプライマリーキーのフォルダの下ということに決まっています。

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

 <<修正後>>
    // 初期UPLOAD時のファイル名チェック
    function checkIUPPhoto(&$vars, &$errorMessages, $typeNm, $result,
                            $data, $inputCheck, $elementsIdx = '0', 
                            $exts = array( "jpg", "jpeg", "gif", "png" )) {    
        // 未入力をエラーとするかしないかの切り分け(未入力時は処理終了)
        if (empty($vars[$data])) {
            if ($inputCheck == true ) { // 未入力をチェック
                // ?を入力してください。
                if ($elementsIdx == '0') {
                    $errorMessages[$data] = '『' . $typeNm . '』を入力してください。';
                } else {
                    $errorMessages[$data] = 'Please input "' . $data . '"';
                }
                return false;
            }
            return $result;
        }
        if (mb_strlen($data) < mb_strlen($vars[$data])) {
            if (($data . '.') != mb_substr($vars[$data], 0, mb_strlen($data)+1)) {
                if ($elementsIdx == '0') {
                    $errorMessages[$data] = '『' . $typeNm . '』のファイル名は『' . 
                            $data . '.』で始めてください。';
                } else {
                    $errorMessages[$data] = 'Please input "' . $data . 
                            '"file name start "' . $data . '."';
                }
                return false;
            }
        } else {
            if ($elementsIdx == '0') {
                $errorMessages[$data] = '『' . $typeNm . '』のファイル名は『' . 
                            $data . '.』で始めてください。';
            } else {
                $errorMessages[$data] = 'Please input "' . $data . '"file name start "' . 
                            $data . '."';
            }
            return false;
        }

        chkExtension( $vars[$data], $exts, $errorMessages[$data] );
        if (''!= $errorMessages[$data]) {
            return false;
        }
        return $result;
    }

b.『バグ情報など』(http://kazpgm.ddo.jp/bugInfo.html)の7.をツールに反映しました。
 定義エクセルのK列(項目チェック内容)に
 ”シーケンス(同一親キー内SEQ数字)”を選んだとき使用している雛形に
 足りない部分があった。
  (「db_functions.php」で同一親キー内SEQ数字を取得すると
   ALIASがないというSQLエラーになります。)

  ■201101122100_からの作成例\kaz_PHP自動作成◎自動生成お助けTOOL\
   hinagata\Model\db_functions_getdbseq_case_03.txt 修正
  ■kaz_PHP自動作成◎自動生成お助けTOOL\
   hinagata\Model\db_functions_getdbseq_case_03.txt 修正

  7行目
  <<修正前>>
   WHERE ■{WHERE_DOITSU_KEY_NAI_STRING}■)
  <<修正後>>
   WHERE ■{WHERE_DOITSU_KEY_NAI_STRING}■) a

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

  ■『PHP作成マクロ(お助けTOOL).xls』のVBA『module1』 修正

   Private Function 入力値チェック作成(j, SRCH区分)
   ・・・
   <<修正前>>
       If UBound(桁数指定項目内容) = 0 Then
           桁数 = 桁数指定項目内容(0)
       ElseIf UBound(桁数指定項目内容) = 1 Then
           min = 桁数指定項目内容(0)
           max = 桁数指定項目内容(1)
       ElseIf UBound(桁数指定項目内容) = 4 Then
           min = 桁数指定項目内容(0)
           max = 桁数指定項目内容(1)
           整数 = 桁数指定項目内容(2)
           少数 = 桁数指定項目内容(3)
       End If
   <<修正後>>
       If UBound(桁数指定項目内容) = 0 Then
           桁数 = 桁数指定項目内容(0)
       ElseIf UBound(桁数指定項目内容) = 1 Then
           min = 桁数指定項目内容(0)
           max = 桁数指定項目内容(1)
           桁数 = (Log(max) / Log(10)) + 2
       ElseIf UBound(桁数指定項目内容) = 3 Then
           min = 桁数指定項目内容(0)
           max = 桁数指定項目内容(1)
           整数 = 桁数指定項目内容(2)
           少数 = 桁数指定項目内容(3)
           桁数 = (Log(max) / Log(10)) + 2
           桁数 = 桁数 + 少数 + 1
       End If

   Private Function JSP項目値作成(j, SRCH区分, KBN)
   ・・・
   <<修正前>>
       If UBound(桁数指定項目内容) = 0 Then
           桁数 = 桁数指定項目内容(0)
       ElseIf UBound(桁数指定項目内容) = 1 Then
           min = 桁数指定項目内容(0)
           max = 桁数指定項目内容(1)
       ElseIf UBound(桁数指定項目内容) = 4 Then
           min = 桁数指定項目内容(0)
           max = 桁数指定項目内容(1)
           整数 = 桁数指定項目内容(2)
           少数 = 桁数指定項目内容(3)
       End If
   <<修正後>>
       If UBound(桁数指定項目内容) = 0 Then
           桁数 = 桁数指定項目内容(0)
       ElseIf UBound(桁数指定項目内容) = 1 Then
           min = 桁数指定項目内容(0)
           max = 桁数指定項目内容(1)
           桁数 = (Log(max) / Log(10)) + 2
       ElseIf UBound(桁数指定項目内容) = 3 Then
           min = 桁数指定項目内容(0)
           max = 桁数指定項目内容(1)
           整数 = 桁数指定項目内容(2)
           少数 = 桁数指定項目内容(3)
           桁数 = (Log(max) / Log(10)) + 2
           桁数 = 桁数 + 少数 + 1
       End If

  ■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;
       }


d.『バグ情報など』(http://kazpgm.ddo.jp/bugInfo.html)の8.をツールに反映しました。
  ・T列、V列に値を入れたらW列に値が入っていなくてもエクセルマクロで落ちないように修正した。
  ・AA列、AC列に値を入れたらAD列に値が入っていなくてもエクセルマクロで落ちないように修正した。

  ■『201101122100_からの作成例\kaz_PHP自動作成◎自動生成お助けTOOL』のVBA『module1』 修正
  ■『kaz_PHP自動作成◎自動生成お助けTOOL』のVBA『module1』 修正

   Private Function JSP項目値作成(j, SRCH区分, KBN)
   ・・・
   <<変更前>>
       If KBN = "LV" Then
   <<変更後>>
   '--20110119 テスト 変更 start------------
       'If KBN = "LV" Then
       If KBN = "LV" Or j > UBound(C_TDインデントデータ) Then
   '--20110119 テスト 変更 end------------


e.『バグ情報など』(http://kazpgm.ddo.jp/bugInfo.html)の9.をツールに反映しました。
 「★TOOL用コンスタント★」シートの以下項目が空の場合、
 マクロ(『PHP作成マクロ(お助けTOOL).xls』の)実行時にエラーを表示するようにしました。

  『C_SYSTEM_TITLE_KANJI = 』
  『C_BASE_USER_DIR_THE_SAME_SERVER_DIR = 』
  『C_BASE_ADMIN_DIR = 』
  『C_SEQ_GET_TIMING = 』
  『C_LIST_NUMBER_DISP = 』
  『C_CSV_CODE_VALUE = 』
  『_LIST_ASC_DESC_ADMIN = 』
  『_LIST_ASC_DESC_USER = 』
  『C_ROOT_DIR = 』
  『C_HISSU_RED_DISP = 』
  『C_DB_TABLE_TYPE = 』
  『C_TEL_HYOUJI = 』
  『C_HISSU_HYOUJI = 』
  『C_COPYRIGHT_STR = 』

  ■『201101122100_からの作成例\kaz_PHP自動作成◎自動生成お助けTOOL』のVBA『module1』 修正
  ■『kaz_PHP自動作成◎自動生成お助けTOOL』のVBA『module1』 修正

   <<追加 start>>
   Private Function TOOL用コンスタント必須項目チェック()
       TOOL用コンスタント必須項目チェック = True
       If "" = ActiveWorkbook.Sheets("★TOOL用コンスタント★").Range("C_SYSTEM_TITLE_KANJI") Then
           TOOL用コンスタント必須項目チェック = False
           MsgBox ("「★TOOL用コンスタント★」シートの「C_SYSTEM_TITLE_KANJI = 」項目が空白です。指定してください。")
       End If
       If "" = ActiveWorkbook.Sheets("★TOOL用コンスタント★").Range("C_BASE_USER_DIR_THE_SAME_SERVER_DIR") Then
           TOOL用コンスタント必須項目チェック = False
           MsgBox ("「★TOOL用コンスタント★」シートの「C_BASE_USER_DIR_THE_SAME_SERVER_DIR = 」項目が空白です。指定してください。")
       End If
       If "" = ActiveWorkbook.Sheets("★TOOL用コンスタント★").Range("C_BASE_ADMIN_DIR") Then
           TOOL用コンスタント必須項目チェック = False
           MsgBox ("「★TOOL用コンスタント★」シートの「C_BASE_ADMIN_DIR = 」項目が空白です。指定してください。")
       End If
       If "" = ActiveWorkbook.Sheets("★TOOL用コンスタント★").Range("C_SEQ_GET_TIMING") Then
           TOOL用コンスタント必須項目チェック = False
           MsgBox ("「★TOOL用コンスタント★」シートの「C_SEQ_GET_TIMING = 」項目が空白です。指定してください。")
       End If
       If "" = ActiveWorkbook.Sheets("★TOOL用コンスタント★").Range("C_LIST_NUMBER_DISP") Then
           TOOL用コンスタント必須項目チェック = False
           MsgBox ("「★TOOL用コンスタント★」シートの「C_LIST_NUMBER_DISP = 」項目が空白です。指定してください。")
       End If
       If "" = ActiveWorkbook.Sheets("★TOOL用コンスタント★").Range("C_CSV_CODE_VALUE") Then
           TOOL用コンスタント必須項目チェック = False
           MsgBox ("「★TOOL用コンスタント★」シートの「C_CSV_CODE_VALUE = 」項目が空白です。指定してください。")
       End If
       If "" = ActiveWorkbook.Sheets("★TOOL用コンスタント★").Range("C_LIST_ASC_DESC_ADMIN") Then
           TOOL用コンスタント必須項目チェック = False
           MsgBox ("「★TOOL用コンスタント★」シートの「C_LIST_ASC_DESC_ADMIN = 」項目が空白です。指定してください。")
       End If
       If "" = ActiveWorkbook.Sheets("★TOOL用コンスタント★").Range("C_LIST_ASC_DESC_USER") Then
           TOOL用コンスタント必須項目チェック = False
           MsgBox ("「★TOOL用コンスタント★」シートの「C_LIST_ASC_DESC_USER = 」項目が空白です。指定してください。")
       End If
       If "" = ActiveWorkbook.Sheets("★TOOL用コンスタント★").Range("C_ROOT_DIR") Then
           TOOL用コンスタント必須項目チェック = False
           MsgBox ("「★TOOL用コンスタント★」シートの「C_ROOT_DIR = 」項目が空白です。指定してください。")
       End If
       If "" = ActiveWorkbook.Sheets("★TOOL用コンスタント★").Range("C_HISSU_RED_DISP") Then
           TOOL用コンスタント必須項目チェック = False
           MsgBox ("「★TOOL用コンスタント★」シートの「C_HISSU_RED_DISP = 」項目が空白です。指定してください。")
       End If
       If "" = ActiveWorkbook.Sheets("★TOOL用コンスタント★").Range("C_DB_TABLE_TYPE") Then
           TOOL用コンスタント必須項目チェック = False
           MsgBox ("「★TOOL用コンスタント★」シートの「C_DB_TABLE_TYPE = 」項目が空白です。指定してください。")
       End If
       If "" = ActiveWorkbook.Sheets("★TOOL用コンスタント★").Range("C_TEL_HYOUJI") Then
           TOOL用コンスタント必須項目チェック = False
           MsgBox ("「★TOOL用コンスタント★」シートの「C_TEL_HYOUJI = 」項目が空白です。指定してください。")
       End If
       If "" = ActiveWorkbook.Sheets("★TOOL用コンスタント★").Range("C_HISSU_HYOUJI") Then
           TOOL用コンスタント必須項目チェック = False
           MsgBox ("「★TOOL用コンスタント★」シートの「C_HISSU_HYOUJI = 」項目が空白です。指定してください。")
       End If
       If "" = ActiveWorkbook.Sheets("★TOOL用コンスタント★").Range("C_COPYRIGHT_STR") Then
           TOOL用コンスタント必須項目チェック = False
           MsgBox ("「★TOOL用コンスタント★」シートの「C_COPYRIGHT_STR = 」項目が空白です。指定してください。")
       End If

   End Function
   <<追加 end>>
   ・・・
   Public Sub DDL文作成Otaasuke()  ' DDL文を戻す。
   <<追加 start>>
       If TOOL用コンスタント必須項目チェック() = False Then
           MsgBox ("エラー項目を修正した後マクロを実行してください。")
           Exit Sub
       End If
   <<追加 end>>
   ・・・
   Public Sub writeLbiなどOtaasuke()
   <<追加 start>>
       If TOOL用コンスタント必須項目チェック() = False Then
           MsgBox ("エラー項目を修正した後マクロを実行してください。")
           Exit Sub
       End If
   <<追加 end>>
   ・・・
   Public Sub writePgmOtasuke()
   <<追加 start>>
       If TOOL用コンスタント必須項目チェック() = False Then
           MsgBox ("エラー項目を修正した後マクロを実行してください。")
           Exit Sub
       End If
   <<追加 end>>


f.『バグ情報など』(http://kazpgm.ddo.jp/bugInfo.html)の10.をツールに反映しました。

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

  config.php
  <<修正前>>
  if (strncmp(PHP_OS, 'WIN', 3)) { 
  if (strncmp(PHP_OS, 'WIN', 3)) { define('DSN', 'mysql://uxxx:uxxx@localhost/dbxxx'); }
  <<修正後>>
  if (substr(PHP_OS, 0, 3) == 'WIN') { 
  if (substr(PHP_OS, 0, 3) == 'WIN') { define('DSN', 'mysql://uxxx:uxxx@localhost/dbxxx'); }


g.数字のFromToチェックとして、AppCheckUtilにcheckNumericCompareToメソッド作った。

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

  <<追加 start>>
  function checkNumericCompareTo(&$vars, &$errorMessages, $typeNm, $result,
              $dataFrom, $dataTo, $elementsIdx = '0') {  

    if (''!= $vars[$dataFrom] && ''!= $vars[$dataTo] && $vars[$dataFrom]+0 > $vars[$dataTo]+0) {
      // From <= Toで入力してください。
      if ($elementsIdx == '0') {
        $errorMessages[$dataFrom] = '『' . $typeNm . '』はFrom <= Toで入力してください。';
      } else {
        $errorMessages[$dataFrom] = 'Please input From <= To "' . $typeNm . '"';
      }
      return false;
    }
    
    return true;
  }
  <<追加 end>>

h.定義EXCELのK列(項目チェック内容)で『小数点あり及びカンマあり数値』を選んで、
  From、 To検索項目を自動作成◎自動生成した検索条件入力値のチェックが、
  こんな風になってしまっている。
  (View は"srch_item47_from""srch_item47_to"の2項目できているが、
  チェックロジックが1個のまま2つになっていない)

  // 小数点あり及びカンマあり数値
  $result = AppCheckUtil::checkDotNumeric($vars, $errorMessages, 
  "小数点あり及びカンマあり数値",  $result, 
  "srch_item47", 1, 10000, 5, 2, false,'0');
  
  これを、これになるように修正した。
  
  // 小数点あり及びカンマあり数値
  $result = AppCheckUtil::checkDotNumeric($vars, $errorMessages, 
  "小数点あり及びカンマあり数値",  $result, "srch_item47_from", 
  1, 10000, 5, 2, false,'0');
  
  $result = AppCheckUtil::checkDotNumeric($vars, $errorMessages, 
  "小数点あり及びカンマあり数値",  $result, "srch_item47_to", 
  1, 10000, 5, 2, false,'0');
  
  $result = AppCheckUtil::checkNumericCompareTo($vars, $errorMessages, 
  "小数点あり及びカンマあり数値",  $result, "srch_item47_from", "srch_item47_to",'0');



  ■『201101122100_からの作成例\kaz_PHP自動作成◎自動生成お助けTOOL』のVBA『module1』 修正
  ■『kaz_PHP自動作成◎自動生成お助けTOOL』のVBA『module1』 修正

  Private Function 入力値チェック作成(j, SRCH区分)
  ・・・
      ElseIf InStr(Cells(j, cont項目チェック内容列), "小数点あり及びカンマ") > 0 Then
          If UCase(SRCH区分) <> "SRCH" And Cells(j, contPK列) <> "" Then '主キーのチェックは追加のときのみ行う。
  ・・・
          Else
      '---20110121 追加 start
              If UCase(SRCH区分) = "SRCH" And Cells(j, C_検索項目一致条件) = "FromTo" Then
                  wkStr = wkStr & Chr(9) & Chr(9) & "$result = AppCheckUtil::checkDotNumeric($vars, $errorMessages, """ & 項目名日本語取得(j) & "(from)"",  $result, """ & _
                                                                  編集後項目名 & From文字 & """, " & _
                                                                  "" & min & ", " & max & ", " & 整数 & ", " & 少数 & ", " & 必須 & ",'" & C_ELEMENTS_IDX & "');" & Chr(13) & Chr(10)
                  wkStr = wkStr & Chr(9) & Chr(9) & "$result = AppCheckUtil::checkDotNumeric($vars, $errorMessages, """ & 項目名日本語取得(j) & "(to)"",  $result, """ & _
                                                                  編集後項目名 & To文字 & """, " & _
                                                                  "" & min & ", " & max & ", " & 整数 & ", " & 少数 & ", " & 必須 & ",'" & C_ELEMENTS_IDX & "');" & Chr(13) & Chr(10)
                  wkStr = wkStr & Chr(9) & Chr(9) & "$result = AppCheckUtil::checkNumericCompareTo($vars, $errorMessages, """ & 項目名日本語取得(j) & """,  $result, """ & _
                                                                  編集後項目名 & From文字 & """, """ & _
                                                                  編集後項目名 & To文字 & """,'" & C_ELEMENTS_IDX & "');"
              Else
      '---20110121 追加 end
                  wkStr = wkStr & Chr(9) & Chr(9) & "$result = AppCheckUtil::checkDotNumeric($vars, $errorMessages, """ & 項目名日本語取得(j) & """,  $result, """ & _
                                                              編集後項目名 & """, " & _
                                                              "" & min & ", " & max & ", " & 整数 & ", " & 少数 & ", " & 必須 & ",'" & C_ELEMENTS_IDX & "');"
      g_wk0_SET_VARS = g_wk0_SET_VARS & SET_VARSを作成(編集後項目名, g_wk0_Count_Item, j)
      g_wk0_Count_Item = g_wk0_Count_Item + 1
              End If
      '---20110121 追加 start
          End If
      '---20110121 追加 end


■201101122100_からの作成例\kaz_PHP自動作成◎自動生成お助けTOOL\
 hinagata\View\hinagata_ListSrch_数字項目FromTo01.txt を新規に作成した。
■kaz_PHP自動作成◎自動生成お助けTOOL\
 hinagata\View\hinagata_ListSrch_数字項目FromTo01.txt を新規に作成した。
  <!-- suji01 Fromto -->
                  <tr>
                    <th width="18%" nowrap ><label for="■{ITEM_NAME}■_from">■{ITEM_NAME_KANJI}■</label></th>
                    <td class="<?=($err['■{ITEM_NAME}■_from']=='' && $err['■{ITEM_NAME}■_to']=='')?'none':'error' ?>"><input name="■{ITEM_NAME}■_from" ■{CLASS_NAME}■  id="■{ITEM_NAME}■_from" type="text" size="■{ITEM_SIZE}■" maxlength="■{ITEM_MAX_SIZE}■" value="<?= stz($o['■{ITEM_NAME}■_from'])?>">
                      から
                    <input name="■{ITEM_NAME}■_to" ■{CLASS_NAME}■  type="text" size="■{ITEM_SIZE}■" maxlength="■{ITEM_MAX_SIZE}■" value="<?= stz($o['■{ITEM_NAME}■_to'])?>">
                      まで&nbsp;&nbsp;■{ITEM_ZOKUSEI}■&nbsp;&nbsp;<?= $err['■{ITEM_NAME}■_from']?><?= $err['■{ITEM_NAME}■_to']?></td>
                  </tr>


■『201101122100_からの作成例\kaz_PHP自動作成◎自動生成お助けTOOL』のVBA『module1』 修正
■『kaz_PHP自動作成◎自動生成お助けTOOL』のVBA『module1』 修正
  <<修正前 start>>
  Private Function JSP項目値作成(j, SRCH区分, KBN)を修正
  ・・・
      For i = 1 To cy
          If Cells(j, cont項目チェック内容列) = Rng.Cells(i, 1) Then 'Range1列 項目チェック内容と同じか
              JSP雛形名 = Rng.Cells(i, 8)
              If Rng.Cells(i, 9) = "△" Then
                  C_CLASS_NAME = " class=""form-eng"" "
              ElseIf Rng.Cells(i, 9) = "○" Then
                  C_CLASS_NAME = " class=""form-jpn"" "
              End If
              Exit For
          End If
      Next i
  ・・・
                  変換後data = 変換後data & hinagata_通常項目FromTo01(KBN, ITEM日本語名, IIf(必須 = True, 必須表示取得(), ""), 編集後項目名, _
                                                              入力桁取得(桁数), 桁数, Cells(j, cont項目チェック内容列), 文字桁表示取得(桁数, 桁固定名), srchLike条件)
  ・・・
                      変換後data = 変換後data & hinagata_通常項目FromTo01(KBN, ITEM日本語名, IIf(必須 = True, 必須表示取得(), ""), 編集後項目名, _
                                                              入力桁取得(桁数), 桁数, Cells(j, cont項目チェック内容列), 文字桁表示取得(桁数, 桁固定名), srchLike条件)
  ・・・
                      変換後data = 変換後data & hinagata_通常項目FromTo01(KBN, ITEM日本語名, IIf(必須 = True, 必須表示取得(), ""), 編集後項目名, _
                                                              入力桁取得(桁数), 桁数, Cells(j, cont項目チェック内容列), "", "")
  <<修正前 end>>

  <<修正後 start>>
  Private Function JSP項目値作成(j, SRCH区分, KBN)を修正
  ・・・
      Dim C_NUMERIC_ITEME
  ・・・
      C_NUMERIC_ITEME = ""
      For i = 1 To cy
          If Cells(j, cont項目チェック内容列) = Rng.Cells(i, 1) Then 'Range1列 項目チェック内容と同じか
              JSP雛形名 = Rng.Cells(i, 8)
              If Rng.Cells(i, 3) = "○" or Rng.Cells(i, 4) = "○" Then
                  C_NUMERIC_ITEME = "○"
              End If
              If Rng.Cells(i, 9) = "△" Then
                  C_CLASS_NAME = " class=""form-eng"" "
              ElseIf Rng.Cells(i, 9) = "○" Then
                  C_CLASS_NAME = " class=""form-jpn"" "
              End If
              Exit For
          End If
      Next i
  ・・・
                  if C_NUMERIC_ITEME = "○" then
                      変換後data = 変換後data & hinagata_数字項目FromTo01(KBN, ITEM日本語名, IIf(必須 = True, 必須表示取得(), ""), 編集後項目名, _
                                                              入力桁取得(桁数), 桁数, Cells(j, cont項目チェック内容列), 文字桁表示取得(桁数, 桁固定名), srchLike条件)
                  else
                      変換後data = 変換後data & hinagata_通常項目FromTo01(KBN, ITEM日本語名, IIf(必須 = True, 必須表示取得(), ""), 編集後項目名, _
                                                              入力桁取得(桁数), 桁数, Cells(j, cont項目チェック内容列), 文字桁表示取得(桁数, 桁固定名), srchLike条件)
                  end if
  ・・・
                      if C_NUMERIC_ITEME = "○" then
                          変換後data = 変換後data & hinagata_数字項目FromTo01(KBN, ITEM日本語名, IIf(必須 = True, 必須表示取得(), ""), 編集後項目名, _
                                                              入力桁取得(桁数), 桁数, Cells(j, cont項目チェック内容列), 文字桁表示取得(桁数, 桁固定名), srchLike条件)
                      else
                          変換後data = 変換後data & hinagata_通常項目FromTo01(KBN, ITEM日本語名, IIf(必須 = True, 必須表示取得(), ""), 編集後項目名, _
                                                              入力桁取得(桁数), 桁数, Cells(j, cont項目チェック内容列), 文字桁表示取得(桁数, 桁固定名), srchLike条件)
                      end if
  ・・・
                      if C_NUMERIC_ITEME = "○" then
                          変換後data = 変換後data & hinagata_数字項目FromTo01(KBN, ITEM日本語名, IIf(必須 = True, 必須表示取得(), ""), 編集後項目名, _
                                                              入力桁取得(桁数), 桁数, Cells(j, cont項目チェック内容列), "", "")
                      else
                          変換後data = 変換後data & hinagata_通常項目FromTo01(KBN, ITEM日本語名, IIf(必須 = True, 必須表示取得(), ""), 編集後項目名, _
                                                              入力桁取得(桁数), 桁数, Cells(j, cont項目チェック内容列), "", "")
                      end if
  <<修正後 end>>

■『201101122100_からの作成例\kaz_PHP自動作成◎自動生成お助けTOOL』のVBA『module3』 修正
■『kaz_PHP自動作成◎自動生成お助けTOOL』のVBA『module3』 修正
  <<追加 start>>
  Function hinagata_数字項目FromTo01(KBN, ITEM_NAME_KANJI, ITEM_HISSU, ITEM_NAME, ITEM_SIZE, ITEM_MAX_SIZE, ITEM_ZOKUSEI, ITEM_KETA, ITEM_LIKE)
      Dim 変更内容Array(10, 2)
      
      変更内容Array(1, 1) = "■{ITEM_NAME_KANJI}■"
      変更内容Array(2, 1) = "■{ITEM_HISSU}■"
      変更内容Array(3, 1) = "■{ITEM_NAME}■"
      変更内容Array(4, 1) = "■{ITEM_SIZE}■"
      変更内容Array(5, 1) = "■{ITEM_MAX_SIZE}■"
      変更内容Array(6, 1) = "■{ITEM_ZOKUSEI}■"
      変更内容Array(7, 1) = "■{ITEM_KETA}■"
      変更内容Array(8, 1) = "■{ITEM_LIKE}■"
      変更内容Array(9, 1) = "■{MENU_DIR}■"
      変更内容Array(10, 1) = "■{CLASS_NAME}■"
      変更内容Array(1, 2) = ITEM_NAME_KANJI
      変更内容Array(2, 2) = ITEM_HISSU
      変更内容Array(3, 2) = ITEM_NAME
      変更内容Array(4, 2) = ITEM_SIZE
      変更内容Array(5, 2) = ITEM_MAX_SIZE
      ITEM_ZOKUSEI = 項目属性変換(ITEM_ZOKUSEI)
      変更内容Array(6, 2) = ITEM_ZOKUSEI
      変更内容Array(7, 2) = ITEM_KETA
      ITEM_LIKE = 条件変換(ITEM_LIKE)
      変更内容Array(8, 2) = ITEM_LIKE
      変更内容Array(9, 2) = C_MENU_DIR
      変更内容Array(10, 2) = C_CLASS_NAME

      If KBN = "AV" Then
          hinagata_数字項目FromTo01 = hinagata変換("hinagata_AmendView_通常項目FromTo01.txt", 変更内容Array)
      ElseIf KBN = "DV" Then
          hinagata_数字項目FromTo01 = hinagata変換("hinagata_DetailView_通常項目FromTo01.txt", 変更内容Array)
      ElseIf KBN = "LS" Then
          hinagata_数字項目FromTo01 = hinagata変換("hinagata_ListSrch_数字項目FromTo01.txt", 変更内容Array)
      ElseIf KBN = "LV" Then
          hinagata_数字項目FromTo01 = hinagata変換("hinagata_ListView_通常項目FromTo01.txt", 変更内容Array)
      Else
          hinagata_数字項目FromTo01 = ""
      End If
      
  End Function
  <<追加 end>>


2011/2/15 21:00-1:30 検索項目FROM、TOでチェックのやり方がテキスト、日付、数字でちょっと違ってしまったが。気になるようなら自動作成◎自動生成後修正してください。という感じです。本日今回の修正をVectorの登録依頼した。ver0.1(201101122100)。<−2011/02/18 vectorからOKがきた。