2012年12月23日 星期日

Lotus Script 建立記事本並寫入資料

以下程式碼在Notes 的環境下,使用Lotus Script來建立一個紀事本並寫入資料。
此版本為基本的建立新的紀事本並寫入資料,如果要運行較複雜的做法,例如:判斷路徑的資料夾存不存在,如果不存在是否要建立新的或報錯,如果有同樣的名字,是否要開啟記事本把資料寫入到最後一行或覆寫等等,等下次有時間在來PO文。

Sub Initialize
On Error Goto ErrorHandle
Dim session As NotesSession
Dim stream As NotesStream
Dim pathname As String

Set session = New NotesSession
Set stream = session.CreateStream
        '設定路徑
pathname = "D:\" & "Test.txt"

        '建立一個文件流並關聯上所指定路徑之檔案名稱,檔案不存在,系統會新建一個檔案。
If Not stream.Open(pathname, "ASCII") Then
Messagebox pathname,, "Open failed"
Exit Sub
End If

        '當Bytes為0時,代表檔案為新檔案,反之,不等於0就是代表檔案原本已存在而且有內容。
If stream.Bytes <> 0 Then
Messagebox pathname,, "File already exists and has content"
Exit Sub
End If

        '寫入資料
Call stream.WriteText("Test_Line_1", EOL_CRLF)
Call stream.WriteText("Test_Line_2", EOL_CRLF)
Call stream.WriteText("Test_Line_3", EOL_CRLF)
Call stream.WriteText("Test_Line_4", EOL_CRLF)
Call stream.WriteText("Test_Line_5", EOL_CRLF)
Call stream.Close
Exit Sub
ErrorHandle:
Msgbox ("ErrorPlace : 【Agent/(writeToText)/Initialize】, Error is : " & Str(Err) & "  , ErrCode is : " & Error$ & " , " & "Error line is : " &  Cstr(Erl))
Exit Sub
End Sub

2012年12月9日 星期日

匯出Excel【Web】

匯出Excel的方式有很多,以下的範例只是其中之一,之後會慢慢的放上來。

Sub Initialize
On Error Goto CreateExcel
Dim ss As New notessession
Dim db As notesdatabase
Set db = ss.CurrentDatabase
Dim docmain As NotesDocument
Dim MainView  As NotesView
'資料來源的視界
Set MainView = db.GetView("DataView")
Print |Content-Type:application/vnd.ms-excel|
Print |<HTML><HEAD><TITLE>Excel from Web</TITLE></HEAD><BODY> <TABLE>|
Print |<tr>|
Print |<td style="border:1px solid gray;width:200px">標頭</td>|
Print |<td style="border:1px solid gray;width:200px">標頭</td>|
Print |<td style="border:1px solid gray;width:200px">標頭</td>|
Print |<td style="border:1px solid gray;width:200px">標頭</td>|
Print |<td style="border:1px solid gray;width:200px">標頭</td>|
Print |</tr>|

 '從視界裡一筆一筆將文件取出並匯出其所需資料。
Set docmain = MainView.GetFirstDocument
While Not(docmain Is Nothing)
For j=0 To Ubound(arr1)
Print |<tr>|
Print |<td style="border:1px solid gray;width:200px">| + docmain.GetItemValue("Data")(0) + |</td>|
Print |<td style="border:1px solid gray;width:200px">| + docmain.GetItemValue("Data")(0) + |</td>|
Print |<td style="border:1px solid gray;width:200px">| + docmain.GetItemValue("Data")(0) + |</td>|
Print |<td style="border:1px solid gray;width:200px">| + docmain.GetItemValue("Data")(0) + |</td>|
Print |<td style="border:1px solid gray;width:200px">| + docmain.GetItemValue("Data")(0) + |</td>|

Print |</tr>|
Next
Set docmain= MainView.GetNextDocument(docmain)
Wend
Print |</TABLE></BODY></HTML>|
CreateExcel:
Msgbox Cstr(Erl()) + "&" + Error$,Str(Err)
Exit Sub
End Sub

區塊置中的三種寫法


第一種寫法:這是為了舊版瀏覽器 IE 5.0 而使用的寫法,如下:
body{ text-align:center; }
/* 先讓網頁內所有的內容置中,因此 myDIV 區塊也會被置中 */
#myDIV{ text-align:left; }
/* 再將 myDIV 區塊內的內容恢復置左 */


