読者です 読者をやめる 読者になる 読者になる

satymale’s diary

日々の忘備録

IIJMioに乗り換えました。

10年近くdocomoを利用していましたが、最近の格安SIMの環境が充実してきた事と、2年の契約更新月になったこと、大手キャリアの不親切な月々のプランに嫌気が指して、初めてIIJMioに乗り換えました。

まずは月に3GB(900円)と、通話(700円)の1600円で様子見です。

MNP転出すると、すぐに通信ができなくなると思っていたので、新しいSIMが来るまでスマホが使えないのを覚悟していたのですが、MNP転入した時に使えなくなるのを初めて知りました。
あと身分証明で運転免許証の写真をアップロードする必要があったのですが、表面だけしかアップロードしてなくて再アップロードが必要になったので、裏面も忘れずに。

次はSIMフリースマホEXPANSYSで買ってみたいなと思います。

Install the correct version of SQL Server Compact. Refer to KB article 974247 for more details.

SQLServerCE Azure

AzureでSQLServerCEを使おうとしたら、サーバーエラーで動かなかったので忘備録がてらメモ。

プロジェクトの構成

プロジェクトの構成は以下の通り。

Mainプロジェクト(ControllerやViewが含まれている)
    ↓参照
Domainプロジェクト(RepositoryやEntity、SQLServerCEのパッケージが含まれている)

エラーの調査

f:id:satymale:20160709224157p:plain

デバッガーのアタッチで、Azureにデプロイしたアプリケーションをデバッグ

以下のようなエラーメッセージが出ていた。

Unable to load the native components of SQL Server Compact corresponding to the ADO.NET provider of version 8876. 
Install the correct version of SQL Server Compact. Refer to KB article 974247 for more details.

NativeBinariesが読み込めていない

packagesのMicrosoft.SqlServer.Compact内にあるNativeBinariesのx86フォルダ内にあるdllが、デプロイに含まれていないと、上記のエラーが出る。
NativeBinariesのx86フォルダをAzureに発行すると、上記のエラーは出なくなり問題なく実行できる。

Multi Selectsの初期選択

w2ui1.4.3

FormのMulti Selectsの初期選択は以下の記載を元にselectedにて指定していたのですが、初期選択表示されませんでした。

$('#enum').w2field('enum', { 
    items: people,
    openOnFocus: true,
    selected: [{ id: 0, text: 'John Adams' }, { id: 0, text: 'Thomas Jefferson' }]
});

ソースを読んでみると、recordの値でselectedが上書きされていました。
なので次のように設定するとデフォルト値として表示されます。

 $('#form').w2form({ 
    name     : 'form',
    url      : 'server/post',
    header   : 'Field Types',
    formURL  : 'data/form.html', 
    fields: [
        { field: 'field_enum', type: 'enum', openOnFocus: true, options: { items: [{ id: 0, text: 'Adams' }, { id: 1, text: 'Johnson' }] } },
    ],
    record : {
        field_enum : [{ id: 0, text: 'Adams' }]
    }
});

Gridの編集制御

w2ui1.4.3

例えば、権限を持っていないユーザには行の編集をさせたくないという事がある。
そういう場合は、onEditFieldを使う。

$('#grid').w2grid({
    name : 'grid',
    columns: [                
        { field: 'recid', caption: 'ID', size: '50px' },
        { field: 'lname', caption: 'Last Name', size: '30%' },
        { field: 'fname', caption: 'First Name', size: '30%' }
    ],
    onEditField: function (event) {
        if (権限がない場合) {
            // 編集イベントをキャンセル
            event.preventDefault();
        }
    }
});

生活不活発病のセミナーに行ってきた

妻の付き添いで大川弥生Drの生活不活発病のセミナーに行ってきました。

妻は先生の書籍を読んでいたそうですが私は完全に興味がなく、付き添いで参加するだけの予定で、事前の予習もせずノートも持って行きませんでした。 セミナーを聞いている中でノートを持って来なかった事を後悔しましたが、そういう素人に向けてのセミナーという事で生活不活発病とはどういうものなのかという事を知識として知っておくだけでも、このセミナーに来て頂いた意味があるとのことで、忘れないうちにメモを残そうと思います。

将来、両親の介護など考える必要があるので、知っておいて損はない知識だと思います。

生活不活発病とは

様々な要因によって、社会参加が疎遠になり、それによって日常的な活動が減り、その結果身体的な機能に支障をきたしてしまう事を生活不活発病と呼んでいるそうです。

作られた寝たきり

実際の家庭でありがちな生活不活発病が、作られた寝たきりです。

子供と同居したことにより、

  • 参加:今まで住み慣れていた土地から移ることによってコミュニティから遠ざかる。
  • 活動:コミュニティから遠ざかった事によって知り合いや友達が居らず、家からあまりでなくなる。
  • 身体機能:徐々に歩けなくなっていく。

また、家の中でも家事等を子供夫婦が行うことにより、

  • 参加:家庭内の役割分担から離れる。
  • 活動:家事をする必要がなくなったので、座ったり横になってばかり。
  • 身体機能:体が硬くなっていく。

と、段々と身体機能が低下していってしまいます。

生活不活発病というものがあるということを知らないために、この身体機能の低下の原因を歳を取ったからと勘違いして、改善する機会を失ってしまうという事が多いそうです。

補完的な介護より、良くする介護

上記のように何かを行う時に、代わりにやって負担を軽くする介護では、身体機能の低下を招くので、より良く行えるやり方を教えて極力自分で行えるようにするという新しい介護のレベルに入ってきているそうです。

最後に

1時間30分という短い時間の中でのセミナーということで、詳しいことは書籍を参照してくださいという形でした。 幸いにも妻が書籍を持っているので借りて読んでみようと思います。

行の編集後の値を取得するにはonCompleteにて

w2ui1.4.3

w2uiで行の編集を行われた事を検知するイベントは以下のように記述する。

$('#grid').w2grid({
    name : 'grid',
    columns: [                
        { field: 'recid', caption: 'ID', size: '50px' },
        { field: 'lname', caption: 'Last Name', size: '30%' },
        { field: 'fname', caption: 'First Name', size: '30%' }
    ],
    onChange: function (event) {
        // 変更があった時に呼ばれる。
    }
});

ただし、onChangeは変更がキャンセル出来るように変更が完了する前に呼び出されるためrow.changesには変更した箇所が設定されていない。

onChange: function (event) {
    // 変更があった行をrecidから取得
    var row = w2ui['grid'].get(event.recid);
    // 変更箇所を行にマージ(したいが期待した結果にはならない)
    var chgRow = $.extend(row, row.changes);
}

変更が行われた場合に、変更箇所を取得するにはonCompleteに処理を記載する必要がある。 これで変更が完了した際に呼ばれるので、row.changesには変更箇所のプロパティと値が格納される。

onChange: function (event) {
    event.onComplete = function () {
        var row = w2ui[id].get(event.recid);
        // 変更箇所を変更前の行にマージ
        var chgRow = $.extend(row, row.changes);

        // 変更後の行を使ってごにょごにょ
    };
}