<!-- #include file="../../include.asp" --> <% '<!-- '################################################ ' 名称 :生徒会社選択 ' 作成日 :2009/4/24 ' 作成者 :小野 ' 目的 :模擬実践演習における生徒と会社の結び付けを行う。 ' 概要 : '################################################ '--> %> <% main() Sub main() If Not(SessionCheck()) Then Exit Sub End If Dim Cnt Dim EnshuName Dim UserID , UserName , GroupCD Dim RouteType Dim DataCnt Dim SiteiYMD SiteiYMD = Request("SiteiYMD") If SiteiYMD = "" Then SiteiYMD = Date() End If Dim Query Dim Content UserID = Request("UserID") UserName = Request("UserName") GroupCD = Request("GroupCD") RouteType = Request("RouteType") Dim Message Message = Request("Message") If Message = "" Then Message = "生徒の選択会社を設定します。" End If '演習名称GET Query = "exec SPM演習取得 '" & GB_SystemCD & "','" & EnshuCD & "'" Set Content = OpenQuery(Query) If Not(Content.BOF Or Content.EOF) Then EnshuName = Content.Fields("演習名称") End If '選択可能会社配列作成 Dim KaishaCD Dim KaishaMei ReDim KaishaCD(0) ReDim KaishaMei(0) Query = "exec SPV選択可能会社一覧 '" & GB_SystemCD & "','" & EnshuCD & "', '" & GakuseiNo & "', '1'" '1で全て取得 Set Content = OpenQuery(Query) Do While Not(Content.BOF Or Content.EOF) '学生番号がNULL若しくは生徒の自社設定会社なら表示する。 If "" & Content.Fields("学生番号") = "" Or "" & Content.Fields("自社フラグ") = "1" Then ReDim PreServe KaishaCD(UBound(KaishaCD) + 1) '配列+1 ReDim PreServe KaishaMei(UBound(KaishaCD)) KaishaCD(UBound(KaishaCD)) = Content.Fields("会社CD") KaishaMei(UBound(KaishaCD)) = Content.Fields("会社名称") End If Content.MoveNext Loop '未選択項目に表示する文字列 Dim KaishaMisentaku KaishaMisentaku = "<<<会社は選択されていません>>>" %> <html> <% = HtmlHeader("") %> <SCRIPT LANGUAGE="JavaScript"> <!-- SpreadRowColorMode = false; //選択行の色を変える動作を停止(090624小野) HomeAlias = "<% = HomeAlias %>"; HomeAliasSL = "<% = HomeAliasSL %>"; ExitFlg = 1; --> </SCRIPT> <body onkeydown="if(ExitFlg==2)ExitFlg=3;" onBeforeUnload="if(ExitFlg!=0)window.event.returnValue = ExitMsg(ExitFlg)" bgcolor="#5C70B6" text="#000000" leftmargin="0" topmargin="0" marginwidth="0" marginheight="0"> <form OnKeyDown="FormKeyDown(this)" method="POST" name="form1" action="fm_enshu_user_bin.asp" > <input type="hidden" name="EnshuCD" value="<% = EnshuCD %>"> <input type="hidden" name="SendValue" value=""> <input type="hidden" name="Action" value="4"> <input type="hidden" name="RouteType" value="<% = RouteType %>"> <% Response.Write(HtmlDesign(1)) Response.Write(HttpL1(4)) If RouteType = "Sousa" Then If GB_Admin = 1 Then Response.Write(HttpL2("運用管理メニュー" ,"tblbtn( '/" & HomeAlias & "/admin/admenu_w.asp')", "演習管理", "tblbtn( '/" & HomeAlias & "/admin/enshu/fm_enshu_ichiran.asp?EnshuCD=" & EnshuCD & "')", "演習コントロール", "tblbtn( '/" & HomeAlias & "/admin/enshu/fm_enshucontrol.asp?EnshuCD=" & EnshuCD & "')", "生徒選択会社", "", "", "", "", "")) Else Response.Write(HttpL2("運用管理メニュー" ,"tblbtn( '/" & HomeAlias & "/admin/admenu_w.asp')", "演習管理", "tblbtn( '/" & HomeAlias & "/admin/enshu/fm_enshu1_view.asp?EnshuCD=" & EnshuCD & "')", "演習コントロール", "tblbtn( '/" & HomeAlias & "/admin/enshu/fm_enshucontrol.asp?EnshuCD=" & EnshuCD & "')", "生徒選択会社", "", "", "", "", "")) End If Else Response.Write(HttpL2("運用管理メニュー" ,"tblbtn( '/" & HomeAlias & "/admin/admenu_w.asp')", "演習管理", "tblbtn('/" & HomeAlias & "/admin/enshu/fm_enshu1_view.asp?EnshuCD=" & EnshuCD & "')", "生徒選択会社解除", "", "", "", "", "", "", "")) End If Response.Write(HttpL3_2("戻る", "tblbtn('fm_enshu_view_user.asp?EnshuCD=" & EnshuCD & "&RouteType=" & RouteType & "')", "", "", "", "", "", "", "", "")) Response.Write(HttpL3("", "" ,"", "", "", "", "", "", "", "", "", "", "", "", "", "")) Response.Write(HttpL3_1(" 更新内容を保存する ", "SubmitCheck()", "", "", "", "", "", "", "", "")) Response.Write(HttpL4("生徒会社選択", "")) Response.Write(HttpL5(Message)) %> <div id="L0" style="position: absolute; visibility: hidden; left: 0px; top: -2000px;"> <table width="100%" height="100%" border="0" cellpadding="0" cellspacing="5"> <tr> <td valign="top"> <table border="0" cellpadding="5" cellspacing="0" width="100%" height="100%"> <tr> <td align="CENTER" valign="MIDDLE"> <TABLE BORDER="0" CELLSPACING="5" CELLPADDING="15" BGCOLOR="#FFFFFF" STYLE="BORDER:1px solid #000000" WIDTH="680" HEIGHT="100%"> <TR> <TD ALIGN="CENTER" BACKGROUND="/<% = HomeAlias %>/images/window_bk.gif?<% = GB_STU %>"> <TABLE WIDTH="600" BORDER="0" CELLSPACING="0" CELLPADDING="0" HEIGHT="100%"> <tr><td HEIGHT="14" class="tx1416" onMouseOver="this.focus();this.focus();"> 生徒の選択した会社を解除する場合は、右側の「選択会社」のメニュー項目から<br>最上段の<b><% = KaishaMisentaku %></b>を選択し保存ボタンを押してください。 </td></tr> <!-- スプレッドシートオフフォーカスのためのダミーテーブル --> <% If GB_IEmode = "1" Then %> <TR> <TD ALIGN="center" VALIGN="middle" WIDTH="620" height="100%"> <table width="600" height="100%" border="0" cellspacing="0" cellpadding="0"> <tr> <td valign="top" class="tx1214"> <object classid="clsid:5220cb21-c88d-11cf-b347-00aa00a28331"> <param name="lpkpath" value="spread6.lpk"> </object> <object width="656" height="100%" onMouseOver="SubmitFlg=1" classid="clsid:41f841c1-ae16-11d5-8817-0050da6ef5e5" codebase="/<% = HomeAlias %>/binx/spr32x60.cab" id="vaSpread1" border="0"> </object> </td> </tr> </table> </TD> </TR> <% Else %> <% Dim WidthCell1, WidthCell2, WidthCell3, WidthCell4, WidthCell5, WidthCell6, WidthCell7, WidthCell8, WidthCell9, WidthParent Dim HeightCell HeightCell = 23 WidthCell1 = 160 WidthCell2 = 210 WidthCell3 = 300 WidthCell4 = 58 WidthCell5 = 58 WidthCell6 = 58 WidthParent = 694 %> <TR> <TD HEIGHT="<% = HeightCell %>" VALIGN="BOTTOM"> <TABLE HEIGHT="<% = HeightCell %>" BORDER="1" CELLPADDING="0" CELLSPACING="0" BORDERCOLOR="#000000" BGCOLOR="#DDDDDD" CLASS="tx1416" STYLE="border-collapse: collapse"> <TR ALIGN="CENTER" HEIGHT="<% = HeightCell %>"> <TD WIDTH="<% = WidthCell1 %>">ユーザーID</TD> <TD WIDTH="<% = WidthCell2 %>">氏 名</TD> <TD WIDTH="<% = WidthCell3 %>">選 択 会 社</TD> </TR> </TABLE> </TD> </TR> <TR> <TD HEIGHT="1" VALIGN="BOTTOM"></TD><!--これがないと見出しのボトムラインが消える--> </TR> <TR> <TD VALIGN="TOP"> <DIV ID="Layer1" STYLE="position:relative; left:0px; top:-1px; width:<% = WidthParent %>px; height:100%; z-index:1; border: 1px none #000000; overflow: auto;"> <TABLE ID="SyoukaiList" BORDER="1" CELLSPACING="0" CELLPADDING="0" BORDERCOLOR="#000000" BGCOLOR="#FFFFFF" CLASS="tx1416" STYLE="border-collapse: collapse"> <% 'スプレッドシート定義 ※全行共通なのでループ外 Dim SpMaxRow Dim SpRowCnt Dim SpMaxCol SpRowCnt = 0 SpMaxRow = SpRowCnt 'フォーム名 SpFormName = "SpCell" ' '行定義 SpRowHeight = HeightCell '高さ(pixel指定) SpRowCls = "" '行スタイルclass SpRowStyle = "" '行スタイル '列1定義 SpCellType(1) = "2" '形式指定(0:日付・1:文字列・2:英数字・3:通貨) SpCellWidth(1) = WidthCell1 'セル幅(pixel指定) ※フォーム幅は自動計算 SpCellCls(1) = "" 'セルスタイルclass SpCellStyle(1) = "border:1px solid #000000;" 'セルスタイル SpInputCls(1) = "Spread5Lro" 'フォームスタイルclass SpInputStyle(1) = "" 'フォームスタイル SpInputFocus(1) = "this.blur();" 'onFocusで作動させるスクリプト SpInputBlur(1) = "" 'onBlurで作動させるスクリプト SpInputChange(1) = "" 'onChangeで作動させるスクリプト SpInputRO(1) = "1" 'フォームreadonlyフラグ("1") '列2定義 SpCellType(2) = "1" '形式指定(0:日付・1:文字列・2:英数字・3:通貨) SpCellWidth(2) = WidthCell2 'セル幅(pixel指定) ※フォーム幅は自動計算 SpCellCls(2) = "" 'セルスタイルclass SpCellStyle(2) = "border:1px solid #000000;" 'セルスタイル SpInputCls(2) = "Spread5Lro" 'フォームスタイルclass SpInputStyle(2) = "" 'フォームスタイル SpInputFocus(2) = "this.blur();" 'onFocusで作動させるスクリプト SpInputBlur(2) = "" 'onBlurで作動させるスクリプト SpInputRO(2) = "1" 'フォームreadonlyフラグ("1") '列3定義 SpCellType(3) = "9" '形式指定(0:日付・1:文字列・2:英数字・3:通貨 9:プルダウン) SpCellWidth(3) = WidthCell3 'セル幅(pixel指定) ※フォーム幅は自動計算 SpCellCls(3) = "" 'セルスタイルclass SpCellStyle(3) = "border:1px solid #000000;" 'セルスタイル SpInputCls(3) = "Spread5L" 'フォームスタイルclass SpInputStyle(3) = "" 'フォームスタイル SpInputFocus(3) = "" 'onFocusで作動させるスクリプト SpInputBlur(3) = "" 'onBlurで作動させるスクリプト SpInputChange(3) = "" 'onChangeで作動させるスクリプト SpInputRO(3) = "" 'フォームreadonlyフラグ("1") Query = "exec SPM演習選択ユーザー一覧 '" & GB_SystemCD & "','" & EnshuCD & "'" Set Content = OpenQuery(Query) Do While Not(Content.BOF Or Content.EOF) 'スプレッドシート行生成 ※此処で値のみ代入 SpRowCnt = SpRowCnt + 1 '行番号(フォーム名に反映) SpMaxRow = SpRowCnt SpInputValue(1) = Content.Fields("学生番号") 'フォーム初期値 SpInputValue(2) = Content.Fields("氏名") 'フォーム初期値 SpInputOption(3) = "" 'フォーム初期値(selectプルダウンのoptionタグ) SpInputOption(3) = SpInputOption(3) & "<option value=""""><<<会社は選択されていません>>></option>"' & vbCrLf For Cnt = 1 To UBound(KaishaCD) SpInputOption(3) = SpInputOption(3) & "<option value=""" & KaishaMei(Cnt) & """" If KaishaCD(Cnt) = "" & Content.Fields("選択会社CD") Then SpInputOption(3) = SpInputOption(3) & " selected" End If SpInputOption(3) = SpInputOption(3) & ">" & KaishaMei(Cnt) & "</option>"' & vbCrLf Next 'Response.Write(SpreadRow(SpRowCnt)) '引数の行番号がフォーム名に付加される Call SpreadRow(SpRowCnt) '引数の行番号がフォーム名に付加される Content.MoveNext Loop If 0=1 Then 'スプレッドシートの空白行を発生させる SpInputValue(1) = "" 'フォーム初期値 SpInputValue(2) = "" 'フォーム初期値 SpInputOption(3) = "" 'フォーム初期値(selectプルダウンのoptionタグ) SpInputOption(3) = SpInputOption(3) & "<option value=""""><<<会社は選択されていません>>></option>"' & vbCrLf For Cnt = 1 To UBound(KaishaCD) SpInputOption(3) = SpInputOption(3) & "<option value=""" & KaishaMei(Cnt) & """>" & KaishaMei(Cnt) & "</option>"' & vbCrLf Next For Cnt = SpRowCnt + 1 To SpRowCnt + SpBlankRow 'Response.Write(SpreadRow(SpRowCnt)) '引数の行番号がフォーム名に付加される Call SpreadRow(Cnt) '引数の行番号がフォーム名に付加される SpMaxRow = Cnt Next End If %> </TABLE> </DIV> </TD> </TR> <% End If %> </TABLE> </TD> </TR> </TABLE> </td> </tr> </table> </td> </tr> </table> </div> <% '元選択会社CDをフォーム化する(bin側で変更の有無を判定するため) Query = "exec SPM演習選択ユーザー一覧 '" & GB_SystemCD & "','" & EnshuCD & "'" Set Content = OpenQuery(Query) Do While Not(Content.BOF Or Content.EOF) If "" & Content.Fields("選択会社CD") <> "" Then '選択会社無しは除外 Response.Write("<input type=""hidden"" name=""" & Content.Fields("学生番号") & """ value=""" & ConvKaisyaMeisyoDx(EnshuCD, Content.Fields("選択会社CD")) & """>" & vbCrLf) End If Content.MoveNext Loop %> </form> </body> <% = HtmlFooter %> </html> <% If GB_IEmode <> "1" Then %> <SCRIPT LANGUAGE="JavaScript"> SpMinRow = 1; SpMaxRow = <% = SpMaxRow %>; <% '最大セル番号を取得 SpMaxCol = 0 For Cnt = 1 To UBound(SpCellType) If "" & SpCellType(Cnt) <> "" Then SpMaxCol = Cnt End If Next %> SpMaxCol = <% = SpMaxCol %>; function SubmitCheck() { document.getElementById("BaseL5").innerHTML = "更新中です。しばらくお待ちください。"; form1.SendValue.value = "" for (jj = SpMinRow; jj <= SpMaxRow; jj++) { Target = "SpCell" + jj + "_" //セル番号を除くフォーム名 for (ii = 1; ii <= SpMaxCol; ii++) { var Text1; Text1 = form1[Target + ii].value; //文字型フィールドの半角カンマ・セミコロンを代替文字に変換する処理(070201小野) Text1 = ReplaceStr(Text1, ",", "CommammoC") Text1 = ReplaceStr(Text1, ";", "SemicolonolocimeS") form1.SendValue.value = form1.SendValue.value + Text1; form1.SendValue.value = form1.SendValue.value + ","; } form1.SendValue.value = form1.SendValue.value + ";" } //alert(form1.SendValue.value); //return; SubmitReal(form1); return true; } window.onload = function() { // form1.SpCell<% = (SpRowCnt + 1) %>_1.focus(); } </SCRIPT> <% Else 'IEモード %> <SCRIPT LANGUAGE="JavaScript"> function SubmitCheck() { //送信文字列初期化 form1.SendValue.value = ""; //行ループ for (jj = 1; jj <= document.vaSpread1.MaxRows; jj++) { document.vaSpread1.Row = jj; var RowText = ""; //列ループ for(ii = 1; ii <= document.vaSpread1.MaxCols; ii++) { document.vaSpread1.Col = ii; var Text1; Text1 = document.vaSpread1.Text; //文字型・適用型フィールドの半角カンマ・セミコロンを代替文字に変換する処理 if(document.vaSpread1.ColID == 1 || document.vaSpread1.ColID == 18 || document.vaSpread1.ColID == 21 || document.vaSpread1.ColID == 22) { Text1 = ReplaceStr(Text1, ",", "CommammoC") Text1 = ReplaceStr(Text1, ";", "SemicolonolocimeS") } //カンマ区切りで列結合 RowText = RowText + Text1; RowText = RowText + ","; } //セミコロン区切りで行結合 form1.SendValue.value = form1.SendValue.value + RowText + ";"; } SubmitReal(form1); return true; } function SpreadInit(fpSpread) { fpSpread.MaxRows = 0; <% Dim ii ii = 0 Query = "exec SPM演習選択ユーザー一覧 '" & GB_SystemCD & "','" & EnshuCD & "'" Set Content = OpenQuery(Query) Do While Not(Content.BOF Or Content.EOF) ii = ii + 1 Response.Write(" SpreadAddItem(fpSpread);" & vbCrLf) Response.Write(" fpSpread.Row = " & ii & ";" & vbCrLf) Response.Write(" fpSpread.Col = 1;" & vbCrLf) Response.Write(" fpSpread.Text = """ & Content.Fields("学生番号") & """;" & vbCrLf) Response.Write(" fpSpread.Col = 2;" & vbCrLf) Response.Write(" fpSpread.Text = """ & Replace("" & Content.Fields("氏名"), "\", "\\") & """;" & vbCrLf) Response.Write(" fpSpread.Col = 3;" & vbCrLf) Dim TmpKaishaMeisho TmpKaishaMeisho = ConvKaisyaMeisyoDx(EnshuCD, Content.Fields("選択会社CD")) If TmpKaishaMeisho = "" Then TmpKaishaMeisho = KaishaMisentaku End If Response.Write(" fpSpread.Text = """ & TmpKaishaMeisho & """;" & vbCrLf) Response.Write(" fpSpread.Col = 0;" & vbCrLf) Response.Write(" fpSpread.Text = "" "";" & vbCrLf) Content.MoveNext Loop %> } </SCRIPT> <SCRIPT FOR="vaSpread1" EVENT="KeyDown(KeyAsciiCode, KeyShift)" LANGUAGE="JavaScript"> // SpreadKeyDown(this, KeyAsciiCode, KeyShift); </SCRIPT> <SCRIPT FOR="vaSpread1" EVENT="KeyUp(KeyAsciiCode, KeyShift)" LANGUAGE="JavaScript"> SpreadKeyUp(this, KeyAsciiCode, KeyShift); </SCRIPT> <SCRIPT FOR="vaSpread1" EVENT="ScriptLeaveCell(ColNo, RowNo, NewColNo, NewRowNo, Cancel)" LANGUAGE="VBScript"> Dim tmp tmp = SpreadChange(Me, ColNo, RowNo) If tmp = "ERR" Then Cancel = true SpreadReFocus(Me) End If </SCRIPT> <SCRIPT FOR="vaSpread1" EVENT="Click(ColNo, RowNo)" LANGUAGE="JavaScript"> // ヘッダー列クリック時にソートしない場合にはコメントアウトする SpreadClick(this, ColNo, RowNo); this.Col = this.ActiveCol; this.Row = this.ActiveRow; this.EditMode = true; SpreadRowColor(this); //選択行の色を変える(090624小野) </SCRIPT> <SCRIPT FOR="vaSpread1" EVENT="EditMode(Col, Row, Mode, ChangeMade)" LANGUAGE="JavaScript"> this.Col = Col; this.Row = Row; if(this.CellType == 12) { if(!Mode) { this.TypeCurrencyLeadingZero = 2; } } this.focus(); </SCRIPT> <SCRIPT FOR="window" EVENT="onload" LANGUAGE="JavaScript"> if(typeof(form1.dummy) == "object")form1.dummy.focus(); // SpreadInit 第 3n + 1 引数 (nは整数) // 0:日付型 1:文字型 8:コンボボックス型 10:チェックボックス型 12:通貨型 13:数値型 21:勘定科目 22:摘要 document.vaSpread1.Redraw = false; SpreadLoad(document.vaSpread1, "ユーザーID", 18, 18, "氏 名", 22, 24, "選 択 会 社", 8, 35); document.vaSpread1.ScriptEnhanced = true; //その他の Spread に関する設定はここに入れる <% Dim KaishaList KaishaList = "" KaishaList = KaishaList & KaishaMisentaku Dim TmpCnt For TmpCnt = 1 To UBound(KaishaMei) KaishaList = KaishaList & "\t" KaishaList = KaishaList & KaishaMei(TmpCnt) Next %> document.vaSpread1.Col = 3; document.vaSpread1.TypeComboBoxList = "<% = KaishaList %>"; document.vaSpread1.Row = -1; document.vaSpread1.Col = 1; document.vaSpread1.BackColorStyle = 1; document.vaSpread1.BackColor = 0xEFEFEF; document.vaSpread1.Lock = true; document.vaSpread1.Col = 2; document.vaSpread1.BackColorStyle = 1; document.vaSpread1.BackColor = 0xEFEFEF; document.vaSpread1.Lock = true; document.vaSpread1.RetainSelBlock = false; SpreadInit(document.vaSpread1); document.vaSpread1.Redraw = true; </SCRIPT> <% End If %> <% End Sub %>