設定好報表條件,按下列印鍵後的錯誤 !!

Server was unable to process request. ---> Object reference not set to an instance of an object.

Error

 

排除方法:

這是AP環境中,安裝的 Excel 程式有誤,重新安裝即可解決。

建置網站的小知識

網站主機需安裝的程式

Web Site Apache
Database MySQL
FTP FilaZilla
Mail Server Mercury

 

可以逐一到各公司下載程式來安裝,也可以使用整合型的安裝包,加快安裝速度。

安裝包

名稱 適用平台
XAMPP Multi-Platform
WAMP Windows
MAMP Macintosh
LAMP Linux
AppServ Windows

VBScript 執行環境的認識

*.VBS 檔案程式之運作,可以經由 CScript.exe or WScript.exe 來啟動。
一般默認是以 CScript.exe 。

CScript.exe 是在 DOS 命令提示字元下的運作環境,也是一般所說 CUI (Character User Interface)
WScript.exe 是在 GUI (Graphical User Interface)下運作的環境。

 

若有需要,可依下列方式調整設定:

  • CScript.exe

image

  • WScript.exe

image

** 程式位置:Windows\System32\

** 即便是系統已經改設為 WScript.exe 來運作 *.vbs,
    不過也可以用 CScript   *.vbs 語法,來得到不同的輸出效果。

image

程式運作產生Excel檔案,所遇到的各式錯誤及解決辦法

錯誤一:
D10T1

仔細查證程式存放目錄位置是
D:\LRERP_Samples\修改、新增區\LUQP_T01 (D10T1) [20110113]
需修改成 (去除 [])
D:\LRERP_Samples\修改、新增區\LUQP_T01 (D10T1) 20110113

錯誤二:
D10T1-01-53

這是AP環境中,安裝的 Excel 程式有誤,重新安裝即可解決。

錯誤三:
D10T1-02-53

重新編譯程式,再次掛下程式,即可。

水晶報表的輸出

在水晶報表產生後,一般來說除了直接列印之外,也有其他作法,可以將報表中的數據加以保留下來。
例如:輸出成
          Crystal Reports ==> *.rpt
          或是其他的格式。
          image

image

image 

(正常的視窗顯示,如圖 4)

image

[圖 4]

clip_image001

首先,要了解為什麼要轉成 *.rpt ? (Crystal Reports)

Ans:
將 *.rpt ,再轉成 Excel ,可以只轉數據不轉格式,
就不會有很多表頭,也不會有合併單元格的情形。

Facebook API 入門磚

http://www.facebook.com/developers/become_test_account.php

perton_2000@yahoo.com.tw

image

image

Domain Name

申請網域名稱 (Domain Name)

  • 有固定 IP

可到 TWBBS.org 註冊。
TWBBS 自由網域成立於西元1998年,基於網路開放服務的精神,該網站提供網友們一個免費且自由的網域名稱。
重點是服務永久自由、免費。
網域格式:***.twbbs.org

  • 沒有固定 IP

使用 EveryDNS 註冊
1.要與 EveryDNS 搭配,需先在 TWBBS.org 自由網閾中設定以下四個解析網址:
   ns1.everydns.net, ns2.everydns.net, ns3.everydns.net, ns4.everydns.net

FQDN

  型態

MX順序

位址

  IN NS   ns1.everydns.net
  IN NS   ns2.everydns.net
  IN NS   ns3.everydns.net
  IN NS   ns4.everydns.net

2. 接著登入 EveryDNS ,在 Add new domain 下方輸入我們在 TWBBS.org 申請的網域,並勾選 Make domain dynamic,再點 advanced

3. 在 http://www.everydns.com/dymanic.php 頁面,下載動態網域軟體。

4. 在 DOS Commnad Line 下指令,eDNS.exe –u EveryDNS的帳號 –p EveryDNS的密碼
    程式就會將我們電腦目前的 IP 與第 2步驟所設定的網域,進行動態綁定的動作。

