Archive for 四月, 2008

DataSet欄位運算-超好用

Dim dsUserName As DataSet = spuErp.FillDataset(“tblAuthUser”)
‘增加 GroupID/UserID , GroupName/UserName的欄位
With dsUserName.Tables(0)
.Columns.Add(“Text”, GetType(String), “ISNULL(GroupName,’NoGroupID’)+’/’+UserName”)
[...]

Continue reading »

ListBox Insert and Remove Items by JavaScript

function remove(){
     var srcObj = $get(‘<%=ltbUserAssign.clientId %>’);
     var tarObj = $get(‘<%=ltbUserList.clientId %>’);
     //判斷使用者選取的項目
     var t = srcObj.options.selectedIndex;
     if (t==-1){ //沒有選取
       return false;
     }else{
     //新增一個選項
     var opt = document.createElement(“option”);
     //在目的清單中,加入此選項
     tarObj.options.add(opt);
     //debugger;
     opt.text = srcObj.options[t].text;
     opt.value = srcObj.options[t].value; 
     //清除來源清單內的項目
     srcObj.remove(t);
     return true; 
     }
}
 function insert(){   
         var srcObj = $get(‘<%=ltbUserList.clientId %>’);
         var tarObj = $get(‘<%=ltbUserAssign.clientId %>’);
      //判斷使用者選取的項目
     var [...]

Continue reading »

取得樹狀結構節點(遞迴)

傳入123時,則回傳 |120|258|269|121|124|123.
使用時,才會利用Split(),拆成字串矩陣
123
      120
      121
         258
         269
      124

‘判斷是否存在子節點
Dim Arranged() As String = CheckChildNode(MenuID).Split(“|”)
Private Function CheckChildNode(ByVal childMenuID As String) As String
     Dim i As Integer = Me.uwtMenu.Find(childMenuID).Nodes.Count
     Dim nodeTag As String = “”
If i = 0 Then
     nodeTag += “|” & childMenuID
Else
     For k As Integer = 0 To i – 1
        Dim s As String = Me.uwtMenu.Find(childMenuID).Nodes.Item(k).Tag.ToString
        nodeTag [...]

Continue reading »

XML與DataSet之間的關係

DataSet讀取XML File,請用ReadXML的方法。
DataSet存成XML File,請用WriteXML的方法。
DataSet物件亦能快速存成XmlDataDocument的物件。
在成為XmlDataDocument物件後,存成XML File時,請用Save的方法。

Continue reading »

執行緒(Threads)之於Win與Java之差異

Windows 程式設計中,不是每個程式員都需要使用到執行緒,但對 Java 的程式員來說,想寫出一個真正的 Java 程式,幾乎都會用到執行緒。  執行緒之所以在 Windows 和 Java 中的重要性不同,原因有二:     •    Windows 的 event-driven 方式和 Java 的 event model 不同: Windows 提供許多 non-blocking API、call-back function 機制;而早期 Java 的 API 都是 blocking 形式的,如果不想阻礙程式的進行,就必須使用執行緒。     •    Windows 可以設定 timer(WM_TIMER 訊息),但早期 Java 不支援 timer ,必須利用執行緒來模擬 timer 。  除了上述兩點之外,下面列出兩點也需要使用執行緒的時機:     •    某件工作如果獨立而冗長,使用執行緒可以讓使用者可以不用枯候,甚至有可能提升執行效率。     •    使用平行演算法時,也需要使用執行緒。  資料來源:http://www.oreilly.com.tw/column_sleepless.php?id=part05 

Continue reading »

第五章 序列化 課程一 對物件進行序列化

重點摘要: 1.序列化是一個將資訊輚換成可被儲存或傳送的位元資料流之過程 2.將物件序列化的步驟     2.1建立一個資料流物件(Ex. FileStream)     2.2建立一個BinaryFormatter物件     2.3呼叫BinaryFomatter.Serialize方法 3.還原序列化一個物件的步驟     3.1建立一個資料流物件     3.2再建立一個BinaryFormatter物件     3.3再呼叫BinaryFormatter.Deserialize方法 4.若要建立一個可被序列化的類別,請加入Serializable屬性。  使用者也可以利用這個屬性停用某些成員的序列化功能。 5.SoapFormatter提供的序列化效率較低,但比較具有相互運作性,它是BinaryFormatter類別的替代方案。 6.使用SoapFormatter時,方法和步驟與BinaryFormatter一樣,但必須額外加入System.Runtime.Serialization.Formatters.Soap.dll的參考。 7.使用者也可以利用屬性指定序列化的項目名稱,以及指定某個成員是否可以被序列化為項目或屬性,以控制SoapFormatter之序列化。 8.即使不需立即使用到序列化功能,將所有類別均標示為可序列化是一個較好的作法。但是,最好關閉計算和暫存成員的序列化功能。

Continue reading »

Only accept integer’s ArrayList

<code>     Public Class IntList         Implements ICollection         Implements IEnumerable                  Private _innerList as ArrayList = New ArrayList                  Public Sub Add(ByVal number as Integer)             _innerList.Add(number)         End Sub       End Class  </code>

Continue reading »