以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  专业报表纸张尺寸说明,建议加到帮助  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=19867)

--  作者:唐尸三摆手
--  发布时间:2012/5/23 18:14:00
--  专业报表纸张尺寸说明,建议加到帮助
帮助中的纸张类型有很多人看不懂,找到些资料供参考,建议增加到帮助中
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:纸张规格说明.foxdb

[此贴子已经被作者于2012-5-23 18:19:04编辑过]

--  作者:狐狸爸爸
--  发布时间:2012/5/23 18:20:00
--  

呵呵,多谢了。


--  作者:唐尸三摆手
--  发布时间:2012/5/23 18:26:00
--  

老大,你在啊,顺便问下,有没有用三联无碳复写纸打印专业报表的用户呢?

这种纸的规格是241.3*279.4,

咱用的是专业报表设置代码如下

Doc.PageSetting.Width = 241.3
Doc.PageSetting.Height= 279.4

不知为何,客户总是反映有几列无法打印出来,由于没有对应的打印机,无法测试。


--  作者:程兴刚
--  发布时间:2012/5/23 19:05:00
--  
纸张边距的问题,让他调整打印机的边距
--  作者:程兴刚
--  发布时间:2012/5/23 19:12:00
--  

这是我填写【成文厚】记账凭证的代码,仅供参考!

 

Dim doc As New PrintDoc() \'定义一个报表
\'doc.PageSetting.Width = 210 \'纸张宽度为210毫米
\'doc.PageSetting.Height = 120 \'纸张高度为120毫米
\'doc.AutoRotate = False \'禁止自动旋转打印内容
\'doc.PageSetting.Landscape = True \'横向打印
Doc.PageSetting.LeftMargin = 15 \'设置左边距
Doc.PageSetting.RightMargin = 15 \'设置右边距
Doc.PageSetting.TopMargin = 0 \'设置上边距
Doc.PageSetting.BottomMargin = 0 \'设置下边距

