【Sencha ExtJs Modern】Gridの列を通貨形式で表示する方法

Gridの列上で日本円の通貨形式で表示するサンプルを実装してみました。
「renderer」に表示形式をセットする処理を埋め込んで実装しています。

Ext.application({
    name: 'Fiddle',

    launch: function() {
        var store = Ext.create('Ext.data.Store', {
            fields: ['name''email''phone'],
            data: [{
                'name''橋元',
                'email''hashimoto@xxx.com',
                'phone''55-3434-3434',
                'salary''5'
            }, {
                'name''小西',
                'email''konishi@xxx.com',
                'phone''33-3434-3434',
                'salary''8500000'
            },{
                'name''ポク田ポーク',
                'email''pork@xxx.com',
                'phone''55-3434-3434',
                'salary''999999999'
            }]
        });

        var grid = Ext.create('Ext.grid.Grid', {
            title: '名簿',
            store: store,

            columns: [{
                text: '名前',
                width: 100,
                dataIndex: 'name',
                renderer: function(value, record, dataIndex, cell, column) {
                    console.log(value);
                    console.log(record.get('email'));
                    if (value == 'ポク田ポーク')
                        cell.element.dom.style.backgroundColor = "#99ccff";
                    else
                        cell.element.dom.style.backgroundColor = "#ccffcc";
                    return value;

                }
            }, {
                text: 'Email',
                width: 200,
                dataIndex: 'email'
            }, {
                text: '電話番号',
                width: 100,
                dataIndex: 'phone'
            }, {
                text: '給料',
                textAlign: 'right',
                width: 150,
                dataIndex: 'salary',
                align: 'right',
                renderer: function (value, record) {
                    var tmp = Ext.util.Format.number(value, '0,000');
                    if (tmp != '') {
                        var tmp = "¥" + tmp;
                    }
                    return tmp;
                    //return Ext.util.Format.currency(value, "¥");
                }
            }],
            fullscreen: true,
            renderTo: Ext.getBody()
        });
    }
});



以下にデモ&ソースがあるので参考にしてみて下さい。
デモ&ソース

Sencha ExtJs Modernで通貨入力のカスタムフィールドを実装

日本円の通貨入力のカスタムフィールドを実装してみました。
Ext.application({
    name: 'Fiddle',

    launch: function () {
        console.log('start.');

        Ext.define('User', {
            extend: 'Ext.data.Model',
            fields: [{
                name: 'phone',
                type: 'auto'
            }],

        });

        var panel = Ext.create('Ext.form.Panel', {
            fullscreen: true,
            focusable: false,
            items: [{
                xtype: 'fieldset',
                title: '通貨フィールドSample(日本円)',
                items: [{
                    xtype: 'currency-field',
                    label: '金額',
                }]
            }]
        });

    }
});

Ext.define('Ext.ux.field.CurrencyField', {
    extend: 'Ext.field.Text',
    xtype: 'currency-field',

    textAlign: 'right',

    statics: {
        PREFIX : '¥'
    },
    
    initialize: function() {
        this.callParent(arguments);
    },

    /**
     * カンマと¥を除去して値を取得
     */
    getValue : function() {
        var str = String(this.callSuper());
        if (str) {
            var num = parseFloat(str.replace(/[^\d\.-]/g,''));
            num = isNaN(num) ? '' : num
            return num;
        }
        return '';
    },

    /**
     * フォーカスを失った時にカンマと¥を付与
     */
    onBlur : function(obj, e, eOpts ) {
        var str = String(this.getValue());

        var tmp = Ext.util.Format.number(str, '0,000');
        if (tmp !== '') {
            var tmp = this.self.PREFIX + tmp;                    
        }
        this.setValue(tmp);
        return this.callSuper(arguments);
    },

    /**
     * フォーカスを得た時にカンマと¥を除去
     */
    onFocus: function (obj, e, eOpts) {
        this.setValue(this.getValue());
        return this.callSuper(arguments);
    }
});


以下にデモ&ソースがあるので参考にしてみて下さい。
デモ&ソース

Markdownの表中に改行を挿入


|名前|
|---|
|hoge<br/>foo|
名前
hoge
foo


MX Compornentで提供される主要なコントロール

このMX Compornentですが旧バージョンも含めてインストールされるので、何を使えば良いか迷うことがあるので、下表にまとめてみました。 是非、参考にして下さい。

コントロール名バージョン説明
ActUtlType4.00APLC通信用のActiveXコントロール。
通信設定ユーティリティを使用して、プログラムを作成する場合に使用する。
ActProgType4.00APLC通信用のActiveXコントロール。
通信設定ユーティリティを使用しないで、プログラムを作成する場合に使用する。
ActEasyIF3PLC通信用のActiveXコントロール。
4.00Aが最新なので特に理由がない限りは使用しなくてよい。
ActSupportMsg4.00AMX Componentの各コントロールが返すエラーコードの該当メッセージを取得するためのActiveXコントロール。
ActSupport4.00AMX Componentの各コントロールが返すエラーコードの該当メッセージを取得するためのActiveXコントロール。
4.00Aが最新なので特に理由がない限りは使用しなくてよい。
DotUtlType4.00AActUtlTypeの.Net移植コントロール。.Net Framework2.0用なので要注意。
DotSupportMsg4.00AActSupportMsgの.Net移植コントロール。.Net Framework2.0用なので要注意。

※通信設定ユーティリティとは、PLCの接続先をウィザード形式で設定できるツールです。 これを利用しない場合は、通信に必要ないくつかの情報をプログラム内にパラメタとして指定する必要があります。

ちなみに、私が開発する時は、「ActUtlType」、「ActSupportMsg」を利用しています。

MX Compornent(体験版)のダウンロードはこちらから

厳選 Visual Studioの便利なショートカット

  エラー箇所にジャンプ 「Ctrl + Shift + F12」 ブレークポイント 設定/解除 「F9」 有効化/無効化 「Ctrl + F9」 ViEmu特有 「:ls」:バッファナンバーのリストを表示。 「:b2」:バッファ2のファイルを開く。 「:n」:次のバッファのファ...