vb listview分页显示,打印recordset

来源:互联网 发布:log4j2编程 编辑:程序博客网 时间:2024/06/04 20:28

'把执行SQL语句后得到的记录集逐条(含字段名)显示在LISTVIEW控件中
'----------------------------------------------------------------
Public Sub ListUpdate(ByRef rs As Recordset, ByRef lv As ListView)

    Dim head As ColumnHeader, Item As ListItem
    Dim i As Integer, j As Integer
    Dim lvWidth As Integer
    lvWidth = lv.Width
   
    '初始化LISTVIEW的某些属性
    lv.View = lvwReport
    lv.GridLines = True
    lv.FullRowSelect = True
   
    lv.ListItems.Clear
    lv.ColumnHeaders.Clear
   
    For i = 0 To rs.Fields.Count - 1
        Set head = lv.ColumnHeaders.Add
        head.Text = rs.Fields(i).Name
        head.Width = lvWidth / rs.Fields.Count
    Next
   
    For j = 1 To PERPAGE
        If rs.EOF Then Exit For
        Set Item = lv.ListItems.Add
        Item.Text = "" & rs.Fields(0).Value
            For i = 1 To rs.Fields.Count - 1
                Item.SubItems(i) = "" & rs.Fields(i).Value
            Next
        rs.MoveNext
       
    Next


End Sub

' 打印
Public Sub PrintRecordset(ByRef recRecordset As Recordset, ByVal strType As String)
    Dim LeftMargin As Integer
    Dim HeadTopPosition As Integer
    Dim FieldNum As Integer
    Dim PageCounter As Integer
    Dim MyRecordset As ADODB.Recordset
    Const FooterTopPosition = 24

    Set MyRecordset = recRecordset
    PageCounter = 1
    ' 设 置Printer 对 象 坐 标 的 度 量 单 位 为 厘 米
    Printer.ScaleMode = vbCentimeters
   
    LeftMargin = 1.5
    HeadTopPosition = 2

    ' 定 义 打 印 页 左 上 角 的X 坐 标 和Y 坐 标, 通 过 改 变ScaleLeft 和ScaleTop 的 值, 可 改 变 打 印 页 的 左 边 距 和 上 边 距
   
    Printer.ScaleLeft = -LeftMargin
    Printer.ScaleTop = -HeadTopPosition
   
    Printer.Font.Name = "Times New Roman"
    Printer.Font.Size = 12

    Printer.Print "音像店顾客管理系统"
    Printer.Print strType
    Printer.Print ""

    If MyRecordset.EOF And MyRecordset.BOF Then
        MsgBox "No Record At Presend!", vbCritical And vbOKOnly, "Print Error"
        Exit Sub
    End If
   
    MyRecordset.MoveFirst

    Do Until Printer.CurrentY > FooterTopPosition
   
        'Print the fields of the recordset in sequence
        For FieldNum = 0 To MyRecordset.Fields.Count - 1
            Printer.Print MyRecordset.Fields(FieldNum).Name & _
            ": " & _
            MyRecordset.Fields(FieldNum).Value
           
            If Printer.CurrentY > FooterTopPosition Then
                Printer.CurrentX = 8
                Printer.Print "Page: " & PageCounter
   
                ' 创 建 多 页 文 档
                Printer.NewPage
                PageCounter = PageCounter + 1
            End If
        Next FieldNum
   
        MyRecordset.MoveNext
        If MyRecordset.EOF Then Exit Do
        ' 在 记 录 之 间 空 一 行
        Printer.Print ""
    Loop
   
    'Print the Page number as a footer
    Printer.CurrentX = 8
    Printer.CurrentY = FooterTopPosition
    Printer.Print "Page: " & PageCounter
    ' 将 输 出 送 到 打 印 机
    Printer.EndDoc
End Sub 

原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 1岁半宝宝不吃饭光喝奶粉怎么办 一岁半宝宝光喝奶粉不吃饭怎么办 一岁半的宝宝光喝奶粉不吃饭怎么办 两岁半宝宝光喝奶粉不吃饭怎么办 宝宝9个月不好好吃饭奶粉怎么办 2岁半宝宝不愿意自己吃饭怎么办 一周岁多的宝宝不吃饭怎么办 一岁宝宝吃母乳不爱吃饭怎么办 三个月大的宝宝不肯喝奶粉怎么办 自己要上班婆婆带孩子看不惯怎么办 让农村婆婆来给我带孩子怎么办 吃的不好胃难受怎么办吃什么药 特别讨厌婆婆还需要她带小孩怎么办 一岁八个月宝宝不喜欢穿袜子怎么办 未来婆婆给我买衣服我不喜欢怎么办 孩子调皮被同学排斥不想上学怎么办 宝宝出生没人带怎么办自己要上班 孩子上幼儿园一年了还哭怎么办 6年级孩子会认字不会写怎么办 小孩写字没兴趣爱玩玩具怎么办 小学二年级语文记不住生字怎么办 2周半宝宝不肯马桶拉臭臭怎么办 娃晚上不肯睡早上不肯起怎么办 小学一年纪学生做作业粗心怎么办 考完试的题本偷撕了一页怎么办 犯错把父母惹的很生气该怎么办 一年级孩子做题粗心不认真怎么办 作弊被老师发现怎么办抄错了卷子 孩子最近老是被老师罚抄课文怎么办 孩子总是撒谎说作业作完了怎么办 孩子严重挑食怎么办一点菜也不吃 孩子在家很听话在学校很调皮怎么办 没通过交警车主全责不垫付怎么办 开车撞伤人交警说车主全责怎么办 面对喜欢上网又判逆的儿子怎么办 五年级了计算题老是出错怎么办 三年级的孩子老是计算题出错怎么办 写在表上的字写错了怎么办不能涂改 我的孩子做作业很马虎怎么办 幼儿园老师把学生名字写错怎么办 孩子的手写字磨了疙瘩怎么办