以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  高级筛选细节实现  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=123286)

--  作者:susu312
--  发布时间:2018/8/11 10:24:00
--  高级筛选细节实现


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

 

老师, 高级筛选里面,一选列,左边的连接和右边的等于就当填好了,这个是怎么实现的呀?

当列为时间类型时,进入内容填写,就会出现时间填写的格式,这个是怎么实现的呀?


--  作者:有点蓝
--  发布时间:2018/8/11 10:48:00
--  
datacolchanged事件给其他列赋值不就行了


--  作者:susu312
--  发布时间:2018/8/11 15:36:00
--  
以下是引用有点蓝在2018/8/11 10:48:00的发言:
datacolchanged事件给其他列赋值不就行了

老师,我参考上面的例子,

给逻辑和操作符列在列属性里面设置了数据字典,在窗口的afterload事件中写:

Tables("筛选").Cols("逻辑").DataCol.DefaultValue="and "
Tables("筛选").Cols("操作符").DataCol.DefaultValue=" = "

报错,为啥呀?


--  作者:有点蓝
--  发布时间:2018/8/11 15:45:00
--  
仔细理解一下帮助:http://www.foxtable.com/webhelp/scr/1907.htm
--  作者:susu312
--  发布时间:2018/8/11 16:04:00
--  


Dim nums1() As String={"sex","age","birth", _
                     "edu","workdate","politicalStatus", _
                     "retiredPost","title","leaOrRetire", _
                    "retireTime","proTecPost","partyTime", _
                     "organName","partyStanding","retiredDep"}
Dim nums2()  As String={"性别","年龄","出生年月", _
                     "学历","参加工作日期","政治面貌", _
                     "离退休职务","享受待遇","状态", _
                    "离退休时间","专业技术职务","入党时间", _
                     "单位","党龄","部门"}


If e.DataCol.name = "字段" Then
    Dim t As Table = Tables("person")
    Dim Index As Integer=Array.Indexof(nums2,e.newvalue)
    If t.cols.contains(nums1(Index)) Then
      
        e.DataRow("操作符") = "等于"
        e.DataRow("逻辑") = "并且"
        If t.cols(nums1(Index)).IsDate   Then
            e.DataCol("值").SetDateTimeFormat(DateTimeFormatEnum.Date)
        End If
    End If
End If

 

老师,这个是在表的datachanged事件中写的,

其实红色部分, 我希望\'  t.grid.cols("glValue").Editor = new windows.forms.DateTimePicker 就是那个框直接是日期输入框,但是我不会实现

 

人家的参考例子是SQLTABLE,我对这个不熟悉,我就用了内部表


--  作者:有点蓝
--  发布时间:2018/8/11 16:06:00
--  
内部表一样的用法

tbl.grid.cols("glValue").Editor = new windows.forms.DateTimePicker

--  作者:susu312
--  发布时间:2018/8/11 16:23:00
--  
以下是引用有点蓝在2018/8/11 16:06:00的发言:
内部表一样的用法

tbl.grid.cols("glValue").Editor = new windows.forms.DateTimePicker

Dim nums1() As String={"sex","age","birth", _
                     "edu","workdate","politicalStatus", _
                     "retiredPost","title","leaOrRetire", _
                    "retireTime","proTecPost","partyTime", _
                     "organName","partyStanding","retiredDep"}
Dim nums2()  As String={"性别","年龄","出生年月", _
                     "学历","参加工作日期","政治面貌", _
                     "离退休职务","享受待遇","状态", _
                    "离退休时间","专业技术职务","入党时间", _
                     "单位","党龄","部门"}


If e.DataCol.name = "字段" Then
    Dim t As Table = Tables("person")
    Dim Index As Integer=Array.Indexof(nums2,e.newvalue)
    If t.cols.contains(nums1(Index)) Then
        e.DataRow("操作符") = "等于"
        e.DataRow("逻辑") = "并且"
        If t.cols(nums1(Index)).IsDate Then
             MessageBox.Show("xxxx")
             Tables("筛选").grid.cols("值").Editor = new windows.forms.DateTimePicker
        Else
             MessageBox.Show("yyyyyy")

             Tables("筛选").grid.cols("值").Editor = new windows.forms.TextBox
        End If
    End If
End If

 

 

老师,我这么写并没有出现 实现 new windows.forms.DateTimePicker  这个效果,它识别了是日期类型,但是不能日期输入的控件,

 

请老师帮忙看看


--  作者:有点蓝
--  发布时间:2018/8/11 16:26:00
--  
请上传实例说明
--  作者:susu312
--  发布时间:2018/8/11 16:27:00
--  
以下是引用有点蓝在2018/8/11 16:06:00的发言:
内部表一样的用法

tbl.grid.cols("glValue").Editor = new windows.forms.DateTimePicker

其实,只是把tables("筛选")当前行的当前列的输入框变成日期输入框,不知这个咋实现了,请老师指点一下?

 


--  作者:有点蓝
--  发布时间:2018/8/11 16:28:00
--  
请上传实例说明