標籤

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)

2015年2月3日 星期二

讓 TIPTOP 下拉式選單可以動態的顯示

http://4shiun.blogspot.tw/2013/01/tiptop.html

在 Genero Studio 設計 ComboBox 下拉式選單的時候,
通常都是直接在 4fd 檔上面定義固定的 item 項目。
然後再到 p_perlang 修改多國語言顯示的名稱。

提供一個方式可以讓 ComboBox 物件可以隨著其他欄位的變化,來改變下拉式選單的項目。
就是用 ui.ComboBox 的方法。

參考 Genero 的說明文件,ui.ComboBox 提供下式的 Function。
CLASS Method:
1. forname :物件名稱

2. setDefaultInitializer:設定初始的項目

OBJECT Method:
1. addItem(name,text) :增加項目,name 是值,text 是顯示名稱

2. getColumnName():回傳欄位的名稱

3. getIndexOf(name):回傳 name 是在項目的第幾個,沒有回傳 0

4. getItemCount():回傳項目的數量

5. getItemName(index):回傳第 index 個的項目 name 值

6. getItemText(index):回傳第 index 個的項目 text 值

7. getTableName():回傳欄位的 table_name 或是 FORMONLY

8. getTag():回傳欄位的 tag 值

9. getTextOf(name) :回傳 name 是在項目的第幾個的 text 值,沒有回傳 null

10. removeItem(name):刪除名稱是 name 的項目

11. clear():清除所有的項目

範例1:ComboBox 依開啟時可以顯示 1~5 的項目選單
方法1:
1. 在 4fd 檔中的 ComboBox 欄位 Initializer 屬性加上 cb_load 字串

2. 在 4gl 檔中增加一個 Function
    FUNCTION cb_load(combox)
         DEFINE combox ui.ComboBox
         LET combox = ui.ComboBox.forname("ima12")
         CALL combox.clear()
         FOR g_num = 1 TO 5
             CALL combox.addItem(g_num ,g_num)
         END FOR
    END FUNCTION

方法2:
1. 在 OPEN WINDOW 之前加上:
     CALL ui.ComboBox.setDefaultInitializer("cb_load")

2. 同上增加 cb_load 的 Function

範例2:ComboBox 可以隨著某個欄位所選擇的,列出對應的選單
 1. 新增 cb_load 的 Function
    FUNCTION cb_load(combox)
         DEFINE combox ui.ComboBox
         DEFINE l_azf01   LIKE  azf_file.azf01,
                       l_azf03    LIKE azf_file.azf03
         LET combox = ui.ComboBox.forname("ima12")
         DECLARE ima12 CURSOR FOR
            SELECT azf01,azf03 FROM azf_file
                WHERE azf02 = g_ima.ima12
         FOREACH ima12  INTO l_azf01,l_azf03
                 CALL combox.addItem( l_azf01,l_azf03)
         END FOREACH
    END FUNCTION

2. 然後再 INPUT 段的 BEFORE FIELD 欄位的時候,呼叫就可以變化了
    BEFORE FIELD ima12
           CALL cb_load("")

當欄位 ima12 選擇是那一個的時候,跳到 ComboxBox 欄位的時候,
就會帶出不同的下拉式選單

總結:在 Genero 的 ComboBox 有一些可惜的地方,只能在查詢的時候才能夠輸入資料
(要開啟 queryEditabile ),不能提供新增的時候可以輸入選單以外的值。
再來就是如果是用此方式的話,多國語言的功能就不能再維護了,
如果是帶 Table 的資料多國語言就沒問題,但是是自定的話,當然也可以用 p_ze 來定義啦~~~
要注意的另一點,如果下拉式選單因其他欄位的變化而造成值是相同但是顯示的名稱不同,
再查詢的時候就要再多判斷要帶出來的顯示名稱,並上下筆做查詢的時候也要判斷。

2015年1月29日 星期四

PHP在不同頁面之間傳值的三種常見方式

