1. Este site usa cookies. Ao continuar a usar este site está a concordar com o nosso uso de cookies. Saber Mais.

Report em VB6

Discussão em 'Programação' iniciada por Ricardo MortH2O, 19 de Dezembro de 2005. (Respostas: 7; Visualizações: 888)

  1. Bom dia!
    Como criar um relatório com o Report Designer do VB6, onde apenas figure um recordset da base de dados.

    Tenho uma base de dados (de clientes) ACCESS a que estou a aceder via ADO. Gostaria de imprimir os detalhes de cada cliente, como uma ficha pessoal.

    Após várias tentativas, apenas consigo imprimir todos os recordsets!!!! :(


    Alguém me pode ajudar?


    Obrigado
     
  2. Arh!!!

    Arh!!! Power Member

    O Report Designer não tem parametros, em vez de ligações directas a recordsets?!?!?!?

    Abraço.
     
  3. MaTreCo

    MaTreCo Power Member

    Acho que estás a misturar um pouco os conceitos.
    Record = um registo ou se preferires, uma linha com os dados de um único cliente
    Recordset = conjunto de registos ou várias linhas com os dados de vários clientes
    Dito isto, o que me parece que queres é um report que agarre num recordset e imprima apenas um record.
    Palpita-me que estás a usar um ADO DataControl em vez de fazeres tudo por código.
    Assim, o que terás de fazer é, em runtime, definires que o datasource do datareport é igual a adodatacontrol1.recordset e filtrares o mesmo recordset de acordo com o teu critério.

    Exemplo: queres imprimir os dados do cliente nº 127

    Adodatacontrol1.RecordSource = "select * from clientes where num = " & 127
    Adodatacontrol1.Refresh
    Datareport1.DataSource = Adodatacontrol1.Recordset
    Datareport1.Refresh

    Isto saiu-me de cabeça, a sintaxe poderá não ser exactamente esta, mas deverá de bastar para teres uma ideia.
     
  4. Muito obrigado MaTreCo, funcionou! :)
    Fez-se luz!

    Um abraço!
     
  5. Arh!!!

    Arh!!! Power Member

    Não será má ideia carregar um recordset inteiro para dentro de um report?!?!?! Ele não vai estar a ocupar duas vezes o espaço na memória?!?!?! Se o recordset tiver montes de registos isso poderá ser um pouco lento (pelo menos em comparação com apenas um registo).


    Ricardo MortH2O, se o report designer tiver parametros, mais vale introduzir por este meio. Os parametros funcionam como variaveis (key/value) que te dá para inserires apenas um registo sem te chateares muito.

    EDIT: Os recordsets funcionam bem quando crias um "template" para um registo, e ao teres vários o report duplicate os mesmos usando o exemplo que deste para um, como por exemplo uma listagem de produtos...
     
    Última edição: 20 de Dezembro de 2005
  6. MaTreCo

    MaTreCo Power Member

    Isso é o problema que ele tem agora.
    O truque é mesmo esse, é que assim, o recordset que ele lhe vai passar só tem mesmo um registo.
     
  7. Arh!!!

    Arh!!! Power Member

    Ok. Pensei que o RecordSet ia inteiro e o select era feito internamente no report...
     

Partilhar esta Página