Foxtable(狐表)用户栏目专家坐堂 → [求助]关于导入数据存在部分空行造成打印多页的问题


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

主题:[求助]关于导入数据存在部分空行造成打印多页的问题

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


加好友 发短信
等级:婴狐 帖子:17 积分:214 威望:0 精华:0 注册:2011/7/1 15:36:00
[求助]关于导入数据存在部分空行造成打印多页的问题  发帖心情 Post By:2017/5/24 19:53:00 [只看该作者]


图片点击可在新窗口打开查看此主题相关图片如下:导入数据.png
图片点击可在新窗口打开查看

图片点击可在新窗口打开查看此主题相关图片如下:导入后的情况.png
图片点击可在新窗口打开查看

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

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

图片点击可在新窗口打开查看此主题相关图片如下:打印3.png
图片点击可在新窗口打开查看
打印2的更换材料及备件的序号1的相关内容如何放入打印1的表格更换材料及备件的序号2中,并且打印2不再生成打印。
求各位专家帮忙看看,感谢!



[此贴子已经被作者于2017/5/24 19:57:55编辑过]

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


加好友 发短信
等级:超级版主 帖子:13837 积分:69650 威望:0 精华:0 注册:2016/11/1 14:42:00
  发帖心情 Post By:2017/5/24 20:10:00 [只看该作者]

 合并数据,参考代码

 

Dim dlg As New OpenFileDialog
dlg.Filter = "Excel文件|*.xls;*.xlsx"
If dlg.ShowDialog =DialogResult.OK Then
    Dim t As Table = Tables("表B")
    t.StopRedraw()
    Dim Book As New XLS.Book(dlg.FileName)
    Dim Sheet As XLS.Sheet = Book.Sheets(0)
    For n As Integer = 1 To Sheet.Rows.Count -1
        Dim r As DataRow = t.DataTable.Find("第一列 = '" & sheet(n, 0).text & "'")
        If r Is Nothing Then r = t.DataTable.AddNew()
        For i As Integer = 0 To sheet.Cols.Count -1
            Dim cname As String = sheet(0, i).text
            If t.Cols.Contains(cname) Then
                r(cname) = sheet(n, i).Text
            End If
        Next
    Next
    t.ResumeRedraw()
End If

 

 如果有问题,做个具体实例上传上来测试。


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


加好友 发短信
等级:婴狐 帖子:17 积分:214 威望:0 精华:0 注册:2011/7/1 15:36:00
  发帖心情 Post By:2017/5/25 7:36:00 [只看该作者]

好的 感谢版主 我先试试

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


加好友 发短信
等级:婴狐 帖子:17 积分:214 威望:0 精华:0 注册:2011/7/1 15:36:00
  发帖心情 Post By:2017/5/25 8:47:00 [只看该作者]

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

项目我上传了,版主帮忙看看

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


加好友 发短信
等级:超级版主 帖子:13837 积分:69650 威望:0 精华:0 注册:2016/11/1 14:42:00
  发帖心情 Post By:2017/5/25 10:06:00 [只看该作者]

1、先把数据处理成正常的,执行下面代码

 

Dim t As Table = Tables("设备检修记录")
For Each c As Col In t.Cols
    For i As Integer = 1 To t.Rows.count-1
        If t.Rows(i).IsNull("名称") = False AndAlso (t.Rows(i).Isnull("工艺代号") OrElse t.Rows(i)("工艺代号") = t.Rows(i-1)("工艺代号")) Then
            If t.Rows(i).IsNull(c) Then
                t.Rows(i)(c.name) = t.Rows(i-1)(c.name)
            End If
        End If
    Next
Next


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


加好友 发短信
等级:超级版主 帖子:13837 积分:69650 威望:0 精华:0 注册:2016/11/1 14:42:00
  发帖心情 Post By:2017/5/25 10:37:00 [只看该作者]

2、然后,你的模板,用这个

 

 

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:设备检修档案.xls


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


加好友 发短信
等级:婴狐 帖子:17 积分:214 威望:0 精华:0 注册:2011/7/1 15:36:00
  发帖心情 Post By:2017/5/25 11:52:00 [只看该作者]

恩 我测试了,把第二行的数据填充了后可以正常打印,目前有个新的问题,我直接从别的软件导出来的数据很多这种类型的空行,能在foxtable内实现导入后自动填充吗?

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


加好友 发短信
等级:婴狐 帖子:17 积分:214 威望:0 精华:0 注册:2011/7/1 15:36:00
  发帖心情 Post By:2017/5/25 12:49:00 [只看该作者]

Sub cdsr()
On Error Resume Next
    Dim lastrow&, lastcol&
    lastrow = Sheet1.UsedRange.Rows.Count
    lastcol = Sheet1.UsedRange.Columns.Count
    For i = 1 To lastcol
        Range(Cells(2, i), Cells(lastrow, i)).SpecialCells(xlCellTypeBlanks).FormulaR1C1 = "=R[-1]C"
    Next
End Sub
这是VBA可以直接填充空白单元格上一行的执行代码,能帮忙转化到foxtable里实现吗?这样我就可以直接复制数据到foxtable里执行就可以了

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


加好友 发短信
等级:超级版主 帖子:13837 积分:69650 威望:0 精华:0 注册:2016/11/1 14:42:00
  发帖心情 Post By:2017/5/25 12:56:00 [只看该作者]

看5楼的代码,你合并数据以后,执行一次5楼的代码。

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


加好友 发短信
等级:婴狐 帖子:17 积分:214 威望:0 精华:0 注册:2011/7/1 15:36:00
  发帖心情 Post By:2017/5/25 14:06:00 [只看该作者]

恩 执行了 就行了,这种代码每次导入一次就需要重新执行命令?

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