2009年3月12日 星期四

Flex 與 Java servlet 串在一起(傳參數篇)

今天我要介紹如何透過HttpService的方式將Flex製作的會員註冊表單資料送出至Servlet,最後再將資料存至db

1.首先我們先用Flex拉一個表單如下圖,接著編輯MXML加入HttpService與將物件標上id

以下是code的部分,看的方法用顏色一樣的表示有關聯~~紅色部分表示您要傳資料至url的設定,其他就對照顏色看嚕


-------------------------------MXML---------------------------------

//基本上這個httpEncoding是為了傳網頁中文參數所以需先encoding
private function httpEncoding(param:String):String{
return encodeURIComponent(param);
}

private function insert_data():void{

var params:URLVariables = new URLVariables();
//塞你要傳的值給params變數
params.member_name = httpEncoding(this.member_name.text);
params.member_sex= httpEncoding(this.member_sex.selectedValue.toString());
params.member_birthday= httpEncoding(this.member_birthday.text);
//post至servlet
add_to_servlet.send(params);
}


-------------------------------MXML---------------------------------


2.撰寫Servlet端


---------------------------------------------JAVA Servlet-----------------------------------------
public class FlexServlet extends HttpServlet{

private static final long serialVersionUID = 1L;

public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException{
doPost(request,response);
}

public void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
resp.setContentType("text/xml;charset=utf-8");
resp.setHeader("Cache-Control", "no-cache");

String action = req.getParameter("action");
System.out.println("action:"+action);
if(action.equals("member_list")){
doQueryMemberList(req,resp);
}else if(action.equals("member_add")){
doInsertMember(req,resp);
}
}
private void doInsertMember(HttpServletRequest req,HttpServletResponse resp){
String member_name=URLDecoder.decode(req.getParameter("member_name"));
String member_sex=URLDecoder.decode(req.getParameter("member_sex"));
String member_birthday=URLDecoder.decode(req.getParameter("member_birthday"));
}

---------------------------------------------JAVA Servlet-----------------------------------------

這樣您就可以在java上進行db的新增與修改資料嚕....db那段有需要我在補上嚕.....

2009年2月3日 星期二

透過VBA 將Excel中所有的圖片與FaceID列出


最近因為研究vba內製作工具列,因此特別需要圖示(自己畫自訂圖想說麻煩之後再研究),所以就找了一下不然每次FaceID都亂填~~找了很久終於Google大神幫我找到了分享一下~
以下附上程式碼

Private Sub CommandButton1_Click()

Dim NewToolbar As CommandBar
Dim NewButton As CommandBarButton
Dim i As Integer, IDStart As Integer, IDStop As Integer


On Error Resume Next
Application.CommandBars("FaceIds").Delete
On Error GoTo 0


Set NewToolbar = Application.CommandBars.Add _
(Name:="FaceIds", temporary:=True)
NewToolbar.Visible = True


IDStart = 1
IDStop = 800

For i = IDStart To IDStop
Set NewButton = NewToolbar.Controls.Add _
(Type:=msoControlButton, ID:=2950)
NewButton.FaceId = i
NewButton.Caption = "FaceID = " & i
Next i
NewToolbar.Width = 600

End Sub


接著大家快點去玩工具列吧~

2009年1月31日 星期六

想做出類似google calendar 行事曆功能

最近因為想弄類似行事曆功能,所以參考Google Calendar作法,本來以為Google Calendar可以像Google Map一樣把api完全開放出來,但沒想到Google Calendar說實在的被綁死,目前Google Calendar可以用出所謂的Calendar分享,也就是說讀出Google端的資料,它無法像Google Map可以讀本端資料近來,也因為這樣我們根本無法用到Google Calendar的介面功能,因為Google Calendar內好用的就是他的事件定義功能,只要拖拉就可以建立事件,真的很棒....

我為了要能弄出類似取代功能,我想了幾個辦法,第一個是用類似iGoogle的版面調整功能,這樣可以弄出類似拖拉事件來改變事件的時間,類如從星期三下午3點拖拉將事件改製星期四下午3點,就用類似下圖iGoogle作法


第2種方法,我想用用圖層概念方式來做行事曆規劃,因為要先把取滑鼠座標的Script程式撰寫出來,如下
接下來既然滑鼠座標拿到了,就可以開始試了,首先我先把Google Calendar的日曆版面當成背景用,或者自己之後設計跟Google Calendar類似的版型,接著設計幾個事件圖案,目前我是用4個顏色的圖片來當作我們要定義的事件,使用者就可以托拉事件至你的行事曆時間如下圖範例,

下圖是拖拉後的結果
有這樣的範例之後,就可以直接抓取圖片的位置,就可以知道使用者選取什麼時間,我們再將此資訊儲存至資料庫,再讀出就可以弄出類似Google Calendar定義事件的功能,當然還差很多嚕,要自己寫下去才知道好不好用!

2009年1月28日 星期三

VBA上連線db教學範例

最近研究了一下office系列內的巨集,本來以為這種Basic語言是無法連資料庫的,沒想到真的有人有這個需求,所以我就研究一下vba連線到db抓資料,找了許多資料沒想到真的可以這樣連阿!!!
我的範例是連線 MS SQL2005,說真的感的滿久的才弄出來,現在跟大家分享一下嚕

首先小弟我打開PowerPoint中巨集選項的Visual Basic工具 我先拉個TextBox與Button,然後我要去做當我按下Button時候就連線到db取得我想要的資料,最後再把他print出來,既然可以連線到db剩下的運用就自己去想嚕


