以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  Dim rxD As New prt.RenderText  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=184250)

--  作者:edisontsui
--  发布时间:2022/11/30 7:28:00
--  Dim rxD As New prt.RenderText
For c As Integer = 1 To 50
      Dim rxD As String
      rxD = rxD & cD
      Dim rxD As New prt.RenderText \'定义一个文本对象 
Next 
上述代码我希望每次循环时,红色的 rxD 那里是不断变化的,比如从 rxD1 一直变到 rxD50,但是执行时出现提示:当前块中已声明了局部变量 rxD。请问要怎样修改呢?谢谢。

--  作者:有点蓝
--  发布时间:2022/11/30 8:31:00
--  
变量名称无法动态使用。在循环里使用,使用同一个变量名即可,不会冲突的

For c As Integer = 1 To 50
      Dim rxD As New prt.RenderText \'定义一个文本对象 
Next 

--  作者:edisontsui
--  发布时间:2022/11/30 14:11:00
--  
2楼的方法行得通。谢谢。


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

上图是一个报表。我希望将上面那个图变成下面那个图,即把月份那行同月份的列进行合并。是不是可以在数据表里面计算出10有多少个,11月有多少个,12月有多少个,这样就可以在报表里面进行合并。但是不知道在数据表里面如何计算每个月有多少列数。谢谢。


--  作者:有点蓝
--  发布时间:2022/11/30 14:18:00
--  
遍历这一行所有单元格判断即可

dim a as string = Sheet(0,0).value
dim m as integer = 0
for i as integer = 1 to Sheet.Cols.count - 1
if Sheet(0,i).value <> a then
magbox(a & "值开始列" & m & ",结束列" & (i-1))
合并单元格
m = i
a = Sheet(0,i).value
end if
next

--  作者:edisontsui
--  发布时间:2022/11/30 16:44:00
--  
        If r = 2 Then 
            Dim cyc As Integer = cr1("计划制作周期") + 1
            Dim a As String = rt.Cells(2, 12).text
            Dim m As Integer = 0
            For i As Integer = 1 To cyc
                If rt.Cells(0, i + 12).text = a Then
                Else
                    msgbox("a=" & a & "值开始列=" & m & ",结束列=" & (i - 1))
                    rt.Cells(2, m + 12).SpanCols = i - m \'合并单元格
                    m = i
                    a = rt.Cells(2, i + 12).text
                End If
             Next
        End If

上面是我的代码。无论 rt.Cells(0, i + 12).text 是否等于 a,上面红色的代码都会执行(msgbox显示的值是正确的),但是蓝色那行代码却不会执行,即不会合并单元格。

--  作者:有点蓝
--  发布时间:2022/11/30 16:47:00
--  
execl文档发上来看看

--  作者:edisontsui
--  发布时间:2022/11/30 17:15:00
--  
它不是excel 档案, 是pdf格式的。 
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:模具项目进度表.rar



--  作者:有点蓝
--  发布时间:2022/11/30 17:24:00
--  
pdf看不出行列的索引,生成execl发上来看。应该是行列的索引计算不准确导致的

dim a as string = Sheet(0,0).value 这里假设第一行是要合并的,0指第一行索引
dim m as integer = 0 这里假设从第一列开始判断合并
for i as integer = 1 to Sheet.Cols.count - 1 从下一列也就是第二列开始遍历
if Sheet(0,i).value <> a then 这里0指的是需要合并的行,和上面红字对应
magbox(a & "值开始列" & m & ",结束列" & (i-1))
合并单元格
m = i 
a = Sheet(0,i).value 这里0指的是需要合并的行,和上面红字对应
end if
next

--  作者:edisontsui
--  发布时间:2022/12/1 7:40:00
--  
找到原因了,是下面那句的行号搞错了:那个红色的0应为2。
If rt.Cells(0, i + 12).text = a Then
--  作者:edisontsui
--  发布时间:2022/12/1 11:52:00
--  
    \'开始加斜线
    Dim ra As prt.RenderArea
    ra = rt.Cells(2, 9).Area 
    Dim ln As New prt.RenderLine(0, 0, 1, 1, New prt.Linedef) \'定义一个线条
    ln.Width = "Parent.Width" \'加斜线之后再加文字
    ln.Height = "Parent.Width" \'加斜线之后再加文字
    ra.Children.Add(ln)
    
    Dim rx5 As New prt.RenderText \'定义一个文本对象   
    rx5.Text = "时间"
    rx5.X = "Parent.Width - 15"
    rx5.y = "5"
    ra.Children.Add(rx5)
    \'doc.Body.Children.Add(rt)
    \'结束加斜线
上面代码是希望在 第2-4行和第3-9列这个大方框里面加斜线和问题,但是好像没有效果,线条加不上,文字也加不上。另外,上面红色那行只是表达了一个cell,不知道怎样把这个大方框表达出来。谢谢。