以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  高级筛选里面的时间格式  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=123342)

--  作者:susu312
--  发布时间:2018/8/12 20:35:00
--  高级筛选里面的时间格式


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

 

老师,上图中,当输入为日期类型时,右边的时间输入格式是怎么出来的?


--  作者:菜鸟王中王
--  发布时间:2018/8/12 20:37:00
--  
楼主,这个功能已经封装好了,改不了。要么用 要么不用
--  作者:有点甜
--  发布时间:2018/8/12 21:00:00
--  

不同类型,new不同的控件

 

e.Table.grid.cols("内容").Editor = new windows.forms.TextBox


--  作者:susu312
--  发布时间:2018/8/12 21:32:00
--  
以下是引用有点甜在2018/8/12 21:00:00的发言:

不同类型,new不同的控件

 

e.Table.grid.cols("内容").Editor = new windows.forms.TextBox

If e.DataCol.name = "字段" Then
  If e.DataRow.IsNull("字段") Then
          e.DataRow("操作符") = ""
          e.DataRow("逻辑") = ""
          Tables("筛选").grid.cols("值").Editor = new windows.forms.TextBox
          Return
  Else
    Dim t As Table = Tables("person")
    If t.cols.contains( e.DataRow("字段")) Then

        \'e.DataRow("操作符") = "等于"
        \'e.DataRow("逻辑") = "并且"

\'
        If t.cols(e.DataRow("字段")).IsDate Then
           Tables("筛选").grid.cols("值").Editor = new windows.forms.DateTimePicker
        Else 

           Tables("筛选").grid.cols("值").Editor = new windows.forms.TextBox
           Tables("筛选").Cols("值").ComboList = DataTables("person").GetComboListString( e.DataRow("字段"))
        End If
    End If
 End If
End If

 

老师:

1、我的筛选表里面操作符列和逻辑列是数据字典,那么这时候当字段输入后,希望操作符的显示值是等于,实际值是“1”,蓝色那里代码如何写?

2、红色部分您一定看懂,但是,这么一设置 ,筛选表里的值列都成日期输入控件了?怎么设置只让当前行是日期输入控件?


--  作者:有点甜
--  发布时间:2018/8/12 23:29:00
--  

上传具体实例说明

 

1、

e.DataRow("操作符") = "1"
e.DataRow("逻辑") = "并且"

 

2、设置editor请在prepareEdit事件设置


--  作者:susu312
--  发布时间:2018/8/12 23:46:00
--  
以下是引用有点甜在2018/8/12 23:29:00的发言:

上传具体实例说明

 

1、

e.DataRow("操作符") = "1"
e.DataRow("逻辑") = "并且"

 

2、设置editor请在prepareEdit事件设置

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目22.table

 

老师,就是类似这个项目,我想实现的是:

1、表B里面每增加一行,字段填写完后,比较那块默认是等于,逻辑那块默认是并且,字段、比较、逻辑都用了数据字典

2、表B里面每增加一行,字段如果是日期类型,那么在值的那一列的输入格式,就变成时间的输入格式

麻烦老师了,我这两天一直试着做,但是老做不出来


--  作者:susu312
--  发布时间:2018/8/13 0:23:00
--  

If e.Col.Name = "值" Then \'如果正在编辑的是县市列
      e.Col.Combolist = DataTables("person").GetComboListString(e.Row.DataRow("字段"))
End If

 

老师,我在prepareEdit里面写这个为啥不起作用呀?


--  作者:susu312
--  发布时间:2018/8/13 9:03:00
--  
以下是引用有点甜在2018/8/12 23:29:00的发言:

上传具体实例说明

 

1、

e.DataRow("操作符") = "1"
e.DataRow("逻辑") = "并且"

 

2、设置editor请在prepareEdit事件设

If e.DataCol.name = "字段" Then
  If e.DataRow.IsNull("字段") Then
          e.DataRow("操作符") = ""
          e.DataRow("逻辑") = ""
          \'Tables("筛选").grid.cols("值").Editor = new windows.forms.TextBox
          Return
  Else
    Dim t As Table = Tables("person")
    If t.cols.contains( e.DataRow("字段")) Then

        e.DataRow("操作符") = "1"
        e.DataRow("逻辑") = "And"
         Tables("筛选").Cols("值").ComboList = DataTables("person").GetComboListString( e.DataRow("字段"))
        \'If t.cols(e.DataRow("字段")).IsDate Then
           \'e.DataCol.SetDateTimeFormat(DateTimeFormatEnum.Date)
        \'Else
           \'Tables("筛选").Cols("值").ComboList = DataTables("person").GetComboListString( e.DataRow("字段"))
        \'End If

    End If
 End If
End If

 

老师,红色代码我想实现,值的combolist根据字段选择而定?我现在那么写有啥问题么?现在没有效果?



--  作者:有点甜
--  发布时间:2018/8/13 9:21:00
--  
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目22 (1).table


--  作者:susu312
--  发布时间:2018/8/13 10:16:00
--  

老师,您写的代码太漂亮了!逻辑很清晰

 

 


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

 

老师,上图中,我想即便鼠标锁定在第一行,点击删除也能把 第二行删除,第一行清空,

 

startedit事件:

If e.Row.index = e.Table.rows.count-1 Then
    e.Table.DataTable.addnew
End If

删除按钮:

 

If Tables("筛选").Current.Index = 0 Then
     Tables("筛选").Current.DataRow("字段")=""
Else
     Tables("筛选").Current.Delete   
End If

 

我现在能实现的就是,鼠标锁定在第一行,就把第一行清空了,剩下第一行第二行都是空的

 

请老师指导一下
 

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目22.table