REPORTVIEWER COM FIREBIRD
Bom minha dúvida seria a seguinte: quero imprimir dados de uma venda em uma folha A4. Estou utilizando o ReportViewer e como SGBD o Firebird. Na verdade, como o source do ReportViewer está sendo alimentado via programação, estou me enrolando na hora de exibir os dados da consulta. Vou postar o código aqui:
Citação:
Private Sub frmPrintVenda_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim empresa As New ReportParameter([Ô]empresa[Ô], empresaConfig)
Dim endereco As New ReportParameter([Ô]endereco[Ô], enderecoConfig)
Dim cnpj As New ReportParameter([Ô]cnpj[Ô], cnpjConfig)
Dim totalItens As New ReportParameter([Ô]totalItens[Ô], frmPdv.lstItens.Items.Count)
rvItensVenda.LocalReport.SetParameters(empresa)
rvItensVenda.LocalReport.SetParameters(endereco)
rvItensVenda.LocalReport.SetParameters(cnpj)
rvItensVenda.LocalReport.SetParameters(totalItens)
[ô] Criando DataSet para acesso
Dim sqlItens As String = [Ô]SELECT * FROM vendas_itens[Ô]
Dim ds As New DataSet
Dim dt As New DataTable
Dim da As New FbDataAdapter(sqlItens, conexao)
da.Fill(dt)
Dim tabelItens As ReportDataSource = New ReportDataSource([Ô]itens[Ô], dt)
rvItensVenda.LocalReport.DataSources.Add(tabelItens)
Me.rvItensVenda.RefreshReport()
O que acontece é que simplesmente não acontece. Ou seja, não é exibido nada no ReportViewer.
Bom, se faltar mais alguma informação, peçam que vou passar. Se alguém puder me ajudar serei grato!
Citação::
Olá pessoal, fico feliz por participar deste fórum do VB Mania o qual tem sido para mim referência de estudos e tem me ajudado muito.
Bom minha dúvida seria a seguinte: quero imprimir dados de uma venda em uma folha A4. Estou utilizando o ReportViewer e como SGBD o Firebird. Na verdade, como o source do ReportViewer está sendo alimentado via programação, estou me enrolando na hora de exibir os dados da consulta. Vou postar o código aqui:
Private Sub frmPrintVenda_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim empresa As New ReportParameter([Ô]empresa[Ô], empresaConfig)
Dim endereco As New ReportParameter([Ô]endereco[Ô], enderecoConfig)
Dim cnpj As New ReportParameter([Ô]cnpj[Ô], cnpjConfig)
Dim totalItens As New ReportParameter([Ô]totalItens[Ô], frmPdv.lstItens.Items.Count)
rvItensVenda.LocalReport.SetParameters(empresa)
rvItensVenda.LocalReport.SetParameters(endereco)
rvItensVenda.LocalReport.SetParameters(cnpj)
rvItensVenda.LocalReport.SetParameters(totalItens)
[ô] Criando DataSet para acesso
Dim sqlItens As String = [Ô]SELECT * FROM vendas_itens[Ô]
Dim ds As New DataSet
Dim dt As New DataTable
Dim da As New FbDataAdapter(sqlItens, conexao)
da.Fill(dt)
Dim tabelItens As ReportDataSource = New ReportDataSource([Ô]itens[Ô], dt)
rvItensVenda.LocalReport.DataSources.Add(tabelItens)
Me.rvItensVenda.RefreshReport()
O que acontece é que simplesmente não acontece. Ou seja, não é exibido nada no ReportViewer.
Bom, se faltar mais alguma informação, peçam que vou passar. Se alguém puder me ajudar serei grato!
olá estou na msm situacao, vc conseguiu uma solucao?
Posso apresentar outra solução que gostei demais. Simplesmente utilizando o controle WebBrowser.
webBrowser1.DocumentText =
[Ô]<html><body>Please enter your name:<br/>[Ô] +
[Ô]<input type=[ô]text[ô] name=[ô]userName[ô]/><br/>[Ô] +
[Ô]<a href=[ô]http://www.microsoft.com[ô]>continue</a>[Ô] +
[Ô]</body></html>[Ô];
Com isso vocês podem gerar impressões profissionais, e com o estilo que quiser utilizando CSS inline.
using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using ztm.Modulos;
namespace ztm.Report
{
class rep_Log
{
public string logs(string SQL)
{
string _return =
[Ô]<html>[Ô] +
[Ô]<header>[Ô]+
[Ô]<script type=[ô]text/javascript[ô]>[Ô]+
[Ô]window.onload=function(){[Ô]+
[Ô]var tfrow = document.getElementById([ô]tfhover[ô]).rows.length;[Ô]+
[Ô]var tbRow=[];[Ô]+
[Ô]for (var i=1;i<tfrow;i++) {[Ô]+
[Ô]tbRow[i]=document.getElementById([ô]tfhover[ô]).rows[i];[Ô]+
[Ô]tbRow[i].onmouseover = function(){[Ô]+
[Ô]this.style.backgroundColor = [ô]#cdcdcd[ô];[Ô] +
[Ô]};[Ô]+
[Ô]tbRow[i].onmouseout = function() {[Ô]+
[Ô]this.style.backgroundColor = [ô]#F8F8FF[ô];[Ô] +
[Ô]};[Ô]+
[Ô]}[Ô]+
[Ô]};[Ô]+
[Ô]</script>[Ô]+
[Ô]<style type=[ô]text/css[ô]>[Ô]+
[Ô]body{font-family: arial, verdana, sans-serif;}[Ô]+
[Ô]table.tftable {font-size:12px;color:#333333;width:100%;border-width: 1px;border-color: #a9a9a9;border-collapse: collapse;}[Ô]+
[Ô]table.tftable th {font-size:12px;background-color:#F8F8FF;border-width: 1px;padding: 8px;border-style: solid;border-color: #a9a9a9;text-align:left;}[Ô] +
[Ô]table.tftable tr {background-color:#F8F8FF;}[Ô] +
[Ô]table.tftable td {font-size:10px;border-width: 1px;padding: 8px;border-style: solid;border-color: #a9a9a9;}[Ô]+
[Ô]</style>[Ô]+
[Ô]</header>[Ô]+
[Ô]<body>[Ô] +
[Ô]<h2 align = [ô]center[ô]>Relatório de Logs</h2>[Ô] +
[Ô]<table width = [ô]90%[ô] align = [ô]center[ô] id = [ô]tfhover[ô] class = [ô]tftable[ô] border = [ô]1[ô]>[Ô] +
[Ô]<tr style = [ô]background: #696969; color: white;[ô]>[Ô] +
[Ô]<td width = [ô]30%[ô]><b>Usuário</b></td>[Ô] +
[Ô]<td width = [ô]10%[ô] align = [ô]center[ô]><b>Máquina</b></td>[Ô] +
[Ô]<td width = [ô]10%[ô] align = [ô]center[ô]><b>Data</b></td>[Ô] +
[Ô]<td width = [ô]10%[ô] align = [ô]center[ô]><b>Hora</b></td>[Ô] +
[Ô]<td width = [ô]20%[ô] align = [ô]center[ô]><b>Operação</b></td>[Ô] +
[Ô]<td width = [ô]10%[ô] align = [ô]center[ô]><b>Tabela</b></td>[Ô] +
[Ô]<td width = [ô]10%[ô] align = [ô]center[ô]><b>Registro</b></td>[Ô] +
[Ô]</tr>[Ô];
DataTable dados = Conexao.Pesquisar(SQL);
for (int i = 0; i < dados.Rows.Count; i++)
{
_return += [Ô]<tr>[Ô] +
[Ô]<td width = [ô]30%[ô]>[Ô]+dados.Rows[i][[Ô]tb_usuarios_usu_codigo[Ô]].ToString()+[Ô] - [Ô]+dados.Rows[i][[Ô]usu_nome[Ô]].ToString()+[Ô]</td>[Ô] +
[Ô]<td width = [ô]10%[ô]>[Ô] + dados.Rows[i][[Ô]log_mac[Ô]].ToString() + [Ô]</td>[Ô] +
[Ô]<td width = [ô]10%[ô]>[Ô] + Convert.ToDateTime(dados.Rows[i][[Ô]log_data[Ô]].ToString()).ToShortDateString() + [Ô]</td>[Ô] +
[Ô]<td width = [ô]10%[ô]>[Ô] + dados.Rows[i][[Ô]log_hora[Ô]].ToString() + [Ô]</td>[Ô] +
[Ô]<td width = [ô]20%[ô]>[Ô] + dados.Rows[i][[Ô]log_operacao[Ô]].ToString() + [Ô]</td>[Ô] +
[Ô]<td width = [ô]10%[ô]>[Ô] + dados.Rows[i][[Ô]log_tabela[Ô]].ToString() + [Ô]</td>[Ô] +
[Ô]<td width = [ô]10%[ô] align = [ô]center[ô]>[Ô] + dados.Rows[i][[Ô]log_registro[Ô]].ToString() + [Ô]</td>[Ô] +
[Ô]</tr>[Ô];
}
_return += [Ô]</table>[Ô]+
[Ô]</body>[Ô]+
[Ô]</html>[Ô];
return _return;
}
}
}