Foxtable(狐表)用户栏目专家坐堂 → 从“级码”中提取“单位编码”


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

主题:从“级码”中提取“单位编码”

帅哥,在线噢!
jhxb8821
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:860 积分:5964 威望:0 精华:0 注册:2016/4/15 22:24:00
从“级码”中提取“单位编码”  发帖心情 Post By:2022/3/1 17:43:00 [显示全部帖子]

从“级码”中提取“单位编码”,比如级码为1,单位编码为01;级码为1.1.2,单位编码为010102,请老师帮我看看代码

Select e.DataCol.Name
    Case "级码"
        If e.DataRow.IsNull("级码") OrElse e.DataRow.IsNull("单位编码")=False Then
        Else
            Dim jm As String = "级码"
            Dim sr() As String = jm.split(".")
            For Each s1 As String In sr
                e.DataRow("单位编码") = s1.PadLeft(2,"0")
            Next
        End If
End Select

 回到顶部
帅哥,在线噢!
jhxb8821
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:860 积分:5964 威望:0 精华:0 注册:2016/4/15 22:24:00
关于窗口显示级码顺序问题  发帖心情 Post By:2022/3/2 10:41:00 [显示全部帖子]

 下载信息  [文件大小:   下载次数: ]
点击浏览该文件:级码目录树.foxdb

目前这个例子代码是正确的,但存在一个问题:上一次在窗口修改单位名称顺序后,再次打开窗口后,目录树显示单位名称的顺序错乱,若点击保存,级码就会打乱。希望下次打开窗口目录树,显示上一次修改后(保存)的结果,请问老师,怎么修改代码?

 回到顶部
帅哥,在线噢!
jhxb8821
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:860 积分:5964 威望:0 精华:0 注册:2016/4/15 22:24:00
已解决  发帖心情 Post By:2022/3/2 13:12:00 [显示全部帖子]

感谢蓝老师

 回到顶部
帅哥,在线噢!
jhxb8821
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:860 积分:5964 威望:0 精华:0 注册:2016/4/15 22:24:00
级码目录树自动输入问题  发帖心情 Post By:2022/3/2 16:58:00 [显示全部帖子]

蓝老师,我使用下拉目录树自动输入,由于节点长度不固定,请帮我加一个判断,双击最底层节点输入
    If e.Node.Level = 1 Then '如果单击的是第二层节点
        Dim tr As Row
        Dim dr As DataRow = e.Node.DataRow '获取生成此节点的DataRow
        If e.Form.DropTable IsNot Nothing Then '如果下拉窗口是从表中打开
            tr = e.Form.DropTable.Current '获取此表的当前行
        Else '如果下拉窗口是通过DropdownBox打开
            Dim nm As String = e.Form.DropDownBox.BindingField '获取绑定的字段
            nm = nm.Split(".")(0) '获取绑定的表名
            tr = Tables(nm).Current '获取此表的当前行
        End If
        tr("单位编码") = dr("单位编码")
        tr("名称") = dr("名称")
        tr("人数") = dr("人数")
        tr("性质") = dr("性质")
        e.Form.DropDownBox.Value = tr("名称") '这行不是多余的,省略此行,无法在表中正常使用此下拉窗口输入数据.
        e.Form.DropDownBox.CloseDropdown()
    End If
    

 回到顶部
帅哥,在线噢!
jhxb8821
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:860 积分:5964 威望:0 精华:0 注册:2016/4/15 22:24:00
已解决  发帖心情 Post By:2022/3/2 17:11:00 [显示全部帖子]

谢谢

 回到顶部
帅哥,在线噢!
jhxb8821
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:860 积分:5964 威望:0 精华:0 注册:2016/4/15 22:24:00
删除代码  发帖心情 Post By:2022/3/16 16:51:00 [显示全部帖子]

老师,帮我看看删除按钮代码,是哪里出错了?
With Tables("项目明细表").Current
    If Tables("项目明细表").Current("已报账") = True Then
        MessageBox.Show("项目已报账,你不能删除,别乱来!", "提示")
        e.Cancel = True
    Else
         Tables("项目明细表").Current.Delete
    End If
    MessageBox.show("删除成功!")
End With


 回到顶部
帅哥,在线噢!
jhxb8821
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:860 积分:5964 威望:0 精华:0 注册:2016/4/15 22:24:00
这样写行吗  发帖心情 Post By:2022/3/16 17:03:00 [显示全部帖子]

With Tables("项目明细表").Current
    If CurrentTable.Current("已报账") = True Then
        MessageBox.Show("项目已报账,你不能删除,别乱来!", "提示")
        e.Cancel = True  '取消变动
    Else
        CurrentTable.Current.Delete()
        MessageBox.show("删除成功!")
    End If
End With


 回到顶部
帅哥,在线噢!
jhxb8821
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:860 积分:5964 威望:0 精华:0 注册:2016/4/15 22:24:00
10楼还是不行,这样改就好了,这有区别码?  发帖心情 Post By:2022/3/16 17:10:00 [显示全部帖子]

If Tables("项目明细表").Current IsNot Nothing
    If CurrentTable.Current("已报账") = True Then
        MessageBox.Show("项目已报账,你不能删除,别乱来!", "提示")
    Else
         CurrentTable.Current.Delete
    MessageBox.show("删除成功!")
    End If
End If

 回到顶部
帅哥,在线噢!
jhxb8821
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:860 积分:5964 威望:0 精华:0 注册:2016/4/15 22:24:00
  发帖心情 Post By:2022/3/16 17:22:00 [显示全部帖子]

我知道原因了,关联子表

 回到顶部
帅哥,在线噢!
jhxb8821
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:860 积分:5964 威望:0 精华:0 注册:2016/4/15 22:24:00
老师,帮我看看这个代码  发帖心情 Post By:2022/3/16 17:35:00 [显示全部帖子]

先判断是否有明细单,有则先删除明细单后才能删总表订单

If Tables("项目总表").Rows.Count >0 Then

MessageBox.show("请先删除明细单!")

    Dim pr As DataRow = e.DataRow.GetParentRow("项目总表") '获得此明细对应的订单

    If pr IsNot  Nothing Then '如果有对应的订单

        If pr.GetChildRows("项目明细表").count  = 1 Then '且这个订单的明细只有一个了

            e.DataRow("项目编号") = Nothing   ''某关联列

            pr.Delete '删除这个订单

        End If

    ElseIf MessageBox.Show("确认是否真的要删除?", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question)=6 Then

        Tables("项目总表").Current.Delete

    Else

        Return

    End If

End If


 回到顶部
总数 74 1 2 3 4 5 6 7 8 下一页