GroupSession
お世話になっております。10年より前のスケジュールの検索方法が分かる方がいらっしゃいましたら教えてください。[スケジュール]→[検索]で検索フィルタをかける場合、2012年より前のデータ検索する手段がなく困っております。プルダウンで検索をしようとすると、2012年までしか選択肢がなく、プルダウン横のカレンダーアイコンで2011年以前の日付を選択すると空白になってしまい、検索結果が表示されません。何卒よろしくお願い申し上げます。構築環境 OS:Windows Server2012 R2 ← もうすぐ入れ替えます Tomcat: 9.0.56 Java: jdk-11.0.13.8 GSession: ver 5.1.3クライアント環境 OS: Windows 10 Pro 21H2 接続ブラウザ: Edgeのみ
hrktyjkさん> [スケジュール]→[検索]で検索フィルタをかける場合、> 2012年より前のデータ検索する手段がなく困っております。> > プルダウンで検索をしようとすると、2012年までしか選択肢がなく、> プルダウン横のカレンダーアイコンで2011年以前の日付を選択すると空白になってしまい、検索結果が表示されません。ソースコード →/WEB-INF/plugin/schedule/src/jp/groupsession/v2/sch/sch110/Sch110Biz.javaの665行目以降に10年前から10年後で選択肢を作成する処理が書かれていますので、ここを書き換えて再コンパイルするか、検索フォームの表示用ファイル →/WEB-INF/plugin/schedule/jsp/sch100.jspの271行~273行目にその処理を呼び出すコードが書かれていますので、そこを無効化して手書きでselect文を書き込む、という2通りの方法しかないと思います。
すみません、javaソースコードの書き換えと表示用jspファイルの手書き修正の2通りしかないと書きましたが、もう一つ /schedule/js/sch100.js上記JavaScriptファイルの109行目以降関数moveDayにて、引数elmYearがselYearsfだった場合に$(elmYear).append($('<option>').html("2011年").val("2011"))等でopsion要素を追加する、という3つ目の方法がありました。
3つ目の方法についてちょっと補足です。> もう一つ> /schedule/js/sch100.js> 上記JavaScriptファイルの109行目以降> 関数moveDayにて、引数elmYearがselYearsfだった場合に> $(elmYear).append($('<option>').html("2011年").val("2011"))> 等でopsion要素を追加する、という3つ目の方法がありました。3つ目の方法は「JavaScript(jQuery)でoption要素を修正する」という手法の話で、変更箇所は上記の場所に拘らず、検索画面表示時点でoption要素追加処理を実行してもいいですし、カレンダーから日付を選択した時点でその年数がoption要素にない場合にoption要素を追加する、という方法でもよいかと思います。
JavaScriptによる追加処理の動作確認が取れましたで、サンプルコードを書きます。・追加処理1→/common/js/calendar.js:580行目(5.3.0の場合) onClickEv += ' window.opener.chkAddOptions(\''+conf.oyyyy.name+'\',\''+wrtyear+'\');'を追加(上記JavaScriptファイルの //年 onClickEv += ' self.opener.document.'+conf.oj.form.name onClickEv += '.'+conf.oyyyy.name+'.value=(\''+wrtyear+'\');' ↑この記述の上に入れて下さい)・追加処理2→/schedule/js/sch100.js:最終行/** ここから **//** * 選択した年が選択肢になければ追加する */function chkAddOptions(cname, cvalue) { var list = document.forms[0].elements[cname]; var len = list.options.length; var mkflg = 0; var i = 0; for (i=0; i < len; i++) { if (list.item(i).value == cvalue) { mkflg = 1; } } if (mkflg == 0) { var option = document.createElement('option'); option.textContent = cvalue + "年"; option.value = cvalue; list.appendChild(option); }}/** ここまで **/を追加するこれでカレンダーから10年以上前(または10年以上後)の日付を選択した際に、年の選択肢に選択した年が追加されます。
たびたびすみません、追加処理2をやるとスケジュール検索以外のカレンダー処理でクリックしてもカレンダーが閉じなくなってしまいました。なので追加処理2の訂正です。> ・追加処理2> →/schedule/js/sch100.js:最終行↑修正するファイルを追加1と同じcalendar.jsの最終行にして下さい。 →/common/js/calendar.js:最終行> /** ここから **/> /**> * 選択した年が選択肢になければ追加する> */> function chkAddOptions(cname, cvalue) {> var list = document.forms[0].elements[cname];> var len = list.options.length;> var mkflg = 0;> var i = 0;> > for (i=0; i < len; i++) {> if (list.item(i).value == cvalue) { mkflg = 1; }> }> > if (mkflg == 0) {> var option = document.createElement('option');> option.textContent = cvalue + "年";> option.value = cvalue;> list.appendChild(option);> }> }> /** ここまで **/↑内容は同じです。
お世話になっております。投稿者です。先ほどご教授頂いた内容を追加したところ、10年以上前のスケジュールも検索する事ができました。ここで教えていただけなければ、決してたどり着きませんでした。本当にありがとうございました。また、回答が遅れた事を心よりお詫び申し上げます。
TOP