1、建立TMySQLServer类对象,连接数据库
| oServer:= TMySQLServer():New(aMYSQL_CONN[1],aMYSQL_CONN[3],aMYSQL_CONN[4] )
oServer:SelectDB(aMYSQL_CONN[2])
oServer:Query("SET NAMES 'gbk';")
oServer:Query("SET character_set_client=gbk;")
oServer:Query("SET character_set_results=gbk;")
|
2、建立TMySQLTable类对象,并关联TMySQLServer的socket
cComm := " SELECT ... FROM order1 ..."
oDB_ORD1 := TMySQLTable():New(::oServer:nSocket, cComm , "order1", ::oServer)
oDB_ORD1:Refresh()
3、调用TXBrowse类对象的SetTMySQL()方法
oBrw:SetTMySQL(@::oDB_ORD1)
oBrw:bskip:=::oBrw:bskipper
oBrw:bLDblClick := { || CURSORWAIT(), ::ORDER1_CHECK() ,::oBrw:REFRESHCURRENT() }
4、XBrowse列排序
ADD COLUMN TO XBROWSE ::oBrw DATA ::oDB_ORD1:DATE ;
COLOR COLOR_DATE ;
HEADER "订单日期" SIZE 90
oCol:= ::oBrw:aCols[ 6 ]
oCOL:bLClickHeader := {|r,c,f,o| ::XBR_ORDER( o ) }
oCOL:AddResource( "B_SELECT" )
oCOL:nHeadBmpNo := 1
oCOL:nHeadBmpAlign := AL_LEFT
5、编辑并保存列值
ADD COLUMN TO XBROWSE ::oBrw DATA ::oDB_ORD1:REMARK ;
COLOR COLOR_RMK ;
HEADER "备注" SIZE 160
oCol:= ::oBrw:aCols[ 22]
oCol:bEditValue := { || ::oDB_ORD1:REMARK }
oCol:nEditType := EDIT_GET
oCol:cEditPicture := "@!"
oCol:bOnPostEdit := { |o, v, n| ::oDB_ORD1:REMARK := v, ::oDB_ORD1:SAVE(), ::oBrw:Refresh() }
例子:
| CLASS TORDER_CHECK
DATA oBrw
DATA oServer
DATA oDB_ORD1
METHOD New() CONSTRUCTOR
METHOD XBR_ORDER(oCol)
ENDCLASS
METHOD NEW() CLASS TORDER_CHECK
LOCAL cComm
::oServer:= TMySQLServer():New(aMYSQL_CONN[1],aMYSQL_CONN[3],aMYSQL_CONN[4] )
::oServer:SelectDB(aMYSQL_CONN[2])
::oServer:query("SET NAMES 'gbk' ;")
::oServer:query("SET character_set_client=gbk ;")
::oServer:query("SET character_set_results=gbk ;")
...
cComm := " SELECT ... FROM order1 ..."
::oDB_ORD1 := TMySQLTable():New(::oServer:nSocket, cComm , "order1", ::oServer)
::oDB_ORD1:Refresh()
...
DEFINE DIALOG oDlg RESOURCE "D_ORDER_CHECK" ;
TITLE "客户订单审单系统--全萤幕"
...
REDEFINE COLUMN XBROWSE ::oBrw ID 201 OF oDlg ;
MESSAGE "客户订单审单系统--全萤幕" ;
ON CLICK ( oREC:REFRESH() ) ;
UPDATE
...
::oBrw:SetTMySQL(@::oDB_ORD1)
::oBrw:bskip:=::oBrw:bskipper
::oBrw:bLDblClick := { || CURSORWAIT(), ::ORDER1_CHECK() ,::oBrw:REFRESHCURRENT() }
...
ADD COLUMN TO XBROWSE ::oBrw DATA ::oDB_ORD1:DATE ;
COLOR COLOR_DATE ;
HEADER "订单日期" SIZE 90
oCol:= ::oBrw:aCols[ 6 ]
oCOL:bLClickHeader := {|r,c,f,o| ::XBR_ORDER( o ) }
oCOL:AddResource( "B_SELECT" )
oCOL:nHeadBmpNo := 1
oCOL:nHeadBmpAlign := AL_LEFT
...
ADD COLUMN TO XBROWSE ::oBrw DATA ::oDB_ORD1:REMARK ;
COLOR COLOR_RMK ;
HEADER "备注" SIZE 160
oCol:= ::oBrw:aCols[ 22]
oCol:bEditValue := { || ::oDB_ORD1:REMARK }
oCol:nEditType := EDIT_GET
oCol:cEditPicture := "@!"
oCol:bOnPostEdit := { |o, v, n| ::oDB_ORD1:REMARK := v, ::oDB_ORD1:SAVE(), ::oBrw:Refresh() }
...
::oDB_ORD1:End()
::oServer:Destroy()
RETURN Self
|