2015年3月31日火曜日

Hyper-vでPHP開発環境を作成

Hyper-vでPHP開発環境を作成

WindowsでXAMP環境でPHP開発環境を作成していたが
本番のHostOSがUnix系なので、ファイル名の大文字小文字で動作しない現象が多発しました。

やっぱり、Hyper-vでUnix系OSにPHPファイルを置いて、開発しないといけないので
FreeBSD+ZFS+Sambaで構築しようと思う

GUI要らないし

2015年3月27日金曜日

kendo ui datasource sort

                                    var dataSource = new kendo.data.DataSource({
                                        transport: {
                                            read: { url: "./data/repairdata.php", type: "GET", datatype: "json" }
                                        },
                                        batch: false,
                                        schema: {
                                            data: 'data',
                                            total: 'total'
                                        },
                                        pageSize: 10,
                                        sort: {
                                            field: "ReceiveDate", dir:"desc"
                                        },
                                    });

2015年3月26日木曜日

kendo ui use template + datasource + PHP datasourceresult

kendo ui と kendo のtemplate機能 データをphpのdatasourceresultから取得する

sample sourceから実行するが、ことごとくNG
理由: PHPのdatasourceresultのjsonにtotalがあるから

従って、datasourceのschemaにdataを設定する必要がある

    <div id="details"></div>

    <script type="text/x-kendo-template" id="template">
        <h3 style='text'>修理詳細</h3>

        <table>
            <tr>
                <td>
                </td>
            <tr>
        </table>

            #= RepairNo #

    </script>
  
    <script>
            var template = kendo.template($("#template").html());

            var dataSource = new kendo.data.DataSource({
                transport: {
                    read: { url: "./data/RepairdataDetail.php?id=" + vId, type:"GET", datatype: "json" }
                },
                batch: false,
                schema: {
                    data: 'data'
                }
            });

            dataSource.bind("change", function () {
                $("#details").html(kendo.render(template, dataSource.data()));
            });

            dataSource.read();
        });
    </script>

オレンジ色した部分がミソ
1.datasourceのschemaにdataを指定すること
2.datasourdceのデータをbindするには、viewではなく、dataだった

2015年3月23日月曜日

Teleirk kendo grid select item

$("#grid").kendoGrid({
    dataSource: {
        type: "odata",
        transport: {
            read: "http://demos.kendoui.com/service/Northwind.svc/Orders"
        },       
        pageSize: 10,
        serverPaging: true        
    },
    height: 250,    
    pageable: true,
    selectable: "row multiple",
    columns: [
        "OrderID",
        "Freight",        
        "ShipName",                            
        "ShipCity"        
    ],
    change: function() {   
        var text = "";
        var grid = this;                
        
        grid.select().each(function() {
            var dataItem = grid.dataItem($(this));
            text += "OrderID: " + dataItem.OrderID + "\n";
        });
        
        alert(text);
    }        
});

kendo ui grid column 非表示

kendo ui grid column 非表示

<div id="grid"></div>
<script>
$("#grid").kendoGrid({
  columns: [
    { hidden: true, field: "id" },
    { field: "name" }
  ],
  dataSource: [ { id: 1, name: "Jane Doe" }, { id: 2, name: "John Doe" } ]
});
</script>

telerik kendo ui set a theme

telerik kendo ui のテーマを設定する方法

初期値
<html>
<head>
    <link rel="stylesheet" href="[file path]/kendo.common.min.css" />
    <link rel="stylesheet" href="[file path]/kendo.default.min.css" />
</head>
 
これをシルバーのテーマに変更する場合は 
    <link rel="stylesheet" href="./styles/kendo.common.min.css" />
    <link rel="stylesheet" href="./styles/kendo.silver.min.css" />

defaultの箇所をsilverに変更する

2015年3月20日金曜日

kendo wapper PHP DataSourceResultの接続文字列設定

kendo wapper PHP DataSourceResultの接続文字列設定

DataSourceResultのソースを見るとデータベースに接続する方法が
PDOになっている。

従って、PDOと同じ文字列を設定すればOK

     $result = new DataSourceResult(
'mysql:host=yourhost;dbname=yourdb;charset=utf8'
,
'user', 'password');


Kendo UI Wapper PHP DatasourceResult read and filter

PHP source



    $result = new DataSourceResult(DB_STRING, DB_USER, DB_PASSWORD);

    $columns = array('RepairNo','ReceiveNo','Status','UnitName','SubUnitName','SerialNo',
                     'EstimateRequestDate','EstimateAnswerDate','ReceiveDate','ShipDate',
                     'Transporter','TransportNo','RepairAmount','AcceptDate','CustomerCd','AccountCd');

    //セッションの顧客CDを条件とする
    $result->field = 'CustomerCd';
    $result->operator = 'eq';
    $result->value = $_SESSION['customercd'];
    //    $result->value = '010010';

    $result->filter = $result;

    $result = $result->read('repairdata', $columns, $result);

    header('Content-Type: application/json');
    echo json_encode($result, JSON_NUMERIC_CHECK);


DataSourceResultのクラスにfilterメソッドが有り
そのfilterメソッドに値を設定することで、SQL のwhere句が生成されるようです。

2015年3月12日木曜日

WPFのWindow表示でTelerikのComboBOXが表示されない

現象
WPFのWindow表示でTelerikのComboBOXが表示されない

原因
XAMLのmerginが原因らしい

対応
stackpanelを追加して、comboboxのmerginはすべて0にした

2015年3月9日月曜日

C# オブジェクトのメンバ情報とメンバの値を動的に取得する

WPFのTelerik GridViewがclassからデータ表示になっている
データがMVVM方式でclassからデータを流し込むので
Cellの位置は取得出来ないらしい  GetIndexとかの関数が無かった

仕方ないので、Telerik.Windows.Controls.GridViewCellInfo s = GridView1.SelectedCells[0];
上記より、選択した行のデータを取得後
var c = s.Column;  でカラム情報を取得
 var item = (ATR_ScheduleView)s.Item;

g作業者ID = GetItem(item, typeof(ATR_ScheduleView), c.Header);

   private string GetItem(object targetobj, Type t, string iName) {

            string vValue = "";

            //using System.Reflection;が必要
            //メンバを取得する
            MemberInfo[] members = t.GetMembers(
                BindingFlags.Public |
                BindingFlags.Instance |
                BindingFlags.DeclaredOnly);

            foreach (MemberInfo m in members) {
                //メンバの型と、名前を表示する
                //メンバの型がプロパティなら
                if (m.MemberType.ToString().Equals("Property") && m.Name == iName) {

                    PropertyInfo pr = t.GetProperty(m.Name);
                    object resobj = pr.GetValue(targetobj, null);

                    vValue = resobj.ToString();
                }
            }
            return vValue;
        }

取得した行データ(item)のヘッダ位置から選択したcellの値を取得