以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  民文对齐和首行缩进问题求救  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=83548)

--  作者:ayiken
--  发布时间:2016/4/12 11:03:00
--  民文对齐和首行缩进问题求救

专业报表中使用代码如下:

Dim rs As New prt.RenderText() \'定义一个文本对象
dr = DataTables("翻译词典").Find("翻译字段 = \'诊疗经过\'")
If dr IsNot Nothing Then \'如果找到的话
    rs.Text =dr("翻内容") & ":" & CurRow("诊疗经过")
End If
rs.Style.TextIndent =9
rs.Style.Font = New Font("KazakhSoft Asilya",10) \'设置字体
rs.Style.TextAlignHorz = prt.AlignHorzEnum.Right \'水平居右排列
rs.Style.Spacing.Bottom = 5 \'表和和后续对象的垂直间隔为5毫米
doc.Body.Children.Add(rs)
  但是显示的民文无法对齐,首行缩进能否从右开始?


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


--  作者:大红袍
--  发布时间:2016/4/12 11:40:00
--  

 缩进参考

 

rs.Text = "        " & rs.Text


--  作者:ayiken
--  发布时间:2016/4/12 11:56:00
--  
不行啊,起不了作用,对齐方法???
--  作者:ayiken
--  发布时间:2016/4/12 12:20:00
--  
求救,哪位专家能解决我的这难题啊????
--  作者:大红袍
--  发布时间:2016/4/12 12:35:00
--  

 没办法,只能像这样变通

 

Dim doc As New PrintDoc \'定义一个报表
Dim rt As New prt.RenderText \'定义一个文本对象
Dim str = "新华网绵阳5月16日电(记者孙承斌)16日上午,在四川抗震救灾的危急时刻,中共中央总书记国家主席中央军委主席乘飞机赶往四川省地震灾区,慰问灾区干部群众,看望奋战在抗震救灾第一线的部队官兵公安民警和医护人员,指导抗震救灾工作." \'设置文本对象的内容
Dim nstr As String = ""
For i As Integer = str.length - 1 To 0 Step -1
    nstr &= str(i)
Next
Dim count As Integer = 20

nstr = nstr & chr(9)
Dim zs As Integer = nstr.length \\ count
For i As Integer = 1 To zs
    rt.text &= nstr.SubString(nstr.length - i*count, 20) & vbcrlf
Next
rt.text &= nstr.SubString(0, nstr.length - zs*count)
rt.Style.TextAlignHorz = prt.AlignHorzEnum.Right \'水平居右排列
doc.Body.Children.Add(rt) \'将文本对象加入到报表
doc.Preview() \'预览