kazpgmの日記

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

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

TOOL更新_”バグ情報など”を一つづつ修正している。
今日はここまで修正した。まだVectorに載せるまでにはいたっていない。

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


d.『バグ情報など』(http://kazpgm.ddo.jp/bugInfo.html)の8.
 今日は解決しなかった。また明日から調査する。  

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 = 』

  ■『PHP作成マクロ(お助けTOOL).xls』の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'); }

20110112 20:00-01:30 桁数の求め方。あまり深く考えずに作っていたことを思い出した。これで、いいだろう。

2011/02/15 23:20-23:20 「 桁数 = (max mod 10) + 2」は間違っていた。「桁数 = (Log(max) / Log(10)) + 2」が正しい。