2014年11月25日 星期二

Sql Server analysis services

一、下戴範例檔


二、使用SQL Server Business Intelligence Development Studio Tool


三、新增資料來源


 選擇剛才下戴SQL檔案 









四、資料資料來源檢視

示範分析出產品的的銷售數量

事實資料表:
l   FacInternetSales

相關資料表:
l   DimDate(日期)
l   DimProduct(產品)
l   DimProductCategory(目錄)
l   DimProductSubcategory(子目錄)




五、建立一個產品維度的資料表

步驟1: 選擇維度à新增  

主資料表: 選擇 DimProduct



步驟2:勾選產品有關聯的資料表(預設自動勾選)


  
步驟3:手動勾選English ProductCategory Name,ProductSubcategory Name


找出可以用在產品維度上的階層分析,例如產品目錄、產品子目錄,所以筆者在產品維度的屬性欄位, 勾選English ProductCategory Name, English ProductSubcategory Name
(預設勾選相關聯資料表key,可別亂取消喔!)

按下完成




設定產品階層

在左方的方框中,選擇最上層的屬性欄位,舉例來說:
l   產品目錄分成許多產品子目錄
l   產品子目錄有許多產品項目

根據這種關係,我們可以依序把階層以上往下,把階層組出來

步驟4: 設定產品階層
1: English Product Category Name 最上層
2: English Product Subcategory Name 第二層
3: Product Key 第三層


步驟5:開啟維度目錄àDim Productdimà 按下滑鼠右鍵à選擇處理




步驟6: 開啟維度目錄àDim Productdimà按下滑鼠右鍵à選擇瀏覽

以下為產品維度的階層瀏覽

六、建立一個CUBE

步驟1: 選擇Cubeà新增

勾選匯總的資料表(真實資料表)





步驟2: 選擇彙總的欄位



步驟3: 選擇用於分析的維度



步驟4: 按下完成





步驟5: 在新建立的cube上,按下滑鼠右鍵,按下處理



分析成功畫面 





步驟7: 在新建立的cube上,按下滑鼠右鍵,按下瀏覽

1: 把左方Measures的欄位值à拖進中間區域,它將會自動顯示彙總數字
2: 把左方Dim Product的階層à拖進左方欄位,它將會自動依產品階層呈現




    以上只是最簡單的運用sql analysis services的分析工具,如需瞭解更多請參考以下相關網址

2014年11月16日 星期日

Jquery mobile 開發行動裝置web 瀏覽器


一、引用合適的jQueryMobile.cssjQuery.mobile.js

<head>
 <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1" />
    <title>Monster Live Messenger</title>
    <link href="jquery.mobile/jquery.mobile-1.2.0.css" rel="stylesheet" />
    <script src="jquery/jquery-1.8.3.js"></script>
    <script src="jquery.mobile/jquery.mobile-1.2.0.min.js"></script>
</head>


    Device-width: 偵測到的裝置寬度
    initial-scale: :第一次進入頁面的初始比例
    Maximum-scale: 如設為1,即為使用者無法再放大比例

二、Meta屬性


三、行動網頁結構

JqueryMobile 網頁都被包覆在data-role="page" id="home" div中,所有標籤都有data-role 視為JQueryMobile 的角色,其中每個divid均為獨一無二的識別,它代表每個頁面的名稱。

JQueryMobile data-role
l   表頭   data-role="header"
l   表身   data-role=" content "
l   表尾   data-role="footer"
l   按鈕   data-role="button" , 只允許放置在超連結<a data-role>

    JQueryMobile 的其他的屬性
l   data-inset加上圓弧型的css
l   data-transition : 頁面過場特效 css
l   data-rel:  彈跳視窗的特效

範例程式碼
 
<div data-role="page" id="home">
        <div data-role="header">
           <h3> Monster Live Messenger</h3>
        </div>
        <div data-role="content">
            <a href="contacts.html" data-ajax="false" data-role="button" data-inset="true">contacts</a>
            <a href="photos.html" data-role="button" data-inset="true">photos</a>
        </div>
        <div data-role="footer">
            <a href="#about" data-transition="flip" data-rel="dialog">abount</a>
        </div>
    </div>

展示結果:



四、如何呼叫其他頁面

舉例如下: 在頁尾中有About連結,可點擊到另一個頁面

l   轉換特效 data-transition: flip 翻轉
l   外貌樣式: data-rel: dialog 以對話方塊的樣式呈現此頁
l   轉頁: a href=”#about” 以導覽至about頁面
ü   連結到頁面:
1.          同一檔案: <a href=‘#divName’ … >
2.          不同檔案: <a href=“相對路徑檔案”>

<div data-role="footer">
     <a href="#about" data-transition="flip" data-rel="dialog">abount</a>
 </div>

      About 頁面
<div data-role="page" id="about">
        <div data-role="header">
            <h3>About MLM</h3>
        </div>
        <div data-role="content">
            <img width="100%" src="images/MLMLogo.png" />
        </div>
        <div data-role="footer">
            <h3>copyright 2013</h3>
        </div>
    </div>   

範例

