質問編集履歴

2

再度、実装したい内容の提示

2021/08/24 01:18

投稿

y1_tsuru
y1_tsuru

スコア0

test CHANGED
File without changes
test CHANGED
@@ -231,3 +231,9 @@
231
231
  -----------------------------------------------
232
232
 
233
233
  ```
234
+
235
+
236
+
237
+ 後続の処理でretを使いたいため、返り値を同じ形式で取得したいです。
238
+
239
+ ご教示いただきますよう、お願い致します。

1

コードの再掲載

2021/08/24 01:18

投稿

y1_tsuru
y1_tsuru

スコア0

test CHANGED
File without changes
test CHANGED
@@ -53,3 +53,181 @@
53
53
  window.returnValue = ret;
54
54
 
55
55
  window.close();
56
+
57
+
58
+
59
+ ```javascript
60
+
61
+ 親画面より子画面を呼び出し、子画面で選択した値が、親画面に反映される。
62
+
63
+
64
+
65
+ -----------------------------------------------
66
+
67
+ 画面A(親画面)(A.js)
68
+
69
+ //---- * 商品検索ボタン押下
70
+
71
+ btnShohinCd.click(function (e) {
72
+
73
+ //商品検索画面OPEN
74
+
75
+ shohinOpenSearchDispCmn(this, "1")
76
+
77
+ });
78
+
79
+
80
+
81
+ //--* 商品検索画面OPEN共通
82
+
83
+ function shohinOpenSearchDispCmn(me, mode) {
84
+
85
+ // 引数設定
86
+
87
+ var ret;
88
+
89
+ var cdObj = getObjIDReplace(me, 'btn', 'txt').get(0);
90
+
91
+ var hdnObj = getObjIDReplace(me, 'btn', 'hdn').get(0);
92
+
93
+ var nmObj = $(me).parents('#trMain').find("[id*=txtShohinNm]").get(0);
94
+
95
+
96
+
97
+ // 検索画面呼出
98
+
99
+ ret = openShohinSerchBase(cdObj, hdnObj, nmObj, mode);
100
+
101
+
102
+
103
+ //戻り値が「NULL」「エラー」の場合処理終了
104
+
105
+ if (ret == null) { return false; }
106
+
107
+ if (ret.err_msg != "") { return false; }
108
+
109
+
110
+
111
+ cdObj.value = ret.コード
112
+
113
+
114
+
115
+ }
116
+
117
+ -----------------------------------------------
118
+
119
+ 共通(共通.js)
120
+
121
+ function openShohinSerchBase(cdObj, hdnObj, nmObj, mode, searchFlg) {
122
+
123
+ //パラメータ設定
124
+
125
+ var url = "~"; //子画面URL
126
+
127
+ var param = "dialogHeight:~px; dialogWidth: ~px; scroll: 0; status: 0; resizable: 0;";
128
+
129
+
130
+
131
+ //検索画面OPEN
132
+
133
+ var ret = openSerchDispCmn(url, param, cdObj, hdnObj, nmObj);
134
+
135
+ if (ret != null) {
136
+
137
+ //コードバックアップ
138
+
139
+ var cdBk = ret.コード;
140
+
141
+ //URL設定
142
+
143
+ var url = '~';
144
+
145
+ //引数設定
146
+
147
+ var param = {
148
+
149
+ コード: ret.コード
150
+
151
+ 名称: ret.名称
152
+
153
+ }
154
+
155
+ ret = setDataCmn(url, param, cdObj, hdnObj, nmObj, false)
156
+
157
+
158
+
159
+ //コード再設定
160
+
161
+ cdObj.value = cdBk;
162
+
163
+ hdnObj.value = cdBk;
164
+
165
+ }
166
+
167
+
168
+
169
+ //項目選択
170
+
171
+ selectCharStr(cdObj);
172
+
173
+ return ret;
174
+
175
+ }
176
+
177
+
178
+
179
+ function openSerchDispCmn(url, param, cdObj, hdnObj, nmObj) {
180
+
181
+ //検索画面open
182
+
183
+ var ret = window.showModalDialog(url, window, param); //画面B(子画面)のURLを引数とし、子画面OPEN
184
+
185
+
186
+
187
+ //取得値セット
188
+
189
+ if (ret != null) {
190
+
191
+ cdObj.value = ret.コード
192
+
193
+ }
194
+
195
+ //変更チェック設定
196
+
197
+ if (ret != null && ret.コード != "") {
198
+
199
+ onChkSentaku(cdObj);
200
+
201
+ }
202
+
203
+ return ret;
204
+
205
+ }
206
+
207
+ -----------------------------------------------
208
+
209
+ 画面B(子画面)(B.js)抜粋
210
+
211
+ ↓子画面で検索し、表示された一覧のコードを選択した際の処理。
212
+
213
+
214
+
215
+ var ret = { "コード": "", "名称":""}
216
+
217
+
218
+
219
+ ret.コード = document.getElementById("code" + selectIdx).value;
220
+
221
+ ret.名称 = document.getElementById("name" + selectIdx).value;
222
+
223
+
224
+
225
+ window.returnValue = ret;
226
+
227
+ window.close();
228
+
229
+
230
+
231
+ -----------------------------------------------
232
+
233
+ ```