kazpgmの日記

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

フロント側をFlutter(スマホ)Thymeleaf(PC)、バックエンド側SpringBootの自動作成@自動生成ツール作成中

18:35
①今日も、昨日に続いて。コンパイルエラーを、一つ一つつぶしている。とりあえず洗い出したので、修正は明日やろう。
昨日今日ででた内容

■情報画面Form、検索画面Formのクラスにcupertino.dartのimportが必要
 対象は、ひな形01_00_form.txt、03_00_srch_form.txt
 これ→import 'package:flutter/cupertino.dart';

■情報画面Form、検索画面FormのクラスのDateはDateTime?とする。
 対象は、ひな形01_04_03_00_ItmDate部品.txt、03_04_03_00_ItmDateFormTo部品.txt、03_04_03_00_ItmDateFormTo部品.txt
  ・dartにDateクラスはない。?をつけないとnullが設定できない。
   late Date ・・・ 
 ↓
   late DateTime? ・・・ 
  
■情報画面Form、検索画面FormのクラスのLongはintとする。
 対象は、ひな形01_04_02_00_ItmLong部品.txt、03_04_02_00_ItmLongFormTo部品.txt、03_04_02_00_ItmLongFormTo部品.txt
   late Long ・・・ 
 ↓
   late int ・・・

■検索画面Formのクラスにcomm_utils.dartのimportが必要
 対象は、ひな形03_00_srch_form.txt
 これ→import 'package:flutter_app/utils/comm_utils.dart';

