Foxtable(狐表)用户栏目专家坐堂 → [求助]关于目录树输入问题的请教


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

主题:[求助]关于目录树输入问题的请教

帅哥哟,离线,有人找我吗?
syzsyk
  21楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:274 积分:2303 威望:0 精华:0 注册:2008/9/12 16:46:00
  发帖心情 Post By:2014/7/11 0:01:00 [只看该作者]

nd.Level = 1 中1改成0,就OK了,谢谢甜老师。

 回到顶部
帅哥哟,离线,有人找我吗?
syzsyk
  22楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:274 积分:2303 威望:0 精华:0 注册:2008/9/12 16:46:00
  发帖心情 Post By:2014/7/11 8:18:00 [只看该作者]

经测试,现在都实现了要求,但目录树打开时,符合条件的仍然出现,旁边显示数字为0。

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  23楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/7/11 9:07:00 [只看该作者]

以下是引用syzsyk在2014-7-11 8:18:00的发言:
经测试,现在都实现了要求,但目录树打开时,符合条件的仍然出现,旁边显示数字为0。

 

用你的例子测试没有问题,记得清空原有数据测试,每次打开项目的时候idxs的值都是空值来的。

 

Dim trv As WinForm.TreeView = e.Form.Controls("TreeView1")
trv.BuildTree("表A","姓名|联系方式","_Identify not in (" & idxs.TrimEnd(",") & ")")
For Each nd As WinForm.TreeNode In trv.AllNodes
    If nd.Level = 1 Then
        nd.Text &= "(" & nd.DataRow("数量") - DataTables("表B").Compute("sum(数量)", "姓名 = '" & nd.DataRow("姓名") & "'") & ")"
    End If
Next


 回到顶部
帅哥哟,离线,有人找我吗?
syzsyk
  24楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:274 积分:2303 威望:0 精华:0 注册:2008/9/12 16:46:00
  发帖心情 Post By:2014/7/11 13:14:00 [只看该作者]

甜老师,还是有问题,上例子:
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目xg.foxdb





 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  25楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/7/11 14:27:00 [只看该作者]

 
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目xg.rar


 回到顶部
帅哥哟,离线,有人找我吗?
syzsyk
  26楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:274 积分:2303 威望:0 精华:0 注册:2008/9/12 16:46:00
  发帖心情 Post By:2014/7/11 16:28:00 [只看该作者]

