PRINTDOCUMENT COMO IMPRIMIR DADOS DE UM LIST(OF)

 Tópico anterior Próximo tópico Novo tópico

PRINTDOCUMENT COMO IMPRIMIR DADOS DE UM LIST(OF)

VB.NET

 Compartilhe  Compartilhe  Compartilhe
#484379 - 06/09/2018 08:32:23

MRSILVA
MARINGA
Cadast. em:Julho/2015


Obrigado FOXMAN!

No caso de formulários com campos fixos eu entendi o funcionamento, mas no caso de uma lista como no caso do seu primeiro exemplo onde não temos certeza de quantas linhas serão apresentadas no relatório, tenho que gerar as tags do HTML via código (dinamicamente) e depois juntar com as partes fixas? Caso sim não teria um arquivo resource da parte dinamica?

Desculpe caso a pergunta não tenha sentido, não tenho muita familiaridade com códigos HTML no momento.

Desde já agradeço sua ajuda.



#484390 - 07/09/2018 21:10:49

FOXMAN
BARRETOS
Cadast. em:Janeiro/2001


Membro da equipe

Última edição em 07/09/2018 21:14:52 por FOXMAN

Citação:
:
Obrigado FOXMAN!

No caso de formulários com campos fixos eu entendi o funcionamento, mas no caso de uma lista como no caso do seu primeiro exemplo onde não temos certeza de quantas linhas serão apresentadas no relatório, tenho que gerar as tags do HTML via código (dinamicamente) e depois juntar com as partes fixas? Caso sim não teria um arquivo resource da parte dinamica?

Desculpe caso a pergunta não tenha sentido, não tenho muita familiaridade com códigos HTML no momento.

Desde já agradeço sua ajuda.

Os exemplos base, ficam no resources.
Percorrendo a lista, deve concatenar uma string com os dados.
Um exemplo de como faço todo o processo está logo abaixo.
É meio fora dos padrões atuais de programação, mas quando o fiz me ajudou muito.

  Private Sub btnGerarOrdem_Click(sender As System.Object, e As System.EventArgs) Handles btnGerarOrdem.Click
        Try
            Dim LOOPPRODUTO As String = String.Empty
            Dim Faturamento As RadioButton = pnlFaturamento.Controls.OfType(Of RadioButton)().Where(Function(r) r.Checked = True).FirstOrDefault
           Dim stringhtml As String = My.Resources.htmOrdemSeparacao.ToString()
            stringhtml = stringhtml.Replace("_DESTINATARIO", lblDestinatario.Text.ToUpper())
            stringhtml = stringhtml.Replace("_VOLUMES", txtVolumes.Text)
            stringhtml = stringhtml.Replace("_PESO", txtPeso.Text)
            stringhtml = stringhtml.Replace("_TRANSPORTADORA", txtTransportadora.Text.ToUpper())
            stringhtml = stringhtml.Replace("_FRETE", txtFrete.Text)
            stringhtml = stringhtml.Replace("_PRAZO", txtPrazo.Text)
            stringhtml = stringhtml.Replace("_CFOP", txtCFOP.Text)
            stringhtml = stringhtml.Replace("_FATURAMENTO", Faturamento.Text)

            For I = 0 To lstProdutos.Items.Count - 1

                Dim LINHAPRODUTO As String = "<TR><TD width=|91| height=|25| class=|prod|>_CODIGO</TD><TD width=|333| class=|prod|>_DESCRICAO</TD><TD width=|61| class=|prod|>_QTDE</TD><TD width=|115| class=|prod|>_UNITARIO</TD><TD width=|104| class=|prod|>_TOTAL</TD><TD width=|152| class=|prod|>_LOTE</TD></TR>"
                Dim unitario As Double = CDbl(lstProdutos.Items(I).SubItems(3).Text.Replace(".", ","))
                Dim qtde As Double = CDbl(lstProdutos.Items(I).SubItems(2).Text)
                Dim lote As String = lstProdutos.Items(I).SubItems(4).Text

                If lote.Trim.Length = 0 Then
                    lote = "-"
                End If

                LINHAPRODUTO = LINHAPRODUTO.Replace("_CODIGO", lstProdutos.Items(I).Text)
                LINHAPRODUTO = LINHAPRODUTO.Replace("_DESCRICAO", lstProdutos.Items(I).SubItems(1).Text)
                LINHAPRODUTO = LINHAPRODUTO.Replace("_QTDE", lstProdutos.Items(I).SubItems(2).Text)
                LINHAPRODUTO = LINHAPRODUTO.Replace("_UNITARIO", lstProdutos.Items(I).SubItems(3).Text)
                LINHAPRODUTO = LINHAPRODUTO.Replace("_TOTAL", FormatCurrency(unitario * qtde, 2))
                LINHAPRODUTO = LINHAPRODUTO.Replace("_LOTE", lote)
                LINHAPRODUTO = LINHAPRODUTO.Replace("|", Chr(34))
                LOOPPRODUTO = LOOPPRODUTO & LINHAPRODUTO
            Next

            Dim Imprimir As String = String.Empty
            stringhtml = stringhtml.Replace("_LOOPPRODUTO", LOOPPRODUTO)
            stringhtml = stringhtml.Replace("_IMPRIMIR", Imprimir)
            stringhtml = stringhtml.Replace("|", Chr(34))

            Dim frm As New frmWebBrowser
            frm.WindowState = FormWindowState.Maximized
            frm.webbrowser.DocumentText = stringhtml
            frm.ShowDialog()

            'cnfGeral.GerarHtml(stringhtml)


        Catch ex As Exception
          TrataErro(ex)
        End Try
    End Sub





Grupo DotNet.Br no FaceBook



#484411 - 10/09/2018 08:26:19

ANGELOATA
ARACATUBA
Cadast. em:Junho/2009


E como vc define a questão de cabelho e rodape no html?



#484444 - 11/09/2018 15:12:26

FOXMAN
BARRETOS
Cadast. em:Janeiro/2001


Membro da equipe
Citação:
:
E como vc define a questão de cabelho e rodape no html?

No meu caso eu utilizo o próprio gerenciador de impressão para não imprimir o cabeçalho e rodapé.

Mas acredito ser possível remove-los via programação.




Grupo DotNet.Br no FaceBook



 Tópico anterior Próximo tópico Novo tópico


Para responder este tópico o login é requerido
Se você já possui uma conta de usuário por favor faça seu login
Se você não possui uma conta de usuário use a opção Criar usuário