Re:SALOON & VBA

しばらくは、過去BBSの倉庫、および
作成した EXCEL VBA の置き場(公開)として

Entry Point List

2017-01-01 00:00:00 | Weblog
当ブログは、非活発です。(2009年より)
しかし、過去ログの閲覧が今尚あり驚いております。
ので、折角の御訪問を感謝し、以下にエントリーポイントをまとめます。

閲覧頂いている主な記事(入口)

Re:SALLON BBSの倉庫として
 あるドラマのファンサイトの掲示板(SALOON)のログ再録

EXCEL VBA と PL/SQL の保管庫として
 休職中(求職中)の課題の成果の掲示

塚原将という詩人

写真日記

夢日記

スタートレック視聴日誌草稿

コメントは、受け付けておりますが、掲載は許可制で滅多にないことなので反応は遅れます。
あしからず。
Comment (1)
この記事をはてなブックマークに追加

EXCEL VBA と PL/SQL、Javascript の保管庫として

2016-08-31 23:59:59 | EXCEL VBA
休職中(無職期間で求職中)の学習結果を掲載します。(2014年5~6月、2016年2~7月)
そして、稀に追加・更新しています。

※この一覧の投稿日付は、カテゴリーの先頭に記事が来るように、都度更新しています。

休職中に、掲載することを目的に、学習してたという言い方が正しいかも知れませんね。
日々の張りというところでしょうか?目に見えない成果だとグダグタになってしまいます。

何かをなす余裕もないのですが、かといって何もしないでは長すぎる日々ですので。
もしこれが少しでも誰かの参考になれば、甲斐があるというものです。

EXCEL VBAの諸先達各位のサンプルサイトを参考にして作成しているので、
どこかでみたなというソースになっているかも知れません。

説明もロクにつけて無くて、参考にして頂くにもそもそもある程度の知識が必要で
多分、誰の勉強にはならない(陳腐に見えるかも)とも思うのですが、
サンプルサイトのツールよりは、実際寄りで(その分汎用性は低い)
こういうのもありかもと誰かの可能性(ヒント)を広げられる一助(キッカケ)になれば・・・
と(完成度は低いですが)。
同行の志を求めております。(勿論、無職者であることが条件ではありませんので、どうか)
よろしければコメント下さい。

注)ソースの修正は、コメントで入れてたりしています(本記事の差し替えでなく)

壁紙にカレンダー(Excel VBA)

VBA 汎用SQL実行ツール Ver.2
VBA 汎用SQL実行ツール
VBA ORACLE一括登録ツール

ACCESS版 SQL実行(EXCEL VBA)

ORACLE 簡易検索ツール(EXCEL VBA)…前半
ORACLE 簡易検索ツール(EXCEL VBA)…後半

ACCESS 簡易検索ツール(EXCEL VBA)…前半
ACCESS 簡易検索ツール(EXCEL VBA)…後半

ORACLE テーブル一覧表作成(EXCEL VBA)

ORACLE 全角チェッカー(EXCEL VBA)

全シートのテキスト出力マクロ(EXCEL VBA)

テキスト分割マクロ(EXCEL VBA)

不要名前定義の削除マクロ(EXCEL VBA)

セル幅高さの調整マクロ(EXCEL VBA)

UTF8 CSVファイルの変換マクロ(EXCEL VBA)
ORACLE DB(UTF8) から EXCELダウンロード

EXCEL VBA 文字コード表作成
HTA版   文字コード表作成

ORACLE 住所分解コード化ツール(EXCEL VBA)…前半
ORACLE 住所分解コード化ツール(EXCEL VBA)…後半

ACCESS 住所分解コード化ツール(EXCEL VBA)…前半
ACCESS 住所分解コード化ツール(EXCEL VBA)…後半

ORACLE 住所分解コード化ツール(PL/SQL)

ORACLE 住所分解コード化ツール(PL/SQL)の分割

ORACLE 住所分解コード化ツール(EXCEL VBA)…分割PL/SQLの呼び出し

ORACLE 住所分解コード化ツール(PL/SQL)のパッケージ化

HTA版 住所分解コード化ツール
HTA版 住所分解コード化ツール CSV入力版
HTA版 住所分解コード化ツール CSV入力EXCEL出力版

Excel VBA 簡易版 住所分解コード化ツール …HTA版EXCEL出力と同じロジック
AccessVBA 簡易版 住所分解コード化ツール …↑EXCEL VBAと同じロジック

ORACLE 住所マスタを作成する(PL/SQL)

ORACLE 郵便番号を更新する(PL/SQL)

ORACLE 郵便番号更新を分割する(PL/SQL)

ORACLE 郵便番号更新を高速化する(PL/SQL)

ORACEL 郵便番号更新を高速化する(EXCEL VBA)

ORACLE 住所マスタを登録する(PL/SQL(郵便番号は除く))

ORACLE 住所マスタを作成する(ストアドプロシージャ)…前半
ORACLE 住所マスタを作成する(ストアドプロシージャ)…後半

ORACLE 住所分解コード化処理の高速化

【番外】
Java版 Oracle⇒CSV(SQL実行)ツール

JavaScript版 Oracle⇒Web & CSV ツール
JavaScript版 Oracle SQL ツール 改良版
JavaScript版 EXCEL VBA起動 ←コメントで、HTA版に改造したものも投稿
HTA版 Oracle TABLE展開ツール

VBScript版 Oracle⇒CSVツール

HTA + Javascript 問合せ票管理
HTA + Javascript 問合せ票管理 Ver.2
HTA + Javascript 問合せ票管理 Ver.3

HTA + Javascript レストラン予約システム①(マスタ編)
HTA + Javascript レストラン予約システム②(予約編)
HTA + Javascript レストラン予約システム③(予約編)のjQuery 化の修正(部分)

HTA + Javascript レストラン予約システム④(合体版)

HTA + Javascript 歯科医院予約システム


【お願い】
住所マスタ作成系の処理を参考にされて、気付かれた不具合、改善可能箇所のご指導等
ありましたら、コメント頂けると嬉しいです。
叩かれ弱いですが、建設的、好意的な意見には尊重(尊敬)いたします。
コード化ツールで京都の通名とか、番地の漢数字表記、合地番地、番地のような方書など
未対応の部分の多いのは、今後の課題です。
ヒントを頂けたり一緒に考えていただけるとすごく嬉しいです。
Comment
この記事をはてなブックマークに追加

壁紙にカレンダー(Excel VBA)

2016-08-11 12:26:20 | EXCEL VBA
毎月、壁紙カレンダー提供サイトにお世話になっていましたが、
ふと、カレンダーのない壁紙に、Excel VBAでカレンダーを
作成して、画像合成したら・・・と思い
作成してみたのが、以下のマクロです。

カレンダーの位置や大きさ、印刷領域の大きさの変更は
(それと、祝日の文字色変更も)
手作業ですが、それを自動化できたら
教えて下さい。



Sub InsImg()
  Dim vntFileName As Variant
  Dim shp     As Shape
  ChDrive ThisWorkbook.Path
  ChDir ThisWorkbook.Path

' ファイル選択ダイアログで画像ファイルを選択し、読み込む
  vntFileName = Application.GetOpenFilename(Title:="壁紙画像を選択", MultiSelect:=False)
  If vntFileName <> False Then
   For Each shp In ActiveSheet.Shapes
     If shp.Type = 11 And shp.Name <> "picture1" Then
      shp.Delete
     End If
   Next shp
   Range("J1").Select
   ActiveSheet.Pictures.Insert(vntFileName).Select
   Selection.ShapeRange.ZOrder msoSendToBack
  End If
End Sub

Sub WrtImg()
  ChDrive ThisWorkbook.Path
  ChDir ThisWorkbook.Path

' 印字領域の画像を書き出す
  With ActiveWorkbook.PublishObjects.Add(xlSourcePrintArea, _
    ActiveWorkbook.Path & "\CalenderImg.htm", "Sheet1", "", xlHtmlStatic _
    , "", "")
    ActiveCell.Activate
    .Publish (True)
    .AutoRepublish = False
  End With

