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直接運行。