<a></a>常用屬性
      data-role:       其他: button…
      data-ajax:  false:頁面整個刷新 , true:頁面不會整個刷新
      data-rel: 呈現的樣式
      showDialog 對話方塊
      Back 回上一頁
      Popup 跳出視窗
      data-transition: 置換網頁的特效

  <div data-role="content">
            <a href="contacts.html" data-ajax="false" data-role="button" data-inset="true">contacts</a>
            <a href="photos.html" data-role="button" data-inset="true">photos</a>
        </div>

五、如何使用列表清單

JQueryMobile data-role :
l   listView:   data-role="listview" : 適用在ul

JQueryMobile 的其他屬性:
l   data-theme: 佈景主題
預設共有a,b,c,d,e 如下所示,如需客製作設定,請參考http://demos.jquerymobile.com/1.2.0/docs/api/themes.html



l   data-filter: 搜尋清單 : 自動過濾符合的列表清單

<div id="conent" data-role="content">
<!-- 增加列表清單,從jquery 程式控制 -->                   
     <ul data-role="listview" data-theme="a" id="superheroes" data-filter="true"></ul>                  
</div>

列表展示樣式


六、減少Loading負擔

    引用必要的JScss<head></head> 樣式

<body>
            <div data-role="page" id="contacts_superheroes">
                <div id="header" data-role="header">
                    <a data-role="button" data-rel="back">back</a>
                    <h3>this is a super heroes</h3>
                </div>
                <div id="conent" data-role="content">
                    <!-- 增加列表清單,從jquery 程式控制 -->                   
                    <ul data-role="listview" data-theme="a" id="superheroes" data-filter="true"></ul>                  
                </div>
                <div id="footer" data-role="footer">
                </div>
            </div>
         <!-- 為了加快下載速度,減少等待的時機 -->
         <script src="jquery/contacts.js"></script>
        <script src="jquery/pageinit.js"></script>
    </body>

JSON格式讀取資料
var contacts_data = {
    "list": {
                     "superheroes": [
                         {name: "Hulk", id: "TheIncredibleHulkFilm"},
                         {name: "Iron Man", id: "IronMan2"},
                         {name: "Thor", id: "ThorMovie"},
                         {name: "Captain America", id: "CaptainAmericaMovie"},
                         {name: "Batman", id: "batman"},
                         {name: "Spider-Man", id: "theamazingspiderman"}
        ],
                     "groups": [
            {name: "JavaScript.tw", id: "186298388138174"},
            {name: "node.js@<台灣>@", id: "262800543746083"},
            {name: "HTML5@<>@CSS3@<在台灣>@", id: "195360017158294"}
                     ]       
    }
};

七、初始化頁面

jqueryMobile 的網頁結構中,可以把好頁個相關頁面放在同一頁面上<html></html>,所以即使觸發page_lode事件,反而造成所有<div  data-role=’page’> 觸發page_lode事件,如果只需觸發某頁面data-role=’page’的初始事件時,使用 pageinit 被委派給其他函式一起執行該事件

$(document).delegate("#contacts_superheroes", "pageinit", function () {
    var superheroes = contacts_data.list.superheroes;
    var data = "";
    for (var i = 0; i < superheroes.length; i++) {
        var picture = "http://graph.facebook.com/" + superheroes[i].id + "/picture";
        data += "<li>";
        data += "<img src='" + picture + "' width='100%'>";
        data += "<h3>" + superheroes[i].name + "</h3>";
        data += "<p>" + superheroes[i].id + "</p>";
        data += "</li>";
    }
    $("#superheroes").append(data);
    $("#superheroes").listview("refresh");
});

八、有超連結的ListView
<li></li> 內包覆一層<a></a>

$(document).delegate("#contacts_superheroes", "pageinit", function () {
    var superheroes = contacts_data.list.superheroes;
    var data = "";
    for (var i = 0; i < superheroes.length; i++) {
        var picture = "http://graph.facebook.com/" + superheroes[i].id + "/picture";
        data += "<li>";
        data += "<a href='http://graph.facebook.com/'"+superheroes[i].id+ "/picture>";
        data += "<img src='" + picture + "' width='100%'>";
        data += "<h3>" + superheroes[i].name + "</h3>";
        data += "<p>" + superheroes[i].id + "</p>";
        data += "</a>"
        data += "</li>";
    }
    $("#superheroes").append(data);
    $("#superheroes").listview("refresh");
});




九、加上分類區
    var superheroes = contacts_data.list.superheroes;
    var data = "";
    data += "<li data-role='list-divider'>";
    data+="<h3>super Heroes</h3>"
    data += "</li>"
    for (var i = 0; i < superheroes.length; i++) {
        var picture = "http://graph.facebook.com/" + superheroes[i].id + "/picture";
        data += "<li>";
        data += "<a href='http://graph.facebook.com/'"+superheroes[i].id+ "/picture>";
        data += "<img src='" + picture + "' width='100%'>";
        data += "<h3>" + superheroes[i].name + "</h3>";
        data += "<p>" + superheroes[i].id + "</p>";
        data += "</a>"
        data += "</li>";
    }

呈現樣式




Button 加上Icon
     <a data role="button" data rel="back">back</a>

按鈕屬性 Data-icon=“back”       Data-iconpose  

位置 Left




位置Righ





位置NoText






更多相關資料請參考 http://demos.jquerymobile.com/1.4.5/