' 不要ファイルを削除
  Kill "CalenderImg.htm"
  Dim FSO As Object
  Set FSO = CreateObject("Scripting.FileSystemObject")
  FSO.MoveFile ActiveWorkbook.Path & "\CalenderImg.files\*image003.png", ActiveWorkbook.Path
  FSO.DeleteFile ActiveWorkbook.Path & "\CalenderImg.files\*.*"
  Set FSO = Nothing
  RmDir (ActiveWorkbook.Path & "\CalenderImg.files\")

End Sub

Sub SetCalender()
  Dim i As Integer
  Dim j As Integer: j = 4
  Dim m As Integer: m = Month(Date)
  Dim y As Integer: y = Year(Date)
  Dim k As Integer: k = Weekday(DateSerial(y, m, 1))
  Dim n As Integer: n = Day(DateSerial(y, m + 1, 0))

  Cells(2, 2).Value = m
  Cells(2, 3).Value = Format(Date, "mmmm")
  Cells(2, 7).Value = y
  Range("B4:H9").ClearContents
  For i = 1 To n
   Cells(j, k + 1).Value = i
   k = k + 1
   If k > 7 Then
    j = j + 1
    k = 1
   End If
  Next i
  Cells(1, 1).Select
End Sub

ちなみに、カレンター部分の図をつくるのは、
http://www.moug.net/tech/exopr/0080019.html
moug.net 図としてコピー
等を参照してください。(先人に感謝!)
Comments (5)
この記事をはてなブックマークに追加

HTA + javascript 歯科医院予約システム⑤

2016-05-04 12:29:52 | Java
// 歯科予約システム④ から続く

<div id="t-3" align="left">
<br><br>
<form name="myForm3">
<div id="frm5">
 <table id="tbl7" border="1" bordercolor="#0000BD" style="margin:0px 3px 0px 3px; border-collapse: collapse">
  <tr bgcolor="#E0FFFF"><td colspan="3">&nbsp;予約月&nbsp;
  <select name="selYYT" onchange="go_ReLoad3()" style="font-family:HGゴシックM"></select></td>
  <td align="center">
  <a href="#" onClick="go_NewRec3(null,null)">追加</a></td>
  </tr>
  <tr align="center">
  <td bgcolor="#E0FFFF" id="X10">&nbsp;I D&nbsp;</td>
  <td bgcolor="#E0FFFF" id="X11">&nbsp;休業日&nbsp;</td>
  <td bgcolor="#E0FFFF" id="X12">&nbsp;担_当&nbsp;</td>
  <td bgcolor="#E0FFFF" id="X13">&nbsp;摘_要&nbsp;</td>
  </tr>
  <tbody id="tbdy3" align="center">
  </tbody>
 </table>
</div>
<div id="frm6" hidden>
 <table id="tbl8" border=0>
  <tr>

  <td align=left nowrap> <button id="一覧3" onClick="go_ListPage3()" style="WIDTH:75px;HEIGHT:35px">一覧</button></td>
  <td align=left nowrap>_<button id="登録3" onClick="func_insRec3()" style="WIDTH:75px;HEIGHT:35px">登録</button></td>
  <td align=left nowrap>_<button id="更新3" onClick="func_updRec3()" style="WIDTH:75px;HEIGHT:35px">更新</button></td>
  <td align=left nowrap>_<button id="削除3" onClick="func_delRec3()" style="WIDTH:75px;HEIGHT:35px">削除</button></td></tr>
  <tr>
  <table id="tbl9" border="1" bordercolor="#0000BD" style="margin:0px 3px 0px 3px; border-collapse: collapse">
   <tr align="center" height="30px">
   <td bgcolor="#E0FFFF">&nbsp;休業ID&nbsp;<font size="1" color="#FF3366"><b>※</b></font></td><td>
    <input disabled  name="kid" style="font-family:HGゴシックM;text-align:center"></td></tr>
   <tr align="center" height="30px">
   <td bgcolor="#E0FFFF">&nbsp;休業日&nbsp;<font size="1" color="#FF3366"><b>※</b></font></td><td>
    <input type="date" name="kgb" style="font-family:HGゴシックM;text-align:center" class="calendar"></td></tr>
   <tr align="center" height="30px">
   <td bgcolor="#E0FFFF">&nbsp;担当CD&nbsp;<font size="1" color="#FF3366"><b>※</b></font></td><td align="left">
    <input type="text" name="kcd" style="font-family:HGゴシックM;text-align:center" size="10"></td></tr>
   <tr align="center" height="30px">
   <td bgcolor="#E0FFFF">&nbsp;摘_要&nbsp;</td><td align="left">
    <input type="text" name="tki" style="font-family:HGゴシックM;text-align:left"></td></tr>
  </table></tr>
  <tr><td><font size="1" color="#FF3366"><b>※</b></font><font size="2" color="#000000">は必須項目</font></tr>
 </table>
</div>
</form>
</div>

<div id="t-4" align="left">
<br><br>
 <div id="mdb"><button onClick="makemdb()"   style="WIDTH:180px">D B 生 成 </button></div><br>
 <div id="tbl"><button onclick="maketbl()"   style="WIDTH:180px">テーブル作成</button></div><br>
 <div id="nni"><button onClick="kakunin()"   style="WIDTH:180px">任意ページへ</button></div><br>
 <div id="cls"><button onClick="window.close()" style="WIDTH:180px">閉_じ_る_</button></div>
</div>

</div>

<script>
 func_init();
</script>
</body>
</html>

***<< DENTANOSUKE_LIST.hta >>*************************************
<html>
<head>
<hta:application id="rList" navigable="no" scroll="auto">
</hta:application>
<meta http-equiv="Content-Style-Type" content="text/css">
<meta http-equiv="Content-Script-Type" content="text/javascript">
<title>歯科医院予約リスト</title>
<script language="JavaScript" type="text/javascript">
var mdb = "DENTANOSUKE.mdb";
var yyb = ""; // 予約日
/* ==================================================
 予約リスト印刷
===================================================== */
function print_yoyakuList(){
 yyb = rList.commandLine;
 if (yyb.slice(-5,-2) == 'hta') {
  yyb = "";
 } else {
  yyb = yyb.slice(-10);
 }
 var cn = new ActiveXObject("ADODB.Connection");
 cn.Open("Driver={Microsoft Access Driver (*.mdb)};DBQ=" + mdb);
 var mySql = "SELECT [予約ID],[担当CD],format([開始],'HH:MM'),format([終了],'HH:MM'),[患者氏名],";
 mySql  += "[治療種類],format([予約日],'MM/DD') FROM [受診予約],[患者マスタ]";
 mySql  += " WHERE [受診予約].[患者番号] = [患者マスタ].[患者番号]";
 if (yyb != "") { mySql += " AND [予約日] = #" + yyb + "#"; }
 mySql  += " ORDER BY [予約日],[担当CD],[開始]";
 var tb = document.getElementById("tbdy");
 var rs = cn.Execute(mySql);
 var i  = 0;
 var tcd = rs(1).value;
 while (!rs.EOF){
  if (rs(1).value != tcd) {
   tb.insertRow(i);
   tb.rows[i].insertCell(0);
   tb.rows[i].cells[0].innerHTML = "_";
   i++;
   tcd = rs(1).value;
  }
  tb.insertRow(i);
  for( var j = 0 ; j < 6 ; j++ ) {
   tb.rows[i].insertCell(j);
   tb.rows[i].cells[j].innerHTML = rs(j).value + '&nbsp;';
   tb.rows[i].cells[j].style.whiteSpace = "nowrap";
  }
  tb.rows[i].cells[1].style.textAlign = "center";
  if ( tb.rows[i].cells[2].innerHTML == "00:00&nbsp;" ) {
   tb.rows[i].cells[2].innerHTML = "保 留&nbsp";
  }
  if (yyb == "") {
   tb.rows[i].cells[2].innerHTML = rs(6).value + '&nbsp;' + rs(2).value + '&nbsp;'
  }
  rs.MoveNext();
  i++;
 }
 rs.Close();rs = null;
 cn.Close();cn = null;
 document.getElementById("listhd").innerHTML = "予約日:" + yyb;
 var shell = new ActiveXObject("WScript.Shell");
 shell.SendKeys("+{F10}N");
}
function PrintPreview(){
 alert("右クリックメニューより\n印刷プレビュー(N_)を選択して下さい!");
}
</script>
<style>
table { margin: 0px 0px; }
.tblth { border-bottom: 1px #000000 solid; }
@media print {
.print-off { display: none; }
}
</style>
</head>
<body bgcolor="#FFFFFF"><basefont face="HGゴシックM" COLOR="#000000">
<p id="listhd"></p>
 <table bgcolor="#FFFFFF"><tr align="left">
  <th class="tblth">予約ID&nbsp;</th>
  <th class="tblth">担当CD&nbsp;</th>
  <th class="tblth">開始&nbsp;</th>
  <th class="tblth">終了&nbsp;</th>
  <th class="tblth">患者氏名&nbsp;</th>
  <th class="tblth">治療種類&nbsp;</th></tr>

  <tbody id="tbdy" align="left">
  </tbody>

 </table>
 <a href="#" onClick="PrintPreview()" class="print-off">印刷</a>
_<a href="#" onClick="window.close()" class="print-off">閉じる</a>

<script>
 print_yoyakuList();
</script>
</body>
</html>
Comment
この記事をはてなブックマークに追加

HTA + javascript 歯科医院予約システム④

2016-05-04 12:27:17 | Java
// 歯科予約システム③ から続く

</head>
<body bgcolor="#B0C4DE" class="bodynrm"><basefont face="HGゴシックM" COLOR="#191970">
<div id="tab_area">
<ul>
 <li><a href="#t-1" id="li-1">RESERVATION</a></li>
 <li><a href="#t-2" id="li-2">KANJYA MAST</a></li>
 <li><a href="#t-3" id="li-3">KYUGYO TBL </a></li>
 <li><a href="#t-4" id="li-4">MDB SETTING</a></li>
</ul>

<div id="t-1">
<br><br>
<form name="myForm1">
<div id="frm1">
 <table id="tbl1" border="1" bordercolor="#0000BD" style="margin:0px 3px 0px 3px; border-collapse: collapse">
  <tr bgcolor="#E0FFFF"><td id="tbl1td" colspan="4">&nbsp;予約日&nbsp;
  <select name="selYYB" onchange="go_ReLoad1()" style="font-family:HGゴシックM"></select></td>
  <td colspan="2" align="center">
  <a href="#" onClick="print_yoyakuList()">印刷</a>_<a href="#" onClick="go_NewRec1(null,null)">新規予約</a></td>
  </tr>
  <tbody id="tbdy1" align="center">
  </tbody>
 </table>
</div>
<div id="frm2" hidden>
 <table id="tbl2" border=0>
  <tr>
  <td align=left nowrap> <button id="一覧1" onClick="go_ListPage1()" style="WIDTH:75px;HEIGHT:35px">一覧</button></td>
  <td align=left nowrap>_<button id="登録1" onClick="func_insRec1()" style="WIDTH:75px;HEIGHT:35px">登録</button></td>
  <td align=left nowrap>_<button id="更新1" onClick="func_updRec1()" style="WIDTH:75px;HEIGHT:35px">更新</button></td>
  <td align=left nowrap>_<button id="削除1" onClick="func_delRec1()" style="WIDTH:75px;HEIGHT:35px">削除</button></td></tr>
  <tr>
  <table id="tbl3" border="1" bordercolor="#0000BD" style="margin:0px 3px 0px 3px; border-collapse: collapse">
   <tr align="center" height="30px">
   <td bgcolor="#E0FFFF">予約番号<font size="1" color="#FF3366"><b>※</b></font></td><td bgcolor="#FFFF55">
    <input type="text"  name="yyk" style="font-family:HGゴシックM;text-align:center;font-weight:bold;background-color:#FFFF99"></td>
   <td bgcolor="#E0FFFF">予 約 日<font size="1" color="#FF3366"><b>※</b></font></td><td>
    <input type="date"  name="yyb" style="font-family:HGゴシックM;text-align:center" class="calendar"></td></tr>
   <tr align="center" height="30px">
   <td bgcolor="#E0FFFF">担 当 CD<font size="1" color="#FF3366"><b>※</b></font></td><td colspan="3" align="left">
    <input type="text"  name="tcd" style="font-family:HGゴシックM;text-align:center" size="10"></td></tr>
   <tr align="center" height="30px">
   <td bgcolor="#E0FFFF">&nbsp;開_始&nbsp;<font size="1" color="#FF3366"><b>※</b></font></td><td>
    <select name="selKai" style="font-family:HGゴシックM">
    <option value="00:00" selected>00:00</option>
    <option value="09:00" selected>09:00</option>
    <option value="09:30" selected>09:30</option>
    <option value="10:00" selected>10:00</option>
    <option value="10:30" selected>10:30</option>
    <option value="11:00" selected>11:00</option>
    <option value="11:30" selected>11:30</option>
    <option value="12:00" selected>12:00</option>
    <option value="12:30" selected>12:30</option>
    <option value="13:00" selected>13:00</option>
    <option value="13:30" selected>13:30</option>
    <option value="14:00" selected>14:00</option>
    <option value="14:30" selected>14:30</option>
    <option value="15:00" selected>15:00</option>
    <option value="15:30" selected>15:30</option>
    <option value="16:00" selected>16:00</option>
    <option value="16:30" selected>16:30</option>
    <option value="17:00" selected>17:00</option>
    <option value="17:30" selected>17:30</option>
    <option value="18:00" selected>18:00</option>
    <option value="18:30" selected>18:30</option>
    <option value="19:00" selected>19:00</option>
    <option value="19:30" selected>19:30</option>
    </select></td>
   <td bgcolor="#E0FFFF">&nbsp;終_了&nbsp;<font size="1" color="#FF3366"><b>※</b></font></td><td>
    <select name="selOwa" style="font-family:HGゴシックM">
    <option value="00:00" selected>00:00</option>
    <option value="09:30" selected>09:30</option>
    <option value="10:00" selected>10:00</option>
    <option value="10:30" selected>10:30</option>
    <option value="11:00" selected>11:00</option>
    <option value="11:30" selected>11:30</option>
    <option value="12:00" selected>12:00</option>
    <option value="12:30" selected>12:30</option>
    <option value="13:00" selected>13:00</option>
    <option value="13:30" selected>13:30</option>
    <option value="14:00" selected>14:00</option>
    <option value="14:30" selected>14:30</option>
    <option value="15:00" selected>15:00</option>
    <option value="15:30" selected>15:30</option>
    <option value="16:00" selected>16:00</option>
    <option value="16:30" selected>16:30</option>
    <option value="17:00" selected>17:00</option>
    <option value="17:30" selected>17:30</option>
    <option value="18:00" selected>18:00</option>
    <option value="18:30" selected>18:30</option>
    <option value="19:00" selected>19:00</option>
    <option value="19:30" selected>19:30</option>
    <option value="20:00" selected>20:00</option>
    </select></td>
   <tr align="center" height="30px">
   <td bgcolor="#E0FFFF">患者番号<font size="1" color="#FF3366"><b>※</b></font></td><td align="left">
    <input type="number" name="kno1" style="font-family:HGゴシックM;text-align:center" size="10" onchange="getKanjyaName(this.value)"></td>
   <td bgcolor="#E0FFFF">患者氏名</td><td align="center">
    <div id="knm1" style="font-family:HGゴシックM;text-align:center"></div></td></tr>
   <tr align="center" height="30px">
   <td bgcolor="#E0FFFF">治療種類</td><td colspan="3" align="left">
    <input type="text"  name="syu" style="font-family:HGゴシックM" size="46"></td></tr>
   <tr align="center" height="30px">
   <td bgcolor="#E0FFFF">備__考</td><td colspan="3" align="left">
    <input type="text"  name="bko1" style="font-family:HGゴシックM" size="46"></td></tr>
   <tr align="center" height="30px">
   <td bgcolor="#E0FFFF">受付日時</td><td>
    <input type="date"  name="ukj" style="font-family:HGゴシックM;text-align:center"></td>
   <td bgcolor="#E0FFFF">受 付 者</td><td>
    <input type="text"  name="tan" style="font-family:HGゴシックM;text-align:center"></td></tr>
  </table></tr>
  <tr><td><font size="1" color="#FF3366"><b>※</b></font><font size="2" color="#000000">は必須項目</font></tr>
 </table>
</div>
</form>
</div>

<div id="t-2" align="left">
<br><br>
<form name="myForm2">
<div id="frm3">
 <table id="tbl4" border="1" bordercolor="#0000BD" style="margin:0px 3px 0px 3px; border-collapse: collapse">
  <tr bgcolor="#E0FFFF">
  <td colspan="5" align="left" valign="top">
   &nbsp;カナ:<input type="text" name="flt1" style="font-family:HGゴシックM;text-align:left;border-style:groove" size="10" istyle="2">
   &nbsp;TEL1:<input type="text" name="flt2" style="font-family:HGゴシックM;text-align:left;border-style:groove" size="10" istyle="2">
   &nbsp;<button id="fltOn" onClick="Tbl_disp2()" style="WIDTH:50px;HEIGHT:25px">絞込</button>
   &nbsp;<button id="fltOff" onClick="Tbl_cler2()" style="WIDTH:60px;HEIGHT:25px">クリア</button>
   </td>                         </td>
  <td colspan="2" align="center"><a href="#" onClick="go_NewRec2()">新規追加</a></td>
  </tr>
  <tr align="center">
  <td bgcolor="#E0FFFF" id="X0">&nbsp;患者№&nbsp;</td>
  <td bgcolor="#E0FFFF" id="X1">&nbsp;氏_名&nbsp;</td>
  <td bgcolor="#E0FFFF" id="X2">&nbsp;カ_ナ&nbsp;</td>
  <td bgcolor="#E0FFFF" id="X3">&nbsp;主治医&nbsp;</td>
  <td bgcolor="#E0FFFF" id="X4">&nbsp;衛生士&nbsp;</td>
  <td bgcolor="#E0FFFF" id="X5">&nbsp;生年月日&nbsp;</td>
  <td bgcolor="#E0FFFF" id="X6">&nbsp;TEL1&nbsp;</td>
  </tr>
  <tbody id="tbdy2" align="center">
  </tbody>
 </table>
</div>
<div id="frm4" hidden>
 <table id="tbl5" border=0>
  <tr>
  <td align=left nowrap> <button id="一覧2" onClick="go_ListPage2()" style="WIDTH:75px;HEIGHT:35px">一覧</button></td>
  <td align=left nowrap>_<button id="登録2" onClick="func_insRec2()" style="WIDTH:75px;HEIGHT:35px">登録</button></td>
  <td align=left nowrap>_<button id="更新2" onClick="func_updRec2()" style="WIDTH:75px;HEIGHT:35px">更新</button></td>
  <td align=left nowrap>_<button id="反映2" onClick="func_setKno1()" style="WIDTH:75px;HEIGHT:35px">反映</button></td></tr>
  <tr>
  <table id="tbl6" border="1" bordercolor="#0000BD" style="margin:0px 1px 0px 1px; border-collapse: collapse">
   <tr align="center" height="30px">
   <td bgcolor="#E0FFFF">&nbsp;患者番号&nbsp;<font size="1" color="#FF3366"><b>※</b></font>&nbsp;</td><td>
    <input type="number" name="kno2" style="font-family:HGゴシックM;text-align:center;width=100"></td>
   <td bgcolor="#E0FFFF">&nbsp;患者氏名&nbsp;<font size="1" color="#FF3366"><b>※</b></font>&nbsp;</td><td align="left">
    <input type="text"  name="knm2" style="font-family:HGゴシックM;text-align:center"></td>
   <td bgcolor="#E0FFFF">&nbsp;患者カナ&nbsp;<font size="1" color="#FF3366"><b>※</b></font>&nbsp;</td><td align="left">
    <input type="text"  name="kkn" style="font-family:HGゴシックM;text-align:center"></td></tr>
   <tr align="center" height="30px">
   <td bgcolor="#E0FFFF">&nbsp;主 治 医&nbsp;<font size="1" color="#FF3366"><b>※</b></font>&nbsp;</td><td align="left">
    <input type="text"  name="sji" style="font-family:HGゴシックM;text-align:center"></td>
   <td bgcolor="#E0FFFF">&nbsp;衛 生 士&nbsp;</td><td align="left">
    <input type="text"  name="ess" style="font-family:HGゴシックM;text-align:center"></td>
   <td bgcolor="#E0FFFF">&nbsp;健保番号&nbsp;</td><td>
    <input type="text"  name="ken" style="font-family:HGゴシックM;text-align:center"></td></tr>
   <tr align="center" height="30px">
   <td bgcolor="#E0FFFF">&nbsp;カルテ№&nbsp;</td><td>
    <input type="number" name="crt" style="font-family:HGゴシックM;text-align:center"></td>
   <td bgcolor="#E0FFFF">&nbsp;生年月日&nbsp;</td><td>
    <input type="date"  name="brt" style="font-family:HGゴシックM;text-align:center" class="calendar"></td>
   <td bgcolor="#E0FFFF">&nbsp;性__別&nbsp;</td><td>
    <input type="radio" name="sex" value="1" checked>男&nbsp;
    <input type="radio" name="sex" value="2">女
    </td></tr>
   <tr align="center" height="30px">
   <td bgcolor="#E0FFFF">&nbsp;TEL1&nbsp;</td><td>
    <input type="text"  name="tel1" style="font-family:HGゴシックM;text-align:center"></td>
   <td bgcolor="#E0FFFF">&nbsp;TEL2&nbsp;</td><td>
    <input type="text"  name="tel2" style="font-family:HGゴシックM;text-align:center"></td>
   <td bgcolor="#E0FFFF">&nbsp;紹 介 者&nbsp;</td><td>
    <input type="text"  name="syo" style="font-family:HGゴシックM;text-align:center"></td></tr>
   <tr align="center" height="30px">
   <td bgcolor="#E0FFFF">&nbsp;〒・住所&nbsp;</td><td colspan="3" align="left">
    <input type="text"  name="pno" style="font-family:HGゴシックM;text-align:center" size="8"
    onKeyUp="AjaxZip3.zip2addr(this,'','adr','adr');">
    <input type="text"  name="adr" style="font-family:HGゴシックM" size="43"></td>
   <td bgcolor="#E0FFFF">&nbsp;登 録 日&nbsp;</td><td>
    <input type="date"  name="trk" style="font-family:HGゴシックM;text-align:center" class="calendar"></td>
   <tr align="center" height="30px">
   <td bgcolor="#E0FFFF">&nbsp;特記事項&nbsp;</td><td colspan=5 align="left">
    <input type="text"  name="ttk" style="font-family:HGゴシックM" size="86"></td></tr>
   <tr align="center" height="30px">
   <td bgcolor="#E0FFFF">&nbsp;備__考&nbsp;</td><td colspan=5 align="left">
    <input type="text"  name="bko2" style="font-family:HGゴシックM" size="86"></td></tr>
  </table></tr>
  <tr><td><font size="1" color="#FF3366"><b>※</b></font><font size="2" color="#000000">は必須項目</font></tr>
 </table><br>
 <table border="1" bordercolor="#0000BD" style="margin:0px 3px 0px 3px; border-collapse: collapse">
  <tbody id="hist" align="left">
  </tbody>
 </table>
</div>
</form>
</div>

<div id="t-3" align="left">
<br><br>
<form name="myForm3">
<div id="frm5">
 <table id="tbl7" border="1" bordercolor="#0000BD" style="margin:0px 3px 0px 3px; border-collapse: collapse">
  <tr bgcolor="#E0FFFF"><td colspan="3">&nbsp;予約月&nbsp;
  <select name="selYYT" onchange="go_ReLoad3()" style="font-family:HGゴシックM"></select></td>
  <td align="center">
  <a href="#" onClick="go_NewRec3(null,null)">追加</a></td>
  </tr>
  <tr align="center">
  <td bgcolor="#E0FFFF" id="X10">&nbsp;I D&nbsp;</td>
  <td bgcolor="#E0FFFF" id="X11">&nbsp;休業日&nbsp;</td>
  <td bgcolor="#E0FFFF" id="X12">&nbsp;担_当&nbsp;</td>
  <td bgcolor="#E0FFFF" id="X13">&nbsp;摘_要&nbsp;</td>
  </tr>
  <tbody id="tbdy3" align="center">
  </tbody>
 </table>
</div>
<div id="frm6" hidden>
 <table id="tbl8" border=0>
  <tr>

// 歯科医院予約システム⑤ に続く
Comment
この記事をはてなブックマークに追加

HTA + javascript 歯科医院予約システム③

2016-05-04 12:25:17 | Java
// 歯科予約システム② から続く

 tmp = document.getElementById('adr').value; mySql += ",[住所] = '"   + tmp + "'";
 tmp = document.getElementById('syo').value; mySql += ",[紹介者] = '"  + tmp + "'";
 tmp = document.getElementById('trk').value;
 if (tmp == "") { mySql += ",null"; } else { mySql += ",[登録日] = '"  + tmp + "'"; }
 tmp = document.getElementById('ttk').value; mySql += ",[特記事項] = '" + tmp + "'";
 tmp = document.getElementById('bko2').value; mySql += ",[備考] = '"   + tmp + "'";
 kno = document.getElementById('kno2').value; mySql += " WHERE [患者番号] = " + kno;
 try {
  var rs = cn.Execute(mySql);
  alert("患者マスタ更新完了");
 } catch (e) {
  cn.Close;
  alert("患者マスタ更新失敗 " + e + mySql);
  return;
 }
 cn.Close();cn = null;
}
/* ==================================================
__予約月一覧の設定
===================================================== */
function List_disp3() {
 var cn = new ActiveXObject("ADODB.Connection");
 var mySql = "SELECT format([予約日],'YYYY/MM') FROM [受診予約] GROUP BY format([予約日],'YYYY/MM') ORDER BY format([予約日],'YYYY/MM') DESC";
 cn.Open("Driver={Microsoft Access Driver (*.mdb)};DBQ=" + mdb);
 var rs = cn.Execute(mySql);
 var select = document.getElementById("selYYT");
 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 (yyt == "") { yyt = rs(0).value; }
  if (yyt == rs(0).value) { option.selected = true; }
  rs.MoveNext();
 }
 rs.Close(); rs = null;
 cn.Close(); cn = null;
 Tbl_disp3();
}
/* ==================================================
__休業テーブル一覧表の設定
===================================================== */
function Tbl_disp3() {
 var cn = new ActiveXObject("ADODB.Connection");
 cn.Open("Driver={Microsoft Access Driver (*.mdb)};DBQ=" + mdb);
 var mySql = "SELECT [ID],format([休業日],'YYYY/MM/DD'),[担当CD],[摘要] FROM [休業テーブル]";
 mySql += " WHERE format([休業日],'YYYY/MM') = '" + yyt + "'";
 mySql += " ORDER BY [休業日] DESC,[担当CD]";
 var tb = document.getElementById("tbdy3");
 while( tb.rows[ 0 ] ) tb.deleteRow( 0 );
 rs   = cn.Execute(mySql);
 var i = 0;
 while (!rs.EOF){
  tb.insertRow(i);
  for( var j = 0 ; j < 4 ; j++ ) {
   tb.rows[i].insertCell(j);
   tb.rows[i].cells[j].innerHTML    = rs(j).value + '&nbsp;';
   tb.rows[i].cells[j].style.whiteSpace = "nowrap";
   tb.rows[i].cells[j].style.textAlign = "center";
  }
  tb.rows[i].cells[3].style.textAlign = "left";
  tb.rows[i].cells[1].innerHTML = '<a href="#" onClick="go_RecPage3(' + rs(0).value + ')">' + rs(1).value + '</a>' + '&nbsp;';
  rs.MoveNext();
  i++;
 }
 rs.Close();rs = null;
 cn.Close();cn = null;
 var haba = document.getElementById('X10').offsetWidth +
       document.getElementById('X11').offsetWidth +
       document.getElementById('X12').offsetWidth +
       document.getElementById('X13').offsetWidth + 80;
 if (haba <= 910) { haba = 910; }
}
/* ==================================================
__休業テーブル登録画面の表示
===================================================== */
function go_NewRec3() {
 document.getElementById("frm5").style.display="none";
 document.getElementById("frm6").style.display="block";
 document.getElementById("kid").value = "(自動採番)";
 var now = new Date();
 document.getElementById("kgb").value = toLocaleString(now);
 document.getElementById("kcd").value = "";
 document.getElementById("tki").value = "";
 document.getElementById("登録3").disabled = false;
 document.getElementById("更新3").disabled = true;
 document.getElementById("削除3").disabled = true;
 window.resizeTo(hab,540);
}
/* ==================================================
__休業テーブル一覧表への復帰
===================================================== */
function go_ListPage3() {
 document.getElementById("frm5").style.display="block";
 document.getElementById("frm6").style.display="none";
 var table = document.getElementById("tbdy3");
 while( table.rows[ 0 ] ) table.deleteRow( 0 );
 Tbl_disp3();
}
/* ==================================================
__一覧表の再表示(予約月切替)
===================================================== */
function go_ReLoad3() {
 yyt = document.getElementById('selYYT').options.value;
 Tbl_disp3();
}
/* ==================================================
__休業テーブル更新画面の表示
===================================================== */
function go_RecPage3(pkid) {
 kid = pkid;
 document.getElementById("frm5").style.display="none";
 document.getElementById("frm6").style.display="block";
 var mySql = "SELECT format([休業日],'YYYY/MM/DD')"
         + ",IIf(IsNull([担当CD]),'',[担当CD])"
         + ",IIf(IsNull([摘要]),'',[摘要])"
       + " FROM [休業テーブル]"
      + " WHERE [ID] = " + kid;
 var cn = new ActiveXObject("ADODB.Connection");
 cn.Open("Driver={Microsoft Access Driver (*.mdb)};DBQ=" + mdb);
 var rs = cn.Execute(mySql);
 document.getElementById("kid").value = kid;     // ID
 document.getElementById("kgb").value = rs(0).value; // 休業日
 document.getElementById("kcd").value = rs(1).value; // 担当CD
 document.getElementById("tki").value = rs(2).value; // 摘要
 rs.Close();rs = null;
 cn.Close();cn = null;
 getKanjyaName();
 document.getElementById("登録3").disabled = true;
 document.getElementById("更新3").disabled = false;
 document.getElementById("削除3").disabled = false;
 window.resizeTo(hab,540);
}
/* ==================================================
__休業テーブル登録処理
===================================================== */
function func_insRec3() {
 yyb = document.getElementById('kgb').value; // 休業日
 tcd = document.getElementById('kcd').value; // 担当CD
 tki = document.getElementById('tki').value; // 摘要
 if (tcd > wak) { $("#kcd").focus();alert("担当CDが枠を越えています!"); return; }
 var cn  = new ActiveXObject("ADODB.Connection");
 cn.Open("Driver={Microsoft Access Driver (*.mdb)};DBQ=" + mdb);
 var mySql = "SELECT * FROM [受診予約] WHERE [予約日] = #" + yyb + "# AND [担当CD] = " + tcd;
 var rs = cn.Execute(mySql);
 if (!rs.EOF) {
  alert("休業日の担当CDで既に予約があります!\n予約をなくしてから登録して下さい!");
  cn.Close;
  return;
 }
 var mySql = "INSERT INTO [休業テーブル] ([休業日],[担当CD],[摘要])";
 mySql += " VALUES('" + yyb + "'," + tcd + ",'" + tki + "')";
 try {
  rs = cn.Execute(mySql);
  alert("休業テーブル登録完了");
 } catch (e) {
  cn.Close;
  alert("休業テーブル登録失敗 " + e + mySql);
  return;
 }
 cn.Close();cn = null;
 Tbl_disp1(); // 予約一覧の再表示
}
/* ==================================================
__休業テーブル更新処理
===================================================== */
function func_updRec3() {
 yyb = document.getElementById('kgb').value; // 休業日
 tcd = document.getElementById('kcd').value; // 担当CD
 tki = document.getElementById('tki').value; // 摘要
 if (tcd > wak) { $("#kcd").focus();alert("担当CDが枠を越えています!"); return; }
 kid = document.getElementById('kid').value;
 var cn = new ActiveXObject("ADODB.Connection");
 cn.Open("Driver={Microsoft Access Driver (*.mdb)};DBQ=" + mdb);
 var mySql = "SELECT * FROM [受診予約] WHERE [予約日] = #" + yyb + "# AND [担当CD] = " + tcd;
 var rs = cn.Execute(mySql);
 if (!rs.EOF) {
  alert("変更の休業日の担当CDで既に予約があります!\n予約をなくしてから変更して下さい!");
  cn.Close;
  return;
 }
 mySql = "UPDATE [休業テーブル] SET [休業日] = '" + yyb + "',[担当CD] = " + tcd;
 mySql += ",[摘要] = '" + tki + "' WHERE [ID] = " + kid;
 try {
  var rs = cn.Execute(mySql);
  alert("休業テーブル更新完了");
 } catch (e) {
  cn.Close;
  alert("休業テーブル更新失敗 " + e + mySql);
  return;
 }
 cn.Close();cn = null;
 Tbl_disp1(); // 予約一覧の再表示
}
/* ==================================================
__休業テーブル削除処理
===================================================== */
function func_delRec3() {
 kid = document.getElementById('kid').value;
 var cn = new ActiveXObject("ADODB.Connection");
 cn.Open("Driver={Microsoft Access Driver (*.mdb)};DBQ=" + mdb);
 var mySql = "DELETE FROM [休業テーブル] WHERE [ID] = " + kid;
 try {
  var rs = cn.Execute(mySql);
  alert("休業テーブル削除完了");
 } catch (e) {
  cn.Close;
  alert("休業テーブル削除失敗 " + e + mySql);
  return;
 }
 cn.Close();cn = null;
 document.getElementById("更新3").disabled = true;
 document.getElementById("削除3").disabled = true;
 Tbl_disp1(); // 予約一覧の再表示
}
/* ==================================================
__日付形式編集
===================================================== */
function toLocaleString( date ) {
  return [
    date.getFullYear(),
    date.getMonth() + 1,
    date.getDate()
    ].join( '/' );
}
/* ==================================================
__患者氏名検索
===================================================== */
function getKanjyaName( kno ) {
 document.getElementById("knm1").innerHTML = "";
 if (kno == undefined) { return; }
 if (kno == "") { return; }
 if (kno == 0) { return; }
 var cn  = new ActiveXObject("ADODB.Connection");
 cn.Open("Driver={Microsoft Access Driver (*.mdb)};DBQ=" + mdb);
 var mySql = "SELECT [患者氏名] FROM [患者マスタ] WHERE [患者番号] = " + kno;
 var rs = cn.Execute(mySql);
 if (rs.EOF) {
  document.getElementById("knm1").innerHTML = "(未登録)";
  $("#kno1").focus();
  alert("入力された患者番号は未登録です!");
 } else {
  document.getElementById("knm1").innerHTML = rs(0).value;
 }
 cn.Close();cn = null;
}
/* ==================================================
__データベース生成
===================================================== */
function makemdb(){
 var shell = new ActiveXObject("WScript.Shell");
 var dbpath = "DENTANOSUKE.mdb";
 shell   = null;

 var dbe  = new ActiveXObject("DAO.DBEngine.36");
 var dbws  = dbe.Workspaces(0);
 var db   = dbws.CreateDatabase(dbpath,";LANGID=0x411;CP=932;COUNTRY=0");
 db.Close();
 dbws.Close();
 dbe = null;
 alert("カレントフォルダに DENTANOSUKE.mdb を作成しました");
 document.getElementById("mdb").innerHTML = "カレントフォルダに DENTANOSUKE.mdb を作成しました";
}
/* ==================================================
__テーブル作成
===================================================== */
function maketbl(){
 var DBBOOLEAN    = 1;
 var DBINTEGER    = 3;
 var DBLONG     = 4;
 var DBCURRENCY   = 5;
 var DBDATE     = 8;
 var DBTEXT     = 10;
 var DBMEMO     = 12;
 var DBAUTOINCRFIELD = 16;
 var shell = new ActiveXObject("WScript.Shell");
 var dbpath = "DENTANOSUKE.mdb";
 shell   = null;

 var dbe  = new ActiveXObject("DAO.DBEngine.36");
 var dbws  = dbe.Workspaces(0);
 var db   = dbws.OpenDatabase(dbpath);

 // 患者マスタ
 var tbdef = db.CreateTableDef("患者マスタ");
 var field = new Array(25);
 field[0] = tbdef.CreateField("患者番号",DBLONG);
 field[0].Attributes = DBAUTOINCRFIELD;
 field[1] = tbdef.Createfield("患者氏名",DBTEXT,50);
 field[1].AllowZeroLength = true; field[1].Required = false;
 field[2] = tbdef.Createfield("患者カナ",DBTEXT,50);
 field[2].AllowZeroLength = true; field[2].Required = false;
 field[3] = tbdef.Createfield("主治医" ,DBTEXT,50);
 field[3].AllowZeroLength = true; field[3].Required = false;
 field[4] = tbdef.Createfield("衛生士" ,DBTEXT,50);
 field[4].AllowZeroLength = true; field[4].Required = false;
 field[5] = tbdef.Createfield("健保番号",DBTEXT,20);
 field[5].AllowZeroLength = true; field[5].Required = false;
 field[6] = tbdef.Createfield("カルテ№",DBTEXT,15);
 field[7] = tbdef.Createfield("生年月日",DBDATE);
 field[8] = tbdef.Createfield("性別"  ,DBINTEGER);
 field[9] = tbdef.Createfield("TEL1"  ,DBTEXT,15);
 field[9].AllowZeroLength = true; field[8].Required = false;
 field[10] = tbdef.Createfield("TEL2"  ,DBTEXT,15);
 field[10].AllowZeroLength = true; field[10].Required = false;
 field[11] = tbdef.Createfield("郵便番号",DBTEXT,8);
 field[11].AllowZeroLength = true; field[11].Required = false;
 field[12] = tbdef.Createfield("住所"  ,DBTEXT,255);
 field[12].AllowZeroLength = true; field[12].Required = false;
 field[13] = tbdef.Createfield("紹介者" ,DBTEXT,50);
 field[13].AllowZeroLength = true; field[13].Required = false;
 field[14] = tbdef.Createfield("登録日" ,DBDATE);
 field[15] = tbdef.Createfield("特記事項",DBTEXT,255);
 field[15].AllowZeroLength = true; field[15].Required = false;
 field[16] = tbdef.Createfield("備考"  ,DBTEXT,255);
 field[16].AllowZeroLength = true; field[16].Required = false;
 for(var i=0;i < 17;i++){
  tbdef.Fields.Append(field[i]);
 }
 db.TableDefs.Append(tbdef);
 var Idx   = tbdef.CreateIndex("PrimaryKey");
 Idx.Primary = true;
 Idx.Unique = true;
 var IdxF1  = Idx.CreateField("患者番号");
 Idx.Fields.Append(IdxF1);
 tbdef.Indexes.Append(Idx);

 var Idx2   = tbdef.CreateIndex("患者カナ");
 Idx2.Primary = false;
 Idx2.Unique = false;
 var Idx2F1  = Idx2.CreateField("患者カナ");
 Idx2.Fields.Append(Idx2F1);
 tbdef.Indexes.Append(Idx2);

 var Idx3   = tbdef.CreateIndex("TEL1");
 Idx3.Primary = false;
 Idx3.Unique = false;
 var Idx3F1  = Idx3.CreateField("TEL1");
 Idx3.Fields.Append(Idx3F1);
 tbdef.Indexes.Append(Idx3);

 var Idx4   = tbdef.CreateIndex("TEL2");
 Idx4.Primary = false;
 Idx4.Unique = false;
 var Idx4F1  = Idx3.CreateField("TEL2");
 Idx4.Fields.Append(Idx4F1);
 tbdef.Indexes.Append(Idx4);

 // 受診予約
 tbdef  = db.CreateTableDef("受診予約");
 field[0] = tbdef.CreateField("予約ID" ,DBTEXT,12);
 field[1] = tbdef.Createfield("予約日" ,DBDATE);
 field[2] = tbdef.Createfield("担当CD" ,DBINTEGER);
 field[3] = tbdef.Createfield("開始"  ,DBDATE);
 field[4] = tbdef.Createfield("終了"  ,DBDATE);
 field[5] = tbdef.Createfield("患者番号",DBLONG);
 field[6] = tbdef.Createfield("治療種類",DBTEXT,25);
 field[6].AllowZeroLength = true; field[6].Required = false;
 field[7] = tbdef.Createfield("備考"  ,DBMEMO);
 field[7].AllowZeroLength = true; field[7].Required = false;
 field[8] = tbdef.Createfield("受付時刻",DBDATE);
 field[9] = tbdef.Createfield("受付担当",DBTEXT,25);
 field[9].AllowZeroLength = true; field[9].Required = false;
 for(var i=0;i < 10;i++){
  tbdef.Fields.Append(field[i]);
 }
 db.TableDefs.Append(tbdef);
 var Idx   = tbdef.CreateIndex("PrimaryKey");
 Idx.Primary = true;
 Idx.Unique = true;
 var IdxF1  = Idx.CreateField("予約ID");
 Idx.Fields.Append(IdxF1);
 tbdef.Indexes.Append(Idx);

 var Idx2   = tbdef.CreateIndex("予約順");
 Idx2.Primary = false;
 Idx2.Unique = true;
 var Idx2F1  = Idx2.CreateField("予約日");
 var Idx2F2  = Idx2.CreateField("開始");
 var Idx2F3  = Idx2.CreateField("担当CD");
 Idx2.Fields.Append(Idx2F1);
 Idx2.Fields.Append(Idx2F2);
 Idx2.Fields.Append(Idx2F3);
 tbdef.Indexes.Append(Idx2);

 // 休業テーブル
 tbdef  = db.CreateTableDef("休業テーブル");
 field[0] = tbdef.CreateField("ID",DBLONG);
 field[0].Attributes = DBAUTOINCRFIELD;
 field[1] = tbdef.Createfield("休業日",DBDATE);
 field[2] = tbdef.Createfield("担当CD",DBINTEGER);
 field[3] = tbdef.Createfield("摘要" ,DBTEXT,50);
 for(var i=0;i < 4;i++){
  tbdef.Fields.Append(field[i]);
 }
 db.TableDefs.Append(tbdef);
 var Idx   = tbdef.CreateIndex("PrimaryKey");
 Idx.Primary = true;
 Idx.Unique = true;
 var IdxF1  = Idx.CreateField("ID");
 Idx.Fields.Append(IdxF1);
 tbdef.Indexes.Append(Idx);

 var Idx2   = tbdef.CreateIndex("休業日と担当CD");
 Idx2.Primary = false;
 Idx2.Unique = true;
 var Idx2F1  = Idx2.CreateField("休業日");
 var Idx2F2  = Idx2.CreateField("担当CD");
 Idx2.Fields.Append(Idx2F1);
 Idx2.Fields.Append(Idx2F2);
 tbdef.Indexes.Append(Idx2);

 db.Close();  db  = null;
 dbws.Close(); dbws = null;
 dbe = null;
 alert("DENTANOSUKE.mdb に、患者マスタ、受診予約、休業テーブルを作成しました");
 document.getElementById("tbl").innerHTML = "DENTANOSUKE.mdb に、患者マスタ、受診予約、休業テーブルを作成しました";
 alert("再起動します!");
 location.href = "DENTANOSUKE.hta";
 window.Close;
}
/* ==================================================
__任意ページ表示(サブウインドウ)
===================================================== */
function kakunin(){
 ret = prompt("任意ページのURLを入力", "http://www.yahoo.co.jp/");
 if (ret != null){
  window.open(ret, "new");
 }
}
/* ==================================================
__jQuery UI 調整
===================================================== */
 jQuery( document ).ready( function( $ )
 {
  $( "body" ).addClass( "my_mail_notice" );
  $( "#selectmenu" ).selectmenu();
 });
