【问题标题】:I want to print listview record from my database我想从我的数据库中打印 listview 记录
【发布时间】:2021-11-27 11:32:37
【问题描述】:

这是我的数据库列表视图代码

 Sub fillsview()
    Try
        ListView1.Items.Clear()
        'Safe in SQL iNJECT'
        objcmd = New MySql.Data.MySqlClient.MySqlCommand("SELECT * FROM tbl_pcperipherals", objconn)
        'Unsafe Vulnerable in SQL INJECT'
        'strsql = "SELECT * FROM tbl_pcperipherals"'
        'objcmd = New MySql.Data.MySqlClient.MySqlCommand(strsql, objconn)'
        objdr = objcmd.ExecuteReader
        While (objdr.Read)
            With ListView1.Items.Add(objdr("ProductID"))
                .SubItems.add(objdr("ProductName"))
                .subitems.add(objdr("ProductBrand"))
                .subitems.add(objdr("ProductCategory"))
                .subitems.add(objdr("ProductQuantity"))
                .subitems.add(objdr("ProductDescription"))
                .subitems.add(objdr("ProductManufacturer"))
                .subitems.add(objdr("Stock"))
                .subitems.add(objdr("Supplier"))
                .subitems.add(objdr("ContactNo"))
            End With
        End While
        objcmd.Dispose()
        objdr.Close()
    Catch ex As Exception
        MsgBox(ex.Message)
        Me.fillsview()
    End Try
End Sub

这是我的打印按钮代码

   Private Sub btnprint_Click(sender As Object, e As EventArgs) Handles btnprint.Click
    PrintPreviewDialog1.Document = PrintDocument1
    PrintPreviewDialog1.ShowDialog()
    With PrintDocument1
        .PrinterSettings.DefaultPageSettings.Landscape = False
        .Print()
    End With
End Sub

这是我的打印页面代码

    Private Sub PrintDocument1_PrintPage(sender As Object, e As Printing.PrintPageEventArgs) Handles PrintDocument1.PrintPage
    Dim H As Integer = 0
    H = 50
    e.Graphics.DrawString("PRINT", New Drawing.Font("Times New Roman", 10), Brushes.Black, 50, H)
    For Each Itm As ListViewItem In ListView1.Items
        e.Graphics.DrawString(Itm.Text, New Drawing.Font("Times New Roman", 10), Brushes.Black, 50, H)
        e.Graphics.DrawString(Itm.SubItems(0).Text, New Drawing.Font("Times New Roman", 10), Brushes.Black, 150, H)
        e.Graphics.DrawString(Itm.SubItems(1).Text, New Drawing.Font("Times New Roman", 10), Brushes.Black, 150, H)
        e.Graphics.DrawString(Itm.SubItems(2).Text, New Drawing.Font("Times New Roman", 10), Brushes.Black, 150, H)
        e.Graphics.DrawString(Itm.SubItems(3).Text, New Drawing.Font("Times New Roman", 10), Brushes.Black, 150, H)
        e.Graphics.DrawString(Itm.SubItems(4).Text, New Drawing.Font("Times New Roman", 10), Brushes.Black, 150, H)
        e.Graphics.DrawString(Itm.SubItems(5).Text, New Drawing.Font("Times New Roman", 10), Brushes.Black, 150, H)
        e.Graphics.DrawString(Itm.SubItems(6).Text, New Drawing.Font("Times New Roman", 10), Brushes.Black, 150, H)
        e.Graphics.DrawString(Itm.SubItems(7).Text, New Drawing.Font("Times New Roman", 10), Brushes.Black, 150, H)
        e.Graphics.DrawString(Itm.SubItems(8).Text, New Drawing.Font("Times New Roman", 10), Brushes.Black, 150, H)
        e.Graphics.DrawString(Itm.SubItems(9).Text, New Drawing.Font("Times New Roman", 10), Brushes.Black, 150, H)
        H += 20
    Next
End Sub

当我点击并且打印预览显示所有文本时的问题是在同一个地方我希望你能帮我解决这个问题。

this is the picture please click it to see the error

【问题讨论】:

  • 所以我需要更改其他 150 个以不具有相同的位置?
  • 对不起,不,如果您希望输出在不同的行上,则需要在每个 Drawstring 处更改 H

标签: vb.net listview printing


【解决方案1】:

这样做,例如:

Private Sub PrintDocument1_PrintPage(sender As Object, e As Printing.PrintPageEventArgs) Handles PrintDocument1.PrintPage
    Dim y = 50
    Dim f as New Drawing.Font("Times New Roman", 10)

    e.Graphics.DrawString("PRINT", f, Brushes.Black, 50, h)

    y += 10

    For Each Itm As ListViewItem In ListView1.Items

        Dim x = 100

        e.Graphics.DrawString(Itm.Text, f, Brushes.Black, x, y)

        For i = 0 to 9
            x += 50
            e.Graphics.DrawString(Itm.SubItems(i).Text, f, Brushes.Black, x, y)
        Next i
        
        y += 20
    Next
End Sub

【讨论】:

    猜你喜欢
    • 2019-02-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-07-26
    • 2021-03-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多