以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  求助:报表中修改值  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=121169)

--  作者:cxmxjwlmq
--  发布时间:2018/6/30 12:05:00
--  求助:报表中修改值

各位老师:我在报表编程中,有以下问题,代码如下请指教:

\'表1填入数据区域命令
     For r As Integer = 0 To dt.Rows.Count - 1       \'填入数据
        Sheet.Rows(r + 3).Height = 25                \'设置除前三行外其它行的行高
        For c As Integer = 0 To nms.length -1
        If dt.cols(nms(c)).isdate Then
              If dt.rows(r)(nms(c)) = Nothing Then    \'依据条件调用日期数据区域样式
                 Sheet(r + 3, c).Style = bt
              Else
                  Sheet(r + 3, c).Style = st
              End If
               Sheet(r + 3, c).Value = dt.rows(r)(nms(c)) \'填入日期数据
           End If
\'部分区域单元格调用样式命令
           Sheet(r + 3, c + 1).Style = Style          \'从第三行第二列开始调用新样式:居中,带边框
           Sheet(r + 3, 6).Style = ct                 \'从第三行第14列开始调用新样式:居左,带边框
           Sheet(r + 3, 14).Style = ct                \'从第三行第15列开始调用新样式:居左,带边框
           Sheet(r + 3, 15).Style = bt                \'从第三行第16列开始调用新样式:居左,无边框
           Sheet(r + 3, c).Value = dt.rows(r)(nms(c)) \'填入数据
           Sheet(r + 3, 1).Value = 1                  \'根据条件修改数据:条件是“当前行的判定列为空值是,此行此列值为空,判定列不为空值是,值是1,2,3类推”

           Sheet(r + 3, 5).Value = 1                  \'根据条件修改数据:条件是“当前行的判定列不为空值时,此列数据为1,当判定列为空值是,值是1,2,3类推”

           Sheet(r + 3, 6).Value = 1                  \'根据条件修改数据:条件是“当前行的判定列为合格时,此列为空值,还是原来的数据是”          

        Next
     Next

 

请各位老师劳心费神

!谢谢!


--  作者:cxmxjwlmq
--  发布时间:2018/6/30 12:06:00
--  
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:整车下线质量日报.xls


--  作者:有点蓝
--  发布时间:2018/6/30 13:53:00
--  
试试
Dim k1,k2 As String

For r As Integer = 0 To dt.Rows.Count - 1       \'填入数据
    Sheet.Rows(r + 3).Height = 25                \'设置除前三行外其它行的行高
    k1 = dt.rows(r)(nms(2))              \'设置除前三行外其它行的行高
    k2 = dt.rows(r)(nms(10))
    For c As Integer = 0 To nms.length -1
        If dt.cols(nms(c)).isdate Then
            If dt.rows(r)(nms(c)) = Nothing Then    \'依据条件调用日期数据区域样式
                Sheet(r + 3, c).Style = bt
            Else
                Sheet(r + 3, c).Style = st
            End If
            Sheet(r + 3, c).Value = dt.rows(r)(nms(c)) \'填入日期数据
        End If
        \'部分区域单元格调用样式命令
        Sheet(r + 3, c + 1).Style = Style          \'从第三行第二列开始调用新样式:居中,带边框
        Sheet(r + 3, 6).Style = ct                 \'从第三行第14列开始调用新样式:居左,带边框
        Sheet(r + 3, 14).Style = ct                \'从第三行第15列开始调用新样式:居左,带边框
        Sheet(r + 3, 15).Style = bt                \'从第三行第16列开始调用新样式:居左,无边框
        Sheet(r + 3, c).Value = dt.rows(r)(nms(c)) \'填入数据
    Next
    If k2 = "" Then
        Sheet(r + 3, 1).Value = k1                  \'根据条件修改数据:条件是"当前行的判定列为空值是,此行此列值为空,判定列不为空值是,值是1,2,3类推"
        Sheet(r + 3, 5).Value = k1                  \'根据条件修改数据:条件是"当前行的判定列不为空值时,此列数据为1,当判定列为空值是,值是1,2,3类推"
    ElseIf k2 = "合格" Then
        Sheet(r + 3, 6).Value = ""                 \'根据条件修改数据:条件是"当前行的判定列为合格时,此列为空值,还是原来的数据是"
    End If

