Javaスクリプトの応用のメモです。

文字・数値の変換関数  eval,string

Javascriptは、変数の型は結構アバウトなのですが、直さないとエラーになる場合があります。

文字を数値に =eval(文字型)   数値を文字に =String(数値)

数値の切捨て   Math.floor

=Mah.floor(小数を含む数値)  で、切り捨てて整数にできます。

=1000*Math.floor(数値/1000)  で、1000未満切捨てです。

=100*Math.floor(数値/100 + 0.5 )  で、10の位を四捨五入できます。

テキストボックス

 textbox のスタイル <input type="text"

テキストボックスは、スタイルシートを使うと、標準の形式から変えることができます。
<input type="text" name="**" size="***" style="ここにオプションを追加する">

背景をクリーム色にし、枠を消し、フォントサイズを12ptにし、右寄せ表示にし、日本語入力を解除します。 
Background-color:#FFFF80;border:0;font-size:12pt;text-align:right;ime-mode:inactive;

 フォーカスを与える

表示されたときのフォーカス初期位置を決めるには
<BODY  onload="document.フォーム名.テキストボックス名.focus();">

 エンターキィで、フォーカスを移動する

このためには、関数を2つ追加します。また、一つを起動時に実行させ、一つを <input のonactive=  で実行します。

window.document.onkeydown = goNext;  //起動時に実行する関数を goNext に指定します。
var nextTAB = "";  // 移動先のテキストボックスの名前を保持しておく変数を定義します。

function setNext(strName){nextTAB = strName;}; // 次の移動先を指定する関数で、onactive でセットします。
//次の関数で、enterキィが押されたときに、nextTABに入っているnameのテキストボックスに移動します。
function goNext(){ 
if (event.keyCode == 13){
if(nextTAB != ""){
if(document.kakutei.elements(nextTAB)){document.フォーム名.elements(nextTAB).focus();};}
};};

* これは、IEのみ動くパターンです。

 入力内容が変更されたときに実行する関数を指定するには

onchange = "関数名" のオプションで実行できますが、入力はタブを移動したときに確定します。

*きちんと勉強してから使うより、使いながら覚える方が分かりやすい、ということもあります。エラーは、ブラウザで表示されるので、気楽に使ってみるのも良いと思います。エラーの原因が分からないとき、参考にしてください。

変数の扱い

 基本的に、変数は定義無しで使えます。グローバル変数にしたいときは、functionの外で var で宣言します。functionの中だけで使うときは、いきなり値を代入して使って構いません。
 この変数を、Javaスクリプトの外で使いたいとき(HTML文の中)は、formを作ってform変数のvalueに代入します。イメージファイルの名前だけは、直接渡すことが出来ます。この場合は、document.writeで書き出します。その他、style文の要素もjavascriptで書き換えられるようです。

データベースを開く

Javascriptで、Accsessのデータベースを開くことができます。

 database = new ActiveXObject("ADODB.Connection");  で変数セットを定義し
 database.Open("Driver={Microsoft Access Driver (*.mdb)}; DBQ=y:\\SampleDB010.mdb;"); でmdbファイルを指定します。このときのパスの書き方に注意して下さい。¥は\\と2個続けて書きます。
ネットワーク上のパスを指定する場合は、\\\\Pcname\\フォルダ名\\ファイル名のように、先頭は4個必要です。

 var mySql = "select * from T01Prefecture order by PREF_CD";
var recordSet = database.Execute(mySql);

var tempHtml="";
document.getElementById("disp").innerHTML = "";
while (!recordSet.EOF){
tempHtml = tempHtml + recordSet(0) + ":" + recordSet(1) + "<br />";
recordSet.MoveNext();
}
document.getElementById("disp").innerHTML = tempHtml;
recordSet.Close();
recordSet = null;
 

日報閲覧で使ったテクニック

起動時のwindowサイズを指定する

window.resizeTo(620, 720); // ウィンドウサイズ設定
window.moveTo(200,2); // ウィンドウ位置指定

innerHTML    (場所を指定してdocument.writeを実行できる)

html内に、<div id="Disp1">   </div>で場所を指定する
 var tempHtml="";
document.getElementById("Disp1").innerHTML = "";  //文字列変数をクリアして、表示をクリア
tempHtmlにhtml文をセットして、 document.getElementById("Disp1").innerHTML = tempHtml を実行

オブジェクトを変数の番号で指定

document.checkB.C[nb].checked=true;document.checkB.C[nb].disabled=true
フォームcheckBのname="C" のチェックボックスがいくつかあり、このcheckedとdisableを、変数nbを指定して設定する。nbは0から自動で設定されるindex番号で、nameには=[C1]のようには指定しない。

オブジェクトの値を指定

document.form2.sycmnt.value = "" は、form2のテキストボックスsycmntの中身をクリア
document.form2.sypass.focus() は、同じくsypassにフォーカス移動