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 來定義啦~~~
要注意的另一點,如果下拉式選單因其他欄位的變化而造成值是相同但是顯示的名稱不同,
再查詢的時候就要再多判斷要帶出來的顯示名稱,並上下筆做查詢的時候也要判斷。
This man is too old to remember everything in his brain. Right now, he needs a place to write down what he has studied.
標籤
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日 星期二
2015年1月29日 星期四
PHP在不同頁面之間傳值的三種常見方式
http://fanli7.net/a/bianchengyuyan/PHP/20140531/510971.html
接觸PHP也有幾個月了,本文總結一下這段日子中,在編程過程裏常用的3種不同頁面傳值方法,希望可以给大家参考。有什麼意見也希望大家一起討論。
一. POST傳值
post傳值是用於html的<form>表單跳轉的方法,很方便使用。例如:
二.GET傳值
GET傳值是通過跟隨url傳遞的,在頁面跳轉時,跟着url跳轉。常用於<a>標簽的使用。例如:
三.SESSION傳值
SESSION是全局變量的一種,經常用於用戶登陆後保存用戶id之類的常用數據。一旦保存到SESSION中,其他頁面都可以通過SESSION獲取,SESSION的使用要開启session:
接觸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 次 ] |
|
| [ 給個讚 ] [ 給個讚 ] [ 回應本文 ] [ 發表新文 ] [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ] | |
|
| 作者 :
davidsets(勇ㄚ)
[ 貼文 32 | 人氣 705 | 評價 80 | 評價/貼文 2.5 | 送出評價 2 次 ] |
|
| [ 給個讚 ] [ 給個讚 ] [ 回應本文 ] [ 發表新文 ] [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ] | |
|
| 作者 :
davidsets(勇ㄚ)
[ 貼文 32 | 人氣 705 | 評價 80 | 評價/貼文 2.5 | 送出評價 2 次 ] |
|
| [ 給個讚 ] [ 給個讚 ] [ 回應本文 ] [ 發表新文 ] [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ] | |
|
| 作者 :
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的選項取消(如果被開啟的話)。
若這些設定沒有問題,仍沒辦法連線,再做一些其他檢查:
MySQL安裝後可能預設關閉遠端連線,因此在遠端進行連線時會出現這個錯誤:
ERROR 2003 (HY000): Can't connect to MySQL server on '***.***.***.***' (###)
如果必須透過遠端檢視或操作MySQL Server,需要修改一下設定檔,將bind-address、skip-networking的選項取消(如果被開啟的話)。
若這些設定沒有問題,仍沒辦法連線,再做一些其他檢查:
- netstat -nl grep 3306 (此數字是MySQL預設的連接埠)是否有0.0.0.0:3306出現,若沒有則表示MySQL server未啟動或仍未允許遠端連線
- 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),就可以了。
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;
訂閱:
文章 (Atom)