VBScriptの代わりにJavascriptを使う

VBScriptとJavaScriptの両方が使える場合に、新規プロジェクトでVBScriptではなくJavaScriptを使う理由はいくつかあります。

  • JavaScriptはWebで広く受け入れられている
  • JavaScriptのスキルを持つ開発者の方がおそらく多い
  • VBScriptは安定しているが過去の言語とみなされている。それに対し、JavaScript言語向けの書籍やWebページが数多く存在する

それにもかかわらず、ある特定のタスク、特に、Windowsのシステム管理については、依然としてVBScriptが有力な選択候補になっています。

GuiXTコントロールを使用する場合、VBScriptとJavaScriptのどちらが適した言語であるかの判断はユーザーに任されます。GuiXTのキーワードのCallVBSはJavaScript関数を呼び出すことができます。”guixt”を使用すればJavaScriptからもGuiXT変数にアクセスしたりRFCコールを実行したりできます。

VBScriptはGuiXTコントロールのデフォルトの言語であるため、自分のライブラリやその一部がJavaScriptで実装されていることを示す必要があります。これは、Webページにおけるのと同じ方法で実現できます。</script>を用いて先行するVBScript セクションを閉じ(それが空である場合でも)、<script type=”text/javascript”>を用いてJavaScriptのセクションを開きます。

必要であれば、自分の実装においてVBScriptとJavaScriptを組み合わせ、お互いの関数を呼び出すことができます。唯一注意しなければならないのは、VBScriptとJavaScriptとの間で関数パラメーターとして配列を渡してはならないということです。

例として、チュートリアル10のチャートをJavaScriptで実装します。

GuiXTスクリプトおよびInputScriptsは全く同じです。今回JavaScriptで書かれたスクリプト関数は以下のようになります。

‘ Leave the VBScript section, start a JavaScript section 

</script><script type=“text/javascript”>

 

function generate_chart(img)

{

 

var cd =  guixt.CreateObject(“ChartDirector.API”);

 

// Set license code

cd.setLicenseCode(“xxxx-xxxx-xxxx-xxxx-xxxx-xxxx”);

 

 

// The data for the bar chart

var data = new Array();

var labels = new Array();

 

for (var k=1;k<=13;k++)

{

data.push(parseInt(guixt.Get(“chart.amount.”  + k)));

labels.push(guixt.Get(“chart.label.”  + k));

};

 

// The colors for the bar chart

var colors = new Array(0xb8bc9c,0xa0bdc4,0x999966,0xb8bc9c, 0xa0bdc4,0x999966,

                  0xb8bc9c,0xa0bdc4,0x999966,0xb8bc9c,0xa0bdc4,0x30cc30);

 

 

    // Create an XYChart object of size 800 x 320 pixels, golden background

var c = cd.XYChart(800, 460, cd.goldColor(), -1, 2);

 

// Add a title box using 12 point Arial Bold font

c.addTitle(guixt.Get(“chart.title”), “arialbd.ttf”, 12, 0x606060);

 

// Set the plotarea at (60, 40) and of size 720 x 360 pixels

c.setPlotArea(60, 40, 720, 360);

 

// Add a multi-color bar chart layer using the given data and colors

var layer = c.addBarLayer3(data, colors);

 

//  Use a 1 pixel 3D border for the bars

layer.setBorderColor(-1, 1);

 

// Set bar shape to circular (cylinder)

layer.setBarShape(cd.CircleShape);

 

// Enable bar label for the whole bar

layer.setAggregateLabelStyle();

 

// Set the labels on the x axis.

c.xAxis().setLabels(labels);

 

// Add a title to the y axis

c.yAxis().setTitle(“in thousands ?”);

 

 

// Output the chart

img.Picture = c.makePicture();

}