]]>ALV单的应用http://www.tkk7.com/yuanhuaming/archive/2006/12/18/88457.html疯流成?/dc:creator>疯流成?/author>Mon, 18 Dec 2006 02:47:00 GMThttp://www.tkk7.com/yuanhuaming/archive/2006/12/18/88457.htmlhttp://www.tkk7.com/yuanhuaming/comments/88457.htmlhttp://www.tkk7.com/yuanhuaming/archive/2006/12/18/88457.html#Feedback0http://www.tkk7.com/yuanhuaming/comments/commentRss/88457.htmlhttp://www.tkk7.com/yuanhuaming/services/trackbacks/88457.htmlTables: MARA. *在这里定义一个用于显C的内部?br />data: begin of itab occurs 10, MATNR like MARA-MATNR, MTART LIKE MARA-MTART, MEINS LIKE MARA-MEINS, end of itab.
* type-pools: slis.
*定义一个显C的内表的一?br />DATA: L_ALV_FILED TYPE SLIS_FIELDCAT_ALV.
*定义昄的一列的框架 DATA: L_ALV_FILEDCAT TYPE SLIS_T_FIELDCAT_ALV. CLEAR L_ALV_FILED.
消息中有什么? 是否觉得一个消息记录中的信息像希腊语一P如果是这P那么看一看下面的解释Q?br />hwnd 32位的H口句柄。窗口可以是Mcd的屏q对象,因ؓWin32能够l护大多数可视对?br />的句?H口、对话框、按钮、编辑框{??br />message 用于区别其他消息的常量|q些帔R可以是Windows单元中预定义的常量,也可?br />是自定义的常量?br />wParam 通常是一个与消息有关的常量|也可能是H口或控件的句柄?br />lParam 通常是一个指向内存中数据的指针。由于W P a r a m、l P a r a m和P o i n t e r 都是3 2位的Q?br />因此Q它们之间可以相互{换?/font>
昄剪脓板的新内容; WM_PAINTCLIPBOARD = $0309; 当剪贴板包含CF_OWNERDIPLAY格式的数据ƈ且剪贴板观察H口的客户区需要重画; WM_VSCROLLCLIPBOARD = $030A; WM_SIZECLIPBOARD = $030B; 当剪贴板包含CF_OWNERDIPLAY格式的数据ƈ且剪贴板观察H口的客户区域的大小已经改变是此 消息通过剪脓板观察窗口发送给剪脓板的所有者; WM_ASKCBFORMATNAME = $030C; 通过剪脓板观察窗口发送此消息l剪贴板的所有者来h一个CF_OWNERDISPLAY格式的剪贴板 的名?br />WM_CHANGECBCHAIN = $030D; 当一个窗口从剪脓板观察链中移L发送此消息l剪贴板观察铄W一个窗口; WM_HSCROLLCLIPBOARD = $030E; 此消息通过一个剪贴板观察H口发送给剪脓板的所有?br />Q它发生在当剪脓板包含CFOWNERDISPALY格式的数据ƈ且有个事件在剪脓板观察窗的水qx?br />条上Q所有者应滚动剪脓板图象ƈ更新滚动条的| WM_QUERYNEWPALETTE = $030F; 此消息发送给要收到焦点的窗口,此消息能使窗口在收到焦点时同时有Z实现他的逻辑?br />色板 WM_PALETTEISCHANGING= $0310; 当一个应用程序正要实现它的逻辑调色板时发此消息通知所有的应用E序 WM_PALETTECHANGED = $0311; 此消息在一个拥有焦点的H口实现它的逻辑调色板后发送此消息l所有顶Uƈ重叠的窗口,?br />此来改变pȝ调色? WM_HOTKEY = $0312; 当用h下由REGISTERHOTKEY函数注册的热键时提交此消?br />WM_PRINT = 791; 应用E序发送此消息仅当WINDOWS或其它应用程序发Z个请求要求绘制一个应用程序的一?br />分; WM_PRINTCLIENT = 792; WM_HANDHELDFIRST = 856; WM_HANDHELDLAST = 863; WM_PENWINFIRST = $0380; WM_PENWINLAST = $038F; WM_COALESCE_FIRST = $0390; WM_COALESCE_LAST = $039F; WM_DDE_FIRST = $03E0; WM_DDE_INITIATE = WM_DDE_FIRST + 0; 一个DDE客户E序提交此消息开始一个与服务器程序的会话来响应那个指定的E序和主题名Q?br />WM_DDE_TERMINATE = WM_DDE_FIRST + 1; 一个DDE应用E序Q无论是客户q是服务器)提交此消息来l止一个会话; WM_DDE_ADVISE = WM_DDE_FIRST + 2; 一个DDE客户E序提交此消息给一个DDE服务E序来请求服务器每当数据Ҏ变时更新?br />WM_DDE_UNADVISE = WM_DDE_FIRST + 3; 一个DDE客户E序通过此消息通知一个DDE服务E序不更新指定的Ҏ一个特D的剪脓板格式的 ?br />WM_DDE_ACK = WM_DDE_FIRST + 4; 此消息通知一个DDEQ动态数据交换)E序已收到ƈ正在处理WM_DDE_POKE, WM_DDE_EXECUTE, WM_DDE_DATA, WM_DDE_ADVISE, WM_DDE_UNADVISE, or WM_DDE_INITIAT消息 WM_DDE_DATA = WM_DDE_FIRST + 5; 一个DDE服务E序提交此消息给DDE客户E序来传递个一数据给客户或通知客户的一条可用数 据项 WM_DDE_REQUEST = WM_DDE_FIRST + 6; 一个DDE客户E序提交此消息给一个DDE服务E序来请求一个数据项的| WM_DDE_POKE = WM_DDE_FIRST + 7; 一个DDE客户E序提交此消息给一个DDE服务E序Q客户用此消息来请求服务器接收一个未l?br />同意的数据项Q服务器通过{复WM_DDE_ACK消息提示是否它接收这个数据项Q?br />WM_DDE_EXECUTE = WM_DDE_FIRST + 8; 一个DDE客户E序提交此消息给一个DDE服务E序来发送一个字W串l服务器让它象串行命令一 栯处理Q服务器通过提交WM_DDE_ACK消息来作回应Q?br />WM_DDE_LAST = WM_DDE_FIRST + 8; WM_APP = $8000; WM_USER = $0400; 此消息能帮助应用E序自定义私有消息; ///////////////////////////////////////////////////////////////////// 通知消息(Notification message)是指q样一U消息,一个窗口内的子控g发生了一些事情, 需要通知父窗口。通知消息只适用于标准的H口控g如按钮、列表框、组合框、编辑框Q以?br />Windows 95公共控g如树状视图、列表视囄。例如,单击或双M个控件、在控g中选择?br />分文本、操作控件的滚动条都会生通知消息? 按扭 B N _ C L I C K E D //用户单击了按?br />B N _ D I S A B L E //按钮被禁?br />B N _ D O U B L E C L I C K E D //用户双击了按?br />B N _ H I L I T E //用户加亮了按?br />B N _ PA I N T按钮应当重画 B N _ U N H I L I T E加亮应当L l合?br />C B N _ C L O S E U Pl合框的列表框被关闭 C B N _ D B L C L K用户双击了一个字W串 C B N _ D R O P D O W Nl合框的列表框被拉出 C B N _ E D I T C H A N G E用户修改了编辑框中的文本 C B N _ E D I T U P D AT E~辑框内的文本即更?br />C B N _ E R R S PA C El合框内存不?br />C B N _ K I L L F O C U Sl合框失去输入焦?br />C B N _ S E L C H A N G E在组合框中选择了一?br />C B N _ S E L E N D C A N C E L用户的选择应当被取?br />C B N _ S E L E N D O K用户的选择是合法的 C B N _ S E T F O C U Sl合框获得输入焦?br />~辑?br />E N _ C H A N G E~辑框中的文本己更新 E N _ E R R S PA C E~辑框内存不?br />E N _ H S C R O L L用户点击了水qx动条 E N _ K I L L F O C U S~辑框正在失去输入焦?br />E N _ M A X T E X T插入的内容被截断 E N _ S E T F O C U S~辑框获得输入焦?br />E N _ U P D AT E~辑框中的文本将要更?br />E N _ V S C R O L L用户点击了垂直滚动条消息含义 列表?br />L B N _ D B L C L K用户双击了一?br />L B N _ E R R S PA C E列表框内存不?br />L B N _ K I L L F O C U S列表框正在失去输入焦?br />L B N _ S E L C A N C E L选择被取?br />L B N _ S E L C H A N G E选择了另一?br />L B N _ S E T F O C U S列表框获得输入焦?br />
]]>自己在一个项目用到的DBUntilc?/title>http://www.tkk7.com/yuanhuaming/archive/2006/06/09/51663.html疯流成?/dc:creator>疯流成?/author>Fri, 09 Jun 2006 04:24:00 GMThttp://www.tkk7.com/yuanhuaming/archive/2006/06/09/51663.htmlhttp://www.tkk7.com/yuanhuaming/comments/51663.htmlhttp://www.tkk7.com/yuanhuaming/archive/2006/06/09/51663.html#Feedback0http://www.tkk7.com/yuanhuaming/comments/commentRss/51663.htmlhttp://www.tkk7.com/yuanhuaming/services/trackbacks/51663.html 先看?a target="_blank" ?="">INETA牛hStephen Walther的比较测试结?希望对大家有?/p>
DataReadear比DataSet?5%
SqlDataReader比OleDbDataReader?0%
用DataReader的ASP风格的表格显C比DataGridl定DataReader?0%
用Ordinal的DataReader讉K字段比用名字讉K?5%
DataGrid中用AutoGenerateColumns=true比用昑ּl定?4%
量用缓?/li>
试׃比较局限,所以不一定很准确Q但可以做个参考?br />
Imports System.Data.OleDb
PublicClass ComDataBase
Private LsConn AsString Private LoleConn As OleDbConnection Private LoleTrans As OleDbTransaction PublicSubNew() Dim bOracle AsBoolean=False Dim oIni AsNew ComIniFile("..\INI\CCCC001.ini")
If (oIni.GetValue("DB", "DBTYPE") ="ORACLE") Then bOracle =True EndIf
Dim sServer AsString= oIni.GetValue("DB", "SERVERNAME")
Dim sDBName AsString= oIni.GetValue("DB", "DBNAME") Dim sUser AsString= oIni.GetValue("DB", "USER") Dim sPsw AsString= oIni.GetValue("DB", "PASSWORD") If (bOracle) Then LsConn ="Provider=OraOLEDB.Oracle;Data Source="& sDBName _ &";User Id="& sUser &";Password="& sPsw &";OLEDB.NET=true" Else LsConn ="Provider=sqloledb;Data Source="& sServer &";Initial Catalog=" _ & sDBName &";User Id="& sUser &";Password="& sPsw &";" EndIf
End Sub
'db open PublicSub Open() Try If (Not (LoleConn IsNothing)) Then If (LoleConn.State = ConnectionState.Open) Then ''接続文字列は定義しない文字列 If (LoleConn.ConnectionString <> LsConn) Then LoleConn.Close() LoleConn.ConnectionString = LsConn LoleConn.Open() EndIf Else ''接続文字列は定義しない文字列 If (LoleConn.ConnectionString <> LsConn) Then LoleConn.ConnectionString = LsConn EndIf LoleConn.Open() EndIf Else LoleConn =New OleDbConnection(LsConn) LoleConn.Open() EndIf Catch ex As Exception ComLog.SetErrLog("ComDataBase", "Open", "デーѝヹ{の接Eに失敗しました?/span>
"& ex.Message) ComMsgBox.ErrMsg("E-0002") EndTry End Sub
PublicSub Close() Try ''データ ソヹ{への接続を閉じす?/span>
If (Not (LoleConn IsNothing)) Then LoleConn.Close() EndIf Catch ex As Exception ComLog.SetErrLog("ComDataBase", "Close", ex.Message) Finally ''対象を解放す?/span>
If (Not (LoleConn IsNothing)) Then LoleConn.Dispose() LoleConn =Nothing EndIf EndTry End Sub
PublicSub BeginTrans() ''トラミ낶クションを開始す?/span>
LoleTrans = LoleConn.BeginTransaction() End Sub
PublicSub Commit() Execute("Delete テム理 where 1=2") ''トラミ낶クションの終炏Vマークす?/span>
LoleTrans.Commit() End Sub
PublicSub RollBack() Execute("Delete テム理 where 1=2") ''データ変更を消去する LoleTrans.Rollback() End Sub PublicFunction GetDataSet(ByVal sSQL AsString) As DataSet Dim oleAdapter As OleDbDataAdapter Dim oDataSet As DataSet =New DataSet
Try Dim oleCommand AsNew OleDbCommand(sSQL, LoleConn) oleCommand.Transaction = LoleTrans oleAdapter =New OleDbDataAdapter(oleCommand) oleAdapter.Fill(oDataSet) ''SQL文を検烦する Finally oleAdapter.Dispose() ''対象を解?/span>
EndTry Return oDataSet End Function
PublicFunction Query(ByVal sSQL AsString) As OleDbDataReader Dim oleCommand AsNew OleDbCommand(sSQL, LoleConn) Try oleCommand.Transaction = LoleTrans Return oleCommand.ExecuteReader() ''SQL文を検烦する Finally oleCommand.Dispose() ''対象を解?/span>
EndTry End Function
PublicFunction Query(ByVal sSQL AsString, ByRef aryOleDbParameter As ArrayList) As OleDbDataReader Dim oleCommand AsNew OleDbCommand(sSQL, LoleConn) Dim oleParam As OleDbParameter
Try oleCommand.Transaction = LoleTrans
ForEach oleParam In aryOleDbParameter oleCommand.Parameters.Add(oleParam) Next Return oleCommand.ExecuteReader() ''SQL文を検烦する Finally oleCommand.Dispose() ''対象を解?/span>
EndTry End Function
PublicFunction Execute(ByVal sSQL AsString) AsInteger Dim oleCommand AsNew OleDbCommand(sSQL, LoleConn) ''OleDbCommandの新インわVミ낹 Try oleCommand.Transaction = LoleTrans Return oleCommand.ExecuteNonQuery() Finally oleCommand.Dispose() EndTry End Function
PublicFunction Execute(ByVal sSQL AsString, ByRef aryOleDbParameter As ArrayList) AsInteger Dim oleCommand AsNew OleDbCommand(sSQL, LoleConn) Dim oleParam As OleDbParameter Try oleCommand.Transaction = LoleTrans
ForEach oleParam In aryOleDbParameter oleCommand.Parameters.Add(oleParam) Next
Return oleCommand.ExecuteNonQuery() Finally oleCommand.Dispose() EndTry End Function