jQuery を利用したことで、タブで切り替えるということを思いつき
3つの HTA を合体させてみました。
大きくなりましたので、溢れる分はコメントで投稿しています。
***< RESTRANT.hta >*************************************************
<html>
<head>
<hta:application navigable="yes" scroll="auto">
</hta:application>
<title>レストランご予約システム</title>
<script src="https://ajaxzip3.github.io/ajaxzip3.js" charset="UTF-8"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jqueryui/1.11.4/jquery-ui.min.js"></script>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.10.3/i18n/jquery-ui-i18n.min.js"></script>
<link rel="stylesheet" href="http://ajax.googleapis.com/ajax/libs/jqueryui/1/themes/black-tie/jquery-ui.css"></link>
<script language="JavaScript" type="text/javascript">
var mdb = "RESTRANT.mdb";
var yyb = ""; // 予約日
var tan = ""; // 担当者
/* ==================================================
__初期処理
===================================================== */
function func_init() {
window.resizeTo(940,620);
var cn = new ActiveXObject("ADODB.Connection");
try {
cn.Open("Driver={Microsoft Access Driver (*.mdb)};DBQ=RESTRANT.mdb");
cn.Close(); cn = null;
$("#tab_area").tabs({ disabled: [2] });
} catch (e) {
$("#tab_area").tabs({ active: 2 });
alert("MDBがありません、DB作成処理を実行して下さい!" + e);
document.write("<BR><b>MDBがありません、DB作成処理を実行して下さい!</a>");
return;
}
document.getElementById("frm2").style.display="none";
set_selOdr1();
List_disp1();
document.getElementById("frm4").style.display="none";
Tbl_disp2();
}
/* ==================================================
__予約日一覧の設定
===================================================== */
function List_disp1() {
var cn = new ActiveXObject("ADODB.Connection");
var mySql = "SELECT format(予約日,'YYYY/MM/DD') FROM ご予約 GROUP BY 予約日 ORDER BY 予約日 DESC";
cn.Open("Driver={Microsoft Access Driver (*.mdb)};DBQ=" + mdb);
var rs = cn.Execute(mySql);
var select = document.getElementById("selYYB");
for (var i = select.childNodes.length - 1; 0 <= i; --i) {
select.removeChild(select.childNodes[i]);
}
while (!rs.EOF){
var option = document.createElement("option");
option.value = rs(0).value;
var text = document.createTextNode(rs(0).value);
option.appendChild(text);
select.appendChild(option);
if (yyb == "") { yyb = rs(0).value; }
if (yyb == rs(0).value) { option.selected = true; }
rs.MoveNext();
}
rs.Close(); rs = null;
cn.Close(); cn = null;
Tbl_disp1();
}
/* ==================================================
__一覧表の設定
===================================================== */
function Tbl_disp1() {
var cn = new ActiveXObject("ADODB.Connection");
cn.Open("Driver={Microsoft Access Driver (*.mdb)};DBQ=" + mdb); // <== ODBC接続
var mySql = "SELECT 予約ID,format(来店時刻,'HH:MM'),お客様名,人数,状況 FROM ご予約";
if (yyb != "") { mySql += " WHERE 予約日 = #" + yyb + "# ORDER BY 来店時刻 DESC"; }
var table = document.getElementById("tbdy1");
while( table.rows[ 0 ] ) table.deleteRow( 0 );
var rs = cn.Execute(mySql);
var tmp = "";
var ken = 0;
var nin = 0;
while (!rs.EOF){
var row = table.insertRow(-1);
var cell1 = row.insertCell(-1);
var cell2 = row.insertCell(-1);
var cell3 = row.insertCell(-1);
var cell4 = row.insertCell(-1);
var cell5 = row.insertCell(-1);
cell1.innerHTML = rs(0).value; // 予約ID
cell2.innerHTML = rs(1).value; // 来店時刻
tmp = "'" + rs(0).value + "'";
cell3.innerHTML = '<div align="left"><a href="#" onClick="go_RecPage1(' + tmp + ')">' + rs(2).value + '</a><div>';
cell4.innerHTML = rs(3).value; // 人数
cell5.innerHTML = rs(4).value; // 状況
if (rs(4).value == "予約") {
ken++;
nin += parseInt(rs(3).value);
}
rs.MoveNext();
}
rs.Close();rs = null;
cn.Close();cn = null;
var haba = document.getElementById('X0').offsetWidth +
document.getElementById('X1').offsetWidth +
document.getElementById('X2').offsetWidth +
document.getElementById('X3').offsetWidth +
document.getElementById('X4').offsetWidth + 80;
if (ken > 0) {
document.getElementById("kei").innerHTML = "_予約:" + ken + "件_" + nin + "人";
} else {
document.getElementById("kei").innerHTML = "";
}
if (haba <= 1000) { haba = 1000; }
}
/* ==================================================
__コース選択肢の設定
===================================================== */
function set_selOdr1() {
var cn = new ActiveXObject("ADODB.Connection");
cn.Open("Driver={Microsoft Access Driver (*.mdb)};DBQ=" + mdb);
var mySql = "SELECT コース名 FROM コースマスタ WHERE 可否 < 0 ORDER BY コースID";
var rs = cn.Execute(mySql);
var data = [];
var i = 0;
while (!rs.EOF){
data[i] = rs(0).value
rs.MoveNext();
i++;
}
rs.Close(); rs = null;
cn.Close(); cn = null;
for (var j=1; j<6; j++) {
var select = document.getElementById("selOd" + j);
for (var i=0; i<data.length; i++) {
var option = document.createElement("option");
option.value = data[i];
var text = document.createTextNode(data[i]);
option.appendChild(text);
select.appendChild(option);
}
}
}
/* ==================================================
__登録画面の表示
===================================================== */
function go_NewRec1() {
$("#frm1").hide();
$("#frm2").fadeIn("slow");
var now = new Date();
document.getElementById("yyk").value = set_NewOdr1(now); // 予約ID
if (yyb == "") { yyb = toLocaleString(now); }
document.getElementById("yyb").value = yyb; // 予約日
document.getElementById("rai").value = ""; // 来店時刻
document.getElementById("sam").value = ""; // お客様名
document.getElementById("dai").value = ""; // 代表者名
document.getElementById("tel").value = ""; // TEL
document.getElementById("pno").value = ""; // 郵便番号
document.getElementById("adr").value = ""; // 住所
document.getElementById("nin").value = 0; // 人数
document.getElementById("os1").value = 0; // オーダー1数
document.getElementById("os2").value = 0; // オーダー2数
document.getElementById('selOd2').selectedIndex = 0;
document.getElementById("os3").value = 0; // オーダー3数
document.getElementById('selOd3').selectedIndex = 0;
document.getElementById("os4").value = 0; // オーダー4数
document.getElementById('selOd4').selectedIndex = 0;
document.getElementById("os5").value = 0; // オーダー5数
document.getElementById('selOd5').selectedIndex = 0;
document.getElementById("bko1").value = ""; // 備考
document.getElementById("tan").value = tan; // 受付担当
document.getElementById("ukj").value = toLocaleString(now) + " "
+ now.getHours() + ":" + now.getMinutes(); // 受付時刻
document.getElementById("登録1").disabled = false;
document.getElementById("更新1").disabled = true;
window.resizeTo(940,620);
}
/* ==================================================
__新予約番号の算定
===================================================== */
function set_NewOdr1(now) {
var cn = new ActiveXObject("ADODB.Connection");
cn.Open("Driver={Microsoft Access Driver (*.mdb)};DBQ=" + mdb);
var mySql = "SELECT MAX(予約ID) FROM ご予約";
var rs = cn.Execute(mySql);
var mmdd = ("0" + (now.getMonth() + 1)).slice(-2) + ("0" + now.getDate()).slice(-2);
var yyk = "";
if (rs.EOF || rs(0).value == null){
yyk = "AA-" + mmdd + "-001"; // 接頭語固定でセット(初期値:仮AA)
} else {
var tmp = rs(0).value;
if (tmp.slice(3,7) == mmdd) {
yyk = tmp.slice(0,8) + ("00" + (parseInt(tmp.slice(-3)) + 1)).slice(-3);
} else {
yyk = tmp.slice(0,3) + mmdd + "-001";
}
}
rs.Close(); rs = null;
cn.Close(); cn = null;
return yyk;
}
/* ==================================================
__一覧表への復帰
===================================================== */
function go_ListPage1() {
$("#frm2").hide();
$("#frm1").fadeIn("slow");
List_disp1();
}
/* ==================================================
__一覧表の再表示(予約日切替)
===================================================== */
function go_ReLoad1() {
yyb = document.getElementById('selYYB').options.value;
Tbl_disp1();
}
/* ==================================================
__更新画面の表示
===================================================== */
function go_RecPage1(yyk) {
$("#frm1").hide();
$("#frm2").fadeIn("slow");
var mySql = "SELECT format(予約日,'YYYY/MM/DD')"
+ ",format(来店時刻,'HH:MM')"
+ ",IIf(IsNull(状況),'',状況)"
+ ",IIf(IsNull(お客様名),'',お客様名)"
+ ",IIf(IsNull(代表者名),'',代表者名)"
+ ",IIf(IsNull(TEL),'',TEL)"
+ ",IIf(IsNull(郵便番号),'',郵便番号)"
+ ",IIf(IsNull(住所),'',住所)"
+ ",IIf(IsNull(人数),'',人数)"
+ ",IIf(IsNull(オーダー1),'',オーダー1)"
+ ",IIf(IsNull(オーダー1数),'',オーダー1数)"
+ ",IIf(IsNull(オーダー2),'',オーダー2)"
+ ",IIf(IsNull(オーダー2数),'',オーダー2数)"
+ ",IIf(IsNull(オーダー3),'',オーダー3)"
+ ",IIf(IsNull(オーダー3数),'',オーダー3数)"
+ ",IIf(IsNull(オーダー4),'',オーダー4)"
+ ",IIf(IsNull(オーダー4数),'',オーダー4数)"
+ ",IIf(IsNull(オーダー5),'',オーダー5)"
+ ",IIf(IsNull(オーダー5数),'',オーダー5数)"
+ ",IIf(IsNull(対応状況),'',対応状況)"
+ ",IIf(IsNull(ご評価),'',ご評価)"
+ ",IIf(IsNull(備考),'',備考)"
+ ",format(受付時刻,'YYYY/MM/DD HH:MM')"
+ ",IIf(IsNull(受付担当),'',受付担当)"
+ " FROM ご予約 "
+ " WHERE 予約ID = '" + yyk + "'";
var cn = new ActiveXObject("ADODB.Connection");
cn.Open("Driver={Microsoft Access Driver (*.mdb)};DBQ=" + mdb);
var rs = cn.Execute(mySql);
document.getElementById("yyk").value = yyk; // 予約ID
yyb = rs(0).value;
document.getElementById("yyb").value = yyb; // 予約日
document.getElementById("rai").value = rs(1).value; // 来店時刻
var options = document.getElementById('selJyo').options; // 状況
var tmp = rs(2).value;
for (var i = 0; i < options.length; i++) {
if (options[i].text == tmp){ options[i].selected = true; break; }
}
document.getElementById("sam").value = rs(3).value; // お客様名
document.getElementById("dai").value = rs(4).value; // 代表者名
document.getElementById("tel").value = rs(5).value; // TEL
document.getElementById("pno").value = rs(6).value; // 郵便番号
document.getElementById("adr").value = rs(7).value; // 住所
document.getElementById("nin").value = rs(8).value; // 人数
options = document.getElementById('selOd1').options; // オーダー1
tmp = rs(9).value;
for (var i = 0; i < options.length; i++) {
if (options[i].text == tmp){ options[i].selected = true; break; }
}
document.getElementById("os1").value = rs(10).value; // オーダー1数
options = document.getElementById('selOd2').options; // オーダー2
tmp = rs(11).value;
for (var i = 0; i < options.length; i++) {
if (options[i].text == tmp){ options[i].selected = true; break; }
}
document.getElementById("os2").value = rs(12).value; // オーダー2数
options = document.getElementById('selOd3').options; // オーダー3
tmp = rs(13).value;
for (var i = 0; i < options.length; i++) {
if (options[i].text == tmp){ options[i].selected = true; break; }
}
document.getElementById("os3").value = rs(14).value; // オーダー3数
options = document.getElementById('selOd4').options; // オーダー4
tmp = rs(15).value;
for (var i = 0; i < options.length; i++) {
if (options[i].text == tmp){ options[i].selected = true; break; }
}
document.getElementById("os4").value = rs(16).value; // オーダー4数
options = document.getElementById('selOd5').options; // オーダー5
tmp = rs(17).value;
for (var i = 0; i < options.length; i++) {
if (options[i].text == tmp){ options[i].selected = true; break; }
}
document.getElementById("os5").value = rs(18).value; // オーダー5数
options = document.getElementById('selTai').options; // 対応状況
tmp = rs(19).value;
for (var i = 0; i < options.length; i++) {
if (options[i].text == tmp){ options[i].selected = true; break; }
}
options = document.getElementById('selHyo').options; // ご評価
tmp = rs(20).value;
for (var i = 0; i < options.length; i++) {
if (options[i].text == tmp){ options[i].selected = true; break; }
}
document.getElementById("bko1").value = rs(21).value; // 備考
document.getElementById("ukj").value = rs(22).value; // 受付時刻
tan = rs(23).value; // 受付担当
document.getElementById("tan").value = tan;
rs.Close();rs = null;
cn.Close();cn = null;
document.getElementById("登録1").disabled = true;
document.getElementById("更新1").disabled = false;
window.resizeTo(940,620);
}
/* ==================================================
__登録処理
===================================================== */
function func_insRec1() {
var cn = new ActiveXObject("ADODB.Connection");
cn.Open("Driver={Microsoft Access Driver (*.mdb)};DBQ=" + mdb);
var mySql = "INSERT INTO ご予約 VALUES(";
yyk = document.getElementById('yyk').value; mySql += "'" + yyk + "'"; // 予約ID
var tmp = "";
yyb = document.getElementById('yyb').value; mySql += ",'" + yyb + "'"; // 予約日
tmp = document.getElementById('rai').value; mySql += ",'" + tmp + "'"; // 来店時刻
tmp = document.getElementById('selJyo').options.value; mySql += ",'" + tmp + "'"; // 状況
tmp = document.getElementById('sam').value; mySql += ",'" + tmp + "'"; // お客様名
tmp = document.getElementById('dai').value; mySql += ",'" + tmp + "'"; // 代表者名
tmp = document.getElementById('tel').value; mySql += ",'" + tmp + "'"; // 連絡先(TEL)
tmp = document.getElementById('pno').value; mySql += ",'" + tmp + "'"; // 郵便番号
tmp = document.getElementById('adr').value; mySql += ",'" + tmp + "'"; // 住所
tmp = document.getElementById('nin').value; mySql += "," + tmp; // 人数
tmp = document.getElementById('selOd1').options.value; mySql += ",'" + tmp + "'"; // オーダー1
tmp = document.getElementById('os1').value; mySql += "," + tmp; // オーダー1数
tmp = document.getElementById('selOd2').options.value; mySql += ",'" + tmp + "'"; // オーダー2
tmp = document.getElementById('os2').value; mySql += "," + tmp; // オーダー2数
tmp = document.getElementById('selOd3').options.value; mySql += ",'" + tmp + "'"; // オーダー3
tmp = document.getElementById('os3').value; mySql += "," + tmp; // オーダー3数
tmp = document.getElementById('selOd4').options.value; mySql += ",'" + tmp + "'"; // オーダー4
tmp = document.getElementById('os4').value; mySql += "," + tmp; // オーダー4数
tmp = document.getElementById('selOd5').options.value; mySql += ",'" + tmp + "'"; // オーダー5
tmp = document.getElementById('os5').value; mySql += "," + tmp; // オーダー5数
tmp = document.getElementById('selTai').options.value; mySql += ",'" + tmp + "'"; // 対応状況
tmp = document.getElementById('selHyo').options.value; mySql += ",'" + tmp + "'"; // ご評価
tmp = document.getElementById('bko1').value; mySql += ",'" + tmp + "'"; // 備考
tmp = document.getElementById('ukj').value; mySql += ",'" + tmp + "'"; // 受付日時
tan = document.getElementById('tan').value; mySql += ",'" + tan + "')"; // 受付担当
try {
var rs = cn.Execute(mySql);
alert("ご予約登録完了");
} catch (e) {
cn.Close;
alert("ご予約登録失敗 " + e + mySql);
return;
}
cn.Close();cn = null;
}
// コメント①に続く
コメント一覧
ブログオーナー
ブログオーナー
ブログオーナー
ブログオーナー
ブログオーナー
ブログオーナー
ブログオーナー
ブログオーナー
ブログオーナー
ブログオーナー
最新の画像もっと見る
最近の「HTA」カテゴリーもっと見る
最近の記事
カテゴリー
- VBScript(2)
- Weblog(314)
- お仕事ツール(0)
- Saloon(1121)
- Node.js他(Python)(16)
- HTA(32)
- 決め・分け論(71)
- 映画・ドラマ(37)
- EXCEL VBA(35)
- PL/SQL(10)
- Java(11)
- 詩(自作)(5)
- 詩(塚原将)(298)
- 短歌(200)
- 題詠100首鑑賞(96)
- 題詠100首(109)
- ALIAS SMITH and JONES エピソード(1)
- 題詠100首2010(11)
- 読書(74)
- プロスポーツ(プロ野球、格闘技)(27)
- 日常・育児とか(88)
- 仕事(IT関係)(61)
- とほほ(33)
- 夢(32)
- 勝手にバトン(7)
- 写真(36)
- スタートレック視聴日誌草稿(24)
- 旅行(25)
- 嫌いな言葉(6)
- 好きな言葉(4)
バックナンバー
人気記事