Jump to content
Sign in to follow this  
dipacheco

É possivel personalizar report??

Recommended Posts

dipacheco

Boas pessoal.. tudo bem? Preciso de personalizar um report... fazer um report ordenadinho, com as coisas sempre no sítio correcto e uniforme de report em report... é possivel criar um "modelo" e usar sempre esse modelo??

Share this post


Link to post
Share on other sites
Caça

Podes, isto é, o cabeçalho e o rodapé sempre iguais, porque o resto varia..


Pedro Martins

Não respondo a duvidas por PM

Share this post


Link to post
Share on other sites
dipacheco

isso é mau... queria personalizar mais algumas coisas... claro q os dados variam mas por exemplo cabeçalhos de "tabelas" e afins... queria que fosse quase sempre igual!

Share this post


Link to post
Share on other sites
Caça

Tens de desenhar um report como queres mas não podes chegar a definir um datasource(poder podes, mas depois tens de apagar), ou seja, para alem do cabeçalho e do rodapé, também podes desenhar o corpo..

Quando fores a utiliza-lo defines o datasource e atribuis os dados aos respectivos controlos


Pedro Martins

Não respondo a duvidas por PM

Share this post


Link to post
Share on other sites
dipacheco

é que normalmente o report nao fica como "parece" por assim dizer... lol dps tem smp a influencia do tamanho dos campos que vêm da BD e etc... e fica sempre mais estranho do que o que se pretende... vamos la ver no que dá.

Share this post


Link to post
Share on other sites
Caça

Consumas desenhar o report pelo wizard?


Pedro Martins

Não respondo a duvidas por PM

Share this post


Link to post
Share on other sites
dipacheco

nao... faço um report normal...

uso sempre o método que tu me deste a dica (penso que foste tu)... mas hoje estou a deparar-me com um problema...

criei um dataset com 3 datatables... mas qnd uso uma tabela no report ele pede qual a data q quero usar... qnd coloco uma segunda tabela nao consigo mudar a datatable d onde vêm os dados...

Share this post


Link to post
Share on other sites
Caça

E estás a carregar os três DataTables?


Pedro Martins

Não respondo a duvidas por PM

Share this post


Link to post
Share on other sites
dipacheco

imagino... estou no report... carrego no icone pra fazer uma tabela... e ele pergunta de onde vêm os meus dados

eu digo q é do dataset1 ... e depois tnh d escolher uma datatable... e escolho a 1 porque é a q m interessa...

no entanto, depois tnh d criar outra tabela q iria precisar da datatable 2... mas aí ele ja n pergunta, pelo contrario, faz uso da 1 q foi a q selecionei anteriormente...

Share this post


Link to post
Share on other sites
dipacheco

Para teres uma ideia do que estou a fazer...

Faço isto num formulário em que tenho o botão para criar algo...

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        doc.Clear()
        doclinha.Clear()
        doci.Clear()
        connect = New SqlConnection("Data Source=PACHECO-PC\SQLEXPRESS;Initial Catalog=Teste;Integrated Security=True;")
        connect.Open()
        Dim command As New SqlClient.SqlDataAdapter("SELECT Numero,Datadia,Datames,Dataano,Nome1,Nome2,Morada1,Morada2,Codigopostal, FROM Tabela1 WHERE Numero='1'", connect)
        command.Fill(doc)
        command = New SqlClient.SqlDataAdapter("SELECT Produto,Designacao,Quantidade FROM Tabela2 WHERE Numero='1'", connect)
        command.Fill(doclinha)
        command = New SqlClient.SqlDataAdapter("SELECT Taxa,ValorA,ValorB FROM Tabela3 WHERE Numero='1'", connect)
        command.Fill(doci)
        Relatorio.Show()
        connect.Close()
    End Sub

Depois faria isto num formulário onde tenho o report viewer...

