以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  fill得来的table,怎么在单元格里双击触发事件?  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=39263)

--  作者:zhchling
--  发布时间:2013/8/20 9:19:00
--  fill得来的table,怎么在单元格里双击触发事件?

fill得来的table,怎么在单元格里双击触发事件,得到在这个格里的姓名ID ?

 

比如双击杨晨曦,得到他的客户ID,打开这个客户的详细资料页面。

 

 

 貌似没有在当前单元格双击触发的事件 ?

 

 

 


图片点击可在新窗口打开查看此主题相关图片如下:fill.jpg
图片点击可在新窗口打开查看
[此贴子已经被作者于2013-8-20 9:25:54编辑过]

--  作者:zhchling
--  发布时间:2013/8/20 9:20:00
--  

 另外,还需要优化查询代码, 执行fill table的代码感觉用的时间有些长,不知道该怎么优化。

 

fill   table的是以下代码: 

 

e.Form.Controls("DateTimePicker1").value=Date.Today
e.Form.Controls("DateTimePicker2").value=Date.Today.adddays(7)


Dim mon As Integer = Date.Today.Month
Dim days As Integer = Date.DaysInMonth(Date.Today.Year,Date.Today.Month)
Dim s As String
For j As Integer = Date.Today.day  To days
    s + = "\' \' As " & mon & "月" & j & "日,"
Next
\'Dim cmd As New SQLCommand
\'cmd.C
\'cmd.CommandText = "Select 房间号," & s.trim(",") & " from {客房信息表}"
s = "Select  房型, \'        \' As 房间号 , " & s.trim(",") & "  from {客房信息表} order by 排序  "
\'s=cmd.CommandText

\'cmd.CommandText = "Select 房间号 ," & s.trim(",") & " from {客房信息表}"
Dim dt As DataTable = DataTables("房态表_Table1")
\'dt = cmd.ExecuteReader()
\'s=cmd.CommandText
dt.Fill( s ,  True)
Tables("房态表_table1").Grid.Cols.Defaultsize = 60

 


If dt.DataRows.Count < DataTables("客房信息表").DataRows.Count Then
    dt.AddNew(DataTables("客房信息表").DataRows.Count - dt.DataRows.Count)
End If
For i As Integer = 0 To DataTables("客房信息表").DataRows.Count - 1
    For j As Integer = 0 To dt.DataRows.Count - 1
        If i = j Then
            dt.DataRows(j)("房间号") = DataTables("客房信息表").DataRows(i)("房间号")
        End If
    Next
Next
For Each ftdr As DataRow In dt.DataRows
    For Each ftdc As DataCol In dt.DataCols
        For Each xcdr As DataRow In DataTables("zclxingcheng").DataRows
            If xcdr("日期").Year = Date.Today.Year AndAlso xcdr("日期").Month & "月" & xcdr("日期").Day & "日" = ftdc.Name AndAlso xcdr("房间号").Contains(ftdr("房间号")) Then
                Dim dr As DataRow = DataTables("userb").Find("ID = \'" & xcdr("客户ID") & "\'")
                If dr IsNot Nothing
                    ftdr(ftdc.Name) + = dr("name") & ","
                End If
            End If
        Next
        ftdr(ftdc.Name) = ftdr(ftdc.Name).Trim(",")
    Next
Next

e.Form.Text = Date.Today.Year & "年" & Date.Today.Month & "月房态表"

[此贴子已经被作者于2013-8-20 9:21:06编辑过]

--  作者:Bin
--  发布时间:2013/8/20 9:27:00
--  
你好 SQLTABLE同样有表事件的,点击控件 然后右边查看事件即可.
--  作者:zhchling
--  发布时间:2013/8/20 9:31:00
--  
有doubleclick事件,但是怎么获取当前单元格的坐标或信息?
--  作者:Bin
--  发布时间:2013/8/20 9:33:00
--  
MessageBox.show(e.Row(e.Col.name))  另外如果不把表设为不可编辑的话,是无法触发双击事件的.
--  作者:zhchling
--  发布时间:2013/8/20 10:38:00
--  
以下是引用Bin在2013-8-20 9:33:00的发言:
MessageBox.show(e.Row(e.Col.name))  另外如果不把表设为不可编辑的话,是无法触发双击事件的.

msgbox(CurrentTable.value)也可以得到单元格中的字符。

 

 

需要帮助查看代码,看怎么能优化速度


--  作者:Bin
--  发布时间:2013/8/20 10:40:00
--  
你上个例子有数据测试才好办.
--  作者:zhchling
--  发布时间:2013/8/21 10:13:00
--  

Dim xxx As String
xxx=cstr(CurrentTable.value)
msgbox(xxx)
Dim dr As DataRow = DataTables("userb").Find("name= \'" & xxx & "\'" )

 

 

 

 

这里的  DataTables("userb").Find("name= \'" & xxx & "\'" )   语法错误,请问错在哪里?

 

 

 

Dim dr As DataRow = DataTables("userb").Find("name=\'马俊韬\'")  这样是可以的

 

 

[此贴子已经被作者于2013-8-21 10:15:02编辑过]

--  作者:Bin
--  发布时间:2013/8/21 10:15:00
--  
如果有 name这个列 并且是字符串列  那么这个语句没有任何错误啊.
--  作者:zhchling
--  发布时间:2013/8/21 10:20:00
--  

msgbox(xxx)可以得到马俊韬,但确定后就是错误提示

 

错误提示如下


图片点击可在新窗口打开查看此主题相关图片如下:11111111.jpg
图片点击可在新窗口打开查看

图片点击可在新窗口打开查看此主题相关图片如下:2222222222.jpg
图片点击可在新窗口打开查看