http://fanli7.net/a/bianchengyuyan/PHP/20140531/510971.html

      接觸PHP也有幾個月了,本文總結一下這段日子中,在編程過程裏常用的3種不同頁面傳值方法,希望可以给大家参考。有什麼意見也希望大家一起討論。   &
      接觸PHP也有幾個月了,本文總結一下這段日子中,在編程過程裏常用的3種不同頁面傳值方法,希望可以给大家参考。有什麼意見也希望大家一起討論。
      一. POST傳值
      post傳值是用於html的<form>表單跳轉的方法,很方便使用。例如:
 <html>
 <form action='' method=''>
 <input type='text' name='name1'>
 <input type='hidden' name='name2' value='value'>
 <input type='submit' value='提交'>
 </form>
 </html>
      form中的action填入的是跳轉頁面的url路徑,method填入post方法。form表單中的提交按鈕按下後,就會把form中有name的內容都傳到填入的url中,可以通過$_POST['name']獲取,例如:
<?php
$a=$_POST['name1'];
$b=$_POST['name2'];
?>
      這裏有個很方便的小技巧,在input標簽中把type選为'hidden'時,這個input標簽會隱藏起來,不在頁面顯示,但這input標簽在 form中,並且有name值和value值,同样會跟隨提交按鈕傳遞過去,這種隱藏標簽可以傳遞一些不想顯示出來的內容。
    二.GET傳值
     GET傳值是通過跟隨url傳遞的,在頁面跳轉時,跟着url跳轉。常用於<a>標簽的使用。例如:
<a href='delete.php?id=value'>點我跳轉</a>
   跳轉進入xxx.php後,就能通過$_GET['id']獲取傳遞的值。GET方法常用於URL的目的是刪除或讀取某個id的php文件。
   三.SESSION傳值
   SESSION是全局變量的一種,經常用於用戶登陆後保存用戶id之類的常用數據。一旦保存到SESSION中,其他頁面都可以通過SESSION獲取,SESSION的使用要開启session:
<?php
//session賦值
   session_start();
   $_SESSION['one']=value1;
   $_SESSION['two']=value2;

//session值的讀取:
   $one = $_SESSION['one'];
   
   //session值的銷毀
   unset($_SESSION['one']);
?>
   以上三種方式是常用方式,大家可以参考使用。

2015年1月28日 星期三

請問不使用< input type="submit"> 如何傳值?

http://www.programmer-club.com.tw/ShowSameTitleN/php/9872.html