2009年1月15日 星期四

ubuntu 8.04 3G上網設定

Huawei Technologies Co., Ltd. E620 USB Modem

安裝驅動
下載驅動https://forge.betavine.net/frs/?group_id=12&release_id=26
選 Ubuntu Netbook Remix下的vodafone-mobile-connect_1.99.17-8_all.deb


終端機上執行順序如下:
1. apt-get install wvdial
2. gedit /etc/wvdial.conf

貼上如下:

[Dialer Defaults]
New PPPD = yes
Dial Command = ATDT
Dial Attempts = 1
Modem = /dev/ttyUSB0
Modem Type = Analog Modem
ISDN = 0
Baud = 115200
Username = user
Password = pass
Init1 = ATZ
Init2 = AT&F E1 V1 X1 &D2 &C1 S0=0
Phone = *99#
Stupid Mode = 1
Init3 =AT+CGDCONT=1,"IP","internet"

接著重開機(不確定要不要重開)

終端機上執行 wvdial Defaults

若成功會顯示

--> WvDial: Internet dialer version 1.60
--> Cannot get information for serial port.
--> Initializing modem.
--> Sending: ATZ
ATZ
OK
--> Sending: AT&F E1 V1 X1 &D2 &C1 S0=0
AT&F E1 V1 X1 &D2 &C1 S0=0
OK
--> Sending: AT+CGDCONT=1,"IP","internet"
AT+CGDCONT=1,"IP","internet"
OK
--> Modem initialized.
--> Sending: ATDT*99#
--> Waiting for carrier.
ATDT*99#
CONNECT 7200000
--> Carrier detected. Starting PPP immediately.
--> Starting pppd at Fri Jan 16 01:38:28 2009
--> Warning: Could not modify /etc/ppp/pap-secrets: Permission denied
--> --> PAP (Password Authentication Protocol) may be flaky.
--> Warning: Could not modify /etc/ppp/chap-secrets: Permission denied
--> --> CHAP (Challenge Handshake) may be flaky.
--> Pid of pppd: 13232
--> Using interface ppp0
--> pppd: ������[06][08]��[06][08]
--> pppd: ������[06][08]��[06][08]
--> pppd: ������[06][08]��[06][08]
--> pppd: ������[06][08]��[06][08]
--> pppd: ������[06][08]��[06][08]
--> local IP address 114.137.31.9
--> pppd: ������[06][08]��[06][08]
--> remote IP address 10.64.64.64
--> pppd: ������[06][08]��[06][08]
--> primary DNS address 168.95.1.1
--> pppd: ������[06][08]��[06][08]
--> secondary DNS address 168.95.192.1
--> pppd: ������[06][08]��[06][08]

就可以開始上網了...若要停用案ctrl+c

線上office非LiveDocument末屬

LiveDocument



這一兩年browser越來越強大,各大公司想盡辦法把所有的應用程式甚至作業系統都在browser上做,
最明顯的就是office,過去除了 Google Docs外,現在又多出了一個強大的線上office,聽說這個團隊是過去msn的開發團隊(創使團隊),一開始主打用browser打造跟 Office2007一樣功能介面的office,暌違了一年多總算現在Live Document推出實體產品了,目前Live Document開放的是presentation功能,玩了一下介面真的還不錯,比Google更華麗一點,主要是因為Live Document用的是Adobe AIR 開發的,所以承接了Flash的特效與ActionScript的的搭配,真的大家可以試試看。
browser上弄出類似作業系統的東西,現在不只是國外公司在推,連台灣的台積電都已經在測試了(上次看到朋友給我看他們用的browser作業系統,說真的還蠻棒的=.=)




LiveDocunent http://www.live-documents.com/

2009年1月8日 星期四

對於Yahoo API的感想

過去一直以來我都是追求著Google跑,今天總算可以換換口味試試看,在朋友口中聽見YUI(Yahoo User Interface),第一次聽到時候嚇一跳自己完全沒聽過,因為自己平常花很多時間閱讀,所以很遺惑....
而我這次會去看YUI主要重心放在Google也有的API上,分別是Calendar與Map,不過再這裡要解釋一下Yahoo的YUI指的是介面的部份,他提供使用CSS與Javascript(不用花太多時間弄美工)
包括button、menu、calendar(這裡的日曆功能真的只是日曆跟google)很多很多如下圖
接下來說一些我覺得yahoo不錯的服務如下(我只附上一部分)
這些服務中我覺得一個最棒的是BBauth,為什麼這樣說呢?你想想一搬來說是不是每去一個新網站都要註冊一個帳號,這是多麼麻煩又討厭的事情,自己想想一個人活到老不知道會申請多少個重複帳號,真的很煩,但yahoo提供了一個google沒有的服務阿,就是BBauth,只要使用他的API就可以登入您的系統了,而且我也覺得會員管理這個部份是新的網站最難增加會員的方法,所以新網站我真的蠻推荐使用,反正使用者登入之後可以拿到一些基本使用者資訊這樣就夠拉,密碼這部份yahoo也不會洩漏..

接下來要說明的就是Yahoo Map,本人覺得Map有點不夠精準且不夠詳細,雖然yahoo跟在地化服務做結合弄的還不錯,不過就是還不夠方便簡單,程式碼部份覺得比google再更少一點,可惜不夠強,不過一般使用者學應該很快,還有一個好處是申請yahoo map api不需要url驗證,所以可以一直用不需要固定ip,這點倒是蠻欣賞的。