Public Property dadosdocs As DataTable
    Public Property dadosdocslinhas As DataTable
    Public Property dadosdocsi As DataTable

    Private Sub Relatorio_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Me.CenterToScreen()
        ReportViewer1.SetDisplayMode(Microsoft.Reporting.WinForms.DisplayMode.PrintLayout)
        For Each dr As DataRow In dadosdocs.Rows
            DataSet1.DataTable1.Rows.Add(dr(0), dr(1), dr(2), dr(3), dr(4))
        Next
        Me.ReportViewer1.RefreshReport()
    End Sub

Obviamente que a 2ª parte não está ainda a fazer nada porque ainda nem sequer referenciei o report viewer para o Report q estou a criar...

Depois disto criei a dataset1 e criei 3 datatables... no primeiro coloco os dados referentes à data table docs, no 2º ao datatable docslinhas e no 3º o referente ao datatable docsi.

Depois faço um report e adiciono uma tabela, ao adicionar ele pede-me onde vai buscar os dados... eu coloco para a priemira tabela, ou seja, ao datatable1! Msa quando faço o 2º ele nao deixa colocar um diferente e fico apenas com os campos referentes ao datatable 1!!

Share this post


Link to post
Share on other sites
Caça

Só estas a inserir os dados no datatable1 faltam os outros


Pedro Martins

Não respondo a duvidas por PM

Share this post


Link to post
Share on other sites
dipacheco

oh caça... eu passei-te o codigo so para teres uma ideia do q estou a fazer. lol nao foi pra ligares ao codigo pq eu nem o esotu a executar ainda!

mas estou a ver q isto vai ser nó e dos grandes!

será q n é possivel eu criar uma folha no word conforme eu queria e dizer que o campo X vai para o certo sitio nessa folha... etc!

Share this post


Link to post
Share on other sites
Caça

Podes ter vários DataSets/DataTables no mesmo report... Não estou a ver qual é a tua dificuldade


Pedro Martins

Não respondo a duvidas por PM

Share this post


Link to post
Share on other sites
dipacheco

Experimenta por exemplo criar um report normal.. adicionar um tabela.. ele pergunta logo de onde vêm os dados... aparece-me o dataset1 (ótimo) e aparecem os 3 datatables mas so m permite escolher um... e partir daí nunca mais me pergunta nada e usa sempre esse datatable!

Share this post


Link to post
Share on other sites
Caça

Na toolbox, em cima, tem lá um botão "New". Clicas e escolhes "New DataSet"


Pedro Martins

Não respondo a duvidas por PM

Share this post


Link to post
Share on other sites
dipacheco

mas ha maneira d eu criar um documento no word como eu quiser e enviar pra la os dados?

Share this post


Link to post
Share on other sites
Caça

Claro, podes fazer por Early Binding ou por Late Binding.

Escolhe a tua opção


Pedro Martins

Não respondo a duvidas por PM

Share this post


Link to post
Share on other sites
Caça

Early Binding - é mais rápido porque o código já está compilado, no entanto tens de levar contigo a dll do word

Late Binding - é mais lento porque o código é compilado durante a execução, a vantagem é que não tens de levar nenhuma dll contigo


Pedro Martins

Não respondo a duvidas por PM

Share this post


Link to post
Share on other sites
dipacheco

nao posso fazer d uma maneira nem de outra... porque o q quero fazer nao pode ser editado, logo word está fora de questao. terão mesmo que ser os reports... q raiva! :)

entao... tem 3 selects distintos à minha bD e quero fazer um report com valores dos 3 selects... mas mts valores... basicamente sera uma tabela no meio, q contem dados sobre compras/vendas. em cima tem d ter os dados do cliente... em baixo duas novas tabelas com dados referentes aos totais das compras...

alguma sugestao pratica e simples?? MUITO SIMPLES!! lol

Share this post


Link to post
Share on other sites
Caça

Vais ter de trabalhar com mais de um DataTable ao mesmo tempo, já viste com se adicionam?


Pedro Martins

Não respondo a duvidas por PM

Share this post


Link to post
Share on other sites
dipacheco

mas caça... eu ja tenho o dataset criado... com 3 datatable! LOL o q n consigo é fazer uso dos 3 datatable...

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.