Pages - Menu
▼
2013年12月9日 星期一
兩個usercontrol互相傳值
在A裡面透過建立一個事件,將 ChangePageSizeBySelect 讓 default.aspx能夠抓到事件,
讓default.aspx能夠抓到值,然後將值丟給B,做dropdownlist的databind
A.ascx.vb(裡面的dropdownlist 一定要做autopost back)
Public Property GetUC() As String
Get
GetUC = DropDownList1.SelectedValue
End Get
Set (value As String)
DropDownList1.SelectedValue = value
End Set
End Property
Public Delegate Sub UserControlEventHandler (ByVal sender As Object , ByVal str As String )
Public Event ChangePageSizeBySelect As UserControlEventHandler
Protected Sub DropDownList1_SelectedIndexChanged( ByVal sender As Object, ByVal e As System.EventArgs ) Handles DropDownList1.SelectedIndexChanged
RaiseEvent ChangePageSizeBySelect(Me , DropDownList1.SelectedValue)
End Sub
Default.aspx.vb
Protected Sub order_mainCus_code_ChangePageSizeBySelect(sender As Object , str As String ) Handles order_mainCus_code.ChangePageSizeBySelect
order_mainDiscus_customer.GetUC() = order_mainCus_code.GetUC()
End Sub
B.ascx.vb
Public Property GetUC() As String
Get
GetUC = DropDownList1.SelectedValue
End Get
Set (value As String)
Dim conn = New SqlConnection
Dim cmd As SqlCommand
Dim adapter As New SqlDataAdapter
Dim ds As New DataSet
Dim dt As New DataTable
Dim SqlString As String
conn.ConnectionString = System.Web.Configuration.WebConfigurationManager .ConnectionStrings( "ConnectionString").ConnectionString() '使用web config
SqlString = "select * from discus_customer where cus_code='" & value & "'"
'Label1.Text = SqlString
adapter = New SqlDataAdapter (SqlString, conn)
adapter.Fill(ds, "Discus_customer" )
DropDownList1.DataValueField = "discus_code"
DropDownList1.DataTextField = "discus_name"
DropDownList1.DataSource = ds.Tables( "Discus_customer" ).DefaultView
DropDownList1.DataBind()
Label1.Text = SqlString
End Set
End Property
2013年11月29日 星期五
VS2010 使用 CrystalReport 發生控制項錯誤
從SAP下載完後安裝CrystalReport,
建完報表後,要拉Viewer顯示內容,
卻發現不管怎麼拉,都會發生『建立控制項發生錯誤』。
或者是發生『'CrystalReportViewer' 在命名空間 'CrystalDecisions.Web' 中模稜兩可』
到Webconfig裡面尋找
看到這一段
再來到aspx看前面幾行,會看到
<%@ Register assembly="CrystalDecisions.Web, Version=10.5.3700.0, Culture=neutral, PublicKeyToken=692fbea5521e1304" namespace="CrystalDecisions.Web" tagprefix="CR" %>
建完報表後,要拉Viewer顯示內容,
卻發現不管怎麼拉,都會發生『建立控制項發生錯誤』。
或者是發生『'CrystalReportViewer' 在命名空間 'CrystalDecisions.Web' 中模稜兩可』
到Webconfig裡面尋找
看到這一段
<assemblies>
<add assembly="System.Design, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A"/>
<add assembly="System.Web.Extensions.Design, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
<add assembly="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
<add assembly="CrystalDecisions.CrystalReports.Engine, Version=13.0.2000.0, Culture=neutral, PublicKeyToken=692fbea5521e1304"/>
<add assembly="CrystalDecisions.ReportSource, Version=13.0.2000.0, Culture=neutral, PublicKeyToken=692fbea5521e1304"/>
<add assembly="CrystalDecisions.Shared, Version=13.0.2000.0, Culture=neutral, PublicKeyToken=692fbea5521e1304"/>
<add assembly="CrystalDecisions.Web, Version=13.0.2000.0, Culture=neutral, PublicKeyToken=692fbea5521e1304"/>
<add assembly="CrystalDecisions.ReportAppServer.ClientDoc, Version=13.0.2000.0, Culture=neutral, PublicKeyToken=692fbea5521e1304"/>
</assemblies>
先取得version的編號,再來到aspx看前面幾行,會看到
<%@ Register assembly="CrystalDecisions.Web, Version=10.5.3700.0, Culture=neutral, PublicKeyToken=692fbea5521e1304" namespace="CrystalDecisions.Web" tagprefix="CR" %>
他的version是10.5.3700.0 將他改成 13.0.2000.0 就正常了...
2013年10月15日 星期二
VB.net 播放音效(懶人包)
一.加入資源
- 在 [方案總管] 中選取專案之後,請在 [專案] 功能表上,按一下 [屬性]。
- 請選取 [資源] 索引標籤。
- 在 [資源設計工具] 工具列上,指向 [加入資源],按一下箭頭,然後按一下 [加入現有檔案]。
- 在 [將現有的檔案加入資源] 對話方塊中,瀏覽至內含要加入之資源的檔案 (.bmp、.ico、.wav 等),再按一下 [開啟]。檔案將會加入至 Resources 目錄,資源設計工具則會開啟您所加入資源類型的 [分類] 窗格。
- 對於檔案資源,您可以選擇性地在 [屬性] 視窗中設定檔案的 Encoding 和 FileType 屬性。二.播放音效
1.沒加入資源 My.Computer.Audio.Play("C:\Waterfall.wav", _ AudioPlayMode.BackgroundLoop)
2.有加入資源
My.Computer.Audio.Play(My.Resources.Waterfall, _
AudioPlayMode.BackgroundLoop)
都會在背景一直播放
參考:http://msdn.microsoft.com/zh-tw/library/w032hx3c(v=vs.90).aspx
需要停止時
My.Computer.Audio.Stop()
收工,只吃wav檔
2013年10月13日 星期日
華碩分享器,出現『此連接埠用於 Download Master』的解決方法...
最近搬家,朋友拿他以前的RT-N53 來當AP,
韌體是最新的 FW_RT_N53_3004374311.trx
早上更新完後發現要改密碼不能改,
一直跳 『此連接埠用於 Download Master』,
日期時間、密碼一直改不過來,後來才發現在同樣的頁面
有一個 從網際網路設定RT-N53 的選項,要改成『是』 ,然後隨便改port
就能存了。
啥鬼,我又不需要這個 用成『否』又一直跳 『此連接埠用於 Download Master』不給存。
韌體是最新的 FW_RT_N53_3004374311.trx
早上更新完後發現要改密碼不能改,
一直跳 『此連接埠用於 Download Master』,
日期時間、密碼一直改不過來,後來才發現在同樣的頁面
有一個 從網際網路設定RT-N53 的選項,要改成『是』 ,然後隨便改port
就能存了。
啥鬼,我又不需要這個 用成『否』又一直跳 『此連接埠用於 Download Master』不給存。
2013年10月3日 星期四
Notepad++ 在php中使用 php 跟 html 註解方式
php的單行註解是Ctrl+Q 而區塊註解 ALT+SHIFT+Q 是 /*.....*/
但寫html的時候註解是<!-- -->
以下教學是把/*......*/改成 <!-- ...........-->
xp的檔案目錄在%appdata%\Notepad++文件夾」內。
Win7 中是放在「C:\Users\user\AppData\Roaming\Notepad++」需改兩個地方
langs.xml、langs.model.xml 裡面
搜尋 php 大概在第一個搜尋就找的到了,
原先是
<Language name="php" ext="php php3 phtml" commentLine="//" commentStart="/*" commentEnd="*/">
修改成 html的註解方式 請參考language name="html" 的註解方式
<Language name="php" ext="php php3 phtml" commentLine="//" commentStart="<!--" commentEnd="-->">
重啟軟體後 即可用
但寫html的時候註解是<!-- -->
以下教學是把/*......*/改成 <!-- ...........-->
xp的檔案目錄在%appdata%\Notepad++文件夾」內。
Win7 中是放在「C:\Users\user\AppData\Roaming\Notepad++」需改兩個地方
langs.xml、langs.model.xml 裡面
搜尋 php 大概在第一個搜尋就找的到了,
原先是
<Language name="php" ext="php php3 phtml" commentLine="//" commentStart="/*" commentEnd="*/">
修改成 html的註解方式 請參考language name="html" 的註解方式
<Language name="php" ext="php php3 phtml" commentLine="//" commentStart="<!--" commentEnd="-->">
重啟軟體後 即可用
byte 轉 string 的問題
今天寫vb.net的app時,遇到一個問題
用
TextBox1.Text = Environment.NewLine+ " >> " + mesg + TextBox1.Text
把資料印出來的時候,
Dim inStream(10024) As Byte
serverStream.Read(inStream, 0, CInt(clientSocket.ReceiveBufferSize))
Dim returndata As String = _
System.Text.Encoding.ASCII.GetString(inStream)
如果加上msg(returndata)螢幕會只剩下那個returndata的資料,先前的資料都會被洗掉
後來確定是因為byte轉string的時候會產生眾多的ch(0),導致資料被蓋掉
所以就先.......
用空白取代後,再去空白
returndata = Replace(returndata, Chr(0), "")
msg(Trim(returndata))
用
TextBox1.Text = Environment.NewLine+ " >> " + mesg + TextBox1.Text
把資料印出來的時候,
Dim inStream(10024) As Byte
serverStream.Read(inStream, 0, CInt(clientSocket.ReceiveBufferSize))
Dim returndata As String = _
System.Text.Encoding.ASCII.GetString(inStream)
如果加上msg(returndata)螢幕會只剩下那個returndata的資料,先前的資料都會被洗掉
後來確定是因為byte轉string的時候會產生眾多的ch(0),導致資料被蓋掉
所以就先.......
用空白取代後,再去空白
returndata = Replace(returndata, Chr(0), "")
msg(Trim(returndata))
VB.net FOR 回圈
vb 的回圈有點不一樣,不小心卡在這卡了一段小時間
他的for 是 For i As Integer = 0 To sos_port.Length() - 1
注意是 TO...
For
計數變量 = 啟始值 To 終止值 [Step 步進值]
[敘述區塊]
[Continue For]
[Exit For]
Next
[敘述區塊]
[Continue For]
[Exit For]
Next
以往寫php 或 C 或asp.net 都試用 for i=0;i〈 來寫的,所以i會比目標值大,
但VB會跑到跟目標值一樣才停止,他的TO的意思應該是從0到N
2013年8月22日 星期四
MS Chart 使用兩條線做線圖...Multiple line
'假如是第二次載入
If Page.IsPostBack Then
Chart1.Visible = True
Dim date_s, date_e, type As String
Dim conn = New SqlConnection
Dim cmd As SqlCommand
Dim dr As SqlDataReader
Dim dt As DataTable = New DataTable
Dim SqlString As String
date_s = TextBox1.Text
date_e = TextBox2.Text
type = DropDownList1.SelectedValue
'date_s = "2013-08-21 16:48:00.000"
'date_e = "2013-08-21 17:50:00.000"
'type = "Co2"
conn.ConnectionString = System.Web.Configuration.WebConfigurationManager.ConnectionStrings("ConnectionString").ConnectionString() '使用web config
SqlString = "select * from environment_log " & _
" where CONVERT (VARCHAR(10), timestamp, 111) >='" + date_s & _
"' and CONVERT (VARCHAR(10), timestamp, 111) <= '" + date_e & _
"' and type='" + type + "' order by timestamp"
'Label1.Text = SqlString
cmd = New SqlCommand(SqlString, conn) '定義cmnd為SqlCommand指令
'comnd.ExecuteNonQuery() '執行
Try
conn.Open() '開啟連結
dr = cmd.ExecuteReader() '讀取
If dr.HasRows = True Then
'第一種datareader
塞入datatable,使用多個線圖仍須測試
dt.Load(dr)
''Use linq to datatable
'Dim search1 = From c In dt.AsEnumerable() _
'Where c.Field(Of String)("DriverID") = "temp1" _
'Select c
'Dim temp1 = search1.CopyToDataTable()
'Dim search2 = From c In dt.AsEnumerable() _
'Where c.Field(Of String)("DriverID") = "temp2" _
'Select c
'Dim temp2 = search2.CopyToDataTable()
'Chart1.DataSource = temp2
'Chart1.Series("Series1").XValueMember = "timestamp"
'Chart1.Series("Series1").YValueMembers = "value"
''Chart1.Series("Series2").XValueMember = "timestamp"
''Chart1.Series("Series2").YValueMembers = "value"
'第二種使用databindcrosstable
'Use DataBindCrossTable
Chart1.DataBindCrossTable(dt.Rows, "DriverID", "timestamp", "value", "")
'不使用下列方式,只會跑長條圖..
For Each cs As Series In Chart1.Series
cs.ChartType = SeriesChartType.Spline
'cs.IsValueShownAsLabel = True
Next
Chart1.DataBind()
End If
Catch ex As Exception
Response.Write(e.ToString())
Finally
If Not (dr Is Nothing) Then ' --關閉 DataReader
cmd.Cancel() '--自己補上的,原因在下面有講。
dr.Close()
End If
If (conn.State = ConnectionState.Open) Then ' --關閉 DB的連線
conn.Close()
End If
End Try
End If
2013年8月18日 星期日
AJAX Toolkit問題彙整
1.無法修改 Controls 集合,因為控制項包含程式碼區塊 (例如 <% ... %>)。
因為有使用master,所以在head裡面找是不是有<%..%>的語法
結果真的有...<script type="text/javascript" src='<%= ResolveClientUrl("~/Scripts/master.js") %>'></script>
把這段移到body裡面就好了。
2.compile 的時候出現,找不到 ScriptObjectBuilder.cs
把這個加到aspx 內
<asp:ScriptManager ID="ScriptManager1" runat="server"></asp:ScriptManager>
3.ajax元件沒作用
<asp:ScriptManager ID="ScriptManager1" runat="server"></asp:ScriptManager>
改成
<ajaxToolkit:ToolkitScriptManager ID="ToolkitScriptManager1" runat="server" > </ajaxToolkit:ToolkitScriptManager>
2013年7月15日 星期一
RDLC 產生PDF 多出空白頁
近日在用報表的格式,轉PDF出來的時候總會有許多不知名的空白產生。
除了 邊界及 主體大小 需設定以外
再將 報表內的 ConsumeContainWhiteSpace 改為 True
2013年5月8日 星期三
asp.net C# radio button changeChecked
一直使用Changecheck 要根據狀態改變他的值,
結果一直跑不過去,
最後發現......
因為 AutoPostBack="True" 沒有開.....
所以一直沒執行........
按.......卡了三天的原因竟然是這個..........
結果一直跑不過去,
最後發現......
因為 AutoPostBack="True" 沒有開.....
所以一直沒執行........
按.......卡了三天的原因竟然是這個..........
2013年2月6日 星期三
74HC595 重點提醒
2的0次方是最右邊的最低位數字(LSBFIRST),
2的7次方則是左邊的高位第八位數字(MSBFIRST)
MSBFIRST 表示 595 從左向右讀取二進制數;
LSBFIRST 則表示從右向左讀取。
a = 連接到595的數據輸入引腳(14號引腳)的數字輸出端口號。
b = 連接到595的時鐘端口引腳(11號引腳)的數字輸出端口號。
c 可以是 LSBFIRST 或者 MSBFIRST。MSBFIRST 表示 595 從左向右讀取二進制數;LSBFIRST 則表示從右向左讀取。
d = 實際要傳送給595用來表示二進制輸出端口狀態的數值 (0~255)。
綜合以上,個人得出的結論是,MSBFIRST及LSBFIRST只代表要從左邊開始讀二進位數值
或是從右邊開始讀二進位數值。
例如 85(十進位)換算成二進位為10101010
如果設定為MSBFIRST 則亮燈的順序 從左邊開始(10101010)
,因MSBFIRST是從左邊開始讀取二進位數,所以會先取1
如果設定為LSBFIRST 則亮燈的順序 從右邊開始(01010101)
,因LSBFIRST是從右邊開始讀取二進位數,所以會先取0
(1為亮燈0為暗)
如果串連兩顆74HC595移位暫存器,
同時下指令
shiftOut(DataPin, ClockPin, MSBFIRST, 5);
shiftOut(DataPin,ClockPin, MSBFIRST, 85);
則會發現 第一個亮的晶片是最遠的暫存器,
因此推斷當arduino丟一個8bit的資料給暫存器時,會先經由PIN 9輸出給較遠的暫存器,
當暫存器的資料滿時,再傳到原先的暫存器。
以上假設為將LatchPin拉回高電位
推斷是否正確,等明天再買一顆回來試試看。
2的7次方則是左邊的高位第八位數字(MSBFIRST)
MSBFIRST 表示 595 從左向右讀取二進制數;
LSBFIRST 則表示從右向左讀取。
shiftout(a,b,c,d);
a = 連接到595的數據輸入引腳(14號引腳)的數字輸出端口號。
b = 連接到595的時鐘端口引腳(11號引腳)的數字輸出端口號。
c 可以是 LSBFIRST 或者 MSBFIRST。MSBFIRST 表示 595 從左向右讀取二進制數;LSBFIRST 則表示從右向左讀取。
d = 實際要傳送給595用來表示二進制輸出端口狀態的數值 (0~255)。
綜合以上,個人得出的結論是,MSBFIRST及LSBFIRST只代表要從左邊開始讀二進位數值
或是從右邊開始讀二進位數值。
例如 85(十進位)換算成二進位為10101010
如果設定為MSBFIRST 則亮燈的順序 從左邊開始(10101010)
,因MSBFIRST是從左邊開始讀取二進位數,所以會先取1
如果設定為LSBFIRST 則亮燈的順序 從右邊開始(01010101)
,因LSBFIRST是從右邊開始讀取二進位數,所以會先取0
(1為亮燈0為暗)
如果串連兩顆74HC595移位暫存器,
同時下指令
shiftOut(DataPin, ClockPin, MSBFIRST, 5);
shiftOut(DataPin,ClockPin, MSBFIRST, 85);
則會發現 第一個亮的晶片是最遠的暫存器,
因此推斷當arduino丟一個8bit的資料給暫存器時,會先經由PIN 9輸出給較遠的暫存器,
當暫存器的資料滿時,再傳到原先的暫存器。
以上假設為將LatchPin拉回高電位
推斷是否正確,等明天再買一顆回來試試看。
2013年1月7日 星期一
Arduino Circuit board test
接法
1.正極
5v->circuit_board(+)->(+)resistors(C7)
2.訊號
digital(12)->D7
3.LED
(+)->E8
( -)->E9
4.負極(地線)
A9->circuit_board(-)->GND
CODE
void setup(){
pinMode(12,OUTPUT);
}
void loop(){
digitalWrite(12,HIGH);
delay(1000);
digitalWrite(12,LOW);
delay(1000);
}
2013年1月3日 星期四
痞客邦搬家至blogger
因為一些小錯誤,導致我忘了我轉到blogger
最後歸咎原因發現是pixet沒有關閉導致,
加上裡面還有一些舊文章,拜了一下G神,
最後發現大貓共和國寫的軟體,Blogtrans
一開始在匯入的時候,發現怎麼blogger的文章一直沒出來,
明明提示匯入成功...
其實只要重新整理就好...
搞了一個大烏龍..orz
流程:
1.痞客邦(匯出mt檔)
2.開軟體,轉成xml,
記得將副檔名改成.xml
3.開blogger匯入,
會看到匯入多少篇文章,
4.記得按重新整理,出現。
(ps.我沒有勾自動發佈)
引用:http://blog.miaout17.net/2011/04/30/blogtrans-1-0-1-update/
最後歸咎原因發現是pixet沒有關閉導致,
加上裡面還有一些舊文章,拜了一下G神,
最後發現大貓共和國寫的軟體,Blogtrans
一開始在匯入的時候,發現怎麼blogger的文章一直沒出來,
明明提示匯入成功...
其實只要重新整理就好...
搞了一個大烏龍..orz
流程:
1.痞客邦(匯出mt檔)
2.開軟體,轉成xml,
記得將副檔名改成.xml
3.開blogger匯入,
會看到匯入多少篇文章,
4.記得按重新整理,出現。
(ps.我沒有勾自動發佈)
引用:http://blog.miaout17.net/2011/04/30/blogtrans-1-0-1-update/
2013年1月2日 星期三
arduino七段顯示器
參考網址:http://yehnan.blogspot.tw/2012/02/arduinoseven-segment-display.html
七段顯示器 腳位圖
_
|_|
|_|.
由上到下順時鐘旋轉分別為
A
F B
G
E C
D .
針腳
由左到右所對應的英文分別為
GF地AB
ED地C.
A=4
B=3
C=2
D=12
E=13
F=10
G=11
. = 1
本來是用for跑0-9,後來想想改用random跑比較爽一點XD
七段顯示器 腳位圖
_
|_|
|_|.
由上到下順時鐘旋轉分別為
A
F B
G
E C
D .
針腳
由左到右所對應的英文分別為
GF地AB
ED地C.
A=4
B=3
C=2
D=12
E=13
F=10
G=11
. = 1
本來是用for跑0-9,後來想想改用random跑比較爽一點XD
#define NUM 8
#define t true //not bright
#define f false //bright
boolean data[10][NUM] = {
{t, f, f, f, f, t, f, f}, // 0
{t, f, f, t, t, t, t, t}, // 1
{t, t, f, f, t, f, f, f}, // 2
{t, f, f, f, t, f, f, t}, // 3
{t, f, f, t, f, f, t, t}, // 4
{t, f, t, f, f, f, f, t}, // 5
{t, f, t, f, f, f, f, f}, // 6
{t, f, f, f, t, t, t, t}, // 7
{t, f, f, f, f, f, f, f}, // 8
{t, f, f, f, f, f, f, t}, // 9
};
int pins[NUM]={1,2,3,4,10,11,12,13};
void setup(){
for(int i=0;i<NUM;i++)
{
pinMode(pins[i],OUTPUT);
}
}
void writeNumber(int n){
for(int i = 0; i < NUM; i++){
if (data[n][i]== t){
digitalWrite(pins[i],HIGH);
}
else{
digitalWrite(pins[i],LOW);
}
//digitalWrite(pins[i], data[n][i] == t ? HIGH : LOW);
//analogWrite(pins[i],50);
}
}
void loop(){
/* for(int n = 0; n <= 9; n++){
writeNumber(n);
}
*/
unsigned int n=0;
n=random(10);
writeNumber(n);
delay(1000);
/* for(int i=0;i<NUM;i++){
digitalWrite(pins[i],HIGH);
}
delay(1000);
for(int i=0;i<NUM;i++){
digitalWrite(pins[i],LOW);
}
delay(1000);
*/
}
Arduion 無法安裝驅動程式
今天剛拿到手的arduion,一開始插上去usb後就開始悲劇了...
按照眾多網站上面所寫,驅動程式指向 drivers\FTDI USB Drivers ,一整個悲劇,
找不到就是找不到,後來改指向drivers...shit 就找到了,剛忙了十幾分鐘是在忙啥鬼
(╯‵□′)╯︵ ┴─┴