Foxtable(狐表)用户栏目专家坐堂 → 使用记录窗口输入新数据


  共有4963人关注过本帖树形打印复制链接

主题:使用记录窗口输入新数据

美女呀,离线,留言给我吧!
Phoebe菲比
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:159 积分:1009 威望:0 精华:0 注册:2021/8/17 15:39:00
使用记录窗口输入新数据  发帖心情 Post By:2022/4/11 16:14:00 [显示全部帖子]

最近一直在设计窗口,调整各种控件的格式实在太烦人了,想了办法用记录窗口代替各类列表、文本框、日期等控件,不知道可不可行?
不太熟悉记录窗口和表事件的功能。
现在想实现一个功能:先在“项目信息”表中找到对应的“项目名称”列表,再根据选中的项目名称在“合同信息”表中找到对应的“合同名称”列表。

这是我的代码:表事件--->PrepareEdit事件
Select Case e.Col.name
    Case "项目名称"
        e.Col.combolist = DataTables("项目信息").SQLGetComboListString(e.Col.name)
    Case "合同名称"
        e.Col.combolist = DataTables("合同信息").SQLGetComboListString("合同名称","项目名称 = '" & e.NewValue & "'")
End Select

目前该代码是不可运行的,想请各位大佬指导下。
另外还想了解下,记录窗口可不可以代替窗口输入?有什么方法可以更简洁地设计窗口,调整各类控件尺寸实在太繁琐了。

 回到顶部
美女呀,离线,留言给我吧!
Phoebe菲比
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:159 积分:1009 威望:0 精华:0 注册:2021/8/17 15:39:00
  发帖心情 Post By:2022/4/11 16:27:00 [显示全部帖子]

请问用记录窗口可以替代窗口控件设计吗?


 回到顶部
美女呀,离线,留言给我吧!
Phoebe菲比
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:159 积分:1009 威望:0 精华:0 注册:2021/8/17 15:39:00
  发帖心情 Post By:2022/4/11 16:29:00 [显示全部帖子]

目前出现了这样的问题。
图片点击可在新窗口打开查看此主题相关图片如下:微信图片_20220411162818.png
图片点击可在新窗口打开查看

 回到顶部
美女呀,离线,留言给我吧!
Phoebe菲比
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:159 积分:1009 威望:0 精华:0 注册:2021/8/17 15:39:00
  发帖心情 Post By:2022/4/11 16:30:00 [显示全部帖子]

我大概是想实现一个类似行政区域案例的目录树下拉的效果,但是每一列来自不同的表,同时能在记录窗口显示。

 回到顶部
美女呀,离线,留言给我吧!
Phoebe菲比
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:159 积分:1009 威望:0 精华:0 注册:2021/8/17 15:39:00
  发帖心情 Post By:2022/4/11 17:08:00 [显示全部帖子]

Select Case e.Col.name
    Case "项目名称"
        e.Col.combolist = DataTables("项目信息").SQLGetComboListString(e.Col.name)
    Case "合同名称"
        ' Dim r1 As String = e.Row("项目名称")
        If e.Col Is Nothing Then
            e.Row.Reject
        Else
            e.Col.combolist = DataTables("合同信息").SQLGetComboListString("合同名称","项目名称 = '" & e.Row("项目名称")  & "'")
        End If
End Select


 回到顶部
美女呀,离线,留言给我吧!
Phoebe菲比
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:159 积分:1009 威望:0 精华:0 注册:2021/8/17 15:39:00
  发帖心情 Post By:2022/4/11 17:10:00 [显示全部帖子]

蓝版,我还想实现一个选择性的功能:如果“项目名称”下对应项目没有对应的合同,则清空除“项目名称”外其他列的全部内容,等于新输入数据。
用于在我选错一条数据后,重新再选择一个数据。

 回到顶部
美女呀,离线,留言给我吧!
Phoebe菲比
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:159 积分:1009 威望:0 精华:0 注册:2021/8/17 15:39:00
  发帖心情 Post By:2022/4/11 17:16:00 [显示全部帖子]

主要是用来判断 该项目名称下是否已经录入对应的合同。
比如说我已经选中了一个已有的,但是想改成一个没有的(等于直接在该行重新输入),则需要清空其他列自动输入的值。

 回到顶部
美女呀,离线,留言给我吧!
Phoebe菲比
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:159 积分:1009 威望:0 精华:0 注册:2021/8/17 15:39:00
  发帖心情 Post By:2022/4/11 17:18:00 [显示全部帖子]

这个是我在DataColChanged事件中写好的代码。

Dim dr1 As DataRow = e.DataRow
Select Case e.DataCol.Name
    Case "合同名称"
        Dim dr2 As DataRow = DataTables("合同信息").SQLFind("合同名称 = '" & e.NewValue & "'")
        If e.NewValue Is Nothing Then '如果新值是空白
            e.DataRow.Reject
            'dr1 = Nothing '那么清空当前行所有列的内容
        Else
            '否则在项目信息表查找同名行,将找到的行赋值给变量dr
            If dr2 IsNot Nothing Then '如果找到了同名的产品行,也就是dr不是Nothing
                dr1("付款单位") = dr2("甲方单位_公司名称")
                dr1("收款单位") = dr2("乙方单位_公司名称")  
            End If
        End If
    
End Select

 回到顶部
美女呀,离线,留言给我吧!
Phoebe菲比
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:159 积分:1009 威望:0 精华:0 注册:2021/8/17 15:39:00
  发帖心情 Post By:2022/4/11 17:34:00 [显示全部帖子]

看来我还是要一个个设置指定列为空值,而不能整行清除?

 回到顶部
美女呀,离线,留言给我吧!
Phoebe菲比
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:159 积分:1009 威望:0 精华:0 注册:2021/8/17 15:39:00
  发帖心情 Post By:2022/4/11 20:29:00 [显示全部帖子]

我想试试这样写行不行,用一个遍历的代码。

 Case "合同名称"
        Dim dr2 As DataRow = DataTables("合同信息").SQLFind("合同名称 = '" & e.NewValue & "'")
        If dr2 Is Nothing Then '如果新值是空白
            Dim sts As String = {"付款单位","收款单位","合同金额","合同编号","税率","收款_开户名","收款_银行账号","收款_开户银行","收款_银行行号"}
            For Each st As String In sts
                Dim r As Row = Tables("付款记录").Current
                r(st) = Nothing
            Next
        Else         '否则在项目信息表查找同名行,将找到的行赋值给变量dr,如果找到了同名的产品行,也就是dr不是Nothing
            dr1("付款单位") = dr2("甲方单位_公司名称")
            dr1("收款单位") = dr2("乙方单位_公司名称")
            dr1("合同金额") = dr2("合同金额")
            dr1("合同编号") = dr2("合同编号")
            dr1("税率") = dr2("税率")
            dr1("收款_开户名") = dr2("开户名")
            dr1("收款_银行账号") = dr2("银行账号")
            dr1("收款_开户银行") = dr2("开户银行")
            dr1("收款_银行行号") = dr2("行号")
        End If

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


 回到顶部
总数 11 1 2 下一页