Foxtable(狐表)用户栏目专家坐堂 → [求助]复选列表框显示当前表“名称”列的值


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

主题:[求助]复选列表框显示当前表“名称”列的值

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


加好友 发短信
等级:狐神 帖子:5015 积分:25363 威望:0 精华:0 注册:2015/8/18 9:21:00
  发帖心情 Post By:2016/8/20 14:23:00 [只看该作者]

Dim clbx1 As WinForm.CheckedListBox = e.Form.Controls("CheckedListBox1")
Dim clbx2 As WinForm.CheckedListBox = e.Form.Controls("CheckedListBox2")

For Each j As String In clbx2.CheckedIndices
    Dim tm As String  = ProjectPath & "模板文件\" & clbx2.Items(j) '指定模板文件
    For Each i As Integer In clbx1.CheckedIndices
        Dim fl As String = ProjectPath & "成品文件\" & clbx1.items(i) & clbx2.Items(j)      '指定目标文件
        Dim nm As String  = CurrentTable.Name
        Dim wrt As New WordReport(Tables(nm),tm,fl) '定义一个WordReport
        Dim dr As DataRow =DataTables(nm).Find("名称 = '" & clbx1.items(i) & "'")
        
        '文件已经存在,是否覆盖重新填写
        If FileSys.FileExists(fl) Then
            If  MessageBox.Show(fl & "文件已经存在,是否覆盖重新填写?","提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question) = DialogResult.Yes Then
                '是
            Else
                '否
            End If
        End If
        '
        If dr IsNot Nothing
            wrt.BuildOne(dr)
            wrt.quit
            Dim proc As new Process
            proc.File = fl  '覆盖写入
            'proc.Start
            MessageBox.Show("生成完毕!")
        End If
    Next
Next

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


加好友 发短信
等级:四尾狐 帖子:957 积分:8440 威望:0 精华:0 注册:2012/10/3 13:25:00
  发帖心情 Post By:2016/8/20 15:00:00 [只看该作者]

老师,效果和过程就是这样,非常感谢!
但测试后,发现如果文件夹中本来没有同名文件,也会弹出询问“是否覆盖重新填写”的窗口;以及每生成一个文件就弹出一个“生成完毕”的窗口。
麻烦老师再看看是哪里的问题。

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


加好友 发短信
等级:狐神 帖子:5015 积分:25363 威望:0 精华:0 注册:2015/8/18 9:21:00
  发帖心情 Post By:2016/8/20 15:04:00 [只看该作者]

Dim clbx1 As WinForm.CheckedListBox = e.Form.Controls("CheckedListBox1")
Dim clbx2 As WinForm.CheckedListBox = e.Form.Controls("CheckedListBox2")

For Each j As String In clbx2.CheckedIndices
    Dim tm As String  = ProjectPath & "模板文件\" & clbx2.Items(j) '指定模板文件
    For Each i As Integer In clbx1.CheckedIndices
        Dim fl As String = ProjectPath & "成品文件\" & clbx1.items(i) & clbx2.Items(j)      '指定目标文件
        
        '文件已经存在,是否覆盖重新填写
        If FileSys.FileExists(fl) Then
            If  MessageBox.Show(fl & "文件已经存在,是否覆盖重新填写?","提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question) = DialogResult.No Then
                Continue For
            End If
        End If
        Dim nm As String  = CurrentTable.Name
        Dim wrt As New WordReport(Tables(nm),tm,fl) '定义一个WordReport
        Dim dr As DataRow =DataTables(nm).Find("名称 = '" & clbx1.items(i) & "'")
        '
        If dr IsNot Nothing
            wrt.BuildOne(dr)
            wrt.quit
        End If
    Next
Next

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


加好友 发短信
等级:四尾狐 帖子:957 积分:8440 威望:0 精华:0 注册:2012/10/3 13:25:00
  发帖心情 Post By:2016/8/20 15:25:00 [只看该作者]

给老师添麻烦了,还有一点小问题:
如果模板中的项目在数据表中找不到,就会在生成的文件中保留一个空行,怎样让这些没有内容的空行不出现?再次感谢!

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


加好友 发短信
等级:狐神 帖子:5015 积分:25363 威望:0 精华:0 注册:2015/8/18 9:21:00
  发帖心情 Post By:2016/8/20 15:46:00 [只看该作者]


Dim clbx1 As WinForm.CheckedListBox = e.Form.Controls("CheckedListBox1")
Dim clbx2 As WinForm.CheckedListBox = e.Form.Controls("CheckedListBox2")

For Each j As String In clbx2.CheckedIndices
    Dim tm As String  = ProjectPath & "模板文件\" & clbx2.Items(j) '指定模板文件
    For Each i As Integer In clbx1.CheckedIndices
        Dim fl As String = ProjectPath & "成品文件\" & clbx1.items(i) & clbx2.Items(j)      '指定目标文件
        
        '文件已经存在,是否覆盖重新填写
        If FileSys.FileExists(fl) Then
            If  MessageBox.Show(fl & "文件已经存在,是否覆盖重新填写?","提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question) = DialogResult.No Then
                Continue For
            End If
        End If
        Dim nm As String  = CurrentTable.Name
        Dim dr As DataRow =DataTables(nm).Find("名称 = '" & clbx1.items(i) & "'")
        '
        If dr IsNot Nothing
            Dim wrt As New WordReport(Tables(nm),tm,fl) '定义一个WordReport
            wrt.BuildOne(dr)
            wrt.quit
        End If
    Next
Next

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


加好友 发短信
等级:四尾狐 帖子:957 积分:8440 威望:0 精华:0 注册:2012/10/3 13:25:00
  发帖心情 Post By:2016/8/20 16:25:00 [只看该作者]

生成的文件还是有空行(模板中的项目在数据表中找不到),如下:

这是生成的文件:

B

2222

3333

 

 

6666

7777

8888

9999

0000

-------------------

这是模板:

[名称]

[第二列]

[第三列]

[第四列]

[第五列]

[第六列]

[第七列]

[第八列]

[第九列]

[第十列]

---------------------

[第四列]、[第五列]这两个模板项目, 数据表中没有数据;想在生成的文件中删除   无内容的项目  所在的行。谢谢!

[此贴子已经被作者于2016/8/21 9:37:58编辑过]

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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/8/21 15:23:00 [只看该作者]

 上传实例。

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


加好友 发短信
等级:四尾狐 帖子:957 积分:8440 威望:0 精华:0 注册:2012/10/3 13:25:00
  发帖心情 Post By:2016/8/21 19:30:00 [只看该作者]

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


版主,你用模板111或222预览一下,我在foxtable的一个单元格中分行录入的数据:
①如果模板是表格(模板111),那么,预览或写入模板时就成为了一行,并插入了格式字符;希望导入模板后仍保持原样式。
如果模板不是表格(模板222),那么,预览时,那个单元格中分行录入的数据在写入模板后就做不到左对齐;希望都是左缩进2字符。
③模板中的项目,foxtable中如果没有,那么,报表就显示空段落;希望删除没有数据的项目所在的行(空段落)。
谢谢版主!
[此贴子已经被作者于2016/8/21 20:50:27编辑过]

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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/8/22 9:32:00 [只看该作者]

无法做到你要的效果,只能这样 

 

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:aa.zip


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


加好友 发短信
等级:四尾狐 帖子:957 积分:8440 威望:0 精华:0 注册:2012/10/3 13:25:00
  发帖心情 Post By:2016/8/22 13:31:00 [只看该作者]

版主谦虚了,可能论坛等着你答复的问题太多了,没有时间,我相信版主是无所不能的。另外,我对弧表还处于了解阶段,所以问的问题可能不到位,让前辈无法着手。
关于本贴涉及的问题,我在execl中都有完善的代码,只是不知道怎样移植到foxtable中。
说明中说“原来的VBA代码只需稍作修改,就可以在Foxtable中使用。”  ,但我还改不了。
如果版主有空的话,能否把我涉及上述问题的几句VBA代码移植到foxtable中。谢谢!
附件:
 下载信息  [文件大小:   下载次数: ]
点击浏览该文件:文书数据源.rar


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