設定 Terminal Service (遠端電腦連線)

XP 環境

image

image

 

Windows 2003

 

Server 2003 Enterprise

Components_Wizard

t1

Restore Database 資料庫恢復

Restore Database 資料庫恢復的工作,可以恢復成原來的資料庫內容,也可以用另一名稱用命而建立起另一資料庫。

步驟如下:

01

02

03

04

05

06

07

08

09

10

11

12

120

13

14

Facebook & funP 應用程式設計 (3)

Facebook API 函式庫

函式庫種類 網址
PHP5 http://wiki.developers.facebook.com/index.php/PHP
JavaScipt http://wiki.developers.facebook.com/index.php/JavaScript_Client_Library
Facebook Connect for iPhone http://wiki.developers.facebook.com/index.php/Facebook_Connent_for_iPhone
ActionScript 3.0 Library for Facebook Platform http://wiki.developers.facebook.com/index.php/Flash/ActionScript
Force.com for Facebook http://wiki.apexdevnet.com/index.php/Using_the_Force_Toolkit_for_Facebook

登入 ERP 報錯 !!

登入ERP 報錯,訊息如下:
login-01

遇到這種情形,只要在登入畫面中,重新 更新 就可以解決。

文字檔 *.txt 儲存成 UTF-8 格式 (3)

在前文中,有提到手動方式用 NotePad (記事本) 開啟文字檔案,再以另存檔案、改變編碼成 UTF-8 來儲存,產生 UTF-8 格式的檔案。

不過,這種方式若是遇到很多檔案要轉換時,就會勞民傷財且傷身,我想這事我絕對不做。
那怎麼辦呢?

