フロント側を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