kazpgmの日記

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

kaz_javaSpringBootプログラム作成ツールのエクセルVBAをVBに変えてエクセルの外に出す。

■8:40
自動作成マクロVBAVB.netに変換したのがとりあえず動いた。これから、自動作成マクロVBAで出来たPGMとVB.netで出来たPGMを比較して、違うところを順番に修正していく。
①templatesのsubcategoryの4つのhtmlから調査修正
 現象:なんとなく、テーブル項目数が多いとき2行にするロジックがダメみたいだ。
 原因:№→No置換(変数に№が使えないから一括置換した)のため「Public Const C_LIST_NUMBER_DISP = "No表示"」になっていた。"№表示"でないとダメ
 修正内容:Module2_Consts.vb、Public Const C_LIST_NUMBER_DISP = "№表示"に変更した。これだけでこの件は、PGM比較OKになった。
・調査する比較結果
f:id:kazpgm:20220217085206p:plain
・subcategoryRegisterList.html
f:id:kazpgm:20220217085540p:plain
・subcategoryList.html
f:id:kazpgm:20220217085757p:plain
・subcategoryDetail.html
f:id:kazpgm:20220217085847p:plain
・subcategoryAmendRegister.html
f:id:kazpgm:20220217090002p:plain
■11:48
②templatesのmessages.propertiesを調査修正
 現象:各テーブル定義用の項目名が一つもできていない。
 原因:Module1_一気にPGM作成Otaasuke.vb・「Private Sub writePgmOtasuke(messagesProperties1WK, messagesProperties2WK)」のパラメータにwritePgmOtasuke関数中で値を入れているが、VB.netはデフォルト値渡しなので、呼び元に値が戻らない。なので、「Private Sub writePgmOtasuke(Byref messagesProperties1WK, Byref messagesProperties2WK)」に変更する。
 修正内容:VB.netはデフォルト値渡し、エクセルVBAのパラメータはデフォルト参照渡しなので、VB.netに置き換えた全ての関数のByValがついていないものはすべてByrefを付ける。これだけでこの件は、PGM比較OKになった。
・調査する比較結果
f:id:kazpgm:20220217093417p:plain
■13:45
③CategoryServiceImpl.javaのregisterForCategoryUpCsvDoメソッドで”・・・『当データ公開区分』を正しく入力してください");”が自動作成されない。とか、BiztypeServiceImpl.javaのregisterForBiztypeUpCsvDoメソッドで”・・・『有効フラグ』を正しく入力してください");が自動作成されない。とかを調査修正
 現象:CSVアップロードのサービスクラスの複合入力チェックで自動作成できていないものがある。
 原因:②修正時にByRefをつけ忘れてしまったものだった。
 修正内容:②と同じ。これだけでこの件は、PGM比較OKになった。
・調査する比較結果
f:id:kazpgm:20220217134932p:plain
f:id:kazpgm:20220217134902p:plain
■14:25
④Contorollerクラスで自動作成されていない箇所がある。調査修正
 現象:Contorollerクラスで、ひな形■{02_07_GetDbEleAryFormSet}■が自動作成できていない。そのほかにもある。
 原因:自動作成マクロVBAVB.netに変換したとき、VB.netではオブジェクトの"Set"はいらないので、ALL削除した。その時、置換名(■{02_07_GetDbEleAryFormSet}■)だったのが■{02_07_GetDbEleAryForm}■になってしまった。置換名が違うのでPGM自動作成できなかった。
 修正内容:自動作成マクロVBAを”■{[^}]*[Ss][Ee][Tt][^}]*}■”でGrepした結果から"Set"を除いた名称でVB.netを検索し、置換名を修正する。調査した結果、controller作成.vbの自動作成マクロVBAVB.netに変換した時、"Set "(後ろ空白あり)を削除するところ"Set"(後ろ空白なし)を削除した結果こうなったことが分かった。これだけでこの件は、PGM比較OKになった。
・調査する比較結果
f:id:kazpgm:20220217141958p:plain
■18:02
⑤Contorollerクラスで改行が入っていない箇所がある。調査修正
 現象:Contorollerクラスの情報登録メソッド(@PostMapping(params="mode=ins_do"))の主キー設定の箇所で複数キーの時、設定文の間に改行が設定されていない。
 原因:作成例\hinagata\java\controller\02_48_JoinC_SetPKItem部品.txtの改行コードが\r\nになってなくて\nだった。が、これが原因ではない。自動作成ロジックに「& vbCrLf」が抜けていた。
f:id:kazpgm:20220217182230p:plain
 修正内容:作成例\hinagata\java\controller\02_48_JoinC_SetPKItem部品.txtの改行コードを\r\nにした。さらにVB.netで「& vbCrLf」を付加した。
・調査する比較結果f:id:kazpgm:20220217175656p:plain