商品在庫管理を作る-XPagesに組み込んでみた1-

商品在庫管理を作る-調査編-

 

こんばんはニヒヒ

 

前回、バーコードを作成し画像を保存するところまでご紹介しましたウインク
実際の裏側について説明したいと思います拍手

 

今回の改修場所、まず1か所目真顔

出力スクリプトコントロールです。

 

出力スクリプトコントロールの中身は以前ページにコピペしたHTMLタグの<script>部分になります。

 

まずは、以下のfunction内にあるJQueryをXPagesで解釈できる形にしなければなりません。

  • generateBarcode()
  • showConfig1D()
  • showConfig2D()
  • clearCanvas()
  • function()

普通通りにソースで確認すると・・・

「view:_id1:_id3:barcodeValue」!?!?

何だこれ??となっていると思います。
(人によってはview:_id1:_id2:barcodeValueだったり、view:_id1:_id8:barcodeValueだったりマチマチ)

 

これでは、idやnameの統一ができないじゃないかゲロー

というわけで打開策ネタを探しておりました・・・

 

そして見つけましたよ!

※すいません、勝手にリンク貼っちゃいました。問題あればすぐに削除します。

 

//function is called using x$("#{id:inputText1}", " parameters").
  
function x$(idTag, param){ //Updated 18 Feb 2012
   idTag=idTag.replace(/:/gi, "\\:")+(param ? param : "");
   return($("#"+idTag));
}

 

でも、自分はこれを使いませんでしたチーン

function追加するのが面倒だったのでww

 

それでほかにも探した結果、とっても簡単な方法を見つけました笑い泣き

(使えるかどうかは検証してください)

 

https://xomino.com/2012/03/09/x-reference-examples/

 

このページの一番下にあるじゃないですかびっくり

Selecting a field by attribute with wildcard (no x$)

 

と、いうことで↑こちら↑を使わせていただきました。

 

 

これらの

  • generateBarcode()
  • showConfig1D()
  • showConfig2D()
  • clearCanvas()
  • function()

functionに使用されているIdやname要素の変換を行いますビックリマーク

一例として「generateBarcode()」functionの変換例を載せておきます。

function generateBarcode(){
        var value = $("[name$=barcodeValue]").val();
        var btype = $("[name$=btype]:checked").val();
        var renderer = $("[name$=renderer]:checked").val();

        var quietZone = false;
        if ($("#quietzone").is(':checked') || $("#quietzone").attr('checked')){
          quietZone = true;
        }

        var settings = {
          output:renderer,
          bgColor: $("[name$=bgColor]").val(),
          color: $("[name$=color]").val(),
          barWidth: $("[name$=barWidth]").val(),
          barHeight: $("[name$=barHeight]").val(),
          moduleSize: $("[name$=moduleSize]").val(),
          posX: $("[name$=posX]").val(),
          posY: $("[name$=posY]").val(),
          addQuietZone: $("[name$=quietZoneSize]").val()
        };    

        
        if (renderer == 'canvas'){
          clearCanvas();
          $("[name$=barcodeTarget]").hide();
          $("[id$=canvasTarget]").show().barcode(value, btype, settings);
        } else {
          $("[name$=canvasTarget]").hide();
          $("[id$=barcodeTarget]").html("").show().barcode(value, btype, settings);
        }
      }

※あくまで一例です。XPagesの構成に合わせて変換してください。

 

同じように、残りのfunctionのIdやnameを変換していきます。

出力スクリプトに関してはこれで改修は完了です。

 

次の改修場所はまた今度てへぺろ

 

長くなってきたので今日はこの辺でお月様

 

あでゅーパー