以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  专业报表  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=42125)

--  作者:bm
--  发布时间:2013/11/4 19:56:00
--  专业报表

哪位高手帮忙。想了一个下午没成功。就是要将报表中 数字部分大字体。其他部分小字体

Dim doc As New PrintDoc
Dim rt As  New prt.RenderArea
Dim r As New prt.RenderText
Dim Cur As Row = Tables("业务大表").Current
 For Each i As String In cur("关单号")
     r.text = i
     If IsNumeric(i) Then
     r.Style.Font = New Font("宋体", 16)
     Else
     r.Style.Font = New Font("宋体", 8)
     End If
  Next
     r.X = 68
      r.Y = 62
    rt.Children.Add(r)
doc.Body.Children.Add(rt)
doc.PageSetting.Landscape = True
doc.PageSetting.Width = 330
doc.PageSetting.Height = 300
Doc.PageSetting.LeftMargin = 13
Doc.PageSetting.TopMargin = 40
doc.AutoRotate = False
Doc.Preview()


--  作者:有点甜
--  发布时间:2013/11/4 20:03:00
--  
 试试这样

Dim doc As New PrintDoc
Dim rt As  New prt.RenderArea
Dim Cur As Row = Tables("业务大表").Current
For Each i As String In cur("关单号")
    Dim r As New prt.RenderText
    r.text = i
    If IsNumeric(i) Then
        r.Style.Font = New Font("宋体", 16)
    Else
        r.Style.Font = New Font("宋体", 8)
    End If
    \'r.X = 68
    \'r.Y = 62
    rt.Children.Add(r)
Next
doc.Body.Children.Add(rt)
doc.PageSetting.Landscape = True
doc.PageSetting.Width = 330
doc.PageSetting.Height = 300
Doc.PageSetting.LeftMargin = 13
Doc.PageSetting.TopMargin = 40
doc.AutoRotate = False
Doc.Preview()

--  作者:bm
--  发布时间:2013/11/4 20:14:00
--  谢谢有点甜

谢谢有点甜。但是还有一个问题。生成自后怎么是竖的。如果要横向应该怎么改

r.X = 68
r.Y = 62

怎么办


--  作者:bm
--  发布时间:2013/11/4 20:27:00
--  麻烦再帮忙看看
麻烦再帮忙看看
--  作者:有点甜
--  发布时间:2013/11/4 20:30:00
--  
你可以再用一个 容器 装上这些数字,然后设置这个容器的位置排列方式之类的东西。


--  作者:bm
--  发布时间:2013/11/4 20:43:00
--  不会啊老大
图片点击可在新窗口打开查看麻烦帮帮忙吧
--  作者:有点甜
--  发布时间:2013/11/4 20:52:00
--  
 你试试这样

Dim doc As New PrintDoc
Dim rt As  New prt.RenderArea
Dim Cur As Row = Tables("业务大表").Current
For Each i As String In cur("关单号")
    Dim r As New prt.RenderText
    r.text = i
    If IsNumeric(i) Then
        r.Style.Font = New Font("宋体", 16)
    Else
        r.Style.Font = New Font("宋体", 8)
    End If
    rt.Children.Add(r)
Next
rt.Stacking = prt.StackingRulesEnum.BlockLeftToRight
rt.X = 68
rt.Y = 62

doc.Body.Children.Add(rt)
doc.PageSetting.Landscape = True
doc.PageSetting.Width = 330
doc.PageSetting.Height = 300
Doc.PageSetting.LeftMargin = 13
Doc.PageSetting.TopMargin = 40
doc.AutoRotate = False
Doc.Preview()


--  作者:bm
--  发布时间:2013/11/4 21:04:00
--  不对

只出来一个字母。还分成2个页面图片点击可在新窗口打开查看 麻烦佬大再看看。图片点击可在新窗口打开查看


--  作者:有点甜
--  发布时间:2013/11/4 21:27:00
--  
 参考下面的代码,自己改一下width

Dim doc As New PrintDoc
Dim rt As  New prt.RenderArea
\'Dim Cur As Row = Tables("业务大表").Current
For Each i As String In "abc123456"
    Dim r As New prt.RenderText
    r.text = i
    If IsNumeric(i) Then
        r.Style.Font = New Font("宋体", 16)
        r.Width = 8       
    Else
        r.Style.Font = New Font("宋体", 8)
        r.Width = 5
    End If
    rt.Children.Add(r)
Next
rt.Stacking = prt.StackingRulesEnum.InlineLeftToRight
rt.X = 68
rt.Y = 62

doc.Body.Children.Add(rt)
doc.PageSetting.Landscape = True
doc.PageSetting.Width = 330
doc.PageSetting.Height = 300
Doc.PageSetting.LeftMargin = 13
Doc.PageSetting.TopMargin = 40
doc.AutoRotate = False
Doc.Preview()


--  作者:bm
--  发布时间:2013/11/4 21:36:00
--  谢谢有点甜
图片点击可在新窗口打开查看