用程式來解決吧 (以下作業,可以不用明白其原理,只要照著做就能一切順利 -- 這是主賜的平安)

  1. 開啟 記事本(NotePad) 程式
  2. 打入下列內容
    ----------copy-inside-only----------
    Const ForReading = 1, ForWriting = 2, TristateTrue = -1, TristateFalse = 0
    Dim objFSO, objFile, strg
    Dim arg1, arg2

    If WScript.Arguments.Count = 0 Then
       WScript.Echo "No argument on the command line."
       WScript.Echo "usage: Ans2UTF8.vbs SourceFile TargetFile"
       WScript.Quit
    End If

    Set args = WScript.Arguments
    arg1 = args.Item(0)
    arg2 = args.Item(1)

    Set objFSO = CreateObject("Scripting.FileSystemObject")
    Set objFile = objFSO.OpenTextFile(arg1, ForReading, False, TristateFalse)
    strg = objFile.ReadAll()
    objFile.Close
    Set objFile = Nothing Set objFile = objFSO.OpenTextFile(arg2, ForWriting, True, TristateTrue)
    objFile.Write(strg)
    objFile.Close
    Set objFile = Nothing
    ----------copy-inside-only----------

  3. 存檔,檔名為 Ansi2UniCode.vbs
  4. 再建立一個 Excel 檔案:簡體2UniCode.xls
  5. Excel 內容如下

    A

    B

    C

    1

    檔案目錄 位置 C:\Ch05\  

    2

    轉碼程式 Ansi2UniCode.vbs  

    3

    檔案名稱清單(代轉) 檔案名稱清單(轉換) 開啟檔案的指令

    4

    ex5-1.php ex5-1_tc.php Ansi2UniCode.vbs C:\Ch05\ex5-1.php C:\Ch05\ex5-1_tc.php

    5

    ex5-10.php ex5-10_tc.php Ansi2UniCode.vbs C:\Ch05\ex5-10.php C:\Ch05\ex5-10_tc.php

  6. 其中 B4 儲存格內容為 =LEFT(A4,LEN(A4)-4) & "_tc" & RIGHT(A4,4)
    同理 B5 儲存格內容為 =LEFT(A5,LEN(A5)-4) & "_tc" & RIGHT(A5,4)
    以下類推,Excel 公式拉一下,就完成了。
  7. 那 C4, C5 儲存格內容,就會是

    C4

    =IF(A4="","",$B$2 & " " & $B$1 & A4 & " " & $B$1 &B4)

    C5

    =IF(A5="","",$B$2 & " " & $B$1 & A5 & " " & $B$1 &B5)

  8. 依照代轉檔案的數量(填在 A4 以下的位置),調整 B4、C4 以下的公式內容。記得要存檔。
  9. 接下來,要上演重頭戲:轉碼作業
    ● 在控制台中,改變 中文(PRC)
    ● 重新開機
    ● 開啟 命令列 (cmd.exe)
    ● 變更現行目錄到 Ansi2UniCode.vbs 存檔的目錄中
    ● 再開啟 Excel 檔 簡體2UniCode.xls ,並選取 C4 以下的內容,Copy。
    ● 回到命令列視窗中,貼上剛才複製的處理指令,就可以在 檔案目錄位置(B2內容) 中的目錄,
        看到新產生的文字檔,它們的檔案格式就會是 UniCode。(注意:還不是 UTF-8
        格式:UTF-16LE

文字檔 *.txt 儲存成 UTF-8 格式 (4)

在前文中,提到手動方式用 NotePad (記事本) 並改變編碼來產生 UTF-8 格式的檔案。
但是,若是用程式來轉換,是乎只能轉成 UniCode (UTF-16) ,還不是 UTF-8 格式;那麼是不是還有其他辦法?

有的,不過不是用 Scripting.FileSystemObject,而是用 ADODB.Stream 。
以下,就實際演練一次:

用程式解決吧 (以下作業,可以不用明白其原理,只要照著做就能一切順利 -- 這是主賜的平安)

  1. 開啟 記事本(NotePad) 程式
  2. 打入下列內容
    ----------copy-inside-only----------
    Option Explicit

    Const ForReading = 1, ForWriting = 2, TristateTrue = -1, TristateFalse = 0
    Dim objFSO, objFile, strg, objADODBStream
    Dim args, arg1, arg2

    If WScript.Arguments.Count = 0 Then
       WScript.Echo "No argument on the command line."
       WScript.Echo "usage: Ansi2UniCode_UTF-8.vbs SourceFile TargetFile"
       WScript.Quit
    End If

    Set args = WScript.Arguments
    arg1 = args.Item(0)
    arg2 = args.Item(1)

    Set objFSO = CreateObject("Scripting.FileSystemObject")
    Set objFile = objFSO.OpenTextFile(arg1, ForReading, False, TristateFalse)
    strg = objFile.ReadAll()
    objFile.Close
    Set objFile = Nothing

    Set objADODBStream = CreateObject("ADODB.Stream")
    objADODBStream.Charset = "UTF-8"
    objADODBStream.Open
    objADODBStream.WriteText strg
    objADODBStream.SaveToFile arg2, 2
    objADODBStream.Close
    Set objADODBStream = Nothing
    ----------copy-inside-only----------

  3. 存檔,檔名為 Ansi2UniCode_UTF-8.vbs
  4. 再建立一個 Excel 檔案:簡體2UniCode_UTF-8.xls
  5. Excel 內容如下

    A

    B

    C

    1

    檔案目錄 位置 C:\Ch05\  

    2

    轉碼程式 Ansi2UniCode_UTF-8.vbs  

    3

    檔案名稱清單(代轉) 檔案名稱清單(轉換) 開啟檔案的指令

    4

    ex5-1.php ex5-1_tc.php Ansi2UniCode_UTF-8.vbs C:\Ch05\ex5-1.php C:\Ch05\ex5-1_tc.php

    5

    ex5-10.php ex5-10_tc.php Ansi2UniCode_UTF-8.vbs C:\Ch05\ex5-10.php C:\Ch05\ex5-10_tc.php

  6. 其中 B4 儲存格內容為 =LEFT(A4,LEN(A4)-4) & "_tc" & RIGHT(A4,4)
    同理 B5 儲存格內容為 =LEFT(A5,LEN(A5)-4) & "_tc" & RIGHT(A5,4)
    以下類推,Excel 公式拉一下,就完成了。
  7. 那 C4, C5 儲存格內容,就會是

    C4

    =IF(A4="","",$B$2 & " " & $B$1 & A4 & " " & $B$1 &B4)

    C5

    =IF(A5="","",$B$2 & " " & $B$1 & A5 & " " & $B$1 &B5)

  8. 依照代轉檔案的數量(填在 A4 以下的位置),調整 B4、C4 以下的公式內容。記得要存檔。
  9. 接下來,要上演重頭戲:轉碼作業
    ● 在控制台中,改變 中文(PRC)
    ● 重新開機
    ● 開啟 命令列 (cmd.exe)
    ● 變更現行目錄到 Ansi2UniCode_UTF-8.vbs 存檔的目錄中
    ● 再開啟 Excel 檔 簡體2UniCode_UTF-8.xls ,並選取 C4 以下的內容,Copy。
    ● 回到命令列視窗中,貼上剛才複製的處理指令,就可以在 檔案目錄位置(B2內容) 中的目錄,
        看到新產生的文字檔,它們的檔案格式就會是 UTF-8

文字檔 *.txt 儲存成 UTF-8 格式 (2)

假若你,使用 記事本(NotePad) 程式來打開文字檔,並以另存新檔方式儲存時,
就會下圖範例,

[image[1].png]

接下來看看範例圖示中的編碼選項,分別有 ANSI、Unicode、Unicode big endian、UTF-8 四種。

其中 Unicode 就是 UTF-16 (一般所說的 Unicode),
而    Unicode big endian 簡稱 UTF-16BE。

了解這些後,再來看下,若是要將一文字檔轉存成 UTF-8 格式,可以有那些方法?

  1. 手動方式:以 NotePad (記事本) 開啟檔案,再另存新檔(SaveAs),並修正編碼為 UTF-8。
  2. 程式異動:(適用多數檔案需要轉換的情況)
    ● Scripting.FileSystemObject (不能存成 UTF-8 格式,只能存成 Unicode格式,即 UTF-16)
    ● ADODB.Stream (可以存成 UTF-8 格式)

注意:以上的方式,一定要記得先將電腦設定 改成 中文(PRC) ,才能看到正常的簡體文件內容,再來做轉換工作。

文字檔 *.txt 儲存成 UTF-8 格式 (1)

文字檔 *.txt 存檔時,一般都是以 ANSI 的編碼格式來儲存。
但是,要注意的是,這時儲存的文字檔內容,將是和存檔電腦的環境設定有關。
因此會遇到打開文字檔,卻只看到一片亂碼而不是正常的中文字情形。

也是因為這樣,所以在地球村、世界大同的INTERNET,就掀起使用 UniCode 格式的浪潮。
但是實務上來說,網頁現今都是存成 UTF-8 格式。
至於 UTF-16、UTF-16LE、UTF-16BE、UTF-32.. 就較少被使用。

image

對於 UniCode 相關議題可以參考 UTF-8 & Unicode 迷思 一文。

接下來,更細緻說明一下,上文提及"這時儲存的文字檔內容,將是和存檔電腦的環境設定有關。"的意思;使用電腦的人多會了解,他是在打繁體中文還是簡體中文,即便是同一個中文字在簡繁體中是相同的字樣
(例如:中,簡繁同字;國,這字就呈現出[繁]、[簡]),
但是它被存檔時,就會和存檔電腦的環境設定有關。

有興趣的讀者,可以在下列指令中,看到設定值

開始 / 控制台 / 地區及語言選項 / 進階

image <== 這是 繁體電腦 的設定

image <== 這是 简体電腦 的設定

 

看的這些,各位看官是不是有想到,如果你打開一份來自簡體地區的文件檔,結果是亂碼一片,應該知道要如何應變了吧 !!

UTF-8 & Unicode 迷思

平時,使用電腦打中文文件是很輕鬆平常的事情,也不覺得有什麼困難;早以習以為常的事,就不會再深入了解其中的知識。(也可能是太平常了,習慣了,也不知道要如何深入了解相關的知識與提出問題)
一直到網頁設計上的需要及有時會用到"簡體"內容的檔案碰到瓶頸時,才知道是要真正了解什麼是 Unicode 的時候了 !!

以往的學習中, 只知道 Unicode 可以讓簡體正常呈現在繁體電腦的環境中,也可以讓簡、繁體或是世界各國的語言文字(如日文、阿拉伯文、法文、韓文 …)顯示在同一個檔案中。

想不到 Unicode 還可以再細分成:

  1. UTF-8
  2. UTF-16
  3. UTF-16 Big Endian(簡稱 UTF-16BE)
  4. UTF-16 Little Endian(簡稱 UTF-16LE,也是一般所說的 Unicode)
  5. UTF-32
  6. UTF-32 Big Endian(簡稱 UTF-32BE)
  7. UTF-32 Little Endian(簡稱 UTF-32LE)

上述各分類會因編碼規格的不同,而會有檔案大小不同的情形。
● Unicode transformation format (UTF)
● Byte Order Mark (BOM)
通用字符集 Universal Character Set (UCS)
● 基本多語言平面 Basic Multilingual Plane (BMP)
● Most Significant Byte (MSB)
● Least Significant Byte (LSB)
● Unicode的學名是"Universal Multiple-Octet Coded Character Set",簡稱為UCS。
UCS可以看作是"Unicode Character Set"的縮寫。

其中,Little Endian 和 Big Endian 與檔案大小無關,而是資料 byte order 的差異,也就是高位元組(MSB)放前面或是低位元組(LSB)放前面差異。
例如:
內碼:1234h(0x1234)而言,高位元組是 0x12,低位元組是 0x34
在記憶體內的存放順序,若是Little Endian則為:0x340x12,Big Endian則為0x120x34
例如:
「漢」字的Unicode編碼是0x6C49。那麼寫到文件裡時,究竟是將0x6C寫在前面,還是將0x49寫在前面?
如果將0x6C寫在前面,就是Big Endian。
還是將0x49寫在前面,就是Little Endian。

UTF-8以字元為編碼單元,沒有字元序的問題。
UTF-16以兩個字元為編碼單元
在UCS編碼中有一個叫做"ZERO WIDTH NO-BREAK SPACE"的字元,它的編碼是FEFF
FFFE在UCS中是不存在的字元,所以不應該出現在實際傳輸中。
UCS規範建議我們在傳輸字元流前,先傳輸字元"ZERO WIDTH NO-BREAK SPACE"。
如果收到FEFF,就表明這個字元流是Big-Endian;
如果收到FFFE,就表明這個字元流是Little-Endian。

UTF-8不需要BOM來表明字元順序,但可以用BOM來表明編碼方式。字元"ZERO WIDTH NO-BREAK SPACE"的UTF-8編碼是 EF BB BF。所以如果接收者收到以EF BB BF開頭的字元流,就知道這是UTF-8編碼了。

Summarizes of the properties of each UTFs

Name UTF-8 UTF-16 UTF-16BE UTF-16LE UTF-32 UTF-32BE UTF-32LE
Smallest code point 0000 0000 0000 0000 0000 0000 0000
Largest code point 10FFFF 10FFFF 10FFFF 10FFFF 10FFFF 10FFFF 10FFFF
Code unit size 8 bits 16 bits 16 bits 16 bits 32 bits 32 bits 32 bits
Byte order N/A <BOM> Big-Endian Little-Endian <BOM> Big-Endian Little-Endian
Fewest bytes per character 1 2 2 2 4 4 4
Most bytes per character 4 4 4 4 4 4 4