以文本方式查看主题 - 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楼的方法行得通。谢谢。 上图是一个报表。我希望将上面那个图变成下面那个图,即把月份那行同月份的列进行合并。是不是可以在数据表里面计算出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格式的。 |
-- 作者:有点蓝 -- 发布时间: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,不知道怎样把这个大方框表达出来。谢谢。
|