■検索画面Formのクラス名の先頭を大文字にする
 対象は、ひな形03_00_srch_form.txt
 /// ■{TITLE}■検索画面Form
 class ■{prg_name}■SrchForm {
 ↓
 class ■{Prg_name}■SrchForm {

■エラーメッセージ用Form、検索画面Form中の、エラーメッセージ用Formクラス名の先頭を大文字にする
 ①対象は、ひな形02_00_err_form.txt
   // 初期値のクラスを作成している
   ■{prg_name}■ErrForm.initData()  {
 ↓
   ■{Prg_name}■ErrForm.initData()  {

 ②対象は、ひな形03_00_srch_form.txt
   late ■{prg_name}■SrchErrForm ■{prg_name}■SrchErrForm; // プロパティ エラーメッセージ
 ↓
   late ■{Prg_name}■SrchErrForm ■{prg_name}■SrchErrForm; // プロパティ エラーメッセージ

 ③対象は、ひな形03_00_srch_form.txt
     ■{prg_name}■SrchErrForm = ■{prg_name}■SrchErrForm.initData();
 ↓
     ■{prg_name}■SrchErrForm = ■{Prg_name}■SrchErrForm.initData();

■情報画面Form、検索画面Form中に「;」の無い文がある
 対象は、Vb.netのFlutterForm作成クラス・項目関連作成ForTblForm関数
         'form用----------------------------------------------------
         If A01_05_01_ItemArgWK <> "" Then
             変更内容Array1(4, 1) = "■{01_05_01_ItemArgs}■"
             変更内容Array1(4, 2) = Left(A01_05_01_ItemArgWK, Len(A01_05_01_ItemArgWK) - 1)
             変更内容Array1(5, 1) = "■{01_05_02_ItemSets}■"
 <<修正前 start>>
             変更内容Array1(5, 2) = Left(A01_05_02_ItemSetWK, Len(A01_05_02_ItemSetWK) - 1)
 <<修正前 end>>
 <<修正後 start>>
             変更内容Array1(5, 2) = A01_05_02_ItemSetWK
 <<修正後 end>>
 ・・・
         'srchForm用----------------------------------------------------
         If A03_05_01_ItemArgWK <> "" Then
             変更内容Array1(4, 1) = "■{03_05_01_ItemArgs}■"
             変更内容Array1(4, 2) = Left(A03_05_01_ItemArgWK, Len(A03_05_01_ItemArgWK) - 1)
             変更内容Array1(5, 1) = "■{03_05_02_ItemSets}■"
 <<修正前 start>>
             変更内容Array1(5, 2) = Left(A03_05_02_ItemSetWK, Len(A03_05_02_ItemSetWK) - 1)
 <<修正前 end>>
 <<修正後 start>>
             変更内容Array1(5, 2) = A03_05_02_ItemSetWK
 <<修正後 end>>

■情報画面Form、検索画面Form中の「int」項目はString()が必要な場所がある
 対象は、ひな形01_05_02_ItemSetInt部品.txt、03_05_02_ItemSetIntFormTo部品.txtを新規追加
     及び、Vb.netのFlutterForm作成クラス・項目関連作成ForTblForm関数修正
 ①01_05_02_ItemSetInt部品.txt 新規追加
 <<追加 start>>
     ■{item_name}■Controller.text = ■{item_name}■.toString();
 <<追加 end>>

 ②03_05_02_ItemSetIntFormTo部品.txt 新規追加
 <<追加 start>>
     ■{item_name}■FromController.text = ■{item_name}■From.toString();
     ■{item_name}■ToController.text = ■{item_name}■To.toString();
 <<追加 end>>

 ③Vb.netのFlutterForm作成クラス・項目関連作成ForTblForm関数
                 If Left(Cells(i, cont項目チェック内容列), 5) = "シーケンス" Or Cells(i, contコード値指定列) <> "" Or
                         Trim(UCase(Left(Cells(i, cont属性列), 4))) = "DATE" Or Left(Cells(i, cont項目チェック内容列), Len("画像")) = "画像" Or
                         Left(Cells(i, cont項目チェック内容列), Len("ファイル")) = "ファイル" Then
                 Else
                     A01_05_01_ItemArgWK = 先頭以外に改行付加(A01_05_01_ItemArgWK) & hinagataグループ名指定のhinagata変換(hinagataFormFlutter, "01_05_01_ItemArg部品.txt", 変更内容Array)
 <<追加 start>>
                     If Trim(Left(UCase(Cells(i, cont属性列)), 6)) = "BIGINT" Then
                         A01_05_02_ItemSetWK = 先頭以外に改行付加(A01_05_02_ItemSetWK) & hinagataグループ名指定のhinagata変換(hinagataFormFlutter, "01_05_02_ItemSetInt部品.txt", 変更内容Array)
                     ELSE
 <<追加 end>>
                         A01_05_02_ItemSetWK = 先頭以外に改行付加(A01_05_02_ItemSetWK) & hinagataグループ名指定のhinagata変換(hinagataFormFlutter, "01_05_02_ItemSet部品.txt", 変更内容Array)
 <<追加 start>>
                     End If
 <<追加 end>>
                 End If
 ・・・
                 If Cells(i, contコード値指定列) <> "" Or Trim(UCase(Left(Cells(i, cont属性列), 4))) = "DATE" Or Left(Cells(i, cont項目チェック内容列), Len("画像")) = "画像" Or Left(Cells(i, cont項目チェック内容列), Len("ファイル")) = "ファイル" Then
                 Else
                     If Cells(i, cont検索項目一致条件) = "FromTo" Then
                         A03_05_01_ItemArgWK = 先頭以外に改行付加(A03_05_01_ItemArgWK) & hinagataグループ名指定のhinagata変換(hinagataFormFlutter, "03_05_01_ItemArgFormTo部品.txt", 変更内容Array)
 <<追加 start>>
                         If Trim(Left(UCase(Cells(i, cont属性列)), 6)) = "BIGINT" Then
                             A03_05_02_ItemSetWK = 先頭以外に改行付加(A03_05_02_ItemSetWK) & hinagataグループ名指定のhinagata変換(hinagataFormFlutter, "03_05_02_ItemSetIntFormTo部品.txt", 変更内容Array)
                         ELSE
 <<追加 end>>
                             A03_05_02_ItemSetWK = 先頭以外に改行付加(A03_05_02_ItemSetWK) & hinagataグループ名指定のhinagata変換(hinagataFormFlutter, "03_05_02_ItemSetFormTo部品.txt", 変更内容Array)
 <<追加 start>>
                         End If
 <<追加 end>>
                     Else
                         A03_05_01_ItemArgWK = 先頭以外に改行付加(A03_05_01_ItemArgWK) & hinagataグループ名指定のhinagata変換(hinagataFormFlutter, "01_05_01_ItemArg部品.txt", 変更内容Array)
 <<追加 start>>
                         If Trim(Left(UCase(Cells(i, cont属性列)), 6)) = "BIGINT" Then
                             A03_05_02_ItemSetWK = 先頭以外に改行付加(A03_05_02_ItemSetWK) & hinagataグループ名指定のhinagata変換(hinagataFormFlutter, "01_05_02_ItemSetInt部品.txt", 変更内容Array)
                         ELSE
 <<追加 end>>
                            A03_05_02_ItemSetWK = 先頭以外に改行付加(A03_05_02_ItemSetWK) & hinagataグループ名指定のhinagata変換(hinagataFormFlutter, "01_05_02_ItemSet部品.txt", 変更内容Array)
 <<追加 start>>
                         End If
 <<追加 end>>
                     End If
                 End If

■CommUtilsクラスにurl_launch_page.dartのimportではなく、url_launcher.dartのimportが必要
 import 'package:url_launcher/url_launch_page.dart';
 ↓
 import 'package:url_launcher/url_launcher.dart';

■CommUtilsクラスのlaunchInWebViewOrVCメソッドのconstを削除する
         webViewConfiguration: const WebViewConfiguration(headers: headers)
 ↓
         webViewConfiguration: WebViewConfiguration(headers: headers)

■CommUtilsクラスのcreateLrgMidChangeメソッド
 <<削除>>
     if (dbELEMENTS == null) {
       return dbELEMENTS;
     }
 ・・・
 <<修正前 start>>
       Map<String, dynamic> _resDataMap = jsonDecode(_resData);
 <<修正前 end>>
 <<修正後 start>>
       _resDataMap = jsonDecode(_resData);
 <<修正後 end>>
     }
     return _resDataMap;

■common_util.dartのcreateLrgMidSmlChange2の変数名間違いと左側インデントを修正
  Map<String, String> data = {"fmElementNm":fmElementNm, "fmLrgKey":LrgValue,
                          "fmMidKey":midValue, "fmMidSelKbn":fmMidSelKbn, 
 ↓
    Map<String, String> data = {"fmElementNm":fmElementNm, "fmLrgKey":lrgValue,
                          "fmMidKey":midValue, "fmMidSelKbn":midSelKbn, 

■home.dartのimport
 ①対象は、ひな形02_00_home.txt修正及び、02_05_imports_部品.txtを新規追加
 import 'affairs/gazo/gazo_register_amend.dart';
 ↓
 削除

 ②対象は、ひな形02_00_home.txt
 import 'form/gazo_form.dart';
 ↓
 削除

 ③各情報の情報画面Form、検索画面Formをimportする
 ・ひな形02_00_home.txt 修正
 import 'form/user_form.dart';
 import 'form/user_srch_form.dart';
 <<追加 start>>
 ■{imports}■
 <<追加 end>>

 ・ひな形02_05_import部品.txt 新規追加
 <<追加 start>>
 import 'form/■{table_name}■_form.dart';
 import 'form/■{table_name}■_srch_form.dart';
 import 'affairs/■{table_name}■/■{table_name}■_list.dart';
 import 'affairs/■{table_name}■/■{table_name}■_register_amend.dart';
 <<追加 end>>

 ④Vb.netのFluttertemplateなどOtaasuke・TemplateなどOtaasuke関数
         menuPushWK = ""
 <<追加 start>>
         menuImportWK = ""
 <<追加 end>>
         For i = 1 To UBound(シート配列達)
             If シート名配列達(i) <> "ReadMe" And
             シート名配列達(i) <> "コード一覧表" And
             シート名配列達(i) <> "★ひな形★" And
             シート名配列達(i) <> "★TOOL用コンスタント★" Then
                 変更内容Array(1, 1) = "■{TITLE}■"
                 変更内容Array(2, 1) = "■{prg_name}■"
                 変更内容Array(3, 1) = "■{Prg_name}■"
                 変更内容Array(4, 1) = "■{URL_SUFFIX}■"
                 変更内容Array(5, 1) = "■{TITLE_KANRI}■"
                 変更内容Array(6, 1) = "■{TITLE_TOROKU}■"
                 変更内容Array(7, 1) = "■{TITLE_ICHIRAN}■"
 <<追加 start>>
                 変更内容Array(8, 1) = "■{table_name}■"
 <<追加 end>>

                 変更内容Array(1, 2) = UCase(CellsOnIDX(i, cont当テーブル名行, cont当テーブル名列))
                 変更内容Array(2, 2) = プログラム名作成2(CellsOnIDX(i, cont当テーブルID行, cont当テーブルID列))
                 変更内容Array(3, 2) = キャメル変換(LCase(CellsOnIDX(i, cont当テーブルID行, cont当テーブルID列)), True)
                 変更内容Array(4, 2) = UCase(Trim(CellsOnIDX(i, cont当テーブルID行, cont検索項目一致条件)))
                 変更内容Array(5, 2) = 変更内容Array(1, 2) & "管理"
                 変更内容Array(6, 2) = 変更内容Array(1, 2) & "登録"
                 変更内容Array(7, 2) = 変更内容Array(1, 2) & "一覧"
 <<追加 start>>
                 変更内容Array(8, 2) = LCase(CellsOnIDX(i, cont当テーブルID行, cont当テーブルID列))
                 menuImportWK = menuImportWK & hinagataグループ名指定のhinagata変換(hinagataLibFlutter, "02_05_import部品.tx", 変更内容Array) & Chr(13) & Chr(10)
 <<追加 end>>
                 menuMapWK = menuMapWK & hinagataグループ名指定のhinagata変換(hinagataLibFlutter, "02_01_menu_map_部品.txt", 変更内容Array) & Chr(13) & Chr(10)
                 menuWK = menuWK & hinagataグループ名指定のhinagata変換(hinagataLibFlutter, "02_02_menu_部品.txt", 変更内容Array) & Chr(13) & Chr(10)
                 menuFormWK = menuFormWK & hinagataグループ名指定のhinagata変換(hinagataLibFlutter, "02_03_menu_form部品.txt", 変更内容Array) & Chr(13) & Chr(10)
                 menuPushWK = menuPushWK & hinagataグループ名指定のhinagata変換(hinagataLibFlutter, "02_04_menu_push部品.txt", 変更内容Array) & Chr(13) & Chr(10)
             End If
         Next i
 ・・・
         変更内容Array(4, 1) = "■{MENU_PUSHS}■"
         変更内容Array(4, 2) = menuPushWK
 <<追加 start>>
         変更内容Array(5, 1) = "■{imports}■"
         変更内容Array(5, 2) = menuImportWK
 <<追加 end>>

■home.dartの変数名間違い。各情報で間違っている
 ・ひな形02_04_menu_push部品.txt 修正
 <<修正前 start>>
                             ■{Prg_name}■name: widget.■{Prg_name}■name,
 <<修正前 end>>
 <<修正後 start>>
                             username: widget.username,
 <<修正後 end>>
 ・・・
  <<修正前 start>>
                            ■{Prg_name}■name: widget.■{Prg_name}■name,
 <<修正前 end>>
 <<修正後 start>>
                            username: widget.username,
 <<修正後 end>>

■XXX_detail.dartの不要なimport削除や追加。
 対象は、ひな形2_00_hinagata_Detail.txt
 <<削除>>
 import 'package:flutter_app/utils/elements.dart';
 <<追加>>
 import 'package:intl/intl.dart';

■XXX_detail.dartの変数名間違い。ここは、ログインユーザ名を渡しているので、usernameとするのが正しい。
 対象は、ひな形2_00_hinagata_Detail.txt
 <<修正前 start>>
   const ■{PRG_NAME_BIG}■Detail({Key? key, required this.title, required this.■{PRG_NAME}■name,
 <<修正前 end>>
 <<修正後 start>>
   const ■{PRG_NAME_BIG}■Detail({Key? key, required this.title, required this.username,
 <<修正後 end>>

■XXX_detail.dartの項目値が空白時の表示にconstを追記する
 対象は、ひな形hinagata_DetailView_DB_分類_中コード値.txt
        hinagata_DetailView_DB_分類_大コード値.txt
        hinagata_DetailView_DB_分類_小コード値.txt
        hinagata_DetailView_コード値.txt
        hinagata_DetailView_メールアドレスの書式.txt
        hinagata_DetailView_通常項目01.txt
        hinagata_DetailView_通常項目date.txt
        hinagata_DetailView_通常項目dateTime.txt
        hinagata_DetailView_郵便番号.txt
 例:
 <<修正前 start>>
           child:Text('■{ITEM_NAME_KANJI}■ : ',
 <<修正前 end>>
 <<修正後 start>>
           child:const Text('■{ITEM_NAME_KANJI}■ : ',
 <<修正後 end>>
             textAlign: TextAlign.left,
             overflow: TextOverflow.clip,
           ),

■XXX_detail.dartの明細表示の値を修正
 例:
 _shohinForm.products
 ↓
 _shohinForm.resDetailMapForm["products"]
 ・・・
 _shohinForm.biztypeCdObj
 ↓
 _shohinForm.resDetailMapForm["biztypeCdObj"]
 ・・・
 _shohinForm.biztypeCdObj.bizname
 ↓
 _shohinForm.resDetailMapForm["biztypeCdObj"]["bizname"]

 対象は、ひな形hinagata_DetailView_・・・.txtすべて
 <<修正前 start>>
     if (CommUtils.chgToString(_■{PRG_NAME}■Form.■{ITEM_NAME}■) != "") {
 <<修正前 end>>
 <<修正後 start>>
     if (CommUtils.chgToString(_■{PRG_NAME}■Form.resDetailMapForm["■{ITEM_NAME}■"]) != "") {
 <<修正後 end>>
 ・・・
 <<修正前 start>>
           child:Text('■{ITEM_NAME_KANJI}■ : ' + _■{PRG_NAME}■Form.■{ITEM_NAME}■,
 <<修正前 end>>
 <<修正後 start>>
           child:Text('■{ITEM_NAME_KANJI}■ : ' + _■{PRG_NAME}■Form.resDetailMapForm["■{ITEM_NAME}■"],
 <<修正後 end>>

 <<修正前 start>>
     if (_■{PRG_NAME}■Form.■{ITEM_NAME}■Obj != null) {
 <<修正前 end>>
 とか、
 <<修正後 start>>
     if (_■{PRG_NAME}■Form.resDetailMapForm["■{ITEM_NAME}■Obj"] != null) {
 <<修正後 end>>
 ・・・
 <<修正前 start>>
           child:Text('■{ITEM_NAME_KANJI}■ : ' + _■{PRG_NAME}■Form.■{ITEM_NAME}■Obj.■{smlName}■,
 <<修正前 end>>
 <<修正後 start>>
           child:Text('■{ITEM_NAME_KANJI}■ : ' + _■{PRG_NAME}■Form.resDetailMapForm["■{ITEM_NAME}■Obj"]["■{smlName}■"],
 <<修正後 end>>
 などを修正する。

■XXX_detail.dartの明細表示の固定エレメント値(Objではないので)を修正
 例:
     if (_shohinForm.openkbn1Obj != null) {
 _shohinForm.openkbn1Obj.openkbn1Name
 ↓
     if (_shohinForm.resDetailMapForm["openkbn1Name"] != "") {
 _shohinForm.resDetailMapForm["openkbn1Name"]

 対象は、ひな形hinagata_DetailView_コード値.txt、hinagata_ListlView_コード値.txt
 ①hinagata_DetailView_コード値.txt修正
 <<修正前 start>>
     if (_■{PRG_NAME}■Form.■{ITEM_NAME}■Obj != null) {
 <<修正前 end>>
 <<修正後 start>>
     if (_■{PRG_NAME}■Form.esDetailMapForm["■{ITEM_NAME}■Name"] != "") {
 <<修正後 end>>
 ・・・
 <<修正前 start>>
           child:Text('■{ITEM_NAME_KANJI}■ : ' + _■{PRG_NAME}■Form.■{ITEM_NAME}■Obj.■{ITEM_NAME}■Name,
 <<修正前 end>>
 <<修正後 start>>
           child:Text('■{ITEM_NAME_KANJI}■ : ' + _■{PRG_NAME}■Form.resDetailMapForm["■{ITEM_NAME}■Name"],
 <<修正後 end>>

 ②hinagata_ListlView_コード値.txt修正
 <<修正前 start>>
     if (element["■{ITEM_NAME}■Obj"] != null) {
 <<修正前 end>>
 <<修正後 start>>
     if (element["■{ITEM_NAME}■Name"] != "") {
 <<修正後 end>>
 ・・・
 <<修正前 start>>
           child:Text(CommUtils.getSortOrderMark(_userSrchForm.srchOrderForm, '■{ITEM_NAME}■') + '■{ITEM_NAME_KANJI}■ : ' +  element["■{ITEM_NAME}■Obj"].■{ITEM_NAME}■Name,
 <<修正前 end>>
 <<修正後 start>>
           child:Text(CommUtils.getSortOrderMark(_userSrchForm.srchOrderForm, '■{ITEM_NAME}■') + '■{ITEM_NAME_KANJI}■ : ' +  element["■{ITEM_NAME}■Name"],
 <<修正後 end>>


■情報画面Formに、XXX_detail.dartで使うためresDetailMapFormを追加する
 対象は、01_00_form.txtを修正

 ■{01_03_00_publicDbELEMENTS}■
 <<追加 start>>
   late Map<String,dynamic> resDetailMapForm; // 明細情報
 <<追加 end>>
 ■{01_04_00_Itms}■
 ・・・
   ■{Prg_name}■SrchForm.initData() {
 ・・・
     messageForm = MessageForm.initData();
 <<追加 start>>
   resDetailMapForm = {}; // 明細情報
 <<追加 end>>
   }
 ・・・
   fromJson(String resData) {
 ・・・
     messageForm.fromJson(resData);
 <<追加 start>>
     // 明細情報
     if (_resDataMap["resDetailMapForm"]==null) {
       resDetailMapForm = {};
     } else {
       resDetailMapForm = _resDataMap["resDetailMapForm"];
     }
 <<追加 end>>
   }

■Spring側にresDetailMapFormを追加する。さらに固定になっているresListForm作成を各情報修正する。
 ①flutter-spring-kaz01u_元ネタ削除後_最新\src\main\java\com\kaz01u\demo\response\ResData.javaを修正
  /**
   * getResDataMapメソッド
   * Flutter向けデータマップを返却する
   * 
   * @param messageSource メッセージソース
   * @param formComm Flutter側formComm
   * @param resFormName Flutter側resForm
   * @param srchFormName Flutter側srchForm
   * @param srchOrdeFormName Flutter側srchOrdeForm
 <<追加 start>>
   * @param resDetailMapFormName Flutter側明細情報
   * @param resListFormName Flutter側一覧情報
 <<追加 end>>
   * @return Flutter向けデータマップ
   */
 <<修正前 start>>
  public Map<String, Object> getResDataMap(MessageSource messageSource, FormComm formComm, String resFormName, String srchFormName, String srchOrdeFormName) {
 <<修正前 end>>
 <<修正後 start>>
  public Map<String, Object> getResDataMap(MessageSource messageSource, FormComm formComm, String resFormName, String srchFormName, String srchOrdeFormName,
             String resDetailMapFormName, String resListFormName) {
 <<修正後 end>>
 ・・・
 <<修正前 start>>
   map.put("resListForm", modelMap==null || modelMap.get("users")==null?null:modelMap.get("users"));
 <<修正前 end>>
 <<修正後 start>>
   map.put("resDetailMapForm", ObjectUtils.isEmpty(resDetailMapFormName) || modelMap==null || modelMap.get(resDetailMapFormName)==null?null:modelMap.get(resDetailMapFormName));
   map.put("resListForm", ObjectUtils.isEmpty(resListFormName) || modelMap==null || modelMap.get(resListFormName)==null?null:modelMap.get(resListFormName));
 <<修正後 end>>

 ②hinagata\java\controller\admincomm\02_00_TblCommController.txtを修正
  /**
   * リターン共通処理(Flutter、PC・WEB共用)
   * リターン共通処理
   *
   * @param url 遷移先
   * @param model モデル
   * @param result チェック結果
   * @param flutterFlg true:Flutter用 false:PC・WEB用
 <<追加 start>>
   * @param formComm Flutter側formComm
 <<追加 end>>
   * @param resFormName レスポンスForm名
 <<追加 start>>
   * @param srchFormName Flutter側srchForm
   * @param srchOrdeFormName Flutter側srchOrdeForm
   * @param resDetailMapFormName Flutter側明細情報
   * @param resListFormName Flutter側一覧情報
 <<追加 end>>
 <<削除 start>>
   * @param page 検索以外の時のページ
 <<削除 end>>
   * @return Flutter用String:jsonデータ PC・WEB用 Map<String, Object>:遷移先
   */
 <<修正前 start>>
  protected Object returnComm(String url ,Model model,BindingResult result, boolean flutterFlg, FormComm formComm, String resFormName, String srchFormName, String srchOrdeFormName) {
 <<修正前 end>>
 <<修正後 start>>
  protected Object returnComm(String url ,Model model,BindingResult result, boolean flutterFlg, FormComm formComm, String resFormName, String srchFormName, String srchOrdeFormName,
         String resDetailMapFormName, String resListFormName) {
 <<修正後 end>>
   if (flutterFlg) {
    ResData resData = new ResData(model, result);
 <<修正前 start>>
          return resData.getResDataMap(messageSource, formComm, resFormName, srchFormName, srchOrdeFormName);
 <<修正前 end>>
 <<修正後 start>>
          return resData.getResDataMap(messageSource, formComm, resFormName, srchFormName, srchOrdeFormName, resDetailMapFormName, resListFormName);
 <<修正後 end>>
   } else {
    return url;
   }
  }
 ・・・
 <<修正 start>>
 以降、全ての「return returnComm(・・・」の最後を「);」→「,"■{prg_name}■", "■{prg_name}■s");」に変更する
 <<修正 end>>

======ここから2022/05/29に発見
■shohin_list.dartのひな形「■{1_02_TextFormField用ControllersForList}■」が空白になっている
 Vb.netのFlutterListView作成.vbの修正
         For i = 1 To C_TextFormField用ControllerCnt
             変更内容Array(1, 1) = "■{ITEM_NAME}■"
             変更内容Array(1, 2) = C_TextFormField用ControllerItems(i)
             ・・・
         If C_TextFormField用ControllerCnt <> 0 Then
 ↓
         For i = 1 To C_TextFormField用ControllerForSrchCnt
             変更内容Array(1, 1) = "■{ITEM_NAME}■"
             変更内容Array(1, 2) = C_TextFormField用ControllerForSrchItems(i)
             ・・・
         If C_TextFormField用ControllerForSrchCnt <> 0 Then

■FlutterWidgets項目作成.vbの修正
         If (UCase(Cells(j, cont属性列)) = "BIGINT") Then
             StringOrLong = "Long"
 ↓
             StringOrLong = "int"

■hinagata_AmendView_DB_大中小分類_小プルダウン.txtなど修正
 CommUtils.getItemsFromELEMENTSメソッドを使用している箇所の、最後のパラメータを
 以下のようにし、
 intの時■{chgToString_mae}■="CommUtils.chgToString("、■{chgToString_ura}■=")"にする。
 Stringの時■{chgToString_mae}■=""、■{chgToString_ura}■=""にする。

 _■{PRG_NAME}■Form.■{ITEM_NAME}■),
 ↓
 ■{chgToString_mae}■_■{PRG_NAME}■Form.■{ITEM_NAME}■■{chgToString_ura}■),

■hinagata_ListSrch_プルダウン.txt、hinagata_ListSrch_DB_大分類_大プルダウン.txt
               onChanged: (value) {
                   setState(() {
                     _■{PRG_NAME}■SrchForm.■{ITEM_NAME}■ = value as ■{StringOrLong}■;
                   });
                 }
               },
 ↓
               onChanged: (value) {
                 setState(() {
                   _■{PRG_NAME}■SrchForm.■{ITEM_NAME}■ = value as ■{StringOrLong}■;
                 });
               },

■hinagata_AmendView_DB_大中小分類_大プルダウン.txtなどの修正
                   Map<String, dynamic>? _dbELEMENTS = await CommUtils
 ↓
                   Map<String, dynamic>? map = await CommUtils
 ・・・
                     _■{PRG_NAME}■Form.dbELEMENTS['■{
 ↓
                     _■{PRG_NAME}■Form.dbELEMENTS!['■{

                     _■{PRG_NAME}■Form.dbELEMENTS['■{・・・_ITEM_NAME}■'] = map;
 ↓
                     _■{PRG_NAME}■Form.dbELEMENTS!['■{・・・_ITEM_NAME}■'] = map ?? {};

■hinagata_ListSrch_チェックボックス.txtなどの修正
               children: CommUtils.publicELEMENTS('■{CODE_ID}■', '■{・・・}■', ・・・).map((e) =>
 ↓
               children: CommUtils.publicELEMENTSList('■{CODE_ID}■', '■{・・・}■', ・・・).map((e) =>

■common_util.dartにpublicELEMENTSListメソッド追加
 <<追加>>
   /// 固定エレメントを対象に、エレメント指定で、デフォルト付リストを返却する
   static List<List<String>> publicELEMENTSList(String str, String dflt,
       Map<String, dynamic>? elements) {
     Map<dynamic, String> map = publicELEMENTS(str, dflt, elements);

     List<List<String>> list = [[]];
     map.forEach((dynamic key, String value) {
       list.add([key, value]);
     });
     return list;
   }

■common_util.dartのgetItemsFromELEMENTSメソッドのパラメータ追加
   static List<DropdownMenuItem<String>> getItemsFromELEMENTS(Map<Object, String> elements, String? selectItem) {
 ↓
   static List<DropdownMenuItem<String>> getItemsFromELEMENTS(Map<dynamic, String> elements, String? selectItem) {


■shohin_srch_err_form.dartのチェックボックスなどに対する項目名修正
 具体的には、
 ①Vb.netのFlutterForm作成クラス・   Private Sub 項目関連作成ForTblForm関数

                 Else
                     A02_04_00_ItmsWK = 先頭以外に改行付加(A02_04_00_ItmsWK) & hinagataグループ名指定のhinagata変換(hinagataFormFlutter, "02_04_00_ItmErr部品.txt", 変更内容Array)
                     A02_04_01_ItmsWK = 先頭以外に改行付加(A02_04_01_ItmsWK) & hinagataグループ名指定のhinagata変換(hinagataFormFlutter, "02_04_01_ItmErr部品.txt", 変更内容Array)
                     A02_04_02_ItmsWK = 先頭以外に改行付加(A02_04_02_ItmsWK) & hinagataグループ名指定のhinagata変換(hinagataFormFlutter, "02_04_02_ItmErr部品.txt", 変更内容Array)
                     A02_04_03_ItmsWK = 先頭以外に改行付加(A02_04_03_ItmsWK) & hinagataグループ名指定のhinagata変換(hinagataFormFlutter, "02_04_03_ItmErr部品.txt", 変更内容Array)
 <<追加 start>>
                     if Cells(i, cont項目チェック内容列) = "検索ラジオボタン・入力プルダウン" or
                          Cells(i, cont項目チェック内容列) = "検索チェックボックス・入力プルダウン" or
                           Cells(i, cont項目チェック内容列) = "検索プルダウン・入力ラジオボタン" or
                            Cells(i, cont項目チェック内容列) = "検索ラジオボタン・入力ラジオボタン" or
                             Cells(i, cont項目チェック内容列) = "検索プルダウン・入力プルダウン" or
                              Cells(i, cont項目チェック内容列) = "検索・入力Ajax" then
                         A02_04_00_ItmsWK = 先頭以外に改行付加(A02_04_00_ItmsWK) & hinagataグループ名指定のhinagata変換(hinagataFormFlutter, "02_04_05_00_ItmElemErr部品.txt", 変更内容Array)
                         A02_04_01_ItmsWK = 先頭以外に改行付加(A02_04_01_ItmsWK) & hinagataグループ名指定のhinagata変換(hinagataFormFlutter, "02_04_05_01_ItmElemErr部品.txt", 変更内容Array)
                         A02_04_02_ItmsWK = 先頭以外に改行付加(A02_04_02_ItmsWK) & hinagataグループ名指定のhinagata変換(hinagataFormFlutter, "02_04_05_02_ItmElemErr部品.txt", 変更内容Array)
                         A02_04_03_ItmsWK = 先頭以外に改行付加(A02_04_03_ItmsWK) & hinagataグループ名指定のhinagata変換(hinagataFormFlutter, "02_04_05_03_ItmElemErr部品.txt", 変更内容Array)
                    endif
 <<追加 end>>
                 End If
             End If

             'srchForm用----------------------------------------------------
 ・・・
                 If Cells(i, cont検索項目一致条件) = "FromTo" Then
                     A04_04_00_ItmsWK = 先頭以外に改行付加(A04_04_00_ItmsWK) & hinagataグループ名指定のhinagata変換(hinagataFormFlutter, "04_04_00_ItmErrFormTo部品.txt", 変更内容Array)
                     A04_04_01_ItmsWK = 先頭以外に改行付加(A04_04_01_ItmsWK) & hinagataグループ名指定のhinagata変換(hinagataFormFlutter, "04_04_01_ItmErrFormTo部品.txt", 変更内容Array)
                     A04_04_02_ItmsWK = 先頭以外に改行付加(A04_04_02_ItmsWK) & hinagataグループ名指定のhinagata変換(hinagataFormFlutter, "04_04_02_ItmErrFormTo部品.txt", 変更内容Array)
                     A04_04_03_ItmsWK = 先頭以外に改行付加(A04_04_03_ItmsWK) & hinagataグループ名指定のhinagata変換(hinagataFormFlutter, "04_04_03_ItmErrFormTo部品.txt", 変更内容Array)
 <<追加 start>>
                     IF Trim(UCase(Left(Cells(i, cont属性列), 4))) = "DATE" Then
                         A04_04_00_ItmsWK = 先頭以外に改行付加(A04_04_00_ItmsWK) & hinagataグループ名指定のhinagata変換(hinagataFormFlutter, "04_08_00_00_ItmDateFormToErr部品.txt", 変更内容Array)
                         A04_04_00_ItmsWK = 先頭以外に改行付加(A04_04_00_ItmsWK) & hinagataグループ名指定のhinagata変換(hinagataFormFlutter, "04_08_01_00_ItmDateFormToErr部品.txt", 変更内容Array)
                         A04_04_01_ItmsWK = 先頭以外に改行付加(A04_04_01_ItmsWK) & hinagataグループ名指定のhinagata変換(hinagataFormFlutter, "04_08_02_00_ItmDateFormToErr部品.txt", 変更内容Array)
                         A04_04_02_ItmsWK = 先頭以外に改行付加(A04_04_02_ItmsWK) & hinagataグループ名指定のhinagata変換(hinagataFormFlutter, "04_08_03_00_ItmDateFormToErr部品.txt", 変更内容Array)
                     End If
 <<追加 end>>
                 Else
                     A04_04_00_ItmsWK = 先頭以外に改行付加(A04_04_00_ItmsWK) & hinagataグループ名指定のhinagata変換(hinagataFormFlutter, "02_04_00_ItmErr部品.txt", 変更内容Array)
                     A04_04_01_ItmsWK = 先頭以外に改行付加(A04_04_01_ItmsWK) & hinagataグループ名指定のhinagata変換(hinagataFormFlutter, "02_04_01_ItmErr部品.txt", 変更内容Array)
                     A04_04_02_ItmsWK = 先頭以外に改行付加(A04_04_02_ItmsWK) & hinagataグループ名指定のhinagata変換(hinagataFormFlutter, "02_04_02_ItmErr部品.txt", 変更内容Array)
                     A04_04_03_ItmsWK = 先頭以外に改行付加(A04_04_03_ItmsWK) & hinagataグループ名指定のhinagata変換(hinagataFormFlutter, "04_04_03_ItmErr部品.txt", 変更内容Array)
 <<追加 start>>
                     If Left(Cells(i, cont項目チェック内容列), Len("検索チェックボックス")) = "検索チェックボックス" Then
                         A04_04_00_ItmsWK = 先頭以外に改行付加(A04_04_00_ItmsWK) & hinagataグループ名指定のhinagata変換(hinagataFormFlutter, "04_07_00_00_ItmErrチェックボックス部品.txt", 変更内容Array)
                         A04_04_00_ItmsWK = 先頭以外に改行付加(A04_04_00_ItmsWK) & hinagataグループ名指定のhinagata変換(hinagataFormFlutter, "04_07_01_00_ItmErrチェックボックス部品.txt", 変更内容Array)
                         A04_04_01_ItmsWK = 先頭以外に改行付加(A04_04_01_ItmsWK) & hinagataグループ名指定のhinagata変換(hinagataFormFlutter, "04_07_02_00_ItmErrチェックボックス部品.txt", 変更内容Array)
                         A04_04_02_ItmsWK = 先頭以外に改行付加(A04_04_02_ItmsWK) & hinagataグループ名指定のhinagata変換(hinagataFormFlutter, "04_07_03_00_ItmErrチェックボックス部品.txt", 変更内容Array)
                     else if Cells(i, cont項目チェック内容列) = "検索ラジオボタン・入力プルダウン" or
                           Cells(i, cont項目チェック内容列) = "検索プルダウン・入力ラジオボタン" or
                            Cells(i, cont項目チェック内容列) = "検索ラジオボタン・入力ラジオボタン" or
                             Cells(i, cont項目チェック内容列) = "検索プルダウン・入力プルダウン" or
                              Cells(i, cont項目チェック内容列) = "検索・入力Ajax" then
                         A04_04_00_ItmsWK = 先頭以外に改行付加(A04_04_00_ItmsWK) & hinagataグループ名指定のhinagata変換(hinagataFormFlutter, "02_04_05_00_ItmElemErr部品.txt", 変更内容Array)
                         A04_04_01_ItmsWK = 先頭以外に改行付加(A04_04_01_ItmsWK) & hinagataグループ名指定のhinagata変換(hinagataFormFlutter, "02_04_05_01_ItmElemErr部品.txt", 変更内容Array)
                         A04_04_02_ItmsWK = 先頭以外に改行付加(A04_04_02_ItmsWK) & hinagataグループ名指定のhinagata変換(hinagataFormFlutter, "02_04_05_02_ItmElemErr部品.txt", 変更内容Array)
                         A04_04_03_ItmsWK = 先頭以外に改行付加(A04_04_03_ItmsWK) & hinagataグループ名指定のhinagata変換(hinagataFormFlutter, "04_04_05_03_ItmElemErr部品.txt", 変更内容Array)
                     End If
 <<追加 end>>
                 End If

 ②ひな形、04_07_01_00_検索チェックボックス部品.txt~04_07_04_00_検索チェックボックス部品.txtを新規作成
 ・04_07_00_00_ItmErrチェックボックス部品.txt
   late List<String> check■{Item_name}■ArrayErr; // ■{ItmJpnName}■
 ・04_07_01_00_ItmErrチェックボックス部品.txt
     check■{Item_name}■ArrayErr = <String>[]; // ■{ItmJpnName}■
 ・04_07_02_00_ItmErrチェックボックス部品.txt
       check■{Item_name}■ArrayErr = <String>[]; // ■{ItmJpnName}■
 ・04_07_03_00_ItmErrチェックボックス部品.txt
       check■{Item_name}■ArrayErr = _resDataMap["resErrorData"]["■{prg_name}■SrchForm.check■{Item_name}■"]!=null?_resDataMap["resErrorData"]["■{prg_name}■SrchForm.check■{Item_name}■"].cast<String>():<String>[]; // ■{ItmJpnName}■

 ③ひな形、04_08_00_00_ItmDateFormToErr部品.txt~04_08_03_00_ItmDateFormToErr部品.txtを新規作成
 ・04_08_00_00_ItmDateFormToErr部品.txt
   late List<String> check■{Item_name}■Form■{Item_name}■ToErr; // ■{ItmJpnName}■FormTo
 ・04_08_01_00_ItmDateFormToErr部品.txt
     check■{Item_name}■Form■{Item_name}■ToErr = <String>[]; // ■{ItmJpnName}■FormTo
 ・04_08_02_00_ItmDateFormToErr部品.txt
       check■{Item_name}■Form■{Item_name}■ToErr = <String>[]; // ■{ItmJpnName}■FormTo
 ・04_08_03_00_ItmDateFormToErr部品.txt
       check■{Item_name}■Form■{Item_name}■ToErr = _resDataMap["resErrorData"]["■{prg_name}■SrchForm.check■{item_name}■Form■{Item_name}■To"]!=null?_resDataMap["resErrorData"]["■{prg_name}■SrchForm.check■{item_name}■Form■{Item_name}■To"].cast<String>():<String>[]; // ■{ItmJpnName}■FormTo

 ④ひな形、02_04_05_00_ItmElemErr部品.txt~02_04_05_03_ItmElemErr部品.txtを新規作成
 ・02_04_05_00_ItmElemErr部品.txt
   late List<String> check■{Item_name}■Err; // ■{ItmJpnName}■
 ・02_04_05_01_ItmElemErr部品.txt
     check■{Item_name}■Err = <String>[]; // ■{ItmJpnName}■
 ・02_04_05_02_ItmElemErr部品.txt
       check■{Item_name}■Err = <String>[]; // ■{ItmJpnName}■
 ・02_04_05_03_ItmElemErr部品.txt
       check■{Item_name}■Err = _resDataMap["resErrorData"]["■{prg_name}■Form.check■{Item_name}■"]!=null?_resDataMap["resErrorData"]["■{prg_name}■Form.check■{Item_name}■"].cast<String>():<String>[]; // ■{ItmJpnName}■

 ⑤ひな形、04_04_05_03_ItmElemErr部品.txtを新規作成
 ・04_04_05_03_ItmElemErr部品.txt
       check■{Item_name}■Err = _resDataMap["resErrorData"]["■{prg_name}■SrchForm.check■{Item_name}■"]!=null?_resDataMap["resErrorData"]["■{prg_name}■SrchForm.check■{Item_name}■"].cast<String>():<String>[]; // ■{ItmJpnName}■

■common_util.dartにimport追加。
 <<追加>>
 import 'package:intl/intl.dart';

■hinagata_AmendView_通常項目date.txtを修正
 <<修正前 start>>
               child:Text(_■{PRG_NAME}■Form.■{ITEM_NAME}■==""?"":DateFormat('yyyy/MM/dd').format(_■{PRG_NAME}■Form.■{ITEM_NAME}■),
 <<修正前 end>>
 <<修正後 start>>
               child:Text(_■{PRG_NAME}■Form.■{ITEM_NAME}■==null?"":DateFormat('yyyy/MM/dd').format(_■{PRG_NAME}■Form.■{ITEM_NAME}■!),
 <<修正後 end>>
 ・・・
 <<修正前 start>>
                     onPressed: () async {
                       DateTime? _date;
                       if (_■{PRG_NAME}■Form.■{ITEM_NAME}■ == "") {
                         _date = null;
                       } else {
                         _date = DateTime.utc(int.parse((_■{PRG_NAME}■Form.■{ITEM_NAME}■).substring(0, 4)),
                             int.parse((_■{PRG_NAME}■Form.■{ITEM_NAME}■).substring(5, 7)),
                             int.parse((_■{PRG_NAME}■Form.■{ITEM_NAME}■).substring(8, 10)),0,0);
                       }
                       String? _str = await CommUtils.openDateDialogComm(context,
                                 DateTime.utc(1900, 1, 1), DateTime.utc(2099, 12, 31), _date);
                       if (_str != null && _str != Consts.cancel) {
                         setState(() {
                           _■{PRG_NAME}■Form.■{ITEM_NAME}■ = _str;
                         });
                       }
                     },
 <<修正前 end>>
 <<修正後 start>>
                     onPressed: () async {
                       DateTime? _date;
                       _date = await CommUtils.openDateDialogComm(context,
                                 DateTime.utc(1900, 1, 1), DateTime.utc(2099, 12, 31), _■{PRG_NAME}■Form.■{ITEM_NAME}■);
                       if (_date != null) {
                         setState(() {
                           _■{PRG_NAME}■Form.■{ITEM_NAME}■ = _date;
                         });
                       }
                     },
 <<修正後 end>>

■hinagata_ListSrch_年月日FromTo02.txtを修正
 <<修正前 start>>
               child:Text(_■{PRG_NAME}■SrchForm.■{ITEM_NAME}■From==""?"":DateFormat('yyyy/MM/dd').format(_■{PRG_NAME}■SrchForm.■{ITEM_NAME}■From),
 <<修正前 end>>
 <<修正後 start>>
               child:Text(_■{PRG_NAME}■SrchForm.■{ITEM_NAME}■From==null?"":DateFormat('yyyy/MM/dd').format(_■{PRG_NAME}■SrchForm.■{ITEM_NAME}■From!),
 <<修正後 end>>
 ・・・
 <<修正前 start>>
                     onPressed: () async {
                       DateTime? _date;
                       if (_■{PRG_NAME}■SrchForm.■{ITEM_NAME}■From == "") {
                         _date = null;
                       } else {
                         _date = DateTime.utc(int.parse((_■{PRG_NAME}■SrchForm.■{ITEM_NAME}■From).substring(0, 4)),
                             int.parse((_■{PRG_NAME}■SrchForm.■{ITEM_NAME}■From).substring(5, 7)),
                             int.parse((_■{PRG_NAME}■SrchForm.■{ITEM_NAME}■From).substring(8, 10)),0,0);
                       }
                       String? _str = await CommUtils.openDateDialogComm(context,
                                 DateTime.utc(1900, 1, 1), DateTime.utc(2099, 12, 31), _date);
                       if (_str != null && _str != Consts.cancel) {
                         setState(() {
                           _■{PRG_NAME}■SrchForm.■{ITEM_NAME}■From = _str;
                         });
                       }
                     },
 <<修正前 end>>
 <<修正後 start>>
                     onPressed: () async {
                       DateTime? _date;
                       _date = await CommUtils.openDateDialogComm(context,
                                 DateTime.utc(1900, 1, 1), DateTime.utc(2099, 12, 31), _■{PRG_NAME}■SrchForm.■{ITEM_NAME}■From);
                       if (_date != null) {
                         setState(() {
                           _■{PRG_NAME}■SrchForm.■{ITEM_NAME}■From = _date;
                         });
                       }
                     },
 <<修正後 end>>
 ・・・
 <<修正前 start>>
                   child:Text(_■{PRG_NAME}■SrchForm.■{ITEM_NAME}■To==""?"":DateFormat('yyyy/MM/dd').format(_■{PRG_NAME}■SrchForm.■{ITEM_NAME}■To),
 <<修正前 end>>
 <<修正後 start>>
              child:Text(_■{PRG_NAME}■SrchForm.■{ITEM_NAME}■To==null?"":DateFormat('yyyy/MM/dd').format(_■{PRG_NAME}■SrchForm.■{ITEM_NAME}■To!),
 <<修正後 end>>
 ・・・
 <<修正前 start>>
                     onPressed: () async {
                       DateTime? _date;
                       if (_■{PRG_NAME}■SrchForm.■{ITEM_NAME}■To == "") {
                         _date = null;
                       } else {
                         _date = DateTime.utc(int.parse((_■{PRG_NAME}■SrchForm.■{ITEM_NAME}■To).substring(0, 4)),
                             int.parse((_■{PRG_NAME}■SrchForm.■{ITEM_NAME}■To).substring(5, 7)),
                             int.parse((_■{PRG_NAME}■SrchForm.■{ITEM_NAME}■To).substring(8, 10)),0,0);
                       }
                       String? _str = await CommUtils.openDateDialogComm(context,
                                 DateTime.utc(1900, 1, 1), DateTime.utc(2099, 12, 31), _date);
                       if (_str != null && _str != Consts.cancel) {
                         setState(() {
                           _■{PRG_NAME}■SrchForm.■{ITEM_NAME}■To = _str;
                         });
                       }
                     },
 <<修正前 end>>
 <<修正後 start>>
                     onPressed: () async {
                       DateTime? _date;
                       _date = await CommUtils.openDateDialogComm(context,
                                 DateTime.utc(1900, 1, 1), DateTime.utc(2099, 12, 31), _■{PRG_NAME}■SrchForm.■{ITEM_NAME}■To);
                       if (_date != null) {
                         setState(() {
                           _■{PRG_NAME}■SrchForm.■{ITEM_NAME}■To = _date;
                         });
                       }
                     },
 <<修正後 end>>

■common_util.dartを修正
 <<修正前 start>>
   static Future<String?> openDateDialogComm(BuildContext context,
 <<修正前 end>>
 <<修正後 start>>
   static Future<DateTime?> openDateDialogComm(BuildContext context,
 <<修正後 end>>
             DateTime _firstDay, DateTime _lastDay, DateTime? _inFocusedDay) async {
     initializeDateFormatting('ja', null);
 <<削除 start>>
     DateFormat outputFormat = DateFormat('yyyy/MM/dd');
 <<削除 end>>
  ・・・
      // 日付入力ダイヤログを表示する
     var result  = await showDialog<String>(
  ・・・
                     SimpleDialogOption(child: const Text('OK'), onPressed: () {
                       // 選択した日付を戻す。選択していないときは入力日付か、入力日付がnullの時は今日の日付を戻す。
 <<修正前 start>>
                       Navigator.pop(context, _selectedDay==null?outputFormat.format(_originFocusedDay):outputFormat.format(_selectedDay!));
 <<修正前 end>>
 <<修正後 start>>
                       Navigator.pop(context, _selectedDay==null?_originFocusedDay:_selectedDay!);
 <<修正後 end>>
  ・・・
                     SimpleDialogOption(child: const Text('キャンセル'), onPressed: () {
                       // ”cancel”を戻す
 <<修正前 start>>
                       Navigator.pop(context, Consts.cancel);
 <<修正前 end>>
 <<修正後 start>>
                       Navigator.pop(context, null);
 <<修正後 end>>

■shohin_list.dartのひな形3_00_hinagata_List.txt修正
       // 情報一覧リスト
       int i = 0;
       for (var element in _■{PRG_NAME}■SrchForm.resListForm) {
         i++;
         contentWidgets.add(Container(
             margin: const EdgeInsets.fromLTRB(10.0, 5, 10.0, 0),
             padding: const EdgeInsets.fromLTRB(10.0, 5, 10.0, 0),
             decoration: CommUtils.commBoxDecoration(),
             child:Column(
 <<修正前 start>>
               children:<Widget>[
               Container(
                 padding: const EdgeInsets.fromLTRB(10.0, 0, 10.0, 5.0),
                 width: double.infinity,
                 child: Text("№ : "  + i.toString(),
                 textAlign: TextAlign.left,
                 overflow: TextOverflow.clip,
                 ),
               ),
               _makeListWidgetItems(),
               Row (
                 mainAxisAlignment: MainAxisAlignment.center,
                 children: <Widget>[
                   Container(
                     margin: const EdgeInsets.fromLTRB(5, 0, 5, 5),
                     padding: const EdgeInsets.fromLTRB(5, 0, 5, 0),
                     child: ElevatedButton(
                       // 情報一覧リストへ、detail、httpアクセス
                       onPressed: (){httpForDetail(■{3_07_List_PKEY_PARAMs}■);},
                       style: ElevatedButton.styleFrom(
                         primary: Colors.blue,
                       ),
                     child: const Text("詳細"),
                     ),
                   ),
                   Container(
                     margin: const EdgeInsets.fromLTRB(5, 0, 5, 5),
                     padding: const EdgeInsets.fromLTRB(5, 0, 5, 0),
                     child: ElevatedButton(
                       // 情報一覧リストへ、upd、httpアクセス
                       onPressed: (){httpForUpd(■{3_07_List_PKEY_PARAMs}■);},
                       style: ElevatedButton.styleFrom(
                         primary: Colors.blue,
                       ),
                       child: const Text("変更"),
                     ),
                   ),
                   Container(
                     margin: const EdgeInsets.fromLTRB(5, 0, 5, 5),
                     padding: const EdgeInsets.fromLTRB(5, 0, 5, 0),
                     child: ElevatedButton(
                       onPressed: () async {
                         String? _str = await CommUtils.openDialogComm(context, '削除してもよろしいですか?') ;
                         if (_str == Consts.ok) {
                           // 情報一覧リストへ、del_do、httpアクセス
                           httpForDelDo(■{3_07_List_PKEY_PARAMs}■);
                         }
                       },
                       style: ElevatedButton.styleFrom(
                         primary: Colors.blue,
                       ),
                       child: const Text("削除"),
                     ),
                   ),
                 ]
               ),
               ],
 <<修正前 end>>
 <<修正後 start>>
               children: _makeListWidgetItems(i, element),
 <<修正後 end>>
 ・・・
   // 一覧表を表示するWidgetsの各項目設定
 <<修正前 start>>
   List<Widget> _makeListWidgetItems() {
 <<修正前 end>>
 <<修正後 start>>
   List<Widget> _makeListWidgetItems(int i, var element) {
 <<修正後 end>>
 ・・・
 <<追加 start>>
       contentWidgets.add(
         Container(
           padding: const EdgeInsets.fromLTRB(10.0, 0, 10.0, 5.0),
           width: double.infinity,
           child: Text("№ : "  + i.toString(),
           textAlign: TextAlign.left,
           overflow: TextOverflow.clip,
           ),
         ),
       );
 <<追加 end>>
 ■{contentWidgets_ListItems}■
 <<追加 start>>
       contentWidgets.add(
         Row (
           mainAxisAlignment: MainAxisAlignment.center,
           children: <Widget>[
             Container(
               margin: const EdgeInsets.fromLTRB(5, 0, 5, 5),
               padding: const EdgeInsets.fromLTRB(5, 0, 5, 0),
               child: ElevatedButton(
                 // 情報一覧リストへ、detail、httpアクセス
                 onPressed: (){httpForDetail(■{3_07_List_PKEY_PARAMs}■);},
                 style: ElevatedButton.styleFrom(
                   primary: Colors.blue,
                 ),
               child: const Text("詳細"),
               ),
             ),
             Container(
               margin: const EdgeInsets.fromLTRB(5, 0, 5, 5),
               padding: const EdgeInsets.fromLTRB(5, 0, 5, 0),
               child: ElevatedButton(
                 // 情報一覧リストへ、upd、httpアクセス
                 onPressed: (){httpForUpd(■{3_07_List_PKEY_PARAMs}■);},
                 style: ElevatedButton.styleFrom(
                   primary: Colors.blue,
                 ),
                 child: const Text("変更"),
               ),
             ),
             Container(
               margin: const EdgeInsets.fromLTRB(5, 0, 5, 5),
               padding: const EdgeInsets.fromLTRB(5, 0, 5, 0),
               child: ElevatedButton(
                 onPressed: () async {
                   String? _str = await CommUtils.openDialogComm(context, '削除してもよろしいですか?') ;
                   if (_str == Consts.ok) {
                     // 情報一覧リストへ、del_do、httpアクセス
                     httpForDelDo(■{3_07_List_PKEY_PARAMs}■);
                   }
                 },
                 style: ElevatedButton.styleFrom(
                   primary: Colors.blue,
                 ),
                 child: const Text("削除"),
               ),
             ),
           ]
         ),
       );
 <<追加 end>>
     return contentWidgets;

■hinagata_ListlView_DB_分類_小コード値.txtなどの、hinagata_ListlView_・・・修正
 ①変数名がuser固定になっているが、テーブルごとになるのが正しいので修正
 例:
 _userSrchForm.srchOrderForm
 ↓
 _■{PRG_NAME}■SrchForm.srchOrderForm

 ②「child:Text('CommUtils.getSortOrderMark(」→「child:Text(CommUtils.getSortOrderMark(」のように「'」の位置を修正する
 例:
           child:Text('CommUtils.getSortOrderMark(_userSrchForm.srchOrderForm, '■{ITEM_NAME}■') + ■{ITEM_NAME_KANJI}■ : ' + element["■{ITEM_NAME}■Obj"].■{lrgName}■,
 ↓
           child:Text(CommUtils.getSortOrderMark(_■{PRG_NAME}■SrchForm.srchOrderForm, '■{ITEM_NAME}■') + '■{ITEM_NAME_KANJI}■ : ' + element["■{ITEM_NAME}■Obj"].■{lrgName}■,

■shohin_register_amend.dartにurl_launch_page.dartはいらないので削除
 <<削除>>
 import 'package:url_launcher/url_launch_page.dart';
 import 'package:image_picker/image_picker.dart';

■2022/06/15に、勉強した成果:『Flutter_JavaSpringプログラム自動作成◎自動生成ツール』をVectorに載せました。Zenn本も書きました。使ってみての感想や間違いの指定や、こうやったほうがいいとかの情報があればメールください。
Vector
www.vector.co.jp
・Zenn本(Flutter_JavaSpringプログラム自動作成)
zenn.dev