$(function() {
 // タブ切替
 $( "#tab_area" ).tabs();
 $ (".content:not('li.active + .content')").hide();
 $("li").hover(function(){
  $ (this).addClass("hover")
 },
 function(){
  $(this).removeClass("hover")
 });
 $ ("li").click(function(){
  $("li").removeClass("active");
  $ (this).addClass("active");
  $(".content:not('li.active + .content')").fadeOut();
 $ ("li.active + .content").fadeIn();
 });

 // カレンダー(datepicker)
 $.datepicker.setDefaults( $.datepicker.regional[ "ja" ] );
 $('.calendar').datepicker({ dateFormat: 'yy/mm/dd' });

});
/* ==================================================
__サブウインドウより予約リストを印刷
===================================================== */
function print_yoyakuList(){
 var shell = new ActiveXObject("WScript.Shell");
 shell.run("DENTANOSUKE_LIST.hta" + " " + yyb);
}
</script>

<style>
input,textarea { border-style:none; }
select     { border: thin #ffffff none; }
button     { background-color:#E0FFFF; }
.ui-datepicker { font-size: 80%; }
.bodynrm    { filter: progid:DXImageTransform.Microsoft.Gradient
         (GradientType=0, StartColorStr='#B0C4DE', EndColorStr='#4169E1') }
}
</style>

// 以下、歯科予約システム④ に続く
Comment
この記事をはてなブックマークに追加

HTA + javascript 歯科医院予約システム②

2016-05-04 12:21:01 | Java
// 歯科予約システム① から続く

 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;
 document.getElementById("登録1").disabled = true;
 document.getElementById("frm3").style.display="block";
 document.getElementById("frm4").style.display="none";
}
/* ==================================================
__受診予約更新処理
===================================================== */
function func_updRec1() {
 yyk = document.getElementById('yyk').value;
 yyb = document.getElementById('yyb').value;
 if (yyb == "") { $("#yyb").focus();alert("予約日を入力して下さい!"); return; }
 tcd = document.getElementById('tcd').value;
 if (tcd == "") { $("#tcd").focus();alert("担当CDを入力して下さい!"); return; }
 if (tcd > wak) { $("#tcd").focus();alert("担当CDが枠を越えています!"); return; }
 kai = document.getElementById('selKai').options.value;
 owa = document.getElementById('selOwa').options.value;
 if (kai > owa) { $("#kai").focus();alert("開始・終了の時刻が前後不整合です!"); return; }

 var cn  = new ActiveXObject("ADODB.Connection");
 cn.Open("Driver={Microsoft Access Driver (*.mdb)};DBQ=" + mdb);

 // 存在チェック
 var mySql = "SELECT * FROM [受診予約] WHERE [予約日] = #" + yyb + "# ";
 mySql += " AND [担当CD] = " + tcd;
 mySql += " AND ((FORMAT([開始],'HH:MM') <= '" + kai + "' AND FORMAT([終了],'HH:MM') > '" + kai + "')";
 mySql +=  " OR (FORMAT([開始],'HH:MM') < '" + owa + "' AND FORMAT([終了],'HH:MM') >= '" + owa + "'))";
 mySql += " AND [予約ID] <> '" + yyk + "'";
 var rs = cn.Execute(mySql);
 if (!rs.EOF) {
  cn.Close;
  alert("この担当CD,時間帯には既に別の予約があります!");
  $("#tcd").focus()
  return;
 }
 // 休業チェック
 var mySql = "SELECT * FROM [休業テーブル] WHERE [休業日] = #" + yyb + "# ";
 mySql += " AND [担当CD] = " + tcd;
 var rs = cn.Execute(mySql);
 if (!rs.EOF) {
  cn.Close;
  alert("この予約日、担当CDは休業になっています!");
  $("#tcd").focus()
  return;
 }
 mySql = "UPDATE [受診予約] SET ";
 mySql += "[予約日] = '" + yyb + "'";
 mySql += ",[担当CD] = '" + tcd + "'";
 mySql += ",[開始] = '"  + kai + "'";
 mySql += ",[終了] = '"  + owa + "'";
 var kno = document.getElementById('kno1').value; mySql += ",[患者番号] = '" + kno + "'";
 if (kno == "") { $("#kno1").focus();alert("患者番号を入力して下さい!"); return; }
 var tmp  = "";
 tmp = document.getElementById('syu').value; mySql += ",[治療種類] = '" + tmp + "'";
 tmp = document.getElementById('bko1').value; mySql += ",[備考] = '"   + tmp + "'";
 tmp = document.getElementById('ukj').value; mySql += ",[受付時刻] = '" + tmp + "'";
 tan = document.getElementById('tan').value; mySql += ",[受付担当] = '" + tan + "'";
 mySql += " WHERE [予約ID] = '"  + yyk + "'";
 try {
  var rs = cn.Execute(mySql);
  alert("受診予約更新完了");
 } catch (e) {
  cn.Close;
  alert("受診予約更新失敗 " + e + mySql);
  return;
 }
 cn.Close();cn = null;
 document.getElementById("frm3").style.display="block";
 document.getElementById("frm4").style.display="none";
}
/* ==================================================
__受診予約削除処理
===================================================== */
function func_delRec1() {
 yyk = document.getElementById('yyk').value;
 var cn = new ActiveXObject("ADODB.Connection");
 cn.Open("Driver={Microsoft Access Driver (*.mdb)};DBQ=" + mdb);
 var mySql = "DELETE FROM [受診予約] WHERE [予約ID] = '"  + yyk + "'";
 try {
  var rs = cn.Execute(mySql);
  alert("受診予約削除完了");
 } catch (e) {
  cn.Close;
  alert("受診予約削除失敗 " + e + mySql);
  return;
 }
 cn.Close();cn = null;
 document.getElementById("更新1").disabled = true;
 document.getElementById("削除1").disabled = true;
 Tbl_disp1(); // 予約一覧の再表示
 document.getElementById("frm3").style.display="block";
 document.getElementById("frm4").style.display="none";
}
/* ==================================================
__患者マスタ一覧表の設定
===================================================== */
function Tbl_disp2() {
 var knm = document.getElementById('flt1').value;
 var tel = document.getElementById('flt2').value;
 var cn = new ActiveXObject("ADODB.Connection");
 cn.Open("Driver={Microsoft Access Driver (*.mdb)};DBQ=" + mdb);
 var mySql = "SELECT [患者番号],[患者氏名],[患者カナ],[主治医],[衛生士],format([生年月日],'YYYY/MM/DD'),[TEL1] FROM [患者マスタ]";
 if (knm != "") {
  mySql += " WHERE [患者カナ] LIKE '%" + knm + "%'";
  if (knm != "") {
   mySql += " AND [TEL1] LIKE '%" + tel + "%'";
  }
 } else if (tel != "") {
  mySql += " WHERE [TEL1] LIKE '%" + tel + "%'";
 }
 mySql += " ORDER BY [患者番号] DESC";
 var tb = document.getElementById("tbdy2");
 while( tb.rows[ 0 ] ) tb.deleteRow( 0 );
 rs   = cn.Execute(mySql);
 var i = 0;
 while (!rs.EOF){
  tb.insertRow(i);
  for( var j = 0 ; j < 7 ; j++ ) {
   tb.rows[i].insertCell(j);
   tb.rows[i].cells[j].innerHTML    = rs(j).value + '&nbsp;';
   tb.rows[i].cells[j].style.whiteSpace = "nowrap";
   tb.rows[i].cells[j].style.textAlign = "center";
  }
  tb.rows[i].cells[1].innerHTML    = '<a href="#" onClick="go_RecPage2(' + rs(0).value + ')">' + rs(1).value + '</a>' + '&nbsp;';
  tb.rows[i].cells[1].style.textAlign = "left";
  tb.rows[i].cells[2].style.textAlign = "left";
  tb.rows[i].cells[6].style.textAlign = "left";
  rs.MoveNext();
  i++;
 }
 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 +
       document.getElementById('X5').offsetWidth +
       document.getElementById('X6').offsetWidth +80;
 if (haba <= hab) { haba = hab; }
}
/* ==================================================
__絞り込み検索クリア表示
===================================================== */
function Tbl_cler2() {
 document.getElementById('flt1').value = "";
 document.getElementById('flt2').value = "";
 Tbl_disp2();
}
/* ==================================================
__患者マスタ登録画面の表示
===================================================== */
function go_NewRec2() {
 document.getElementById("frm3").style.display="none";
 document.getElementById("frm4").style.display="block";
 document.getElementById("kno2").value = "(自動採番)";
 document.getElementById("knm2").value = "";
 document.getElementById("kkn").value = "";
 document.getElementById("sji").value = "";
 document.getElementById("ess").value = "";
 document.getElementById("ken").value = "";
 document.getElementById("crt").value = 0;
 document.getElementById("brt").value = "";
 document.getElementsByName("sex")[0].checked = true;
 document.getElementById("tel1").value = "";
 document.getElementById("tel2").value = "";
 document.getElementById("syo").value = "";
 document.getElementById("pno").value = "";
 document.getElementById("adr").value = "";
 var now = new Date();
 document.getElementById("trk").value = toLocaleString(now);
 document.getElementById("ttk").value = "";
 document.getElementById("bko2").value = "";
 document.getElementById("登録2").disabled = false;
 document.getElementById("更新2").disabled = true;
 document.getElementById("反映2").disabled = true;
 window.resizeTo(hab,540);
}
/* ==================================================
__患者マスタ一覧表への復帰
===================================================== */
function go_ListPage2() {
 document.getElementById("frm3").style.display="block";
 document.getElementById("frm4").style.display="none";
 var table = document.getElementById("tbdy2");
 while( table.rows[ 0 ] ) table.deleteRow( 0 );
 Tbl_disp2();
}
/* ==================================================
__患者マスタ更新画面の表示
===================================================== */
function go_RecPage2(kno) {
 document.getElementById("frm3").style.display="none";
 document.getElementById("frm4").style.display="block";
 var mySql = "SELECT IIf(IsNull([患者氏名]),'',[患者氏名])"
         + ",IIf(IsNull([患者カナ]),'',[患者カナ])"
         + ",IIf(IsNull([主治医]),'',[主治医])"
         + ",IIf(IsNull([衛生士]),'',[衛生士])"
         + ",IIf(IsNull([健保番号]),'',[健保番号])"
         + ",IIf(IsNull([カルテ№]),'',[カルテ№])"
         + ",format([生年月日],'YYYY/MM/DD')"
         + ",IIf(IsNull([性別]),'',[性別])"
         + ",IIf(IsNull([TEL1]),'',[TEL1])"
         + ",IIf(IsNull([TEL2]),'',[TEL2])"
         + ",IIf(IsNull([郵便番号]),'',[郵便番号])"
         + ",IIf(IsNull([住所]),'',[住所])"
         + ",IIf(IsNull([紹介者]),'',[紹介者])"
         + ",format([登録日],'YYYY/MM/DD')"
         + ",IIf(IsNull([特記事項]),'',[特記事項])"
         + ",IIf(IsNull([備考]),'',[備考])"
       + " FROM [患者マスタ]"
       + " WHERE [患者番号] = " + kno;
 var cn = new ActiveXObject("ADODB.Connection");
 cn.Open("Driver={Microsoft Access Driver (*.mdb)};DBQ=" + mdb);
 var rs = cn.Execute(mySql);
 document.getElementById("kno2").value = kno;      // 患者番号
 document.getElementById("knm2").value = rs(0).value; // 患者氏名
 document.getElementById("kkn").value = rs(1).value;  // 患者カナ
 document.getElementById("sji").value = rs(2).value;  // 主治医
 document.getElementById("ess").value = rs(3).value;  // 衛生士
 document.getElementById("ken").value = rs(4).value;  // 健保番号
 document.getElementById("crt").value = rs(5).value;  // カルテ№
 document.getElementById("brt").value = rs(6).value;  // 生年月日
 document.getElementById("sex").value = rs(7).value;
 if (rs(7).value == 0) {
  document.getElementsByName("sex")[1].checked = true; // 性別
 } else {
  document.getElementsByName("sex")[0].checked = true;
 }
 document.getElementById("tel1").value = rs(8).value;  // TEL1
 document.getElementById("tel2").value = rs(9).value;  // TEL2
 document.getElementById("pno").value = rs(10).value; // 郵便番号
 document.getElementById("adr").value = rs(11).value; // 住所
 document.getElementById("syo").value = rs(12).value; // 紹介者
 document.getElementById("trk").value = rs(13).value; // 登録日
 document.getElementById("ttk").value = rs(14).value; // 特記事項
 document.getElementById("bko2").value = rs(15).value; // 備考
 rs.Close();rs = null;
 cn.Close();cn = null;
 getKanjyaName();
 document.getElementById("登録2").disabled = true;
 document.getElementById("更新2").disabled = false;
 document.getElementById("反映2").disabled = false;
 window.resizeTo(hab,540);
 Tbl_hist(kno);
}
/* ==================================================
__予約履歴の設定
===================================================== */
function Tbl_hist(kno) {
 var cn = new ActiveXObject("ADODB.Connection");
 cn.Open("Driver={Microsoft Access Driver (*.mdb)};DBQ=" + mdb);
 var mySql = "SELECT [予約ID],format([予約日],'MM/DD'),[担当CD],format([開始],'HH:MM'),format([終了],'HH:MM')";
 mySql += " FROM [受診予約] WHERE [患者番号] = " + kno;
 mySql += " ORDER BY [予約日] DESC,[開始] DESC";
 var tb = document.getElementById("hist");
 while( tb.rows[ 0 ] ) tb.deleteRow( 0 );
 rs  = cn.Execute(mySql);
 if (rs.EOF) { return; }
 tb.insertRow(0);
 for( var j = 0 ; j < 5 ; j++ ) {
  tb.rows[0].insertCell(j);
  tb.rows[0].cells[j].style.whiteSpace   = "nowrap";
  tb.rows[0].cells[j].style.textAlign    = "center";
  tb.rows[0].cells[j].style.backgroundColor = "#E0FFFF";
 }
 tb.rows[0].cells[0].innerHTML = "&nbsp;予約ID&nbsp;";
 tb.rows[0].cells[1].innerHTML = "&nbsp;予約日&nbsp;";
 tb.rows[0].cells[2].innerHTML = "&nbsp;担当CD&nbsp;";
 tb.rows[0].cells[3].innerHTML = "&nbsp;開_始&nbsp;";
 tb.rows[0].cells[4].innerHTML = "&nbsp;終_了&nbsp;";
 var i = 1;
 while (!rs.EOF){
  tb.insertRow(i);
  for( var j = 0 ; j < 5 ; j++ ) {
   tb.rows[i].insertCell(j);
   tb.rows[i].cells[j].innerHTML    = rs(j).value;
   tb.rows[i].cells[j].style.whiteSpace = "nowrap";
   tb.rows[i].cells[j].style.textAlign = "center";
  }
  var yyk = tb.rows[i].cells[0].innerHTML;
  var tmp = "'" + yyk + "'";
  tb.rows[i].cells[0].innerHTML = '<a href="#" onClick="go_RecPage1(' + tmp + ')">' + yyk + '</a>';
  rs.MoveNext();
  i++;
 }
 rs.Close();rs = null;
 cn.Close();cn = null;
}
/* ==================================================
__患者マスタ登録処理
===================================================== */
function func_insRec2() {
 var cn  = new ActiveXObject("ADODB.Connection");
 cn.Open("Driver={Microsoft Access Driver (*.mdb)};DBQ=" + mdb);
 var mySql = "INSERT INTO [患者マスタ] ([患者氏名],[患者カナ],[主治医],[衛生士],[健保番号],[カルテ№]";
 mySql += ",[生年月日],[性別],[TEL1],[TEL2],[郵便番号],[住所],[紹介者],[登録日],[特記事項],[備考]) VALUES(";
 var tmp = "";
 tmp = document.getElementById('knm2').value; mySql += "'" + tmp + "'";  // 患者氏名
 tmp = document.getElementById('kkn').value; mySql += ",'" + tmp + "'";  // 患者カナ
 tmp = document.getElementById('sji').value; mySql += ",'" + tmp + "'";  // 主治医
 tmp = document.getElementById('ess').value; mySql += ",'" + tmp + "'";  // 衛生士
 tmp = document.getElementById('ken').value; mySql += ",'" + tmp + "'";  // 健保番号
 tmp = document.getElementById('crt').value; mySql += ",'" + tmp + "'";  // カルテ№
 tmp = document.getElementById('brt').value;
 if (tmp == "") { mySql += ",null"; } else { mySql += ",'" + tmp + "'"; } // 生年月日
 if (document.getElementsByName("sex")[0].checked) {            // 性別
  mySql += ",1";
 } else {
  mySql += ",2";
 }
 tmp = document.getElementById('tel1').value; mySql += ",'" + tmp + "'";  // TEL1,
 tmp = document.getElementById('tel2').value; mySql += ",'" + tmp + "'";  // TEL2,
 tmp = document.getElementById('pno').value; mySql += ",'" + tmp + "'";  // 郵便番号,
 tmp = document.getElementById('adr').value; mySql += ",'" + tmp + "'";  // 住所,
 tmp = document.getElementById('syo').value; mySql += ",'" + tmp + "'";  // 紹介者,
 tmp = document.getElementById('trk').value;
 if (tmp == "") { mySql += ",null"; } else { mySql += ",'" + tmp + "'"; } // 登録日
 tmp = document.getElementById('ttk').value; mySql += ",'" + tmp + "'";  // 特記事項
 tmp = document.getElementById('bko2').value; mySql += ",'" + tmp + "')"; // 備考
 try {
  var rs = cn.Execute(mySql);
  alert("患者マスタ登録完了");
 } catch (e) {
  cn.Close;
  alert("患者マスタ登録失敗 " + e + mySql);
  return;
 }
 cn.Close();cn = null;
 document.getElementById("登録2").disabled = true;
}
/* ==================================================
__患者マスタ更新処理
===================================================== */
function func_updRec2() {
 var cn = new ActiveXObject("ADODB.Connection");
 cn.Open("Driver={Microsoft Access Driver (*.mdb)};DBQ=" + mdb);
 var mySql = "UPDATE [患者マスタ] SET ";
 var tmp  = "";
 tmp = document.getElementById('knm2').value; mySql += "[患者氏名] = '" + tmp + "'";
 tmp = document.getElementById('kkn').value; mySql += ",[患者カナ] = '" + tmp + "'";
 tmp = document.getElementById('sji').value; mySql += ",[主治医] = '"  + tmp + "'";
 tmp = document.getElementById('ess').value; mySql += ",[衛生士] = '"  + tmp + "'";
 tmp = document.getElementById('ken').value; mySql += ",[健保番号] = '" + tmp + "'";
 tmp = document.getElementById('crt').value; mySql += ",[カルテ№] = '" + tmp + "'";
 tmp = document.getElementById('brt').value;
 if (tmp == "") { mySql += ",null"; } else { mySql += ",[生年月日] = '" + tmp + "'"; }
 if (document.getElementsByName("sex")[0].checked) {
  mySql += ",[性別] = 1";
 } else {
  mySql += ",[性別] = 2";
 }
 tmp = document.getElementById('tel1').value; mySql += ",[TEL1] = '"   + tmp + "'";
 tmp = document.getElementById('tel2').value; mySql += ",[TEL2] = '"   + tmp + "'";
 tmp = document.getElementById('pno').value; mySql += ",[郵便番号] = '" + tmp + "'";

// 以下、歯科予約システム③ に続く
Comment
この記事をはてなブックマークに追加

HTA + javascript 歯科医院予約システム①

2016-05-04 12:17:10 | Java
HTA + Javascript レストラン予約システム
やっていなかった時間枠での予約管理を試すために
歯医者の予約システムを考えてみました。

中規模の歯科医で、数人の医者と衛生士がいて、
治療チエア単位(担当CDという枠にしています)の予約を想定しています。
10年来通っている歯科医が、4台の治療台で廻していて、
ノートで予約管理されているので、あれをパソコンでするなら・・・
という発想です。

単位を、主治医・衛生士単位にすることも想定して、敢えて椅子固定にしないで
担当CDという若干曖昧な、コードにしています。
実務は分からないので、こんな感じでどうかなという・・・ところです。

まあ・・・
実際に使われることはない、空しいシステムではありますが、
javascriptの勉強には、なります。(か?)

画面の後の、例によってソースを載せてますが、投稿限度を越えるので、
超えた分は、後続の投稿に続きます。

予約一覧


予約詳細


患者一覧


患者詳細


休業一覧


休業更新


DB作成


***<< DENTANOSUKE.hta >>********************************
<html>
<head>
<hta:application navigable="yes" scroll="auto">
</hta:application>
<meta http-equiv="Content-Style-Type" content="text/css">
<meta http-equiv="Content-Script-Type" content="text/javascript">
<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 type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jqueryui/1.11.3/jquery-ui.min.js"></script>
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jqueryui/1.11.3/i18n/jquery-ui-i18n.min.js"></script>
<link  type="text/css"    href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.11.3/themes/redmond/jquery-ui.css" rel="stylesheet" />
<!-- jQueryテーマの一覧:変更の場合は、項目幅の再調整が必要です。
・black-tie ・blitzer ・cupertino ・dark-hive ・dot-luv ・eggplant ・excite-bike ・flick ・hot-sneaks ・humanity ・le-frog ・mint-choc ・overcast
・pepper-grinder ・redmond ・smoothness ・south-street ・start ・sunny ・swanky-purse ・trontastic ・ui-darkness ・ui-lightness ・vader -->
<script language="JavaScript" type="text/javascript">
var mdb = "DENTANOSUKE.mdb";
var wak = 5;  // 担当コード数 (修正する場合は、window.resizeの幅値も変更すること)
var hab = 930; // window.resizeの幅値 5:930
var yyb = ""; // 予約日
var yyt = ""; // 予約月
var tcd = ""; // 担当CD
var kai = ""; // 開始時刻
var owa = ""; // 終了時刻
var tan = ""; // 受付担当者
var kid = ""; // 休業ID
/* ==================================================
__初期処理
===================================================== */
function func_init() {
 window.resizeTo(hab,540);
 var cn = new ActiveXObject("ADODB.Connection");
 try {
  cn.Open("Driver={Microsoft Access Driver (*.mdb)};DBQ=DENTANOSUKE.mdb");
  cn.Close(); cn = null;
  document.getElementById("li-4").style.display="none";
  $("#tab_area").tabs({ disabled: [3] });
 } catch (e) {
  document.getElementById("li-1").style.display="none";
  document.getElementById("li-2").style.display="none";
  document.getElementById("li-3").style.display="none";
  $("#tab_area").tabs({ active:  [3] });
  alert("MDBがありません、DB作成処理を実行して下さい!");
  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();
 document.getElementById("frm6").style.display="none";
 List_disp3();
 if (wak != 5) {
  document.getElementById( "tbl1td" ).colSpan = wak -1;
 }
}
/* ==================================================
__予約日一覧の設定
===================================================== */
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() {
 if (yyb == "") { return; }
 var cn = new ActiveXObject("ADODB.Connection");
 cn.Open("Driver={Microsoft Access Driver (*.mdb)};DBQ=" + mdb);
 var tb = document.getElementById("tbdy1");
 while( tb.rows[ 0 ] ) tb.deleteRow( 0 );
 // 見出し行
 tb.insertRow(0);
 tb.rows[0].insertCell(0);
 tb.rows[0].cells[0].innerHTML  = "&nbsp;時_刻&nbsp;";
 tb.rows[0].cells[0].style.backgroundColor = "#E0FFFF";
 var mySql = "";
 var kyuu = [];
 for( var j = 1 ; j < wak + 1 ; j++ ) {
  tb.rows[0].insertCell(j);
  mySql = "SELECT * FROM [休業テーブル] WHERE [休業日] = #" + yyb + "# AND [担当CD] = " + j;
  var rs = cn.Execute(mySql);
  if (rs.EOF) {
   kyuu[j] = 0;
   tb.rows[0].cells[j].innerHTML = "担当CD:" + j;
   tb.rows[0].cells[j].style.backgroundColor = "#E0FFFF";
  } else {
   kyuu[j] = 1;
   tb.rows[0].cells[j].innerHTML = "担当CD:休";
   tb.rows[0].cells[j].style.backgroundColor = "#FFE0FF";
  }
  tb.rows[0].cells[j].style.width="125";
 }
 mySql  = "SELECT [予約ID],format([開始],'HH:MM'),[担当CD],[受診予約].[患者番号],[患者氏名],format([終了],'HH:MM')";
 mySql += " FROM [受診予約],[患者マスタ] WHERE [受診予約].[患者番号] = [患者マスタ].[患者番号]";
 if (yyb != "") { mySql += " AND [予約日] = #" + yyb + "#"; }
 mySql += " ORDER BY [開始],[担当CD]";
 var rs = cn.Execute(mySql);
 var i  = 1;
 var tmp = "";
 if (!rs.EOF){
  var yyk = rs(0).value;
  var kai = rs(1).value;
  var tcd = rs(2).value;
  var nam = rs(4).value;
 }
 var bef = [];
 while (!rs.EOF){
  tb.insertRow(i);
  tb.rows[i].insertCell(0);
  tb.rows[i].cells[0].innerHTML = kai;
  for( var j = 1 ; j < wak + 1 ; j++ ) {
   tb.rows[i].insertCell(j);
   // 継続
   if (bef[j] != "" && bef[j] > kai) {
    tb.rows[i].cells[j].innerHTML = "↓";
    tb.rows[i].cells[j].style.backgroundColor = "#FFE0FF";
   // 予約済み
   } else if (tb.rows[i].cells[0].innerHTML == kai && tcd == j) {
    tmp = "'" + yyk + "'";
    tb.rows[i].cells[j].innerHTML = '<a href="#" onClick="go_RecPage1(' + tmp + ')">' + nam.replace("_","") + '</a>';
    tb.rows[i].cells[j].style.backgroundColor = "#FFE0FF";
    tb.rows[i].cells[j].style.whiteSpace = "nowrap";
    bef[j]  = rs(5).value;
    // 次へ
    rs.MoveNext();
    // 終わり
    if (rs.EOF) {
     for( var k = j + 1 ; k < wak + 1 ; k++ ) {
      tb.rows[i].insertCell(k);
      tmp = "'" + kai + "'";
      tb.rows[i].cells[k].innerHTML = '<a href="#" onClick="go_NewRec1(' + tmp + ',' + k + ')">予約</a>';
      bef[k] = "";
     }
     break;
    // 同時刻になし
    } else if (yyk != rs(0).value && kai != rs(1).value) {
     for( var k = j + 1 ; k < wak + 1 ; k++ ) {
      tb.rows[i].insertCell(k);
      tmp = "'" + kai + "'";
      tb.rows[i].cells[k].innerHTML = '<a href="#" onClick="go_NewRec1(' + tmp + ',' + k + ')">予約</a>';
      bef[k] = "";
     }
     yyk = rs(0).value;
     kai = rs(1).value;
     tcd = rs(2).value;
     nam = rs(4).value;
     break;
    }
    // 同時刻にあり次の担当CDへ
    yyk = rs(0).value;
    tcd = rs(2).value;
    nam = rs(4).value;
   // 未合致_次の担当CDへ
   } else {
    tmp = "'" + kai + "'";
    tb.rows[i].cells[j].innerHTML = '<a href="#" onClick="go_NewRec1(' + tmp + ',' + j + ')">予約</a>';
    bef[j] = "";
   }
  }
  for( var j = 1 ; j < wak + 1 ; j++ ) {
   if (kyuu[j] == "1") {
    tb.rows[i].cells[j].innerHTML = "-";
   }
  }
  if (i == 1 && tb.rows[1].cells[0].innerHTML == "00:00") { tb.rows[1].cells[0].innerHTML = "保 留"; }
  i++;
  if (i > 24) { return; }
 }
 rs.Close();rs = null;
 cn.Close();cn = null;
}
/* ==================================================
__患者選択肢の設定
===================================================== */
function set_selOdr1() {

 return;

 var cn = new ActiveXObject("ADODB.Connection");
 cn.Open("Driver={Microsoft Access Driver (*.mdb)};DBQ=" + mdb);
 var mySql = "SELECT [患者氏名] FROM [患者マスタ] WHERE ORDER BY [患者番号]";
 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 < wak + 1; 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(pkai,ptcd) {
 $("#frm1").hide();
 $("#frm2").fadeIn("slow");
 if (pkai == null) {
  kai = "14:00";
 } else {
  kai = pkai;
 }
 tcd = ptcd;
 if (tcd == null) { tcd = ""; }
 var now = new Date();
 document.getElementById("yyk").value = set_NewOdr1(now); // 予約ID
 if (yyb == "") { yyb = toLocaleString(now); }
 document.getElementById("yyb").value = yyb;       // 予約日
 document.getElementById("tcd").value = tcd;       // 担当CD
 var options = document.getElementById('selKai').options; // 開始
 var tmp = kai;
 for (var i = 0; i < options.length; i++) {
  if (options[i].text == tmp){ options[i].selected = true; break; }
 }
 var options = document.getElementById('selOwa').options; // 終了
 var tmp = kai;
 for (var i = 0; i < options.length; i++) {
  if (options[i].text == tmp){ options[i+1].selected = true; break; }
 }
 document.getElementById("kno1").value = "";       // 患者番号
 document.getElementById("knm1").innerHTML = "";     // 患者氏名
 document.getElementById("syu").value = "";        // 治療種類
 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;
 document.getElementById("削除1").disabled = true;
 window.resizeTo(hab,540);
}
/* ==================================================
__新予約番号の算定
===================================================== */
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) {
 $("#tab_area").tabs({ active: [0] });
 $("#frm1").hide();
 $("#frm2").fadeIn("slow");
 var mySql = "SELECT [予約ID]"
         + ",format([予約日],'YYYY/MM/DD')"
         + ",[担当CD]"
         + ",format([開始],'HH:MM')"
         + ",format([終了],'HH:MM')"
         + ",[患者番号]"
         + ",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(1).value;
 document.getElementById("yyb").value = yyb;       // 予約日
 document.getElementById("tcd").value = rs(2).value;   // 担当CD
 var options = document.getElementById('selKai').options; // 開始
 var tmp = rs(3).value;
 for (var i = 0; i < options.length; i++) {
  if (options[i].text == tmp){ options[i].selected = true; break; }
 }
 var options = document.getElementById('selOwa').options; // 終了
 var tmp = rs(4).value;
 for (var i = 0; i < options.length; i++) {
  if (options[i].text == tmp){ options[i].selected = true; break; }
 }
 var kno = rs(5).value;
 document.getElementById("kno1").value = kno;       // 患者番号
 document.getElementById("syu").value = rs(6).value;   // 治療種類
 document.getElementById("bko1").value = rs(7).value;   // 備考
 document.getElementById("ukj").value = rs(8).value;   // 受付時刻
 tan = rs(9).value;
 document.getElementById("tan").value = tan;       // 受付担当
 rs.Close();rs = null;
 cn.Close();cn = null;
 getKanjyaName(kno);
 document.getElementById("登録1").disabled = true;
 document.getElementById("更新1").disabled = false;
 document.getElementById("削除1").disabled = false;
 window.resizeTo(hab,540);
}
/* ==================================================
__患者番号の反映
===================================================== */
function func_setKno1() {
 $("#tab_area").tabs({ active: [0] });
 $("#frm1").hide();
 $("#frm2").fadeIn("slow");
 var kno = document.getElementById("kno2").value; // 患者番号
 document.getElementById("kno1").value = kno;
 getKanjyaName(kno);
 window.resizeTo(hab,540);
}
/* ==================================================
__受診予約登録処理
===================================================== */
function func_insRec1() {
 yyk = document.getElementById('yyk').value;
 yyb = document.getElementById('yyb').value;
 if (yyb == "") { $("#yyb").focus();alert("予約日を入力して下さい!"); return; }
 tcd = document.getElementById('tcd').value;
 if (tcd == "") { $("#tcd").focus();alert("担当CDを入力して下さい!"); return; }
 if (tcd > wak) { $("#tcd").focus();alert("担当CDが枠を越えています!"); return; }
 kai = document.getElementById('selKai').options.value;
 owa = document.getElementById('selOwa').options.value;
 if (kai > owa) { $("#kai").focus();alert("開始・終了の時刻が前後不整合です!"); return; }

 var cn  = new ActiveXObject("ADODB.Connection");
 cn.Open("Driver={Microsoft Access Driver (*.mdb)};DBQ=" + mdb);

 // 存在チェック
 var mySql = "SELECT * FROM [受診予約] WHERE [予約日] = #" + yyb + "# ";
 mySql += " AND [担当CD] = " + tcd;
 mySql += " AND ((FORMAT([開始],'HH:MM') <= '" + kai + "' AND FORMAT([終了],'HH:MM') > '" + kai + "')";
 mySql +=  " OR (FORMAT([開始],'HH:MM') < '" + owa + "' AND FORMAT([終了],'HH:MM') >= '" + owa + "'))";
 var rs = cn.Execute(mySql);
 if (!rs.EOF) {
  cn.Close;
  alert("この担当CD,時間帯には既に予約があります!");
  $("#tcd").focus()
  return;
 }
 // 休業チェック
 var mySql = "SELECT * FROM [休業テーブル] WHERE [休業日] = #" + yyb + "# ";
 mySql += " AND [担当CD] = " + tcd;
 var rs = cn.Execute(mySql);
 if (!rs.EOF) {
  cn.Close;
  alert("この予約日、担当CDは休業になっています!");
  $("#tcd").focus()
  return;
 }
 // 追加登録
 mySql = "INSERT INTO [受診予約] VALUES('" + yyk + "'"; // 予約ID
 mySql += ",'" + yyb + "'"; // 予約日
 mySql += ",'" + tcd + "'"; // 担当CD
 mySql += ",'" + kai + "'"; // 開始
 mySql += ",'" + owa + "'"; // 終了
 var tmp = "";
 tmp = document.getElementById('kno1').value; mySql += ",'" + tmp + "'"; // 患者番号
 if (tmp == "") { $("#kno1").focus();alert("患者番号を入力して下さい!"); return; }
 tmp = document.getElementById('syu').value;  mySql += ",'" + tmp + "'"; // 治療種別
 tmp = document.getElementById('bko1').value; mySql += ",'" + tmp + "'"; // 備考

// 以下、歯科予約システム② に続く
Comment (1)
この記事をはてなブックマークに追加

HTA + Javascript レストラン予約システム④ 合体版再その3

2016-04-27 10:05:25 | Java
HTA + Javascript レストラン予約システム④ 合体版再その2 から続く

MDB作成処理画面


**< RESTRANT.hta ③ >**********************************************
 db.Close();  db  = null;
 dbws.Close(); dbws = null;
 dbe = null;
 alert("RESTRANT.mdb に、コースマスタ、ご予約テーブルを作成しました");
 document.getElementById("tbl").innerHTML = "RESTRANT.mdb に、コースマスタ、ご予約テーブルを作成しました";
}
/* ==================================================
 新レコードを追加してみる
===================================================== */
function addnewrecord(){
 var DBOPENTABLE = 1;
 var shell = new ActiveXObject("WScript.Shell");
 var dbpath = "RESTRANT.mdb";
 shell   = null;

 var dbe  = new ActiveXObject("DAO.DBEngine.36");
 var dbws=dbe.Workspaces(0);
 var db=dbws.OpenDatabase(dbpath);
 var rs   = db.OpenRecordset("コースマスタ",DBOPENTABLE);

 rs.AddNew();
 rs.Fields("コース名") = "なし";
 rs.Fields("可否"  ) = -1;
 rs.Fields("概要"  ) = "選択なし";
 rs.Fields("単価"  ) = 0;
 rs.Fields("標準数" ) = 0;
 rs.Fields("画像"  ) = "DUMMY.jpg";
 rs.Fields("登録日" ) = null;
 rs.Fields("廃止日" ) = null;
 rs.Fields("備考"  ) = "ダミー画像(初期画像)";

 rs.Update();

 rs.Close();  rs  = null;
 db.Close();  db  = null;
 dbws.Close(); dbws = null;
 dbe = null;
 alert("コースマスタ に、「なし」レコードを追加しました");
 document.getElementById("rec").innerHTML = "コースマスタ に、「なし」レコードを追加しました";
 alert("再起動します!");
 location.href = "RESTRANT.hta";
 window.Close;
}
/* ==================================================
 任意ページ表示(サブウインドウ)
===================================================== */
function kakunin(){
 ret = prompt("任意ページのURLを入力", "http://blog.goo.ne.jp/frontflug");
 if (ret != null){
  window.open(ret, "new");
 }
}
/* ==================================================
 jQuery UI 調整
===================================================== */
 jQuery( document ).ready( function( $ )
 {
  $( "body" ).addClass( "my_mail_notice" );
  $( "#selectmenu" ).selectmenu();
 });
$(function() {
 // タブ切替
 $( "#tab_area" ).tabs();
 $ (".content:not('li.active + .content')").hide();
 $("li").hover(function(){
  $ (this).addClass("hover")
 },
 function(){
  $(this).removeClass("hover")
 });
 $ ("li").click(function(){
  $("li").removeClass("active");
  $ (this).addClass("active");
  $(".content:not('li.active + .content')").fadeOut();
 $ ("li.active + .content").fadeIn();
 });

 // カレンダー(datepicker)
 $.datepicker.setDefaults( $.datepicker.regional[ "ja" ] );
 $('.calendar').datepicker({ dateFormat: 'yy/mm/dd' });

});
</script>
<style>
input,textarea { border-style:none; }
select     { border: thin #ffffff none; }
.ui-datepicker { font-size: 80%; }
.imgDs     { box-shadow:     0px opx 5px #000000;
         -moz-box-shadow:  0px 0px 5px #000000;
         -webkit-box-shadow: 0px 0px 5px #000000; }
button     { background-color:#E0FFFF; }
</style>
</head>
<body bgcolor="#4169E1" style="filter: progid:DXImageTransform.Microsoft.Gradient
 (GradientType=0, StartColorStr='#B0C4DE', EndColorStr='#4169E1')"><basefont face="HGゴシックM" COLOR="#191970">
<div id="tab_area">
<ul>
 <li><a href="#t-1" id="li-1">RESERVATION</a></li>
 <li><a href="#t-2" id="li-2">COURCE MAST</a></li>
 <li><a href="#t-3" id="li-3">MDB SETTING</a></li>
</ul>
<div id="t-1">
<br><br>
<form name="myForm1">
<div id="frm1">
 <table id="tbl1" border="1" bordercolor="#0000BD" style="margin:0px 3px 0px 3px; border-collapse: collapse">
  <tr bgcolor="#E0FFFF"><td colspan="3">&nbsp;予約日&nbsp;
  <select name="selYYB" onchange="go_ReLoad1()" style="font-family:HGゴシックM">
  </select></td><td colspan="2" align="center"><a href="#" onClick="go_NewRec1()">新規追加</a></td>
  </tr>
  <tr align="center">
  <td bgcolor="#E0FFFF" id="X0">&nbsp;予 約 番 号&nbsp;</td>
  <td bgcolor="#E0FFFF" id="X1">&nbsp;来店時刻&nbsp;</td>
  <td bgcolor="#E0FFFF" id="X2">&nbsp;お 客 様 名&nbsp;</td>
  <td bgcolor="#E0FFFF" id="X3">&nbsp;人_数&nbsp;</td>
  <td bgcolor="#E0FFFF" id="X4">&nbsp;状_況&nbsp;</td>
  </tr>
  <tbody id="tbdy1" align="center">
  </tbody>
  <tr bgcolor="#E0FFFF"><td colspan="5" id="kei"></td></tr>
 </table>
</div>
<div id="frm2" hidden>
 <table id="tbl2" border=0>
  <tr>
  <td align=left nowrap> <button id="一覧1" onClick="go_ListPage1()" style="WIDTH:75px;HEIGHT:35px">一覧</button></td>
  <td align=left nowrap>_<button id="登録1" onClick="func_insRec1()" style="WIDTH:75px;HEIGHT:35px">登録</button></td>
  <td align=left nowrap>_<button id="更新1" onClick="func_updRec1()" style="WIDTH:75px;HEIGHT:35px">更新</button></td></tr>
  <tr>
  <table id="tbl3" border="1" bordercolor="#0000BD" style="margin:0px 3px 0px 3px; border-collapse: collapse">
   <tr align="center">
   <td bgcolor="#B1F9D0">予約番号<font size="1" color="#FF3366"><b>※</b></font></td><td bgcolor="#FFFF55">
    <input type="text"  name="yyk" style="font-family:HGゴシックM;text-align:center;font-weight:bold;background-color:#FFFF99"></td>
   <td bgcolor="#B1F9D0">予 約 日<font size="1" color="#FF3366"><b>※</b></font></td><td>
    <input type="date"  name="yyb" style="font-family:HGゴシックM;text-align:center" class="calendar"></div></td>
   <td bgcolor="#B1F9D0">来店時刻<font size="1" color="#FF3366"><b>※</b></font></td><td>
    <input type="date"  name="rai" style="font-family:HGゴシックM;text-align:center"></td></tr>
   <tr align="center">
   <td bgcolor="#B1F9D0">状__況</td><td>
    <select name="selJyo" style="font-family:HGゴシックM">
    <option value="予約" selected>予約</option>
    <option value="保留">保留</option>
    <option value="来店">来店</option>
    <option value="済み">済み</option>
    <option value="キャンセル">キャンセル</option>
    </select></td>
   <td bgcolor="#B1F9D0">お客様名<font size="1" color="#FF3366"><b>※</b></font></td><td colspan="3" align="left">
    <input type="text"  name="sam" style="font-family:HGゴシックM;text-align:left" size="52"></td></tr>
   <tr align="center">
   <td bgcolor="#B1F9D0">人__数</td><td>
    <input type="number" name="nin" style="font-family:HGゴシックM;text-align:center" size="14">名様</td>
   <td bgcolor="#B1F9D0">代表者名</td><td>
    <input type="text"  name="dai" style="font-family:HGゴシックM;text-align:center"></td>
   <td bgcolor="#B1F9D0">連絡(TEL)</td><td>
    <input type="text"  name="tel" style="font-family:HGゴシックM;text-align:center"></td></tr>
   <tr align="center">
   <td bgcolor="#B1F9D0">住__所</td><td colspan="5" align="left">
    <input type="text"  name="pno" style="font-family:HGゴシックM;text-align:center" size="9"
    onKeyUp="AjaxZip3.zip2addr(this,'','adr','adr');">
    <input type="text"  name="adr" style="font-family:HGゴシックM;text-align:left"  size="73"></td></tr>
   <tr align="center">
   <td bgcolor="#C2EEFF">オーダ1</td><td colspan="3">
    <select id="selOd1" style="font-family:HGゴシックM"></select>
   </td><td bgcolor="#C2EEFF">食数</td><td>
    <input type="number" name="os1" style="font-family:HGゴシックM;text-align:center"></td></tr>
   <tr align="center">
   <td bgcolor="#C2EEFF">オーダ2</td><td colspan="3">
    <select name="selOd2" style="font-family:HGゴシックM"></select>
   </td><td bgcolor="#C2EEFF">食数</td><td>
    <input type="number" name="os2" style="font-family:HGゴシックM;text-align:center"></td></tr>
   <tr align="center">
   <td bgcolor="#C2EEFF">オーダ3</td><td colspan="3">
    <select name="selOd3" style="font-family:HGゴシックM"></select>
   </td><td bgcolor="#C2EEFF">食数</td><td>
    <input type="number" name="os3" style="font-family:HGゴシックM;text-align:center"></td></tr>
   <tr align="center">
   <td bgcolor="#C2EEFF">オーダ4</td><td colspan="3">
    <select name="selOd4" style="font-family:HGゴシックM"></select>
   </td><td bgcolor="#C2EEFF">食数</td><td>
    <input type="number" name="os4" style="font-family:HGゴシックM;text-align:center"></td></tr>
   <tr align="center">
   <td bgcolor="#C2EEFF">オーダ5</td><td colspan="3">
    <select name="selOd5" style="font-family:HGゴシックM"></select>
   </td><td bgcolor="#C2EEFF">食数</td><td>
    <input type="number" name="os5" style="font-family:HGゴシックM;text-align:center"></td></tr>
   <tr align="center"> 
   <td bgcolor="#D9E5FF">対応状況</td><td>
    <select name="selTai" style="font-family:HGゴシックM">
    <option value="未処理" selected>未処理</option>
    <option value="処理済み">処理済み</option>
    <option value="断り">断り</option>
    <option value="その他">その他</option>
    </select></td>
   <td bgcolor="#D9E5FF">備__考 </td><td colspan=3 align="left">
    <input type="text"  name="bko1" style="font-family:HGゴシックM" size="52"></td></tr>
   <tr align="center">
   <td bgcolor="#D9E5FF">ご 評 価</td><td>
    <select name="selHyo" style="font-family:HGゴシックM">
    <option value="良好">良好</option>
    <option value="普通" selected>普通</option>
    <option value="不満">不満</option>
    <option value="クレーム">クレーム</option>
    <option value="不明">不明</option>
    <option value="その他">その他</option>
    </select></td>
   <td bgcolor="#D9E5FF">受 付 者</td><td>
    <input type="text"  name="tan" style="font-family:HGゴシックM;text-align:center"></td>
   <td bgcolor="#D9E5FF">受付日時</td><td>
    <input type="date"  name="ukj" style="font-family:HGゴシックM;text-align:center"></td></tr>
  </table></tr>
  <tr><td><font size="1" color="#FF3366"><b>※</b></font><font size="2" color="#000000">は必須項目</font></tr>
 </table>
</div>
</form>
</div>

<div id="t-2" align="left">
<br><br>
<form name="myForm2">
<div id="frm3">
 <table id="tbl4" border="1" bordercolor="#00AA00" style="margin:0px 3px 0px 3px; border-collapse: collapse">
  <tr bgcolor="#AEFFBD"><td colspan="3"></td><td colspan="2" align="center"><a href="#" onClick="go_NewRec2()">新規追加</a></td>
  </tr>
  <tr align="center">
  <td bgcolor="#AEFFBD" id="X0">&nbsp;コースID&nbsp;</td>
  <td bgcolor="#AEFFBD" id="X1">&nbsp;コ ー ス 名&nbsp;</td>
  <td bgcolor="#AEFFBD" id="X2">&nbsp;単_価&nbsp;</td>
  <td bgcolor="#AEFFBD" id="X3">&nbsp;登 録 日&nbsp;</td>
  <td bgcolor="#AEFFBD" id="X4">&nbsp;可否&nbsp;</td>
  </tr>
  <tbody id="tbdy2" align="center">
  </tbody>
 </table>
</div>
<div id="frm4" hidden>
 <table id="tbl5" border=0>
  <tr>
  <td align=left nowrap> <button id="一覧2" onClick="go_ListPage2()" style="WIDTH:75px;HEIGHT:35px">一覧</button></td>
  <td align=left nowrap>_<button id="登録2" onClick="func_insRec2()" style="WIDTH:75px;HEIGHT:35px">登録</button></td>
  <td align=left nowrap>_<button id="更新2" onClick="func_updRec2()" style="WIDTH:75px;HEIGHT:35px">更新</button></td></tr>
  <tr>
  <table id="tbl6" border="1" bordercolor="#000000" style="margin:0px 1px 0px 1px; border-collapse: collapse">
   <tr align="center">
   <td bgcolor="#E4FF8D">&nbsp;コースID&nbsp;</td><td>
    <input type="text"  name="cid" style="font-family:HGゴシックM;text-align:center;width=100" size="10"></td>
   <td bgcolor="#E4FF8D">&nbsp;登 録 日&nbsp;</td><td>
    <input type="date"  name="trk" style="font-family:HGゴシックM;text-align:center" class="calendar" size="10"></td>
   <td bgcolor="#E4FF8D">&nbsp;廃 止 日&nbsp;</td><td>
    <input type="date"  name="hai" style="font-family:HGゴシックM;text-align:center" class="calendar" size="10"></td>
   <tr align="center">
   <td bgcolor="#E4FF8D">&nbsp;コース名<font size="1" color="#FF3366"><b>※</b></font>&nbsp;</td><td colspan="3" align="left">
    <input type="text"  name="cnm" style="font-family:HGゴシックM;font-weight:bold" size="45"></td>
   <td bgcolor="#E4FF8D">受付可否</td><td>
    <input type="radio" name="kah" value="可" checked>可&nbsp;
    <input type="radio" name="kah" value="否">否
    </td></tr>
   <tr align="center">
   <td bgcolor="#E4FF8D">&nbsp;概_要<font size="1" color="#FF3366"><b>※</b></font>&nbsp;</td><td colspan="5" align="right">
    <textarea      name="gai" rows="10" cols="75"></textarea></td></tr>
   <tr align="center">
   <td bgcolor="#E4FF8D">単__価</td><td>
   ¥<input type="number" name="tnk" style="font-family:HGゴシックM;text-align:center" size="6"></td>
   <td bgcolor="#E4FF8D">標 準 数</td><td>
    <input type="number" name="suu" style="font-family:HGゴシックM;text-align:right" size="6"> 食/日</td>
   <td bgcolor="#E4FF8D">画__像</td><td>
    <input type="text"  name="gzo" style="font-family:HGゴシックM"></td></tr>
   <tr align="center">
   <td bgcolor="#E4FF8D">イメージ</td><td colspan=5 align="center">
    <img id="gzoimg" src="DUMMY.jpg" width="615"></td></tr>
   <tr align="center"> 
   <td bgcolor="#E4FF8D">備__考 </td><td colspan=5 align="left">
    <input type="text"  name="bko2" style="font-family:HGゴシックM" size="76"></td></tr>
  </table></tr>
  <tr><td><font size="1" color="#FF3366"><b>※</b></font><font size="2" color="#000000">は必須項目</font></tr>
 </table>
</div>
</form>
</div>

<div id="t-3" align="left">
<br><br>
 <div id="mdb"><button onClick="makemdb()"   style="WIDTH:180px">D B 生 成 </button></div><br>
 <div id="tbl"><button onclick="maketable()"  style="WIDTH:180px">テーブル作成</button></div><br>
 <div id="rec"><button onclick="addnewrecord()" style="WIDTH:180px">レコード追加</button></div><br>
 <div id="nni"><button onClick="kakunin()"   style="WIDTH:180px">任意ページへ</button></div><br>

// コメント①に続く
Comments (7)
この記事をはてなブックマークに追加

HTA + Javascript レストラン予約システム④ 合体版再その2

2016-04-27 09:56:34 | Java
HTA + Javascript レストラン予約システム④ 合体版再その1 から続く

コース一覧


コース詳細


**< RESTRANT.hta ② >**********************************************
/* ==================================================
 更新処理
===================================================== */
function func_updRec1() {
 var cn = new ActiveXObject("ADODB.Connection");
 cn.Open("Driver={Microsoft Access Driver (*.mdb)};DBQ=" + mdb);
 var mySql = "UPDATE ご予約 SET ";
 yyb = document.getElementById('yyb').value; mySql += "予約日 = '"  + yyb + "'";
 if (yyb == "") { $("#yyb").focus();alert("予約日を入力して下さい!"); return; }
 var tmp  = "";
 tmp = document.getElementById('rai').value; mySql += ",来店時刻 = '" + tmp + "'";
 if (tmp == "") { $("#rai").focus();alert("来店時刻を入力して下さい!"); return; }
 tmp = document.getElementById('selJyo').options.value; mySql += ",状況 = '" + tmp + "'";
 tmp = document.getElementById('sam').value; mySql += ",お客様名 = '" + tmp + "'";
 if (tmp == "") { $("#sam").focus();alert("お客様名を入力して下さい!"); return; }
 tmp = document.getElementById('dai').value; mySql += ",代表者名 = '" + tmp + "'";
 tmp = document.getElementById('tel').value; mySql += ",TEL = '"   + tmp + "'";
 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 += ",オーダー1 = '" + tmp + "'";
 tmp = document.getElementById('os1').value; mySql += ",オーダー1数 = " + tmp;
 tmp = document.getElementById('selOd2').options.value; mySql += ",オーダー2 = '" + tmp + "'";
 tmp = document.getElementById('os2').value; mySql += ",オーダー2数 = " + tmp;
 tmp = document.getElementById('selOd3').options.value; mySql += ",オーダー3 = '" + tmp + "'";
 tmp = document.getElementById('os3').value; mySql += ",オーダー3数 = " + tmp;
 tmp = document.getElementById('selOd4').options.value; mySql += ",オーダー4 = '" + tmp + "'";
 tmp = document.getElementById('os4').value; mySql += ",オーダー4数 = " + tmp;
 tmp = document.getElementById('selOd5').options.value; mySql += ",オーダー5 = '" + tmp + "'";
 tmp = document.getElementById('os5').value; mySql += ",オーダー5数 = " + tmp;
 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 + "'";
 yyk = document.getElementById('yyk').value; mySql += " WHERE 予約ID = '" + yyk + "'";
 try {
  var rs = cn.Execute(mySql);
  alert("ご予約更新完了");
 } catch (e) {
  cn.Close;
  alert("ご予約更新失敗 " + e + mySql);
  return;
 }
 cn.Close();cn = null;
}
/* ==================================================
 コースマスタ一覧表の設定
===================================================== */
function Tbl_disp2() {
 var cn = new ActiveXObject("ADODB.Connection");
 cn.Open("Driver={Microsoft Access Driver (*.mdb)};DBQ=" + mdb);
 var mySql = "SELECT コースID,コース名,単価,format(登録日,'YYYY/MM/DD'),可否 FROM コースマスタ ORDER BY 可否,登録日 DESC";
 var table = document.getElementById("tbdy2");
 rs = cn.Execute(mySql);
 var tmp = "";
 while (!rs.EOF){
  var row  = table.insertRow(-1);
  var cell1 = row.insertCell(-1);
  cell1.style.height = "25px";
  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;
  tmp = "'" + rs(0).value + "'";
  cell2.innerHTML = '<div align="left">&nbsp;<a href="#" onClick="go_RecPage2(' + tmp + ')">' + rs(1).value + '</a>&nbsp;<div>';
  var num = rs(2).value;
  cell3.innerHTML = '<div align="right">&nbsp;¥' + num.toLocaleString().split(".")[0] + '&nbsp;<div>';
  cell4.innerHTML = '&nbsp;' + rs(3).value + '&nbsp;' ;
  if (rs(4).value) { cell5.innerHTML = '<font face="Wingdings 2">R</font>'; }
  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 (haba <= 910) { haba = 910; }
}
/* ==================================================
 コースマスタ登録画面の表示
===================================================== */
function go_NewRec2() {
 document.getElementById("frm3").style.display="none";
 document.getElementById("frm4").style.display="block";
 document.getElementById("cid").value = "(自動採番)";
 var now = new Date();
 document.getElementById("trk").value = toLocaleString(now);
 document.getElementById("hai").value = "";
 document.getElementById("cnm").value = "";
 document.getElementsByName("kah")[0].checked = true;
 document.getElementById("gai").value = "";
 document.getElementById("tnk").value = 0;
 document.getElementById("suu").value = 0;
 document.getElementById("gzo").value = "";
 document.getElementById("gzoimg").src = "DUMMY.jpg";
 document.getElementById("bko2").value = "";
 document.getElementById("登録2").disabled = false;
 document.getElementById("更新2").disabled = true;
 window.resizeTo(910,1000);
}
/* ==================================================
 コースマスタ一覧表への復帰
===================================================== */
function go_ListPage2() {
 document.getElementById("frm3").style.display="block";
 document.getElementById("frm4").style.display="none";
 var table = document.getElementById("tbdy2");
 while( table.rows[ 0 ] ) table.deleteRow( 0 );
 Tbl_disp2();
}
/* ==================================================
 コースマスタ更新画面の表示
===================================================== */
function go_RecPage2(cid) {
 document.getElementById("frm3").style.display="none";
 document.getElementById("frm4").style.display="block";
 var mySql = "SELECT format(登録日,'YYYY/MM/DD')"
         + ",format(廃止日,'YYYY/MM/DD')"
         + ",IIf(IsNull(コース名),'',コース名)"
         + ",IIf(IsNull(可否),'',可否)"
         + ",IIf(IsNull(概要),'',概要)"
         + ",IIf(IsNull(単価),'',単価)"
         + ",IIf(IsNull(標準数),'',標準数)"
         + ",IIf(IsNull(画像),'',画像)"
         + ",IIf(IsNull(備考),'',備考)"
       + " FROM コースマスタ "
       + " WHERE コースID = " + cid;
 var cn = new ActiveXObject("ADODB.Connection");
 cn.Open("Driver={Microsoft Access Driver (*.mdb)};DBQ=" + mdb);
 var rs = cn.Execute(mySql);
 document.getElementById("cid").value = cid;
 document.getElementById("trk").value = rs(0).value;
 document.getElementById("hai").value = rs(1).value;
 document.getElementById("cnm").value = rs(2).value;
 if (rs(3).value == 0) {
  document.getElementsByName("kah")[1].checked = true;
 } else {
  document.getElementsByName("kah")[0].checked = true;
 }
 document.getElementById("gai").value = rs(4).value;
 document.getElementById("tnk").value = rs(5).value;
 document.getElementById("suu").value = rs(6).value;
 document.getElementById("gzo").value = rs(7).value;
 if (rs(7).value == "") {
  document.getElementById("gzoimg").src = "DUMMY.jpg";
 } else {
  document.getElementById("gzoimg").src = rs(7).value;
 }
 document.getElementById("bko2").value = rs(8).value;
 rs.Close();rs = null;
 cn.Close();cn = null;
 document.getElementById("登録2").disabled = true;
 document.getElementById("更新2").disabled = false;
 window.resizeTo(910,1000);
}
/* ==================================================
 コースマスタ登録処理
===================================================== */
function func_insRec2() {
 var cn  = new ActiveXObject("ADODB.Connection");
 cn.Open("Driver={Microsoft Access Driver (*.mdb)};DBQ=" + mdb);
 var mySql = "INSERT INTO コースマスタ (コース名,可否,概要,単価,標準数,画像,登録日,廃止日,備考) VALUES(";
 var tmp = "";
 tmp = document.getElementById('cnm').value; mySql += "'" + tmp + "'";  // コース名
 if (document.getElementsByName("kah")[0].checked) {           // 可否
  mySql += ",-1";
 } else {
  mySql += ",0";
 }
 tmp = document.getElementById('gai').value; mySql += ",'" + tmp + "'";  // 概要
 tmp = document.getElementById('tnk').value;
 if (tmp == "") { mySql += ",null"; } else { mySql += "," + tmp; }    // 単価
 tmp = document.getElementById('suu').value;
 if (tmp == "") { mySql += ",null"; } else { mySql += "," + tmp; }    // 標準数
 tmp = document.getElementById('gzo').value; mySql += ",'" + tmp + "'";  // 画像
 if (tmp == "") { tmp = "DUMMY.jpg"; }
 document.getElementById("gzoimg").src = tmp;
 tmp = document.getElementById('trk').value;
 if (tmp == "") { mySql += ",null"; } else { mySql += ",'" + tmp + "'"; } // 登録日
 tmp = document.getElementById('hai').value;
 if (tmp == "") { mySql += ",null"; } else { mySql += ",'" + tmp + "'"; } // 廃止日
 tmp = document.getElementById('bko2').value; mySql += ",'" + tmp + "')"; // 備考
 try {
  var rs = cn.Execute(mySql);
  alert("コースマスタ登録完了");
 } catch (e) {
  cn.Close;
  alert("コースマスタ登録失敗 " + e + mySql);
  return;
 }
 cn.Close();cn = null;
}
/* ==================================================
 コースマスタ更新処理
===================================================== */
function func_updRec2() {
 var cn = new ActiveXObject("ADODB.Connection");
 cn.Open("Driver={Microsoft Access Driver (*.mdb)};DBQ=" + mdb);
 var mySql = "UPDATE コースマスタ SET ";
 var tmp  = "";
 tmp = document.getElementById('cnm').value;     mySql += "コース名 = '" + tmp + "'";
 if (document.getElementsByName("kah")[0].checked) {
  mySql += ",可否 = -1";
 } else {
  mySql += ",可否 = 0";
 }
 tmp = document.getElementById('gai').value;     mySql += ",概要 = '"  + tmp + "'";
 tmp = document.getElementById('tnk').value;
 if (tmp == "") { mySql += ",単価 = null"; }  else { mySql += ",単価 = "  + tmp; }
 tmp = document.getElementById('suu').value;
 if (tmp == "") { mySql += ",標準数 = null"; } else { mySql += ",標準数 = " + tmp; }
 tmp = document.getElementById('gzo').value;     mySql += ",画像 = '"  + tmp + "'";
 if (tmp == "") { tmp = "DUMMY.jpg"; }
 document.getElementById("gzoimg").src = tmp;
 tmp = document.getElementById('trk').value;
 if (tmp == "") { mySql += ",登録日 = null"; } else { mySql += ",登録日 = '" + tmp + "'"; }
 tmp = document.getElementById('hai').value;
 if (tmp == "") { mySql += ",廃止日 = null"; } else { mySql += ",廃止日 = '" + tmp + "'"; }
 tmp = document.getElementById('bko2').value;     mySql += ",備考 = '"  + tmp + "'";
 cid = document.getElementById('cid').value; mySql += " WHERE コースID = " + cid;
 try {
  var rs = cn.Execute(mySql);
  alert("コースマスタ更新完了");
 } catch (e) {
  cn.Close;
  alert("コースマスタ更新失敗 " + e + mySql);
  return;
 }
 cn.Close();cn = null;
}
/* ==================================================
 日付形式編集
===================================================== */
function toLocaleString( date ) {
  return [
    date.getFullYear(),
    date.getMonth() + 1,
    date.getDate()
    ].join( '/' );
}
/* ==================================================
 データベース生成
===================================================== */
function makemdb(){
 var shell = new ActiveXObject("WScript.Shell");
 var dbpath = "RESTRANT.mdb";
 shell   = null;

 var dbe  = new ActiveXObject("DAO.DBEngine.36");
 var dbws  = dbe.Workspaces(0);
 var db   = dbws.CreateDatabase(dbpath,";LANGID=0x411;CP=932;COUNTRY=0");
 db.Close();
 dbws.Close();
 dbe = null;
 alert("カレントフォルダに RESTRANT.mdb を作成しました");
 document.getElementById("mdb").innerHTML = "カレントフォルダに RESTRANT.mdb を作成しました";
}
/* ==================================================
 テーブル作成
===================================================== */
function maketable(){
 var DBBOOLEAN    = 1;
 var DBINTEGER    = 3;
 var DBLONG     = 4;
 var DBCURRENCY   = 5;
 var DBDATE     = 8;
 var DBTEXT     = 10;
 var DBMEMO     = 12;
 var DBAUTOINCRFIELD = 16;
 var shell = new ActiveXObject("WScript.Shell");
 var dbpath = "RESTRANT.mdb";
 shell   = null;

 var dbe  = new ActiveXObject("DAO.DBEngine.36");
 var dbws  = dbe.Workspaces(0);
 var db   = dbws.OpenDatabase(dbpath);

 // コースマスタ
 var tbdef = db.CreateTableDef("コースマスタ");
 var field = new Array(25);
 field[0]  = tbdef.CreateField("コースID",DBLONG);
 field[0].Attributes = DBAUTOINCRFIELD;
 field[1]  = tbdef.Createfield("コース名",DBTEXT,50);
 field[2]  = tbdef.Createfield("可否"  ,DBBOOLEAN);
 field[3]  = tbdef.Createfield("概要"  ,DBTEXT,255);
 field[3].AllowZeroLength = true; field[3].Required = false;
 field[4]  = tbdef.Createfield("単価"  ,DBCURRENCY);
 field[5]  = tbdef.Createfield("標準数" ,DBINTEGER);
 field[6]  = tbdef.Createfield("画像"  ,DBTEXT,50);
 field[6].AllowZeroLength = true; field[6].Required = false;
 field[7]  = tbdef.Createfield("登録日" ,DBDATE);
 field[8]  = tbdef.Createfield("廃止日" ,DBDATE);
 field[9]  = tbdef.Createfield("備考"  ,DBTEXT,255);
 field[9].AllowZeroLength = true; field[9].Required = false;
 for(var i=0;i < 10;i++){
  tbdef.Fields.Append(field[i]);
 }
 db.TableDefs.Append(tbdef);
 var Idx   = tbdef.CreateIndex("PrimaryKey");
 Idx.Primary = true;
 Idx.Unique = true;
 var IdxF1  = Idx.CreateField("コースID");
 Idx.Fields.Append(IdxF1);
 tbdef.Indexes.Append(Idx);

 // ご予約
 tbdef   = db.CreateTableDef("ご予約");
 field[0] = tbdef.CreateField("予約ID" ,DBTEXT,12);
 field[1] = tbdef.Createfield("予約日" ,DBDATE);
 field[2] = tbdef.Createfield("来店時刻",DBDATE);
 field[3] = tbdef.Createfield("状況"  ,DBTEXT,5);
 field[3].AllowZeroLength = true; field[3].Required = false;
 field[4] = tbdef.Createfield("お客様名",DBTEXT,50);
 field[4].AllowZeroLength = true; field[4].Required = false;
 field[5] = tbdef.Createfield("代表者名",DBTEXT,25);
 field[5].AllowZeroLength = true; field[5].Required = false;
 field[6] = tbdef.Createfield("TEL"   ,DBTEXT,50);
 field[6].AllowZeroLength = true; field[6].Required = false;
 field[7] = tbdef.Createfield("郵便番号",DBTEXT,8);
 field[7].AllowZeroLength = true; field[7].Required = false;
 field[8] = tbdef.Createfield("住所"  ,DBTEXT,255);
 field[8].AllowZeroLength = true; field[8].Required = false;
 field[9] = tbdef.Createfield("人数",DBINTEGER);
 field[10] = tbdef.CreateField("オーダー1" ,DBTEXT,50);
 field[10].AllowZeroLength = true; field[10].Required = false;
 field[11] = tbdef.Createfield("オーダー1数",DBINTEGER);
 field[12] = tbdef.CreateField("オーダー2" ,DBTEXT,50);
 field[12].AllowZeroLength = true; field[12].Required = false;
 field[13] = tbdef.Createfield("オーダー2数",DBINTEGER);
 field[14] = tbdef.CreateField("オーダー3" ,DBTEXT,50);
 field[14].AllowZeroLength = true; field[14].Required = false;
 field[15] = tbdef.Createfield("オーダー3数",DBINTEGER);
 field[16] = tbdef.CreateField("オーダー4" ,DBTEXT,50);
 field[16].AllowZeroLength = true; field[16].Required = false;
 field[17] = tbdef.Createfield("オーダー4数",DBINTEGER);
 field[18] = tbdef.CreateField("オーダー5" ,DBTEXT,50);
 field[18].AllowZeroLength = true; field[18].Required = false;
 field[19] = tbdef.Createfield("オーダー5数",DBINTEGER);
 field[20] = tbdef.Createfield("対応状況",DBTEXT,50);
 field[20].AllowZeroLength = true; field[20].Required = false;
 field[21] = tbdef.Createfield("ご評価" ,DBTEXT,10);
 field[21].AllowZeroLength = true; field[21].Required = false;
 field[22] = tbdef.Createfield("備考"  ,DBMEMO);
 field[22].AllowZeroLength = true; field[22].Required = false;
 field[23] = tbdef.Createfield("受付時刻",DBDATE);
 field[24] = tbdef.Createfield("受付担当",DBTEXT,25);
 field[24].AllowZeroLength = true; field[24].Required = false;
 for(var i=0;i < 25;i++){
  tbdef.Fields.Append(field[i]);
 }
 db.TableDefs.Append(tbdef);
 var Idx   = tbdef.CreateIndex("PrimaryKey");
 Idx.Primary = true;
 Idx.Unique = true;
 var IdxF1  = Idx.CreateField("予約ID");
 Idx.Fields.Append(IdxF1);
 tbdef.Indexes.Append(Idx);

// 合体版再その3 に続く
Comment
この記事をはてなブックマークに追加

HTA + Javascript レストラン予約システム④ 合体版再その1

2016-04-27 09:45:41 | Java
HTA + Javascript レストラン予約システム④ 合体版 を、微修正しました。
大筋は変わりませんが、画面周りを整理しました。
好みではありますが、こっちがいいという方もいるかと・・・

予約一覧


予約詳細


**< 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 type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jqueryui/1.11.3/jquery-ui.min.js"></script>
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jqueryui/1.11.3/i18n/jquery-ui-i18n.min.js"></script>
<link  type="text/css"    href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.11.3/themes/redmond/jquery-ui.css" rel="stylesheet" />
<script language="JavaScript" type="text/javascript">
var mdb = "RESTRANT.mdb";
var yyb = ""; // 予約日
var tan = ""; // 担当者
/* ==================================================
 初期処理
===================================================== */
function func_init() {
 window.resizeTo(910,540);
 var cn = new ActiveXObject("ADODB.Connection");
 try {
  cn.Open("Driver={Microsoft Access Driver (*.mdb)};DBQ=RESTRANT.mdb");
  cn.Close(); cn = null;
  document.getElementById("li-3").style.display="none";
  $("#tab_area").tabs({ disabled: [2] });
 } catch (e) {
  document.getElementById("li-1").style.display="none";
  document.getElementById("li-2").style.display="none";
  $("#tab_area").tabs({ active:  [2] });
  alert("MDBがありません、DB作成処理を実行して下さい!");
  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);
 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 = '&nbsp;' + rs(0).value + '&nbsp;'; // 予約ID
  cell1.style.height = "25px";
  cell2.innerHTML = rs(1).value;            // 来店時刻
  tmp = "'" + rs(0).value + "'";
  cell3.innerHTML = '<div align="left">&nbsp;<a href="#" onClick="go_RecPage1(' + tmp + ')">' + rs(2).value + '</a>&nbsp;<div>';
  cell4.innerHTML = rs(3).value;            // 人数
  cell5.innerHTML = '&nbsp;' + rs(4).value + '&nbsp;'; // 状況
  if (rs(4).value == "予約") {
   ken++;
   nin += parseInt(rs(3).value);
  } else {
   cell1.style.color = "#888888";
   cell2.style.color = "#888888";
   cell4.style.color = "#888888";
   cell5.style.color = "#FF0000";
  }
  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 <= 910) { haba = 910; }
}
/* ==================================================
 コース選択肢の設定
===================================================== */
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(910,540);
}
/* ==================================================
 新予約番号の算定
===================================================== */
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(910,540);
}
/* ==================================================
 登録処理
===================================================== */
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 + "'"; // 予約日
 if (yyb == "") { $("#yyb").focus();alert("予約日を入力して下さい!"); return; }
 tmp = document.getElementById('rai').value; mySql += ",'" + tmp + "'"; // 来店時刻
 if (tmp == "") { $("#rai").focus();alert("来店時刻を入力して下さい!"); return; }
 tmp = document.getElementById('selJyo').options.value; mySql += ",'" + tmp + "'"; // 状況
 tmp = document.getElementById('sam').value; mySql += ",'" + tmp + "'"; // お客様名
 if (tmp == "") { $("#sam").focus();alert("お客様名を入力して下さい!"); return; }
 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;
}

// 合体版再その2 に続く
Comment
この記事をはてなブックマークに追加

HTA + Javascript レストラン予約システム④ 合体版

2016-04-24 15:48:33 | Java
HTA + Javascript レストラン予約システム①~③の結果
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;
}

// コメント①に続く
Comments (10)
この記事をはてなブックマークに追加

HTA + Javascript_レストラン予約システム③ 修正

2016-04-24 10:18:00 | Java


HTA + Javascript_レストラン予約システム② 再のコメントで、Kawa.netxp [JavaScript] JKL.Calendar
を紹介しましたが、jQueryでも同様のカレンダーが
あるので、変更してみました。
(フェードインの機能を使う為、jQueryをリンクしたので)

コメントに追加しましたが、何故か化けるので、部分投稿しました。

↓★の部分が、修正または追加(★は不要)
************************************************************
<html>
<head>
<hta:application navigable="yes" scroll="auto">
</hta:application>
<script src="https://ajaxzip3.github.io/ajaxzip3.js" charset="UTF-8"></script>

// ★以下4行追加
<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 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/excite-bike/jquery-ui.css">

<script language="JavaScript" type="text/javascript">
var mdb = "RESTRANT.mdb";
var yyb = ""; // 予約日
var tan = ""; // 担当者
/* ==================================================
  予約日一覧の設定
===================================================== */
function List_disp() {

// (中略①)

/* ==================================================
  一覧表への復帰
===================================================== */
function go_ListPage() {
 window.resizeTo(775,425);
★$("#frm2").hide();
★$("#frm1").fadeIn("slow");
 List_disp();
}
/* ==================================================
  一覧表の再表示(予約日切替)
===================================================== */
function go_ReLoad() {
 window.resizeTo(775,425);
 yyb = document.getElementById('selYYB').options.value;
 Tbl_disp();
}
/* ==================================================
  更新画面の表示
===================================================== */
function go_RecPage(yyk) {
 window.resizeTo(775,425);
★$("#frm1").hide();
★$("#frm2").fadeIn("slow");
 var mySql = "SELECT format(予約日,'YYYY/MM/DD')"

// (中略②)

★/* ==================================================
★  カレンダー(jQuery UI:datepicker)
★===================================================== */
★$(function() {
★ $.datepicker.setDefaults( $.datepicker.regional[ "ja" ] );
★ $('.calendar').datepicker({ dateFormat: 'yy/mm/dd' });
★});
</script>
★<style>
★ .ui-datepicker { font-size: 80%; }
★</style>
</head>

// (中略③)

<div id="frm2" hidden>
 <table border=0>
  <tr>
  <td align=left nowrap> <input type="button" value="一覧表示" id="一覧" onClick="go_ListPage()"></td>
  <td align=left nowrap> <input type="button" value="登録する" id="登録" onClick="func_insRec()"></td>
  <td align=left nowrap> <input type="button" value="更新する" id="更新" onClick="func_updRec()"></td></tr>
  <tr>
  <table border="1" bgcolor="#ffffff">
   <tr align="center">
   <td bgcolor="#ADD8E6">予約番号<font size="1" color="#FF3366"><b>※</b></font></td><td>
    <input type="text"  name="yyk" style="font-family:HGゴシックM;text-align:center;font-weight:bold;background-color:#ADFF2F"></td>
   <td bgcolor="#ADD8E6">予 約 日<font size="1" color="#FF3366"><b>※</b></font></td><td>
★   <input type="date"  name="yyb" style="font-family:HGゴシックM;text-align:center" class="calendar"></div></td>
   <td bgcolor="#ADD8E6">来店時刻<font size="1" color="#FF3366"><b>※</b></font></td><td>
    <input type="date"  name="rai" style="font-family:HGゴシックM;text-align:center"></td></tr>

// (後略)
Comment
この記事をはてなブックマークに追加

HTA + Javascript_レストラン予約システム② 再

2016-04-19 07:27:42 | Java
HTA + Javascript_レストラン予約システム②をテストしておりましたが
随分、バグ訂正、機能追加等で修正しましたので、最新版を載せ直します。
投稿の上限文字数を越えますので、超えた分はコメント①に載せます。

ご予約テーブル


一覧画面(初期画面)


詳細画面(更新画面)


【利用手順】
①.ソースをテキストエディタに貼り付ける。
②.全角の空白を、半角の空白2文字に一括置換する。
③.GOYOYAKU.hta という名前で書き出す。(実は、*.hta であればどんな名前でもいい)
④.ACCESS(mdb)のテーブル(コースマスタとご予約)を作成して、③と同じフォルダに置く。
  ACCESSは、2003で動作確認しています(他のVerの場合は環境に合わせて調整が必要かも…)
⑤.GOYOYAKU.hta をダブルクリック(動くと思います、保証はできませんが…)

以下↓
***<< GOYOYAKU.hta >>***********************************************************
<html>
<head>
<hta:application navigable="yes" scroll="auto">
</hta:application>
<!-- script src="http://ajaxzip3.googlecode.com/svn/trunk/ajaxzip3/ajaxzip3.js" charset="UTF-8"></script -->
<script src="https://ajaxzip3.github.io/ajaxzip3.js" charset="UTF-8"></script>
<script type="text/javascript" src="jkl-calendar.js" charset="Shift_JIS"></script>
<script language="JavaScript" type="text/javascript">
var mdb = "RESTRANT.mdb";
var yyb = ""; // 予約日
var tan = ""; // 担当者
var cal1 = new JKL.Calendar("calid","myForm","yyb");
/* ==================================================
  予約日一覧の設定
===================================================== */
function List_disp() {
 var cn = new ActiveXObject("ADODB.Connection");
 cn.Open("Driver={Microsoft Access Driver (*.mdb)};DBQ=" + mdb);  // <== ODBC接続
// cn.Open("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + accdb);  <== OLEDB接続・ACCESS2007以降(32bit版)
// cn.Open("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + accdb); <== OLEDB接続・ACCESS2007以降(64bit版)
 var mySql = "SELECT format(予約日,'YYYY/MM/DD') FROM ご予約 GROUP BY 予約日 ORDER BY 予約日 DESC";
 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_disp();
}
/* ==================================================
  一覧表の設定
===================================================== */
function Tbl_disp() {
 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_RecPage(' + 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 = "";
 }
 window.resizeTo(haba,425);
}
/* ==================================================
  コース選択肢の設定
===================================================== */
function set_selOdr() {
 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_NewRec() {
 window.resizeTo(775,425);
 document.getElementById("frm1").style.display="none";
 document.getElementById("frm2").style.display="block";
 var now = new Date();
 document.getElementById("yyk").value = set_NewOdr(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("bko").value = "";       // 備考
 document.getElementById("tan").value = tan;       // 受付担当
 document.getElementById("ukj").value = toLocaleString(now) + " "
                    + now.getHours() + ":" + now.getMinutes(); // 受付時刻
 document.getElementById("登録").disabled = false;
 document.getElementById("更新").disabled = true;
}
/* ==================================================
  新予約番号の算定
===================================================== */
function set_NewOdr(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_ListPage() {
 window.resizeTo(775,425);
 document.getElementById("frm1").style.display="block";
 document.getElementById("frm2").style.display="none";
// Tbl_disp();
 List_disp();
}
/* ==================================================
  一覧表の再表示(予約日切替)
===================================================== */
function go_ReLoad() {
 window.resizeTo(775,425);
 yyb = document.getElementById('selYYB').options.value;
 Tbl_disp();
}
/* ==================================================
  更新画面の表示
===================================================== */
function go_RecPage(yyk) {
 window.resizeTo(775,425);
 document.getElementById("frm1").style.display="none";
 document.getElementById("frm2").style.display="block";
 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("bko").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("登録").disabled = true;
 document.getElementById("更新").disabled = false;
}
/* ==================================================
  登録処理
===================================================== */
function func_insRec() {
 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('bko').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;
}

// 以降は、コメントに続く
Comments (7)
この記事をはてなブックマークに追加

HTA + Javascript_レストラン予約システム②

2016-04-17 22:56:23 | Java
HTA + Javascript レストラン予約システム…コースマスタ編
の続きです。

まずは、ご予約テーブル


次に、一覧画面


そして、詳細画面です。


ビジュアル的にはもうひとつですが…

<html>
<head>
<hta:application navigable="yes" scroll="auto">
</hta:application>
<script language="JavaScript" type="text/javascript">
var mdb = "G:/RESTRANT/RESTRANT.mdb"; // <== 環境に合わせて変える
var yyb = ""; // 予約日
var tan = ""; // 担当者
/* ==================================================
  予約日一覧の設定
===================================================== */
function List_disp() {
 var cn = new ActiveXObject("ADODB.Connection");
 cn.Open("Driver={Microsoft Access Driver (*.mdb)};DBQ=" + mdb);  // <== ODBC接続
// cn.Open("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + accdb);  <== OLEDB接続・ACCESS2007以降(32bit版)
// cn.Open("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + accdb); <== OLEDB接続・ACCESS2007以降(64bit版)
 var mySql = "SELECT format(予約日,'YYYY/MM/DD') FROM ご予約 GROUP BY 予約日 ORDER BY 予約日 DESC";
 var rs   = cn.Execute(mySql);
 var select = document.getElementById("selYYB");
 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; }
  rs.MoveNext();
 }
 rs.Close(); rs = null;
 cn.Close(); cn = null;
 Tbl_disp();
}
/* ==================================================
  一覧表の設定
===================================================== */
function Tbl_disp() {
 var cn = new ActiveXObject("ADODB.Connection");
 cn.Open("Driver={Microsoft Access Driver (*.mdb)};DBQ=" + mdb);  // <== ODBC接続
 var mySql = "SELECT 予約ID,format(来店時刻,'HH:MM'),お客様名,人数,状況 FROM ご予約";
 mySql  += " WHERE 予約日 = #" + yyb + "# ORDER BY 来店時刻 DESC";
 var table = document.getElementById("tbdy1");
 var rs = cn.Execute(mySql);
 var tmp = "";
 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_RecPage(' + tmp + ')">' + rs(2).value + '</a><div>';
  cell4.innerHTML = rs(3).value;  // 人数
  cell5.innerHTML = rs(4).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;
 window.resizeTo(haba,425);
}
/* ==================================================
  コース選択肢の設定
===================================================== */
function set_selOdr() {
 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_NewRec() {
 window.resizeTo(775,425);
 document.getElementById("frm1").style.display="none";
 document.getElementById("frm2").style.display="block";
 var now = new Date();
 document.getElementById("yyk").value = set_NewOdr(now);   // 予約ID
 document.getElementById("yyb").value = toLocaleString(now); // 予約日
 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("os3").value = 0;          // オーダー3数
 document.getElementById("os4").value = 0;          // オーダー4数
 document.getElementById("os5").value = 0;          // オーダー5数
 document.getElementById("bko").value = "";         // 備考
 document.getElementById("tan").value = tan;         // 受付担当
 document.getElementById("ukj").value = toLocaleString(now) + " "
                    + now.getHours() + ":" + now.getMinutes(); // 受付時刻
 document.getElementById("登録").disabled = false;
 document.getElementById("更新").disabled = true;
}
/* ==================================================
  新予約番号の算定
===================================================== */
function set_NewOdr(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){
  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";
  }
 } else {
  yyk = "AA-" + mmdd + "-001"; // 接頭語固定でセット(初期値:仮AA)
 }
 rs.Close(); rs = null;
 cn.Close(); cn = null;
 return yyk;
}
/* ==================================================
  一覧表への復帰
===================================================== */
function go_ListPage() {
 window.resizeTo(1000,425);
 document.getElementById("frm1").style.display="block";
 document.getElementById("frm2").style.display="none";
 var table = document.getElementById("tbdy1");
 while( table.rows[ 0 ] ) table.deleteRow( 0 );
 Tbl_disp();
}
/* ==================================================
  一覧表の再表示(予約日切替)
===================================================== */
function go_ReLoad() {
 window.resizeTo(1000,425);
 yyb = document.getElementById('selYYB').options.value;
 var table = document.getElementById("tbdy1");
 while( table.rows[ 0 ] ) table.deleteRow( 0 );
 Tbl_disp();
}
/* ==================================================
  更新画面の表示
===================================================== */
function go_RecPage(yyk) {
 window.resizeTo(775,425);
 document.getElementById("frm1").style.display="none";
 document.getElementById("frm2").style.display="block";
 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
 document.getElementById("yyb").value = rs(0).value;   // 予約日
 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("bko").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("登録").disabled = true;
 document.getElementById("更新").disabled = false;
}
/* ==================================================
  登録処理
===================================================== */
function func_insRec() {
 var cn  = new ActiveXObject("ADODB.Connection");
 cn.Open("Driver={Microsoft Access Driver (*.mdb)};DBQ=" + mdb);
 var mySql = "INSERT INTO ご予約 VALUES(";
 var tmp = "";
 yyk = document.getElementById('yyk').value; mySql += "'" + yyk + "'"; // 予約ID
 tmp = document.getElementById('yyb').value; mySql += ",'" + tmp + "'"; // 予約日
 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('bko').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;
}

// 以下溢れたので、コメントへ続く
Comments (6)
この記事をはてなブックマークに追加