標籤

4GL (1) 人才發展 (10) 人物 (3) 太陽能 (4) 心理 (3) 心靈 (10) 文學 (31) 生活常識 (14) 光學 (1) 名句 (10) 即時通訊軟體 (2) 奇狐 (2) 爬蟲 (1) 音樂 (2) 產業 (5) 郭語錄 (3) 無聊 (3) 統計 (4) 新聞 (1) 經濟學 (1) 經營管理 (42) 解析度 (1) 遊戲 (5) 電學 (1) 網管 (10) 廣告 (1) 數學 (1) 機率 (1) 雜趣 (1) 證券 (4) 證券期貨 (1) ABAP (15) AD (1) agentflow (4) AJAX (1) Android (1) AnyChart (1) Apache (14) BASIS (4) BDL (1) C# (1) Church (1) CIE (1) CO (38) Converter (1) cron (1) CSS (23) DMS (1) DVD (1) Eclipse (1) English (1) excel (5) Exchange (4) Failover (1) Fedora (1) FI (57) File Transfer (1) Firefox (3) FM (2) fourjs (1) Genero (1) gladiatus (1) google (1) Google Maps API (2) grep (1) Grub (1) HR (2) html (23) HTS (8) IE (1) IE 8 (1) IIS (1) IMAP (3) Internet Explorer (1) java (4) JavaScript (22) jQuery (6) JSON (1) K3b (1) ldd (1) LED (3) Linux (120) Linux Mint (4) Load Balance (1) Microsoft (2) MIS (2) MM (51) MSSQL (1) MySQL (27) Network (1) NFS (1) Office (1) OpenSSL (1) Oracle (131) Outlook (3) PDF (6) Perl (60) PHP (33) PL/SQL (1) PL/SQL Developer (1) PM (3) Postfix (2) postfwd (1) PostgreSQL (1) PP (50) python (5) QM (1) Red Hat (4) Reporting Service (28) ruby (11) SAP (234) scp (1) SD (16) sed (1) Selenium (3) Selenium-WebDriver (5) shell (5) SQL (4) SQL server (8) sqlplus (1) SQuirreL SQL Client (1) SSH (3) SWOT (3) Symantec (2) T-SQL (7) Tera Term (2) tip (1) tiptop (24) Tomcat (6) Trouble Shooting (1) Tuning (5) Ubuntu (37) ufw (1) utf-8 (1) VIM (11) Virtual Machine (2) VirtualBox (1) vnc (3) Web Service (2) wget (1) Windows (19) Windows (1) WM (6) Xvfb (2) youtube (1) yum (2)
顯示具有 agentflow 標籤的文章。 顯示所有文章
顯示具有 agentflow 標籤的文章。 顯示所有文章

2014年3月10日 星期一

如何使用HTML OnClick() event 在 agentflow 使物件enable/disable

1. DynamicForm.Button1.disabled=true;   (反白)
2. DynamicForm.Button1.disabled=false;
3. DynamicForm.Button1.disabled = ! DynamicForm.Button1.disabled;

2013年12月4日 星期三

Java 有 3rd party class 時,應該如何放

http://tw.myblog.yahoo.com/l314kimo/article?mid=338&prev=346&next=337&l=f&fid=10

今天總算釐清了一些困擾我很久的東西,所以做個簡單的筆記。

一、安裝單一版本的jdk時,通常會有:

4個java.exe:

   1.WINDOWS\system32\java.exe
   2.[JRE_location]\bin\java.exe
   3.[JDK_location]\bin\java.exe
   4.[JDK_location]\jre\bin\java.exe

2個JRE:
   1.Public JRE (指[JRE_lcation])
   2.Private JRE (指[JDK_location]\jre)

前兩個java.exe使用的是Public JRE,後兩個java.exe使用的是Private JRE。




二、classpath無需設定rt.jar的路徑,因為jdk會預設載入。(參考六)

可以在console mode 輸入java -verbose得之。
(verbose 可以顯示JVM會依序load哪些Class)
不知道是幾版之後才如此。總之,我試了又試,有沒有設rt.jar路徑真的無差別,
很好奇為什麼大家都說要在classpath設定rt.jar,而我在google上卻找不到答案。
也有人提倡最好少設classpath。




三、path用來設定指令的前置位址,如下:

(可以在console mode 輸入set path 或 path以顯示)
C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;
C:\Program Files\Microsoft SQL Server\90\Tools\binn\;
C:\Program Files\Java\jdk1.6.0\bin;
C:\Program Files\Microsoft Visual Studio .NET 2003\Common7\Tools\Bin;

所以當我們在console mode 輸入java XXX 時,如果current目錄沒有java這指令時,
便會依序嘗試path下的路徑。




四、jdk目錄下之所以安置了一個jre,原因在於jdk下的工具大都是用java開發的。

如:java.exe , javac.exe jar.exe..等,(這些工具都放在jdk\lib\tools.jar中)
外表雖然是用RPC包裝成.exe檔,但其實它們都需要呼叫JRE的library。
所以JDK下就放了一個專供JDK使用的JRE,
但也可以透過path的設定讓[JDK_location]\jre被一般使用者使用。




五、在console mode使用java 這指令時,它使用的是哪個jre呢?

1.先找自己的目錄下是否有jre.

2.父目錄底下的jre目錄.(jdk\bin下的工具便是如此找到jdk\jre)

3.查詢Windows Registry
(HKEY_LOCAL_MACHINE\Software\JavaSoft\Java Runtime Environment\)

所以這時path的順序設定將決定採用的是哪一個jre。

case1:
若path的順序是\WINDOWS\system32 在 \[JDK_location]\bin 之前。
java指令便是執行\WINDOWS\system32\java.exe
由於windows下無jre目錄,所以會參考Window Registry下的jre。
(即前述的Public JRE)