Next

--  作者:cxmxjwlmq
--  发布时间:2018/6/30 15:19:00
--  

老师:我按你的把命令导入车窗口中,不知道那出错了,结果如附件第三个表!

 

Dim k1,k2 As String
For r As Integer = 0 To dt.Rows.Count - 1       \'填入数据
    Sheet.Rows(r + 3).Height = 25                \'设置除前三行外其它行的行高
    For c As Integer = 0 To nms.length -1
        If dt.cols(nms(c)).isdate Then
            If dt.rows(r)(nms(c)) = Nothing Then    \'依据条件调用日期数据区域样式
                Sheet(r + 3, c).Style = bt
            Else
                Sheet(r + 3, c).Style = st
            End If
            Sheet(r + 3, c).Value = dt.rows(r)(nms(c)) \'填入日期数据
        End If
        \'部分区域单元格调用样式命令
        Sheet(r + 3, c + 1).Style = Style          \'从第三行第二列开始调用新样式:居中,带边框
        Sheet(r + 3, 6).Style = ct                 \'从第三行第14列开始调用新样式:居左,带边框
        Sheet(r + 3, 14).Style = ct                \'从第三行第15列开始调用新样式:居左,带边框
        Sheet(r + 3, 15).Style = bt                \'从第三行第16列开始调用新样式:居左,无边框
        Sheet(r + 3, c).Value = dt.rows(r)(nms(c)) \'填入数据
    Next
    k1 = dt.rows(r)(nms(2))             
    k2 = dt.rows(r)(nms(10))
    If k2 = "" Then
        Sheet(r + 3, 1).Value = k1                  \'根据条件修改数据:条件是"当前行的判定列为空值是,此行此列值为空,判定列不为空值是,值是1,2,3类推"
        Sheet(r + 3, 5).Value = k1                  \'根据条件修改数据:条件是"当前行的判定列不为空值时,此列数据为1,当判定列为空值是,值是1,2,3类推"
    ElseIf k2 = "合格" Then
        Sheet(r + 3, 6).Value = k1                   \'根据条件修改数据:条件是"当前行的判定列为合格时,此列为空值,还是原来的数据是"
    End If
Next
请费心!

 下载信息  [文件大小:   下载次数: ]
点击浏览该文件:整车下线质量日报2.xls


--  作者:有点蓝
--  发布时间:2018/6/30 15:32:00
--  
无法测试,做个项目实例发上来
--  作者:cxmxjwlmq
--  发布时间:2018/6/30 19:57:00
--  

各位老师:

   按你的指导,已有二项达到预想的效果,还有一项,没有达到。

    If k2 = "" Then
        Sheet(r + 1, 1).Value = k3                  \'当K2的值为空时,值为空值
      Else
        Sheet(r + 1, 1).Value =                     \'当K2的值不为空时,值为当前行以上的列的最大值加1
     End If

 

请老师再费心劳神给指导一下!

谢谢!

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

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:整车下线质量日报4.xls


--  作者:有点甜
--  发布时间:2018/7/1 17:57:00
--  
你代码写在例子的哪里?你要修改成什么样子?
--  作者:cxmxjwlmq
--  发布时间:2018/7/1 18:29:00
--  

老师:代码在例子的统计窗口中导出质量报表按钮中。修改成整车下线质量日报的表2预想效果


--  作者:cxmxjwlmq
--  发布时间:2018/7/1 18:32:00
--  
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目1.table


--  作者:cxmxjwlmq
--  发布时间:2018/7/1 18:34:00
--  

这是两个附件,请老师费心!

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:整车下线质量日报4.xls