- OpenLaszlo紹介
- プログラム構造関連
- スクリプト
- Javascript基礎
- 基礎知識
- ビュー<view>
- レイアウト
- 動かす
- 入力デバイス
- 文字
- 数値
- 日付
- オブジェクト指向
- 標準コンポーネント
- データの扱い
- データ操作(基礎)
- 応用編
–
文字を入力するとバーコードを生成します。といっても単にバーコードフォントを表示しているだけ(^^)なので、技術的にはこれといって何の変哲もなし。このサンプルでのバーコードはCODE39なので、入力文字はそれに対応した英数字記号のみ有効です。
私はバーコードそのものは詳しくないので、そこは追求しないようにお願いします(^^;)。
| CODE39で使える文字(合計43個) | ||
|---|---|---|
| 数字 | 0~9 | 10個 |
| アルファベット | A~Z | 26個 ※小文字で入力しても大文字に変換されます |
| 記号 | - . 空白 $ / + % | 7個 |
| ※スタート/ストップビットコードはどちらも * で、バーコードの前後に * が1個ずつ自動付加されます 例) 12345 は *12345* ※表示スペースの関係で入力は9文字まで |
||
※バーコードフォントCODE39.ttfは株式会社テクニカルが無償提供しているものを利用しています。
<?xml version="1.0" encoding="UTF-8"?> <canvas proxied="false" width="440" height="200" bgcolor="0xffffff"> <font name="barcode" src="CODE39.ttf"/> <method name="print" args="v"> var p = new PrintJob(); if(p.start()){ p.addPage(v.getMCRef(),{xMin:0,xMax:550,yMin:0,yMax:800}); p.send(); } delete p; </method> <class name="dispBarcode" yoffset="-10"> <attribute name="ed" type="string"/> <attribute name="print" type="boolean" value="false"/> <text x="7" font="barcode" fontsize="30"> <handler name="oninit"> this.disp(); if(classroot.print)this.setAttribute('fontsize',18); </handler> <handler name="onkeyup" reference="global[classroot.ed]"> this.disp(); </handler> <method name="disp"> var e = global[classroot.ed].getText(); if(e==""){ this.clearText(); parent.txt.clearText(); }else{ this.setText("* " + e + " *"); parent.txt.setText(this.text); } </method> </text> <text name="txt" x="20" y="26" fontsize="15" fgcolor="0x555555"> <handler name="oninit"> if(classroot.print){ this.setAttribute('fontsize',8); this.setAttribute('y',18); } </handler> </text> </class> <view bgcolor="0x999999" width="${canvas.width}" height="${canvas.height}"> <hbox align="center" valign="middle" spacing="15"> <!-- 入力エリア --> <vbox spacing="10"> <text fgcolor="0xffffff" fontsize="15"><b>▼コード入力</b></text> <edittext id="ed1" maxlength="9" pattern="[0-9A-Z-. $/+%]*" >SAMPLE123</edittext> <edittext id="ed2" maxlength="9" pattern="[0-9A-Z-. $/+%]*" /> <edittext id="ed3" maxlength="9" pattern="[0-9A-Z-. $/+%]*" /> <view> <button onclick="canvas.print(printarea)">印刷</button> <button align="right" onclick="help.show.doStart()">ヘルプ</button> </view> </vbox> <!-- 表示エリア --> <vbox yoffset="-5" width="290" height="170" bgcolor="0xffffff" spacing="7" clip="true"> <dispBarcode ed="ed1"/> <dispBarcode ed="ed2"/> <dispBarcode ed="ed3"/> </vbox> </hbox> </view> <!-- ヘルプ --> <window id="help" title="ヘルプ" y="-210" width="310" height="200" closeable="true" > <animator name="show" attribute="x" to="125" duration="1" start="false" onstop="parent.show2.doStart()"/> <animator name="show2" attribute="y" from="-210" to="2" duration="900" start="false"/> <method name="close"> this.animate('y',-210,500,false); </method> <vbox> <text><font color="#0000ff"><b>CODE39で使える文字</b></font>(合計<b>43</b>個)</text> <vbox x="10"> <text>・数字(<font color="#ff0000"><b>0~9</b></font>):<b>10</b>個</text> <text>・アルファベット(<font color="#ff0000"><b>A~Z</b></font>):<b>26</b>個</text> <text x="10" fontsize="11" fgcolor="0x555555">※小文字で入力しても大文字に変換されます</text> <text>・記号(<font color="#ff0000"><b>- . 空白 $ / + %</b></font> ):<b>7</b>個</text> </vbox> <text>※スタート/ストップビットコードはどちらも * で、</text> <text x="11">バーコードの前後に * が1個ずつ自動付加されます</text> <text x="20" fgcolor="0x555555"><b>例) 12345 は *12345*</b></text> <text>※表示スペースの関係で入力は9文字まで</text> </vbox> </window> <!-- 印刷エリア --> <view id="printarea" y="-1000" width="550" height="800" bgcolor="0xffffff" clip="true"> <vbox x="20" y="50" spacing="7" > <text fontsize="30">【 バーコードテスト印刷 】</text> <view height="20"/> <dispBarcode ed="ed1" print="true" /> <dispBarcode ed="ed2" print="true" /> <dispBarcode ed="ed3" print="true" /> <view height="20"/> <text>バーコードリーダーでたぶん読み取れます。</text> <text>でもやったことないのでわかりません。</text> <text>読み取れなかったらゴメンナサイ m(_ _)m</text> <view height="20"/> <text fgcolor="0x666666">バーコードフォントCODE39.ttfは株式会社テクニカルが</text> <text fgcolor="0x666666">無償提供しているものを利用しています。</text> <text fgcolor="0x666666">http://www.technical.jp/handbook/chapter-font1.html#font</text> </vbox> </view> </canvas>