lRow=grd.MouseRow
lCol=grd.MouseCol
解决方案 »
- 急!请问如何在组件(dll)中使用ocx?能否提供详细的配置过程和代码!
- 弱智问题, 谢谢!
- 如何將一個16進制的數轉換為2進制?
- 开发软件,喜欢多作标准模块还是多作类模块,还是
- 如何判断本地打印机或网络打印机是否连接,并且判断该打印机是否已经打开?
- 怎样定义execl的单元格式?
- 怎么做一个online shoppper程序呀? 解答有分!!在线等!!!!!!!!
- 可以用com口直接控制一个模拟电路吗?
- (急)怎么改变Slider控件中的背景颜色或者添加背景图片?
- 急需软件安装程序的下载地址(最好有汉化包)。
- 如何用代码将IE中的收藏夹导出/导出(BOOKMARK文件),就象IE中的导入导出一样?
- 如何用VB实现把图片储存在Access2000 里?
Private Sub MSHFlexGrid1_DblClick()
If MSHFlexGrid1.Row > 0 And MSHFlexGrid1.Col > 0 Then
MSHFlexGrid1.Col = 1 '指定列,得到当前行第二列的内容text
With Rs_Jc_Cytzs
.MoveFirst
.Find "hth='" & MSHFlexGrid1.Text & "'" '在数据库中找到这条记录
End With
Call Jc_Cytzs_GetText '调用其它过程,将此条记录内容赋予详细记录的窗体
Unload Me
End If
End Sub
MFGrid.RowSel = MFGrid.Row
2:
MFGrid.ColWidth(0) = 350
MFGrid.ColAlignment(1) = 4
MFGrid.ColAlignmentFixed(1) = 4
MFGrid.TextMatrix(0, 1)="asds"
等等
至于货币格式用format格式化好后用TextMatrix添到flexgrid
Option Explicit
Dim mintcount As Integer 'The count of select from tempdo table
Dim mintPrevclick As Integer 'The previous click number in flexgrid.Private Sub cmdDel_Click()
Dim strsql As String
Dim objCmd As New ADODB.Command
Dim rsResult As ADODB.Recordset
If MsgBox("Are you Sure to DELETE?", vbInformation + vbYesNo + vbDefaultButton2, "Delete?") = vbYes Then
strsql = "Update tempDO set IsValid = '1' where DoNo = '" & gstrTempDoNo & "'" mintPrevclick = 0 objCmd.CommandType = adCmdText
objCmd.ActiveConnection = gobjdbcn
objCmd.CommandTimeout = 300
objCmd.CommandText = strsql
objCmd.Execute
MsgBox "Delete completed!"
objCmd.Cancel
strsql = "Select * from tempdo where (Udatetime >= #" & dtpDetailF.Value & "# and Udatetime <= #" & dtpDetailT.Value & "#) and isValid = '0'"
Call flexClear
Call mFillHeader
Call RecordBind(strsql) Else
Exit Sub
End If
End SubPrivate Sub cmdedit_Click() Dim strsql As String
Load FrmEdit
FrmEdit.Show
If gblncancel = True Then
gblncancel = False
Exit Sub
End If
mintPrevclick = 0
strsql = "Select * from tempdo where (Udatetime >= #" & dtpDetailF.Value & "# and Udatetime <= #" & dtpDetailT.Value & "#) and isValid = '0'"
Call flexClear
Call RecordBind(strsql)
cmdedit.Enabled = False
CmdDel.Enabled = False
End SubPrivate Sub cmdnew_Click()
Dim strsql As String
'Unload Me
Load FrmNew
FrmNew.Show
If gblncancel = True Then
gblncancel = False
Exit Sub
End If
strsql = "Select * from tempdo where (Udatetime >= #" & dtpDetailF.Value & "# and Udatetime <= #" & dtpDetailT.Value & "#) and isValid = '0'"
Call flexClear
Call RecordBind(strsql)
cmdedit.Enabled = False
CmdDel.Enabled = False
End SubPrivate Sub cmdSearch_Click()
Dim sqlstr As StringCall flexClear
Call mFillHeader
If txtJobID.Text <> "All" Then
If Not IsNumeric(txtJobID.Text) Then
MsgBox " Job ID is not Numeric!!"
txtJobID.SetFocus
Exit Sub
End If
End If
If dtpDetailF.Value > dtpDetailT.Value Then
MsgBox "Date error!"
cmdSearch.Enabled = True
Exit Sub
End If
sqlstr = "select * from tempdo where (Udatetime>= #" & dtpDetailF.Value & "# and Udatetime<= #" & dtpDetailT.Value & "#) and isValid = '0'"
If (txtJobID.Text = "All" Or txtJobID.Text = "") Then
sqlstr = sqlstr
Else
sqlstr = sqlstr & " and JobNo =" & txtJobID.Text & ""
End If
If (txtDONO.Text = "All" Or txtDONO.Text = "") Then
sqlstr = sqlstr
Else
sqlstr = sqlstr & " and DoNo ='" & txtDONO.Text & "'"
End If
Debug.Print sqlstr
Call RecordBind(sqlstr)
End SubPrivate Sub cmdUpload_Click()
Call gUpdateTempDo
Unload Me
FrmUploadRe.ShowEnd SubPrivate Sub cmdCancel_Click()
Unload Me
End Sub
Private Sub Form_Load()
Dim strsql As String gblncancel = False
Call mFillHeader
msgDetail.AllowUserResizing = flexResizeBoth
msgDetail.Enabled = False
cmdedit.Enabled = False
CmdDel.Enabled = False
cmdUpload.Enabled = False
txtJobID.Text = "All"
txtDONO.Text = "All"
dtpDetailF.Value = Date
dtpDetailT.Value = DateEnd SubPrivate Sub RecordBind(strsql As String)
Dim objCmd As New ADODB.Command
Dim rsResult As ADODB.Recordset
Dim row As Integer
Dim i As Integer
row = 1
' Call gdbconnect
objCmd.CommandType = adCmdText
objCmd.ActiveConnection = gobjdbcn
objCmd.CommandTimeout = 300
objCmd.CommandText = strsql
Set rsResult = objCmd.Execute
mintcount = 0
Do While Not rsResult.EOF
mintcount = mintcount + 1
rsResult.MoveNext
Loop
If mintcount = 0 Then
' MsgBox "No records!"
Call flexClear
Call mFillHeader
msgDetail.Enabled = False
cmdedit.Enabled = False
CmdDel.Enabled = False
cmdUpload.Enabled = False
rsResult.Close
Set rsResult = Nothing
'gobjdbcn.Close
Exit Sub
End If
rsResult.MoveFirst
msgDetail.Enabled = True
For i = 1 To mintcount If Not rsResult.EOF Then
msgDetail.row = row
msgDetail.AddItem "", row
addNewRecord rsResult.Fields
row = row + 1
rsResult.MoveNext
End If
Next
msgDetail.RemoveItem row
rsResult.Close
Set rsResult = Nothing
' cmdedit.Enabled = True
' cmdDel.Enabled = True
cmdUpload.Enabled = True
'gobjdbcn.Close
End Sub
Private Sub addNewRecord(F As ADODB.Fields)
Dim col As ColorConstants
Dim colindex As Integer
colindex = 0
msgDetail.col = colindex
If IsNull(F("JobNo")) Then
msgDetail.Text = ""
Else
msgDetail.Text = F("JobNo")
End If
msgDetail.CellBackColor = col
colindex = colindex + 1
msgDetail.col = colindex
If IsNull(F("DoNo")) Then
msgDetail.Text = ""
Else
msgDetail.Text = F("DoNo")
End If
msgDetail.CellAlignment = 8
msgDetail.CellBackColor = col
colindex = colindex + 1
msgDetail.col = colindex If IsNull(F("ProdNo")) Then
msgDetail.Text = ""
Else
msgDetail.Text = F("ProdNo")
End If
msgDetail.CellAlignment = 8
msgDetail.CellBackColor = col
colindex = colindex + 1
msgDetail.col = colindex
If IsNull(F("ProdVer")) Then
msgDetail.Text = ""
Else
msgDetail.Text = F("ProdVer")
End If
msgDetail.CellAlignment = 8
msgDetail.CellBackColor = col
colindex = colindex + 1
msgDetail.col = colindex
If IsNull(F("Balance")) Then
msgDetail.Text = ""
Else
msgDetail.Text = F("Balance")
End If
msgDetail.CellAlignment = 8
msgDetail.CellBackColor = col
colindex = colindex + 1
msgDetail.col = colindex
If IsNull(F("ActQty")) Then
msgDetail.Text = ""
Else
msgDetail.Text = F("ActQty")
End If
msgDetail.CellAlignment = 8
msgDetail.CellBackColor = col
colindex = colindex + 1
msgDetail.col = colindex
If IsNull(F("ActDatetime")) Then
msgDetail.Text = ""
Else
msgDetail.Text = F("ActDatetime")
End If
msgDetail.CellAlignment = 8
msgDetail.CellBackColor = col
colindex = colindex + 1
msgDetail.col = colindex
If IsNull(F("HtNo")) Then
msgDetail.Text = ""
Else
msgDetail.Text = F("HtNo")
End If
msgDetail.CellAlignment = 8
msgDetail.CellBackColor = col
colindex = colindex + 1
msgDetail.col = colindex
If IsNull(F("Type")) Then
msgDetail.Text = ""
Else
msgDetail.Text = F("Type")
End If
msgDetail.CellAlignment = 8
msgDetail.CellBackColor = col
End SubPrivate Sub flexClear()
Dim i As Integer
While msgDetail.Rows > 2
msgDetail.RemoveItem msgDetail.Rows
Wend
msgDetail.Rows = 2
For i = 0 To 8
msgDetail.col = i
msgDetail.Text = " "
msgDetail.CellBackColor = Default
Next
End SubPrivate Sub msgDetail_Click()
Dim col As Integer
mintcount = msgDetail.row
msgDetail.row = mintPrevclick
For col = 0 To 8
msgDetail.col = col
msgDetail.CellBackColor = Default
Next msgDetail.row = mintcount
Call RecordPick
Debug.Print gstrTempDoNoEnd SubPrivate Sub msgDetail_DblClick()
Call cmdedit_Click
Debug.Print gstrTempDoNoEnd SubPrivate Sub RecordPick()
Dim i As Integer
Dim col As Integer
Dim intclick As Integer
intclick = msgDetail.row
mintPrevclick = msgDetail.row
If gstrTempDoNo <> "" Then
gstrTempDoNo = ""
' For i = 0 To mintcount
' msgDetail.row = i
' For col = 0 To 8
' msgDetail.col = col
' msgDetail.CellBackColor = Default
' Next
' Next
End If
msgDetail.row = intclick
msgDetail.col = 1
gstrTempDoNo = msgDetail.Text
For col = 0 To 8
msgDetail.col = col
msgDetail.CellBackColor = vbYellow
Next cmdedit.Enabled = True
CmdDel.Enabled = True
End SubPrivate Sub mFillHeader()
msgDetail.row = 0
msgDetail.ColWidth(0) = 400
msgDetail.col = 0
msgDetail.Text = "Job ID"
msgDetail.ColWidth(0) = (msgDetail.Width - 400) * 5 / 100
msgDetail.col = 1
msgDetail.Text = "D/O"
msgDetail.ColWidth(1) = (msgDetail.Width - 400) * 10 / 100
msgDetail.col = 2
msgDetail.Text = "Product Number"
msgDetail.ColWidth(2) = (msgDetail.Width - 400) * 15 / 100
msgDetail.col = 3
msgDetail.Text = "Product Version"
msgDetail.ColWidth(3) = (msgDetail.Width - 400) * 13 / 100
msgDetail.col = 4
msgDetail.Text = "Balance"
msgDetail.ColWidth(4) = (msgDetail.Width - 400) * 10 / 100
msgDetail.col = 5
msgDetail.Text = "Actual Qty"
msgDetail.ColWidth(5) = (msgDetail.Width - 400) * 10 / 100
msgDetail.col = 6
msgDetail.Text = "Actual Datetime"
msgDetail.ColWidth(6) = (msgDetail.Width - 400) * 20 / 100
msgDetail.col = 7
msgDetail.Text = "Handy No"
msgDetail.ColWidth(7) = (msgDetail.Width - 400) * 10 / 100
msgDetail.col = 8
msgDetail.Text = "Type"
msgDetail.ColWidth(8) = (msgDetail.Width - 400) * 10 / 100
End Sub
With MSFlexGrid1
.ColWidth(6) = Len(.TextMatrix(.Rows - 1, 6))
End With
'这里只能求得单元格里字符的长度(14),如果根据这个宽度来调整单元格的宽度可见是不行的。请教大家如何的实现上述功能~