以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  [求助]专业报表的问题  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=40450)

--  作者:zc412
--  发布时间:2013/9/20 11:12:00
--  [求助]专业报表的问题

Dim doc As New PrintDoc \'定义一个报表
Dim rt As New prt.RenderText \'定义一个文本对象
Dim lb1 As WinForm.Label = e.Form.Controls("Label1")
Dim lb2 As WinForm.Label = e.Form.Controls("Label2")

Dim lb3 As WinForm.Label = e.Form.Controls("Label3")
Dim txt1 As WinForm.TextBox = e.Form.Controls("TextBox1")
Dim txt2 As WinForm.TextBox = e.Form.Controls("TextBox2")
doc.Stacking = prt.StackingRulesEnum.InlineLeftToRight
\'--------页面设置
Doc.PageSetting.Height=139.7 \'报表高度5.5英寸
Doc.PageSetting.Width=254    \'报表宽度10英寸
Doc.PageSetting.LeftMargin = 10 \'设置左边距
Doc.PageSetting.RightMargin = 10 \'设置右边距
Doc.PageSetting.TopMargin = 10 \'设置上边距
Doc.PageSetting.BottomMargin = 10 \'设置下边距
\'--------标题设置
rt.text=lb1.text
rt.Style.Font=new font("宋体",22 , FontStyle.Bold)\'字体设置
rt.Style.TextAlignHorz = prt.AlignHorzEnum.Center \'文本内容水平居中
Doc.body.Children.add(rt)
\'------编号标签
rt=new prt.rendertext
rt.text=lb3.text
rt.width=12
Doc.Body.Children.Add(rt)
\'------编号内容
rt = new prt.rendertext
rt.Text =txt1.Text \'设置文本对象的内容
rt.Width = 25 \'对象宽度为25毫米
doc.Body.Children.Add(rt) \'将文本对象加入到报表
\'------日期标签
rt = New prt.RenderText \'再次新建一个文本框
rt.Text = lb2.text \'设置文本对象的内容
rt.Width = 15 \'对象宽度为15毫米
rt.Style.Spacing.Left=30 \'离左对象30毫米
rt.Style.Borders.All = New prt.Linedef
doc.Body.Children.Add(rt) \'将文本对象加入到报表


此主题相关图片如下:shd1.png
按此在新窗口浏览图片
日期那个标签会自动换行,而且外框没了

如果把红色字体代码换成

rt.Style.Spacing.Left=3 \'离左对象3毫米

就正常了



 


此主题相关图片如下:shd2.png
按此在新窗口浏览图片
请教为何会出现这种情况
--  作者:程兴刚
--  发布时间:2013/9/20 20:02:00
--  

道理很简单,左边距越大,可容纳字符的位置就越小,当该位置不能完全放下您的所有文字的时候就自动换行了!


--  作者:有点甜
--  发布时间:2013/9/20 20:28:00
--  
 呵呵,或者这样理解,spacing是包含在对象的width/height里的。
--  作者:zc412
--  发布时间:2013/9/21 15:52:00
--  
以下是引用有点甜在2013-9-20 20:28:00的发言:
 呵呵,或者这样理解,spacing是包含在对象的width/height里的。

但是把那一行的所有对象宽度加起来还没有超过页面宽度啊


--  作者:有点甜
--  发布时间:2013/9/21 20:14:00
--  
以下是引用zc412在2013-9-21 15:52:00的发言:

但是把那一行的所有对象宽度加起来还没有超过页面宽度啊


你设置width=15,但你的spacing=30,自然是容不下的。