Dim rt As prt.RenderText \'定义一个文本对象
rt = New prt.RenderText() \'创建文本对象
rt.Text = Tables("记帐凭证").Current("凭证号").SubString(0,4) \'设置文本对象的内容
rt.Style.TextAlignHorz = prt.AlignHorzEnum.Center \'内容水平居中
rt.Style.TextAlignVert = prt.AlignVertEnum.Center \'内容垂直居中
rt.Width = 10 \'自动设置宽度
rt.x = "70mm"
rt.y = "32.5mm"
doc.Body.Children.Add(rt) \'将文本对象加入到报表
rt = New prt.RenderText() \'创建文本对象
rt.Text = Tables("记帐凭证").Current("凭证号").SubString(4,2) \'设置文本对象的内容
rt.Style.TextAlignHorz = prt.AlignHorzEnum.Center \'内容水平居中
rt.Style.TextAlignVert = prt.AlignVertEnum.Center \'内容垂直居中
rt.Width = 10 \'自动设置宽度
rt.x = "90mm"
rt.y = "32.5mm"
doc.Body.Children.Add(rt) \'将文本对象加入到报表
rt = New prt.RenderText() \'创建文本对象
rt.Text = format(Date.DaysInMonth(Val(Tables("记帐凭证").Current("凭证号").SubString(0,4)),(Tables("记帐凭证").Current("凭证号").SubString(4,2))),"00") \'设置文本对象的内容
rt.Style.TextAlignHorz = prt.AlignHorzEnum.Center \'内容水平居中
rt.Style.TextAlignVert = prt.AlignVertEnum.Center \'内容垂直居中
rt.Width = 10 \'自动设置宽度
rt.x = "107mm"
rt.y = "32.5mm"
doc.Body.Children.Add(rt) \'将文本对象加入到报表
rt = New prt.RenderText() \'创建文本对象
rt.Text = Tables("记帐凭证").Current("凭证号").SubString(7,7) \'设置文本对象的内容
rt.Style.TextAlignHorz = prt.AlignHorzEnum.Center \'内容水平居中
rt.Style.TextAlignVert = prt.AlignVertEnum.Center \'内容垂直居中
rt.Width = "19mm" \'自动设置宽度
rt.x = "160mm"
rt.y = 32.5
doc.Body.Children.Add(rt) \'将文本对象加入到报表
Dim drs As List(Of DataRow)
drs = DataTables("成本明细帐").Select("[项目名称] = \'" &  Tables("记帐凭证").Current("项目名称") & "\' And [凭证号]= \'" & Tables("记帐凭证").Current("凭证号") & "\'")
For i As Byte = 1 To 6
    rt = New prt.RenderText() \'创建文本对象
    rt.Style.Padding.left = 1 \'上边距25毫米
    If i = 6
        rt.Style.TextAlignHorz = prt.AlignHorzEnum.Center \'内容水平靠左
        rt.Style.Font = New Font("宋体", 10, FontStyle.Bold) \'设置字体
        rt.Text = "本凭证合计"
    Else
        rt.Style.TextAlignHorz = prt.AlignHorzEnum.left \'内容水平靠左
        If i> drs.Count
            rt.Text = "--"
        Else
            rt.Text = drs(i-1)("摘要") \'设置文本对象的内容
        End If
    End If
    rt.Style.TextAlignVert = prt.AlignVertEnum.Center \'内容垂直居中
    rt.Width = "42mm" \'自动设置宽度
    rt.Height = "7.2mm"
    rt.x = "7mm"
    rt.y = (i*7.8+47) & "mm"
    doc.Body.Children.Add(rt) \'将文本对象加入到报表
    rt = New prt.RenderText() \'创建文本对象
    rt.Style.Padding.left = 1 \'上边距25毫米
    If i = 6
        rt.Text = ""
    Else
        If i> drs.Count
            rt.Text = "--"
        Else
            rt.Text = drs(i-1)("科目") \'设置文本对象的内容
        End If
    End If
    rt.Style.TextAlignHorz = prt.AlignHorzEnum.Center \'内容水平居中
    rt.Style.TextAlignVert = prt.AlignVertEnum.Center \'内容垂直居中
    rt.Width = "28mm" \'自动设置宽度
    rt.Height = "7.2mm"
    rt.x = "50mm"
    rt.y = (i*7.8+47) & "mm"
    doc.Body.Children.Add(rt) \'将文本对象加入到报表
    rt = New prt.RenderText() \'创建文本对象
    rt.Style.Padding.left = 1 \'上边距25毫米
    If i = 6
        rt.Text = ""
    Else
        If i> drs.Count
            rt.Text = "--"
        Else
            rt.Text = drs(i-1)("费用类别") \'设置文本对象的内容
        End If
    End If
    rt.Style.TextAlignHorz = prt.AlignHorzEnum.Center \'内容水平居中
    rt.Style.TextAlignVert = prt.AlignVertEnum.Center \'内容垂直居中
    rt.Width = "28mm" \'自动设置宽度
    rt.Height = "7.2mm"
    rt.x = "80mm"
    rt.y = (i*7.8+47) & "mm"
    doc.Body.Children.Add(rt) \'将文本对象加入到报表
   
    rt = New prt.RenderText() \'创建文本对象
    rt.Style.Padding.left = 1 \'上边距25毫米
    If i = 6
        rt.Text = ""
    Else
        If i> drs.Count
            rt.Text = "--"
        Else
            If drs(i-1)("审核标记") = True
                rt.Text = "√" \'设置文本对象的内容
                If drs(i-1)("科目") = "应付款"
                    rt.x = "137mm"
                Else
                    rt.x = "97.7mm"
                End If
            Else
                rt.Text = "" \'设置文本对象的内容
            End If
        End If
    End If
    rt.Style.TextAlignHorz = prt.AlignHorzEnum.Center \'内容水平居中
    rt.Style.TextAlignVert = prt.AlignVertEnum.Center \'内容垂直居中
    rt.Width = "28mm" \'自动设置宽度
    rt.Height = "7.2mm"
    rt.y = (i*7.8+47) & "mm"
    doc.Body.Children.Add(rt) \'将文本对象加入到报表
    If i < 6
        For A As Byte = 1 To 10
           
            rt = New prt.RenderText() \'创建文本对象
            rt.Style.Padding.left = 1 \'上边距25毫米
            If i> drs.Count
                rt.Text = "-"
            Else
                rt.Text = GetDigit(drs(i-1)("金额"),A-3,"¥") \'设置文本对象的内容
                If drs(i-1)("科目") = "应付款"
                    rt.x = (175+A*-3.29) & "mm"
                Else
                    rt.x = (135.8+A*-3.29) & "mm"
                End If
            End If
            rt.Style.TextAlignHorz = prt.AlignHorzEnum.Center \'内容水平居中
            rt.Style.TextAlignVert = prt.AlignVertEnum.Center \'内容垂直居中
            rt.Width = "28mm" \'自动设置宽度
            rt.Height = "7.2mm"
            rt.y = (i*7.8+47) & "mm"
            doc.Body.Children.Add(rt) \'将文本对象加入到报
        Next
    End If
    IF i = 6
        Dim Multi As String = "已付款|应付款"
        Dim Values() As String
        Values = Multi.split("|")
        For Index As Integer = 0 To Values.Length - 1
            For A As Byte = 1 To 10
                rt = New prt.RenderText() \'创建文本对象
                rt.Style.Padding.left = 1 \'上边距25毫米
                rt.Text = GetDigit(DataTables("成本明细帐").Compute("Sum(金额)", "项目名称 = \'" &  Tables("记帐凭证").Current("项目名称") & "\' And 科目 = \'" & Values(Index) & "\' And 凭证号 = \'" & Tables("记帐凭证").Current("凭证号") & "\'"),A-3,"¥")
                If Values(Index) = "已付款"
                    rt.x = (135.8+A*-3.29) & "mm"
                Else
                    rt.x = (175+A*-3.29) & "mm"
                End If
                rt.Style.TextAlignHorz = prt.AlignHorzEnum.Center \'内容水平居中
                rt.Style.TextAlignVert = prt.AlignVertEnum.Center \'内容垂直居中
                rt.Width = "28mm" \'自动设置宽度
                rt.Height = "7.2mm"
                rt.y = (i*7.8+47) & "mm"
                doc.Body.Children.Add(rt) \'将文本对象加入到报
            Next
        Next
    End If
Next
rt = New prt.RenderText() \'创建文本对象
rt.Text = Tables("成本明细帐").Compute("Max(单据编号)", "项目名称 = \'" &  Tables("记帐凭证").Current("项目名称") & "\' And 凭证号 = \'" & Tables("记帐凭证").Current("凭证号") & "\'")
rt.Style.TextAlignHorz = prt.AlignHorzEnum.Center \'内容水平居中
rt.Style.TextAlignVert = prt.AlignVertEnum.Center \'内容垂直居中
rt.Width = "6mm" \'自动设置宽度
rt.x = "189mm"
rt.y = "76mm"
doc.Body.Children.Add(rt) \'将文本对象加入到报表
Doc.Preview() \'预览报表
\'doc.Print() \'打印报表


--  作者:程兴刚
--  发布时间:2012/5/23 19:35:00
--  

贺老师,今天居然发现上次有个帖子提出的问题,金额前面出现小框框,可是过去没有,10年我都用打印机填报了好一部分记账凭证,那时候没有这个问题,当看见那个帖子的时候我还不行相信呢,请改进:

 

 


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