以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  [求助]有选择的输入数据字典  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=108575)

--  作者:webccc
--  发布时间:2017/10/25 11:47:00
--  [求助]有选择的输入数据字典

DataColChanged事件中输入以下代码:
select case e.datacol.name
case "是否来源于合作单位"
    if e.datarow("是否来源于合作单位") = true then
       Dim dmp As New TableDataMap
       dmp.DataTable = "合作单位" \'指定数据来源表
       dmp.ValueCol = "合作单位联系人姓名" \'指定取值列
       dmp.DisplayCol = "合作单位联系人姓名" \'指定显示列
       \'指定下拉列表时显示哪些列的数据
       dmp.ListCols = "合作单位编号,合作单位名称,合作单位联系人姓名,合作单位联系人职务"
       dmp.Sort = "合作单位编号" \'指定排序方式
       e.datarow("企业客户来源个人编号").DataMap = dmp.CreateDataMap() \'生成并设置DataMap
    else
       Dim dmp As New TableDataMap
       dmp.DataTable = "HFCW人员花名册" \'指定数据来源表
       dmp.ValueCol = "工号" \'指定取值列
       dmp.DisplayCol = "工号" \'指定显示列
       \'指定下拉列表时显示哪些列的数据
       dmp.ListCols = "工号,姓名,所属部门,职务"
       dmp.Sort = "工号" \'指定排序方式
       e.datarow("企业客户来源个人编号").DataMap = dmp.CreateDataMap() \'生成并设置DataMap
    end if
end select

然后出现以下错误提示:

.NET Framework 版本:2.0.50727.8794
Foxtable 版本:2017.8.19.1
错误所在事件:表,市场客户表,DataColChanged
详细错误信息:
调用的目标发生了异常。
未找到类型“String”的公共成员“DataMap”。

请问该怎么解决呢?


--  作者:有点蓝
--  发布时间:2017/10/25 11:55:00
--  
代码改到AfterEdit事件

然后要绑定的是列不是行

Select Case e.Col.name
Case "是否来源于合作单位"
    If e.Row("是否来源于合作单位") = True Then
       Dim dmp As New TableDataMap
       dmp.DataTable = "合作单位" \'指定数据来源表
       dmp.ValueCol = "合作单位联系人姓名" \'指定取值列
       dmp.DisplayCol = "合作单位联系人姓名" \'指定显示列
       \'指定下拉列表时显示哪些列的数据
       dmp.ListCols = "合作单位编号,合作单位名称,合作单位联系人姓名,合作单位联系人职务"
       dmp.Sort = "合作单位编号" \'指定排序方式
       e.Cols("企业客户来源个人编号").DataMap = dmp.CreateDataMap() \'生成并设置DataMap
    Else
       Dim dmp As New TableDataMap
       dmp.DataTable = "HFCW人员花名册" \'指定数据来源表
       dmp.ValueCol = "工号" \'指定取值列
       dmp.DisplayCol = "工号" \'指定显示列
       \'指定下拉列表时显示哪些列的数据
       dmp.ListCols = "工号,姓名,所属部门,职务"
       dmp.Sort = "工号" \'指定排序方式
       e.Cols("企业客户来源个人编号").DataMap = dmp.CreateDataMap() \'生成并设置DataMap
    End If
End Select

--  作者:webccc
--  发布时间:2017/10/25 12:51:00
--  
老师:
      你好!
      我在AfterEdit事件中输入以下代码:
Select Case e.Col.name
Case "是否来源于合作单位"
    If e.Row("是否来源于合作单位") = True Then
       Dim dmp As New TableDataMap
       dmp.DataTable = "合作单位" \'指定数据来源表
       dmp.ValueCol = "合作单位联系人姓名" \'指定取值列
       dmp.DisplayCol = "合作单位联系人姓名" \'指定显示列
       \'指定下拉列表时显示哪些列的数据
       dmp.ListCols = "合作单位编号,合作单位名称,合作单位联系人姓名,合作单位联系人职务"
       dmp.Sort = "合作单位编号" \'指定排序方式
       e.table.Cols("企业客户来源个人编号").DataMap = dmp.CreateDataMap() \'生成并设置DataMap
    Else
       Dim dmp As New TableDataMap
       dmp.DataTable = "HFCW人员花名册" \'指定数据来源表
       dmp.ValueCol = "工号" \'指定取值列
       dmp.DisplayCol = "工号" \'指定显示列
       \'指定下拉列表时显示哪些列的数据
       dmp.ListCols = "工号,姓名,所属部门,职务"
       dmp.Sort = "工号" \'指定排序方式
       e.table.Cols("企业客户来源个人编号").DataMap = dmp.CreateDataMap() \'生成并设置DataMap
    End If
End Select
测试后发现以下问题:
1、在不勾选某一行“是否来源于合作单位”("是否来源于合作单位" = false)后,可以正常选择输入当前行的"企业客户来源个人编号";
2、在勾选下一行"是否来源于合作单位"("是否来源于合作单位" = true)后,前几行输入的"企业客户来源个人编号"值消失了,不过可以正常输入当前行的"企业客户来源个人编号";
3、再次勾选当前行的"是否来源于合作单位"("是否来源于合作单位" = false)后,前几行输入的"企业客户来源个人编号"值又出现了,但是当前行输入的"企业客户来源个人编号"值消失了。
请问以上问题该怎么解决啊?


--  作者:有点甜
--  发布时间:2017/10/25 12:56:00
--  

1、数据字典做不到你需要的功能;数据字典重新设置后,不在数据字典里面的项目,会显示空白。

 

2、用这种方法吧 http://www.foxtable.com/webhelp/scr/2465.htm

 


--  作者:webccc
--  发布时间:2017/10/25 13:02:00
--  
好的,非常感谢老师!