哈哈,就是这样,非常感谢甜老师的耐心帮助,这是我做的项目中急需解决的一个问题,本来想这个功能可能实现不了的,没想到甜老师帮忙解决了,再次感谢甜老师。
[此贴子已经被作者于2014-7-11 16:29:01编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
syzsyk
  27楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:274 积分:2303 威望:0 精华:0 注册:2008/9/12 16:46:00
  发帖心情 Post By:2014/7/31 17:02:00 [只看该作者]

甜老师,我做的项目不关闭,可以实现25楼例子的功能,但项目关闭后再打开项目目录树中已经处理保存过的数据在目录中仍然出现。以下代码哪里有问题?

下拉窗口的DropDownOpened
Dim trv As WinForm.TreeView = e.Form.Controls("TreeView1")
Dim idxs As String = "-1,"
For Each name As String In DataTables("产地检疫申报").GetValues("申报单编号")
    Dim psum As Double = DataTables("产地检疫申报").Compute("sum(数量)", "申报单编号 = '" & name & "'")
    Dim csum As Double = DataTables("动物产地检疫工作记录").Compute("sum(基本情况_数量)", "申报单编号 = '" & name & "'")
    If psum > csum Then
        idxs &= "'" & name & "',"
    End If
Next


trv.BuildTree("产地检疫申报","申报人|申报单编号","申报单编号 in (" & idxs.TrimEnd(",") & ")")
For Each nd As WinForm.TreeNode In trv.AllNodes
    If nd.Level = 1 Then
        Dim sum As Double = DataTables("产地检疫申报").Compute("sum(数量)", "申报单编号 = '" & nd.DataRow("申报单编号") & "'")
        nd.Text &= "(" & sum - DataTables("动物产地检疫工作记录").Compute("sum(基本情况_数量)", "申报单编号 = '" & nd.DataRow("申报单编号") & "'") & ")"
    End If
Next

NodeMouseClick:


If e.Node.Level = 1 Then '如果单击的是第二层节点
    Dim tr As Row = Tables("动物产地检疫工作记录").Current
    Dim dr As DataRow = e.Node.DataRow '获取生成此节点的DataRow
    tr("基本情况_货主姓名") = dr("申报人")
    tr("申报单编号") = dr("申报单编号")
tr("基本情况_养殖场或村或原驻地或捕获地名称") = dr("养殖场名称")
    tr("基本情况_联系电话") = dr("联系电话")
    tr("基本情况_报检时间") = dr("申报时间")
    tr("基本情况_身份证号") = dr("身份证号")
    tr("基本情况_动物种类") = dr("动物种类")
    tr("基本情况_动物来源") = dr("来源")
    tr("基本情况_用途") = dr("用途")
    tr("基本情况_启运地点") = dr("启运地点")
    tr("基本情况_到达地点") = dr("到达地点")
    tr("单位") = dr("单位")
    Dim psum As Double = DataTables("产地检疫申报").Compute("sum(数量)", "申报单编号 = '" & dr("申报单编号") & "'")
    tr("基本情况_数量") = psum - DataTables("动物产地检疫工作记录").Compute("sum(基本情况_数量)", "申报单编号 = '" & dr("申报单编号") & "'")
    e.Form.DropDownBox.Value = tr("申报单编号") '这行不是多余的,省略此行,无法在表中正常使用此下拉窗口输入数据.
    e.Form.DropDownBox.CloseDropdown()
End If

保存Click
    If Tables("动物产地检疫工作记录").Current Is Nothing Then
        Tables("动物产地检疫工作记录").AddNew()
        Dim u As Row =Tables("动物产地检疫工作记录").Current
        u("监督所名称")= User.Group
        Tables("动物产地检疫工作记录").Current("基本情况_检疫时间")= Date.Today
    Else
        Dim r As Row = Tables("动物产地检疫工作记录").Current
        Dim fdr As DataRow = DataTables("产地检疫申报").Find("申报单编号 = '" & r("申报单编号") & "'")
        If fdr IsNot Nothing Then
            Dim psum As Double = DataTables("产地检疫申报").Compute("sum(数量)", "申报单编号 = '" & r("申报单编号") & "'")
            Dim sum As Double = DataTables("动物产地检疫工作记录").Compute("sum(基本情况_数量)", "申报单编号 = '" & r("申报单编号") & "'")
            If sum > psum Then
                MessageBox.Show("对不起,动物产地检疫工作记录数量超过了屠宰检疫申报的数量!请重新操作.","提示!")
            Else
                DataTables("动物产地检疫工作记录").Save()
    MessageBox.Show("动物产地检疫工作记录数据成功保存!","提示!")
                Tables("动物产地检疫工作记录").AddNew()
                Dim v As Row =Tables("动物产地检疫工作记录").Current
                v("监督所名称")= User.Group
                Tables("动物产地检疫工作记录").Current("基本情况_检疫时间")= Date.Today
            End If
        Else
            MessageBox.Show("申报单编号无效","提示!")
        End If
    End If

[此贴子已经被作者于2014-7-31 17:02:46编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  28楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/7/31 17:08:00 [只看该作者]

 参考25楼代码去做。

 

 如果还有问题,做个例子或者上传项目


 回到顶部
帅哥哟,离线,有人找我吗?
syzsyk
  29楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:274 积分:2303 威望:0 精华:0 注册:2008/9/12 16:46:00
  发帖心情 Post By:2014/7/31 19:10:00 [只看该作者]

甜老师,重新做了例子,基本上就是27楼的代码,完全达到要求,原项目代码基本一样就是不行,难道与外部数据库有关系?我的项目是sqserver数据库。

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  30楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/7/31 19:19:00 [只看该作者]

 回复29楼,那你就先用sqlserver做一个不行的例子,如果能做得出来,就发上来,连同数据库;

 

 或者,用access数据库做一个例子发上来。


 回到顶部
总数 32 上一页 1 2 3 4 下一页