case2:
若path 的順序是\[JDK_location]\bin 在\windows\system32 之前。
那麼java指令便是執行C:\[JDK_location]\bin\java.exe
由於jdk下有一個jre目錄,所以java會參考jdk\jre。
(即前述的Private JRE)

最常發生的問題是當path的順序如case1,
java指令找到的jre與javac找到的jre是不同的。
產生的問題待第六點解釋。




六、java找尋class的順序

根據JDK 文件說明, java以下面3種順序找尋class的順序
1.Bootstrap classes

2.Extension classes

3.Users classes



Bootstrap classes指的是java在啟動時載入的class,
這些class主要是rt.jar 和 jre/lib 目錄下的一些class。
(所以rt.jar可以不須加入classpath)

下面列出系統中預設的Bootstrap classes:
jre\lib\rt.jar; jre\lib\i18n.jar;
jre\lib\sunrsasign.jar; jre\lib\jsse.jar;
jre\lib\jce.jar; jre\lib\charsets.jar;
jre\classes


Extension classes 指的是jre/lib/ext 目錄下的jar或zip檔。
third-party 的 library通常會放在這目錄下,如java3d, jogl..等。
當classloader 需要resolve class時,jre會自動來此目錄下找。
如果不同名字的jar,卻包含了相同的class,那麼哪一個class被載入是不一定的。

第五點最後提到的問題,常常跟Extension classes扯上關係。
當我們使用third-party的library時,如果只將jar檔放在Private JRE/lib/ext中,
javac指令因為使用Private JRE,所以能夠找到third-party library,得以順利compile。
但java指令使用的是Public JRE,Public JRE找不到 third-party library,
以致無法順利執行,原因是無法import package。

解決的方法有:
1.將third-party library jar檔 在 private JRE/public JRE 各放一份。
2.設定path時,使用第五點的case2。使java及javac指都優先使用Private JRE。

Eclipse可以很方便使用third -party library,
Project->Properties->Java Build Path->Libraries->Add External JARs
(陶百學長教我的)



User classes便是指我們在classpath設定路徑下的class。
如:若總是使用c:\java\的class,或是需要使用c:\lib\test.jar裡的library,
便可以set classpath =.;c:\java\;c:\lib\test.jar
(.jar檔須將完整路徑名加入classpath, jre才會進入該jar檔裡找尋target class)

user classes尋找的優先序:
(1)若無設定classpath, jre預設找(.)目前目錄是否存在target class.
(2)若有設定classpath, jre只找classpath設定的路徑是否存在target class.
(3)在console mode下使用-cp 或 -classpath, 則jre只找參數後的路徑是否存在target class.
(4)在console mode使用-jar來指定jar檔時, jre只找尋jar中是否存在target class.

2013年8月7日 星期三

將 excel 文件傳輸至 server 端,再 poi 解析導入 table 中

http://forum.flowring.com/post/view?bid=34&id=12246&sty=3&age=0&tpg=1&ppg=1#12246


//上傳按鈕觸發事件
Form.openUploadFileWin("D:\\AgentflowShare\\", "strExcelName");

//導入按鈕觸發事件
//採用 POI? 取 Excel 工作薄
var workbook = new Packages.org.apache.poi.hssf.usermodel.HSSFWorkbook(new Packages.java.io.FileInputStream("D:\\AgentflowShare\\" + strFileName));
var sheet = workbook.getSheet(workbook.getSheetName(0));//獲取 EXCEL 工作薄
var rows = sheet.getPhysicalNumberOfRows();//獲取行數
if (rows > 0) {
    sheet.getMargin(sheet.TopMargin);
    for (var r = 1; r < rows; r++) { //首行取出標題欄
        var row = sheet.getRow(r); //獲得單行
        if (row != null) {
            var cells = row.getLastCellNum();//?得列?
            for (var c = 0; c < cells; c++) {
                row.getCell(c);
        var cell = row.getCell(c);//獲得單列
                cmpExcelTable.setValueAt(cell, r - 1, c);//插入數據
            }
        }
    }
}

agentflow 應用程式中上載下載檔案 example

http://forum.flowring.com/post/view?bid=33&id=1135&sty=3&keywords=%E6%AA%94%E6%A1%88


/*********************************************************/
// 範例:應用程式中上載下載檔案。
// 說明:在應用程式中,使用API來執行上載和下載檔案功能。
// 設定:使用Form.openUploadFileWin()和Form.downloadFileCustom()。
// 適用版本:(只適用於JSP表單) Agentflow V2.0或以上版本
/*********************************************************/

在表單的openFormAction中加入以下code:

{ALL:
  var file = new Packages.java.io.File("C:/formFile").listFiles(); //抓取特定目錄下所有檔案名稱
  var table = Form.getComponent("tspFile");
  for(var r = 0; r < Packages.java.lang.reflect.Array.getLength(file); r++){
    var fileName = new Packages.java.lang.String(file[r]);
    table.setValueAt(fileName.substring(12), r, 0); //把檔案名稱加入表格中
  }
}


在[上載檔案]按鈕的actionPerformed中加入以下code:
var fileTable = Form.getComponent("tspFile");
var row = fileTable.getRowCount();
Form.openUploadFileWin("C:\\formFile\\", "tspFile", row, 0); //上載指定檔案並把檔案名稱加入表格中


在[下載檔案]按鈕的actionPerformed中加入以下code:
var row = Form.getComponent("tspFile").getSelectedRow();
Form.downloadFileCustom("C:\\formFile\\", "tspFile", row, 0); //下載表格中選取的檔案到指定位置