一個程序員一月的開銷統計分析、(附上PC端和移動端android源碼)


圖片1(類別):

圖片中的數據是我一月的花費統計分析、

 

 

這是該網站的地址:http://www.10086bank.com/(需要登錄)  沒有帳號馬上注冊一個吧、進入系統后點擊“記一筆”  添加數據即可!   類別查詢和詳細查詢! 

 

 

PC端日程:       

 

 

android版在這里:

android版調用站點中的webservice的功能    先上圖:

    // 判斷是否網絡連接 有返回true 失敗返回false
    public static boolean isNetworkConnected(Context context) {
        if (context != null) {
            ConnectivityManager mConnectivityManager = (ConnectivityManager) context
                    .getSystemService(Context.CONNECTIVITY_SERVICE);
            NetworkInfo mNetworkInfo = mConnectivityManager
                    .getActiveNetworkInfo();
            if (mNetworkInfo != null) {
                return mNetworkInfo.isAvailable();
            }
        }
        return false;
    }

 

實現android判斷當前是否有網絡連接的代碼。

 

 

登錄成功進入主界面了:

 

 

這里是android調用webservice的代碼:

 

//點擊查詢按鈕獲取當天數據
    private ArrayList<HashMap<String, String>>  GetThisMonthDataByUsercodeDetail(int year,int month,int day){
        ArrayList<HashMap<String, String>> list=null;
        SoapObject soapObject = new SoapObject(Competence.NAMESPACE, method_GetThisMonthDataByUsercodeDetail);
        soapObject.addProperty("year", year);
        soapObject.addProperty("month", month);
        soapObject.addProperty("day", day);
        SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);
        envelope.dotNet = true;
        envelope.bodyOut = soapObject;
        HttpTransportSE ht = new HttpTransportSE(Competence.URLs);
        try {
            ht.debug = true;
            ht.reset();
            ht.call(Competence.NAMESPACE+method_GetThisMonthDataByUsercodeDetail, envelope);
            SoapObject result=(SoapObject)envelope.getResponse();
            int count=result.getPropertyCount();
            if(count>1){
                list=new  ArrayList<HashMap<String, String>>();
                for (int i = 0; i < count; i=i+2) {
                    HashMap<String, String> map = new HashMap<String, String>();  
                    map.put("ItemTitle", result.getProperty(i).toString());
                    map.put("ItemText", result.getProperty(i+1).toString());
                    list.add(map); 
                }
            }                
        } catch (Exception e) {
            // TODO: handle exception
        }
        return list;
    }

 

然后調用

    //綁定數據
    private void OnDataToListView(ArrayList<HashMap<String, String>> mylist){
        if (mylist!=null) {
            ListView list = (ListView) findViewById(R.id.MyListView);
            SimpleAdapter mSchedule = new SimpleAdapter(DataManager.this,mylist,R.layout.my_listitem,new String[] {"ItemTitle", "ItemText"},new int[] {R.id.ItemTitle,R.id.ItemText});  
            list.setAdapter(mSchedule);
            mSchedule=null;
            list=null;
        }
        else {
            Mesg("沒有數據!");
        }
    }

 

 

 

以上android調用10086bank.com

 

 

PC端用到了柱狀圖和餅狀圖分析功能、使用的是jquery圖表插件工具highcharts  (點擊進入可下載js包),

下面是主要的js代碼:

if (temps != "") {
                $("select[myenumid='" + myenumid + "']").parent().children().remove('div');
                $("select[myenumid='" + myenumid + "']").removeClass();
                $("select[myenumid='" + myenumid + "']").html("");
                $("select[myenumid='" + myenumid + "']").append(temps);
                $("select[myenumid='" + myenumid + "']").chosen();
            }
            myenumid = null;
            temps = null;



for (var i = 0; i < obj.length; i++) {

                    data1.push(obj[i].LAB);
                    data2.push(parseFloat(obj[i].DAT));

                    summoney = parseFloat(summoney) +         parseFloat(obj[i].DAT);

                    var one = [];
                    one[0] = obj[i].LAB;
                    one[1] = parseInt(obj[i].DAT);
                    data.push(one);
                    one = null;

                }


            

 

數據格式使用的是json格式,一個很厲害的數據傳輸格式。 

 

 

頁面中還用到children頁面美化:

//填充
var isfull = 1;
function fulldata() {
    if (isfull == 1) return;
    var myenumid = "myenumid007";
    $("select[myenumid='" + myenumid + "']").parent().children().remove('div');
    $("select[myenumid='" + myenumid + "']").removeClass();
    $("select[myenumid='" + myenumid + "']").html("");
    $("select[myenumid='" + myenumid + "']").append("<option value='食'>食</option>");
    $("select[myenumid='" + myenumid + "']").append("<option value='衣'>衣</option>");
    $("select[myenumid='" + myenumid + "']").append("<option value='住'>住</option>");
    $("select[myenumid='" + myenumid + "']").append("<option value='用'>用</option>");
    $("select[myenumid='" + myenumid + "']").append("<option value='行'>行</option>");
    $("select[myenumid='" + myenumid + "']").append("<option value='其它'>其它</option>");
    $("select[myenumid='" + myenumid + "']").chosen();

    $("select[myenumid='" + myenumid + "']").parent().children().children("a").attr("class", "chzn-single chzn-single-with-drop");
    $("select[myenumid='" + myenumid + "']").parent().children().children("div").attr("style", "left:0px;top:24px");
    $("select[myenumid='" + myenumid + "']").parent().children().children("div").children("div").children().focus();
    $("select[myenumid='" + myenumid + "']").parent().children().children("div").children("ul").children("li:first-child").attr("class", "active-result result-selected highlighted");
    myenumid = null;
}

 

 

 

 代碼實現起來是很容易的、

 

 

 

PAK下載

PC端(100086bank.com)

 

 

 文采有限、寫不出好的東西、但有一顆自信的心! 

 

 

謝謝!

 

 

 

 

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM