以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  新手请教大神  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=138427)

--  作者:hzpy
--  发布时间:2019/7/31 9:39:00
--  新手请教大神
新手请教大神关于textboxs的dataformat 问题,请多多指教
1.如何实现textboxs1显示某一表的某几列值一并显示在里面的问题,如表C的市、县、镇三列值,按市县镇顺序显示在textboxs里面,如,在里面显示“淮安市金湖县小庄镇”;
2.如何实现textboxs2,判断某一列时间录入是否为空,如果是的则在textboxs2中返回“否”,非空显示“是”。
麻烦啦
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:两个需求.zip


--  作者:有点蓝
--  发布时间:2019/7/31 10:20:00
--  
表C,CurrentChanged事件

Dim r As Row = e.Table.Current 
If r Is Nothing Then Return
If Forms("窗口1").Opened
    Forms("窗口1").Controls("TextBox1").text = r("市") & r("县") & r("镇")
    Forms("窗口1").Controls("TextBox2").text = IIF(r.IsNull("时间"),"否","是")
End If

--  作者:hzpy
--  发布时间:2019/7/31 11:10:00
--  
谢谢超版!不过实际操作中,表c的市、县、镇三列都设置了可选列表项目,按照您的方法,会导致texboxs显示的时候,会显示第一个列标题,点击textboxs框才会显示内容,为什么呢


表已经有了afteropenproject项目事件和 prepareEdit表事件

Tables("表c").Cols("市").Combolist = DataTables("单位").GetComboListString("市")


If e.IsFocusCell Then
    If e.Col.DataCol.IsDate Then
        e.Col.UsetBuildInEditor = True
    End If
End If
If e.IsFocusCell Then
    If e.Col.Name = "县" Then
        e.Col.Combolist = DataTables("单位").GetComboListString("全称", "[市] = \'" & e.Row("市") & "\'") 
    End If
End If

--  作者:有点蓝
--  发布时间:2019/7/31 11:23:00
--  
如果要单元格选择了值后动态更新文本框的内容,到表格datacolchanged使用类似2楼的方式更新数据

或者添加一个表达式列显示完整的市、县、镇内容,把文本框绑定到这个表达式列

--  作者:hzpy
--  发布时间:2019/7/31 11:50:00
--  
没有理解

恳请超版看看textboxs7的显示问题,显示一个列名,点击一下,才会显示三列合并结果,不知道怎么解决,如果能直接操作textboxs表达式最好了 哈哈
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:村干部信息.zip


[此贴子已经被作者于2019/7/31 11:50:37编辑过]

--  作者:有点蓝
--  发布时间:2019/7/31 12:01:00
--  
去掉控件dataformat 代码

表格datacolchanged事件

If Forms("主界面").Opened
    Select Case e.DataCol.Name
        Case "工作单位_镇街","工作单位_村居社区","职务"
            Forms("主界面").Controls("TextBox7").text = e.DataRow("工作单位_镇街") & e.DataRow("工作单位_村居社区") & e.DataRow("职务")
        Case "入党时间"
            Forms("主界面").Controls("TextBox4").text = IIF(e.DataRow.IsNull("入党时间"),"否","是")
    End Select
End If

--  作者:piratesytu
--  发布时间:2019/7/31 14:34:00
--  
感谢超版,这样数据改变才会显示,还是用您二楼方法解决了问题  再次感谢
--  作者:有点蓝
--  发布时间:2019/7/31 14:43:00
--  
2楼代码不变,加上6楼的用法
--  作者:piratesytu
--  发布时间:2019/7/31 16:07:00
--  
是的,谢谢超版