rest-manager
rest.csv
2010/10/05,テストさん,15:15,15:30,テストだよ。, 2010/10/05,テストさん,15:30,16:00,テストだよ。,
RestViewer.html
<html> <head> <meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS"> <title>休憩管理ビューワー</title> <style> body { font-size: 9pt; color: #000000; background-color:#ffffff; } select { font-size: 9pt; color: #000000; } .button1 { width: 80px; font-weight: bold; } .button2 { width: 120px; font-weight: bold; } .table { border: 1px solid black; } .table-header1 { font-size: 9pt; font-weight: normal; text-align: center; background-color: #9999ff; } .table-record1 { border: 1px solid black; font-size:9pt; background-color: #ffffff; } .table-record2 { border: 1px solid black; font-size: 9pt; background-color: #ccccff; } .table-data1 { border-bottom: 1px solid black; border-right: 1px solid black; font-size:9pt; } .title1 { font-weight: bold; font-size: 12pt; color: #ffffff; text-decoration: underline; background-color: #9999ff; padding: 2pt 2pt 2pt 2pt; } .title-background-color { background-color: #6666ff; } </style> <script> var baseDir = ""; var tempPath = location.pathname; var path = tempPath.split("/"); for (i=0; i<path.length-1; i++) { if (path[i] != "") { baseDir += path[i] + "/"; } } var src = src = baseDir + "rest.csv"; var fil1 = ""; var fil2 = ""; var fil3 = ""; //****************************************************************************** // // ソート // //****************************************************************************** function sort(argCol) { var sortId = ""; if (argCol.value.indexOf("▲") != -1) { argCol.value = argCol.value.replace("▲", "▼"); sortId = "-" + argCol.id } else if (argCol.value.indexOf("▼") != -1) { argCol.value = argCol.value.replace("▼", "▲"); sortId = argCol.id } else { argCol.value = "▲" + argCol.value; sortId = argCol.id } tdc.Sort = sortId; tdc.Reset(); var rs = tdc.recordset; cnt.innerText = rs.RecordCount; var presortid = document.f.presortId.value; if (presortid != "" && argCol.id != presortid) { var presort = document.all.item(presortid); presort.value = presort.value.replace("▲", ""); presort.value = presort.value.replace("▼", ""); } document.f.presortId.value = argCol.id; } //****************************************************************************** // // フィルタ // //****************************************************************************** function filter() { var fil = ""; var con = "&"; if (document.f.condition[1].checked) { con = "|"; } if (fil1 != "") { fil += fil1; } if (fil2 != "") { if (fil != "") { fil += " " + con + " "; } fil += fil2; } if (fil3 != "") { if (fil != "") { fil += " " + con + " "; } fil += fil3; } tdc.Filter = fil; tdc.Reset(); var rs = tdc.recordset; cnt.innerText = rs.RecordCount; } //****************************************************************************** // // フィルタ // //****************************************************************************** function setFilter() { var tgt1 = document.f.filterTarget1.value; var val1 = document.f.filterValue1.value; if (tgt1 != "" && val1 != "") { fil1 = "(" + tgt1 + " = *" + val1 + "*)"; } else { document.f.filterTarget1.value = ""; document.f.filterValue1.value = ""; } var tgt2 = document.f.filterTarget2.value; var val2 = document.f.filterValue2.value; if (tgt2 != "" && val2 != "") { fil2 = "(" + tgt2 + " = *" + val2 + "*)"; } else { document.f.filterTarget2.value = ""; document.f.filterValue2.value = ""; } var tgt3 = document.f.filterTarget3.value; var val3 = document.f.filterValue3.value; if (tgt3 != "" && val3 != "") { fil3 = "(" + tgt3 + " = *" + val3 + "*)"; } else { document.f.filterTarget3.value = ""; document.f.filterValue3.value = ""; } filter(); } //****************************************************************************** // // フィルタクリア // //****************************************************************************** function filterClear(argIdx) { if (argIdx == 1) { fil1 = ""; document.f.filterTarget1.value = ""; document.f.filterValue1.value = ""; } else if (argIdx == 2) { fil2 = ""; document.f.filterTarget2.value = ""; document.f.filterValue2.value = ""; } else if (argIdx == 3) { fil3 = ""; document.f.filterTarget3.value = ""; document.f.filterValue3.value = ""; } } //****************************************************************************** // // 初期表示 // //****************************************************************************** function bodyOnload() { document.f.filterTarget1.value = ""; document.f.filterValue1.value = ""; document.f.filterTarget2.value = ""; document.f.filterValue2.value = ""; document.f.filterTarget3.value = ""; document.f.filterValue3.value = ""; tdc.DataURL = src; tdc.Filter = ""; tdc.Sort = "-column1"; tdc.Reset(); var rs = tdc.recordset; cnt.innerText = rs.RecordCount; var date = new Date(); year = date.getYear(); month = date.getMonth() + 1; if (month < 10) { month = "0" + month; } day = date.getDate(); if (day < 10) { day = "0" + day; } hours = date.getHours(); minutes = date.getMinutes(); document.getElementById("date").value = year + "/" + month + "/" + day; document.getElementById("restStart").value = hours + ":" + minutes; document.getElementById("restEnd").value = hours + ":" + minutes; } //****************************************************************************** // // 再表示 // //****************************************************************************** function refresh() { tdc.DataURL = src; tdc.Reset(); var rs = tdc.recordset; cnt.innerText = rs.RecordCount; } //****************************************************************************** // // 登録 // //****************************************************************************** function append() { var appendData = document.f.elements["appendData"]; var csv = ""; for (i=0; i<appendData.length; i++) { if (appendData[i].value == "") { appendData[i].value = " "; } csv += appendData[i].value + ","; } var fso = new ActiveXObject("Scripting.FileSystemObject"); var writer = fso.OpenTextFile(src, 8); writer.WriteLine(csv); writer.Close(); refresh(); } </script> </head> <body onload="bodyOnload()"> <table width="100%"> <tr class="title-background-color"> <td class="title1" id="titleName">休憩管理</td> </tr> </table> <object id="tdc" classid="clsid:333C7BC4-460F-11D0-BC04-0080C7055A83"> <param name="DataURL" value=""> <param name="CharSet" value="Shift_JIS"> </object> <form name="f"> <span>フィルタ設定</span> <select name="filterTarget1"> <option value="NoFilter"></option> <option value="column1">日付</option> <option value="column2">名前</option> <option value="column3">休憩開始</option> <option value="column4">休憩終了</option> <option value="column5">コメント</option> </select> <input type="text" name="filterValue1" size="20"> <input class="button1" type="button" name="setclear1" value="クリア" onclick="filterClear(1)"> <br> <span>フィルタ設定</span> <select name="filterTarget2"> <option value="NoFilter"></option> <option value="column1">日付</option> <option value="column2">名前</option> <option value="column3">休憩開始</option> <option value="column4">休憩終了</option> <option value="column5">コメント</option> </select> <input type="text" name="filterValue2" size="20"> <input class="button1" type="button" name="setclear2" value="クリア" onclick="filterClear(2)"> <br> <span>フィルタ設定</span> <select name="filterTarget3"> <option value="NoFilter"></option> <option value="column1">日付</option> <option value="column2">名前</option> <option value="column3">休憩開始</option> <option value="column4">休憩終了</option> <option value="column5">コメント</option> </select> <input type="text" name="filterValue3" size="20"> <input class="button1" type="button" name="setclear3" value="クリア" onclick="filterClear(3)"> <br> <span>フィルタ条件</span> <input type="radio" name="condition" id="conditionAnd" value="&" checked> <label for="conditionAnd"><span>AND</span></label> <input type="radio" name="condition" id="conditionOr" value="|"> <label for="conditionOr"><span>OR</span></label> <input class="button1" type="button" name="setfilter1" value="設 定" onclick="setFilter()"> <br> <hr> <button class="button1" onclick="tb1.previousPage()">前ページ</button> <button class="button1" onclick="tb1.nextPage()">次ページ</button> <button class="button1" onclick="refresh()">再表示</button> <input type="hidden" name="presortId" value="column1"> <span>全 </span> <span id="cnt"></span> <span> 件</span> <br> <br> <table class="table" datasrc="#tdc" id="tb1" datapagesize="10" cellspacing="0" cellpadding="3"> <thead> <tr class="table-header1"> <th class="table-data1"><input class="button2" type="button" onclick="sort(this)" id="column1" value="▼日付"></th> <th class="table-data1"><input class="button2" type="button" onclick="sort(this)" id="column2" value="名前"></th> <th class="table-data1"><input class="button2" type="button" onclick="sort(this)" id="column3" value="休憩開始"></th> <th class="table-data1"><input class="button2" type="button" onclick="sort(this)" id="column4" value="休憩終了"></th> <th class="table-data1"><input class="button2" type="button" onclick="sort(this)" id="column5" value="コメント"></th> </tr> </thead> <tr class="table-record1"> <td class="table-data1" nowrap><span datafld="column1"></span></td> <td class="table-data1"><span datafld="column2"></span></td> <td class="table-data1" nowrap><span datafld="column3"></span></td> <td class="table-data1" nowrap><span datafld="column4"></span></td> <td class="table-data1"><span datafld="column5"></span></td> </tr> </table> <br> <hr> <span style="font-family:monospace;">日付 </span><input type="text" name="appendData" id="date" value=""> <br> <span style="font-family:monospace;">名前 </span><input type="text" name="appendData" id="name" value=""> <br> <span style="font-family:monospace;">休憩開始 </span><input type="text" name="appendData" id="restStart" value=""> <br> <span style="font-family:monospace;">休憩終了 </span><input type="text" name="appendData" id="restEnd" value=""> <br> <span style="font-family:monospace;">コメント </span><input type="text" name="appendData" id="comment" value=""> <br> <button class="button1" onclick="append()">登録</button> </form> </body> </html>