請問不使用<input type="submit">如何傳值? 更改我的閱讀文章字型大小
作者 : shanesss(JJM)
[ 貼文 51 | 人氣 9379 | 評價 0 | 評價/貼文 0 | 送出評價 16 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2009/5/22 下午 07:56:23
請問各位大大
select可以不透過<input type="submit">就傳值到其他網頁嗎?

code如下:
//-------------------------------------------------------------------------
<form name="form1" method="post" action="card.php">
     <p align="left">
     <select name="color" size="1">
     <option selected value="0">請選擇</option>
     <option value="white">白</option>
     <option value="red">紅</option>
     </select>
     </p>
</form>
//-------------------------------------------------------------------------
有方法可以把值傳遞到card.php嗎?

謝謝
作者 : davidsets(勇ㄚ)
[ 貼文 32 | 人氣 705 | 評價 80 | 評價/貼文 2.5 | 送出評價 2 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2009/5/23 上午 07:11:11
純粹是Javascript的問題,不要submit按鈕,甚至不要form也可以給你傳
<script language=javascript>
function link(obj){
location.href="abc.php?color="+obj;
}
</script>
     <select name="color" size="1" onchange=link(this.value)>
     <option selected value="0">請選擇</option>
     <option value="white">白</option>
     <option value="red">紅</option>
     </select>
最後在abc.php,用$_GET或$_REQUEST去接收color這個變數即可
作者 : davidsets(勇ㄚ)
[ 貼文 32 | 人氣 705 | 評價 80 | 評價/貼文 2.5 | 送出評價 2 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2009/5/23 上午 07:18:18
囧"~這個討論區沒有重新編輯的功能
不知道你已經假設card.php這個檔名了

即然發了文章,再雞婆多跟你講一些
除了剛剛的方法外,你還可以偷偷的送
<script language=javascript>
function link(obj){
obj.submit;
}
</script>
<form name="form1" method="post" action="card.php">
     <p align="left">
     <select name="color" size="1 onchange=link(this.form)>
     <option selected value="0">請選擇</option>
     <option value="white">白</option>
     <option value="red">紅</option>
     </select>
     </p>
</form>

第一個方法你還要傳另一個值的話會比較麻煩
第二個方法,你要傳多少表單都沒關係,只要在同一個form的資料都會送出
作者 : shanesss(JJM)
[ 貼文 51 | 人氣 9379 | 評價 0 | 評價/貼文 0 | 送出評價 16 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2009/5/25 上午 10:00:47
謝謝大大指導~

2015年1月12日 星期一

解决PHP下载乱码问题,word doc 文件等


header('Content-type: application/octet-stream');
header('Content-Disposition: attachment; filename="' . $docno);
ob_clean();
flush();

readfile('http://xxx/cgi-bin/fglccgi/topprod/topcust/help/0/aim/download_doc/' . $docno);

2015年1月8日 星期四

遠端無法連線到MySQL Server ERROR 2003 (HY000)

http://blog.lyhdev.com/2006/07/mysql-server-error-2003-hy000.html

MySQL安裝後可能預設關閉遠端連線,因此在遠端進行連線時會出現這個錯誤:
ERROR 2003 (HY000): Can't connect to MySQL server on '***.***.***.***' (###)

如果必須透過遠端檢視或操作MySQL Server,需要修改一下設定檔,將bind-address、skip-networking的選項取消(如果被開啟的話)。

若這些設定沒有問題,仍沒辦法連線,再做一些其他檢查:
  1. netstat -nl grep 3306 (此數字是MySQL預設的連接埠)是否有0.0.0.0:3306出現,若沒有則表示MySQL server未啟動或仍未允許遠端連線
  2. iptables -L 檢視一下是否被防火牆擋掉

Excel開啟CSV檔的花式技巧

http://wen198599.pixnet.net/blog/post/22314819-%5B%E5%BC%95%E7%94%A8%5Dexcel%E9%96%8B%E5%95%9Fcsv%E6%AA%94%E7%9A%84%E8%8A%B1%E5%BC%8F%E6%8A%80%E5%B7%A7

CSV檔是很普遍的Grid式資料匯出格式,而很多人也都知道Excel可以直接將CSV檔開啟成試算表。不過稱作Comma Separated Value的CSV,除了"用逗號將值隔開"之外,還有一些進階的花式技巧。例如:

1. 如果是內含逗號的字串值,可以用雙引號將字串包起來,例如: 886,"Taipei, Taiwan"
2. 如果在雙引號中的字串中又包含了雙引號,則可以遵循VB/VBScript的慣例,用兩個雙引號代替。例如: "12'30"""-->12'30"
3. 用Excel開啟CSV時,Excel會自動判斷值的性質,進行資料轉換。比較煩的是,明明編號是007,就算用了雙引號包夾成"007",Excel還是會將它轉換成7,即使在Excel中重新調整它的儲存格式為字串,也無法還原回007。
這裡分享一個小技巧,我們可以用="007"的宣告方式,強制指定字串值,Excel就不會雞婆將它轉成數字。而這個技巧還可以再延伸,甚至可以用=SUM(B2:B5)的寫法,指定儲存格的運算式。範例如下:

[Updated 2007/02/01]
在公司分享這篇KB後,同事Daniel也提供了他的寶貴經驗: 看來Excel只接受ANSI/BIG5編碼的CSV檔,如果將CSV檔存成Unicode編碼,Excel就無法識別出逗號,而會將整列資料視為同一個值。
謝謝Daniel的分享!


另外…Excel不默認支持UTF8的CSV文件
因此excel打開utf-8中文的csv百分百會發生這種問題。

有兩種解決辦法:
1. 可以先用notepad打開csv,另存為ANSI編碼,再用Excel打開
2. 先打開空的Excel,然後在料->取得外部資料->從文字檔→選擇csv文件,在導入資料對話框中選好UTF-8的編碼(你會發現默認是ANSI),就可以了。

Perl 解決Wide character in print with UTF-8 mode

use utf8;
binmode(STDIN, ':encoding(utf8)');
binmode(STDOUT, ':encoding(utf8)');
binmode(STDERR, ':encoding(utf8)');
 
但是如果要寫入FILE,則是
open FILE ,">:encoding(utf8)","tpca.csv";
print FILE ...;
close FILE;