2013年2月24日星期日

随感记录

写报告时的感悟
最近在给上司写3个项目的阶段性报告,突然发现自己做了不少事,一直以来都是少说话,多做事,直到写报告的时候才发现做了不少事情,自豪一下。
读了两年半的博士,感觉很充实,做了很多职责范围内的事情不仅仅只是做研究,还带练习课,带学生论文,参加创新比赛,申请成立公司,写一个商业计划书,找资金,同时参与3个项目的开发,做分外之事的同时也学到很多新的东西,接触了很多新的领域。一直以来都是以开放的心态去尝试各种机会,两年的努力,最近得到了一些不错的机会。


移动商业智能(BI)软件应用
刚刚和在某知名IT质询公司的校友通了一个多小时的电话,现在移动商业智能(BI)软件应用很火热,在最近几年会持续一阵子。大部分的公司还是处于走向移动商业化的探索路程中,执行和实现公司商业移动策略的过程中,存在了很多的商机。


在的失败软件项目中掘金
今天和一个在德国北部创业的校友通了电话,今天打了不少电话,其实很有目的性,了解和交换了不少信息,同时也碰撞出不少好主意,譬如在的失败软件项目中掘金这个主意。


项目的解决方案
还是和一个学长的通话,了解提供项目的解决方案的重要性和其盈利前景,受益匪浅。

2013年2月5日星期二

如何在SlickGrid中使用json

SlickGrid: https://github.com/mleibman/SlickGrid真是一个很不错的快速,轻量的表格控件js库。

在它上面使用json也是很方便的,employees.php:

function get_json(&$dyn_event) {
    $query = mysql_query("SELECT *  FROM `users` WHERE `type` = '0'");

    $i = 0;
    while ($row = mysql_fetch_array($query, 0)) 
    {
        $dyn_event[$i]['ID'] = $row["12"];
        $dyn_event[$i]['firstname'] = $row["3"];
        $dyn_event[$i]['lastname'] = $row["4"];
10         $dyn_event[$i]['email'] = $row["5"];
11         $dyn_event[$i]['account'] = '10';
12         $dyn_event[$i]['start'] = '01/01/2013';
13        
14         $i++;
15     }
16
17     return true;
18 }
19
20 function output_json_employees() {
21     $array_json = array();
22     get_json($array_json);
23     echo str_replace('\/','/',json_encode($array_json));   
24 }

我们所需要保证的是输出的格式为:

1 "ID:0,firstname:Patricle,lastname:Jane,email:jane@test.com,account:10,start:01/01/2013"

employees_manage.php,中的js代码,其中最重要的是第29和30行,调用employees.php中输出json的function-output_json_employees()给js变量data:

<script>
  function requiredFieldValidator(value) {
    if (value == null || value == undefined || !value.length) {
      return {valid: false, msg: "This is a required field"};
    } else {
      return {valid: true, msg: null};
    }
  }

10   var grid;
11   var data = [];
12   var columns = [
13     {id: "ID", name: "ID", field: "ID", width: 120, cssClass: "cell-title", editor: Slick.Editors.Text, validator: requiredFieldValidator},
14     {id: "firstname", name: "Firstname", field: "firstname", width: 100, editor: Slick.Editors.LongText},
15     {id: "lastname", name: "Lastname", field: "lastname", width: 100, editor: Slick.Editors.LongText},
16     {id: "email", name: "Email", field: "email", width: 200, editor: Slick.Editors.LongText},
17     {id: "account", name: "Account", field: "account", minWidth: 140, editor: Slick.Editors.LongText},
18     {id: "start", name: "Start", field: "start", minWidth: 140, editor: Slick.Editors.Date},
19   ];
20   var options = {
21     editable: true,
22     enableAddRow: true,
23     enableCellNavigation: true,
24     asyncEditorLoading: false,
25     autoEdit: false
26   };
27
28   $(function () {
29     <?php include 'employees.php';?>   
30     data = <?php output_json_employees();?>;

31                
32     grid = new Slick.Grid("#myGrid", data, columns, options);
33
34     grid.setSelectionModel(new Slick.CellSelectionModel());
35
36     grid.onAddNewRow.subscribe(function (e, args) {
37       var item = args.item;
38       grid.invalidateRow(data.length);
39       data.push(item);
40       grid.updateRowCount();
41       grid.render();
42     });
43   })
44 </script>