第二種寫法:IE6 和 Firefox 等新版瀏覽器都通用的寫法,如下:
#myDIV{ margin-left:auto; margin-right:auto; }
/* 將 myDIV 區塊的外部間距設定為自動均分,就可以達到置中的效果 */


第三種寫法:IE6 和 Firefox 等新版瀏覽器都通用的寫法,如下:
#myDIV{ margin: 0 auto; }
/* 與第二種方法作用相同,這是較精簡的寫法 */


此篇訊息參考:

偵測出目前主流的幾個瀏覽器版本


一行程式碼可以偵測出目前主流的幾個瀏覽器版本:
B=(function x(){})[-5]=='x'?'FF3':(function x(){})[-6]=='x'?'FF2':/a/[-1]=='a'?'FF':'\v'=='v'?'IE':/a/.__proto__=='//'?'Saf':/s/.test(/a/.toString)?'Chr':/^function \(/.test([].sort)?'Op':'Unknown'

截至目前為止 IE='\v'=='v' 是能判斷出 IE 的最短程式碼:

此篇訊息參考:http://jsgears.com/thread-168-1-3.html

top and self and parent


window.top: 最上層視窗
window.self :目前視窗
window.parent :母視窗

視窗最大化


只要在onLoad或body後面加上以下程式碼,開啟視窗時就會最大化。
window.self.moveTo(0,0)
window.self.resizeTo(screen.availWidth,screen.availHeight)

ex:
<html>
<script>
     window.onLoad = function(){
          window.self.moveTo(0,0);
          window.self.resizeTo(screen.availWidth,screen.availHeight);
     }
</script>
<body>
     .....................
</body>
</html>

ex:
<html>
<body>
<script>
     window.self.moveTo(0,0);
     window.self.resizeTo(screen.availWidth,screen.availHeight);
</script>
</body>
</html>

2012年12月5日 星期三

input 顯示提示文字

如何使用Jquery產生輸入框的題是文字,程式碼如下:

<input type="text" id="input_test" value="請輸入文字,謝謝。" />

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
<script>
$(function() {
    var inputEl = $('#inputID'),
    defVal = inputEl.val();
    inputEl.bind({
         focus: function() {
              var _this = $(this);
              if (_this.val() == defVal) {
                   _this.val('');
              }
         },
         blur: function() {
              var _this = $(this);
              if (_this.val() == '') {
                   _this.val(defVal);
              }
         }
   });
})
</script>

此程式碼可以直貼至.html直接運行。

2012年11月25日 星期日

onresize-視窗大小變動時,會啟動的事件

在視窗變動時,會啟動一個事件--onresize,
所以如果有依些動作是在視窗改變時,必須要執行的程式、動作,
可以在onresize中去做執行。

本來我是想將function寫在.js裡,但發現好像不行,我也不知道為什麼不行?
上網goole了一下,似乎是必須寫一個變數去接這個function,
然後onresize時直接指向這格變數。

以下是程式範例:
var resizeWindow = function () {
     document.getElementById("Test").style.left = 500;
     document.getElementById("more").style.top = 500;
}
window.onresize = resizeWindow;

2012年11月1日 星期四

Domino Notes Client 安裝、設定

 1. 歡迎安裝畫面,請選擇【下一步】進行安裝。















2. 請點選【接受】並選擇【下一步】進行安裝。















3. 請填寫使用者及組織名稱,請選擇【下一步】進行安裝。















4.選擇安裝路徑,通常不會改變,請選擇【下一步】進行安裝。















5. 請選擇要安裝的原件,通常會一起安裝Desinger跟Administrator,請選擇【下一步】進行安裝。















6. 請選擇【安裝】進行安裝。















7. 安裝中。

8. 請選擇【完成】結束安裝。















9. Client 設定開始,請選擇【下一步】進行設定。













10. 輸入名稱及要連線的伺服器,請選擇【下一步】進行設定。













11. 輸入帳號密碼,請選擇【確定】進行設定。







12. 這邊不設定即時訊息,請將鉤鉤移除,請選擇【下一步】進行設定。


13. 不額外配置,以預設為主,請選擇【下一步】進行設定。


14. 完成設定。


15. Notes Client 歡迎畫面。



2012年10月31日 星期三

Domino Server 6.54 安裝及設定

1. 安裝的歡迎畫面,請選【Next】開始安裝。















2. 合約的瀏覽,請選【Yes】繼續安裝。



3. 輸入姓名及公司名稱,請選【Next】繼續安裝。



4. 選擇安裝目錄,請選【Next】繼續安裝。
















5. 選擇安裝伺服器的類型,通常選擇企業伺服器,請選【Next】繼續安裝。
    通用伺服器:只有應用程式服務,不提供郵件服務。
    郵件伺服器:只有郵件服務,不提供應用程式服務。
    企業伺服器:包含應用程式服務及郵件服務。



















6. 設定在開始功能選項上建立的資料夾,通常不去改變,請選【Next】繼續安裝。



7. 伺服器安裝中,請等待。



8. 安裝完畢



9. 設定Domino Server,開啟Lotus Domino Server。



















10. 開啟方式,選擇以一般應用程式開啟(可依個人喜好設定)。
      Windows service:Windows一開機便執行。
      Reqular application:由User自行開啟。



11. 設定字型大小,請選【Next】繼續設定。



12. 選擇設定為第一台伺服器,請選【Next】繼續設定。














14. 輸入伺服器名稱,請選【Next】繼續設定。














15. 輸入組織名稱及密碼,請選【Next】繼續設定。













16. 輸入伺服器的Domino Name,請選【Next】繼續設定。













17. 設定管理者ID,輸入名稱及密碼,請選【Next】繼續設定。













18. 選擇其他的服務協定,請選【Next】繼續設定。













19. 使用預設選項,請選【Next】繼續設定。













20. 使用預設選項,請選【Next】繼續設定。














21.檢查所有的設定是否正確,請選【Setup】開始設定。














22.設定完成。


2012年10月29日 星期一

ODBC 設定 MySQL 無法連線

到MySQL官網下載 MySQL ODBC 3.51 Driver,安裝完後,設定連線,結果顯示無法連線。

嘗試了許久,發現了兩個問題:

1. 防火牆:連線被防火牆擋住,我是直接關掉,如果有安全性的考量,請開3306 Port。

2. root預設只能連本機:root帳號在預設值是只能連本機的(127.0.0.1、locathost),當然要開的話也可以,不過建議新建立一個帳號,會比較好。

Windows 2003 安裝WampServer無法啟動

在Windows 2003 安裝WampServer無法啟動,爬了許多文,試過許許多多的方法,最後才知道安裝WampServer一定要安裝:

Microsoft Visual C++ 2008 SP1 可轉散發套件 (x86)

Microsoft Visual C++ 2010 SP1 可轉散發套件 (x86)

這兩個套件,不然一定會啟動不了。

PS:如果在安裝WampServer時提示遺失或缺少MSVCR100.dll,安裝【Microsoft Visual C++ 2010 SP1 可轉散發套件 (x86)】即可解決。

2012年6月19日 星期二

使用 Google AJAX Libraries API 載入 JQuery & JQuery UI


可以直接從Google載入JQuery & JQuery UI 的 JS 檔,真的很方便。


<script type="text/javascript" src="http://www.google.com/jsapi"></script>
<script type="text/javascript" language="javascript">
     google.load("jquery", "1.62");
     google.load("jqueryui", "1.8.14");
</script>

數字部分為版本,可依版本更新來修改。


更詳細請參考以下介紹:
http://code.google.com/intl/zh-TW/apis/libraries/devguide.html   


2012年6月7日 星期四

CSS取代onmouseover及onmouseout。


CSS取代onmouseover及onmouseout。

.button
{
border:1px solid #AAAAAA;
padding:3px 1px 0px 1px;
cursor:hand;
background-color:#b34d4d;
color:#FFFFFF;
height:20px;
font-size:9pt;
event:expression( onmouseover = function(){
this.style.backgroundColor = "#8a1b05";
this.style.color = "#FFFFFF";
},onmouseout = function(){
this.style.backgroundColor = "#b34d4d";
this.style.color = "#FFFFFF";
})
}

2012年1月16日 星期一

GET 傳值亂碼問題

奮鬥了一天終於解決了再一次的編碼問題,這一次發生的問題在於利用ajax傳值到後端執行的程式(或網頁),使用request.getParameter(),取值後發現是亂碼,根據之前的經驗,先檢查網頁編碼,charset = "UTF-8",沒問題後再利用→【String Temp= new String(request.getParameter(" Temp").getBytes("ISO-8859-1"),"UTF-8");】取值,結果還是不行,經過了長時間的查詢與測試,發現只要在前端(javascript)傳值時先做encodeURI(),就可以了。真正的原因,還不確定?等查明後再補充吧。^^