Visualizzazione dei risultati da 1 a 5 su 5
  1. #1

    [VB.NET 2008] Quale strumento scegliere per stampa di una ricevuta?

    Ciao a tutti, nell'applicazione che sto sviluppando ho bisogno di poter stampare una ricevuta che mostri al suo interno, i Dati del cliente, i Dati della società (che però sono variabili in base alla società che emette la ricevuta) ed un elenco di attività che il cliente ha svolto con le relative spese sostenute.
    I dati risiedono su 3 tabelle: AnagraficaCliente, AnagraficaSocieta, e AttivitàCliente.
    Qual'è lo strumento più adatto per realizzare la stampa per la ricevuta?

    E' meglio utilizzare Crystal Report oppure gestire la stampa manualmente con gli oggetti PrintDocumenti?

    Il modello che vorrei realizzare assomiglia un pochino ad un report con sottoreport, solo che i dati della società come li devo trattare?

    Allego il modello che mi piacerebbe ottenere, giusto per farvi capire e consigliarmi su cosa scegliere. Grazie in anticipo per i vostri preziosi consigli!
    Immagini allegate Immagini allegate

  2. #2
    Utente di HTML.it L'avatar di gibra
    Registrato dal
    Apr 2008
    residenza
    Italy
    Messaggi
    4,244
    Sicuramente è meglio usare CrystalReport, o un qualsiasi altro tool di reportistica.
    Il motiovo è semplice: questi strumenti sono già predisposti alla stampa di qualsiasi tipologia di layout che può comunque essere personalizzata dal programmatore.

    Non solo! La prerogativa di questi tool è quella di avere inglobato un Designer che tra l'altro può essere fornito anche al cliente stesso (così se li può modificare in base alle proprie esigenze).
    Poter creare 'visivamente' il report è una funzionalità assolutamente indispensabile sia per semplificare il lavoro dal punto di vista progettuale che dal punto divista estetico.

    Quelli che tu chiami sotto-report in realtà sono una cosa assia diversa da quello che intendi tu.
    I Report includono già le specifiche sezioni come ReportHeader, PageHeader, ReportFooter, PageFooter e Details (alle quali se ne possono aggiungere ulteriori) in cui visualizzare i rispettivi dati a seconda di dove si vuole far apparire determinati dati.

    Ad esempio:
    nel tuo caso i DATI SOCIETA' e DATI CLIENTE andrebbero nel PageHeader (ma li hai posizionati 'invertiti' e devi 'scambiarli'), mentre i dati di ATTIVITA CLIENTE vanno nella sezione Details.

    Il sotto-report , invece, è una cosa completamente diversa e va inserito all'interno di una sezione, solitamente Details, e serve per visualizzare altri dati correlati a quelli contenuti della sezione Details.
    Un esempio: se il tuo report mostrasse degli articolo di abbigliamento, per ogni articolo (riga) in Details potresti mostrare le taglie e colori in un sotto-report ma SOLO quelle disponibili)

    Voler re-inventare tutto questo e progettarlo 'manualmente' mi sembra davvero una grossa ed inutile perdita di tempo, oltre al fatto che non è davvero banale progettarla.
    Quindi, perchè re-inventare la ruota?

    Ricorda che i file di report vanno tenuti all'esterno del programma (non commettere l'errore di inglobarli all'interno) così sarà poi possibile modificare il layout del report senza dover ricompilare il programma ogni volta; in questo modo (come detto sopra) il cliente potrà traquillamente personalizzarsi il report (se gli fornisci il Designer).



    P.S.

  3. #3
    Ho seguito il consiglio di utilizzare Crystal Report, ma mi trovo davvero un pò in difficoltà per quanto riguarda il risultato atteso.
    Brevemente vi scrivo i miei passaggio in modo che possiate dirmi se ho sbagliato qualche passaggio.
    Come prima cosa mi sono disegnato il mio report con il report designer trascinando i campi di tipo database all'interno del report.
    Dopodichè da codice mi sono recuperato il dataset di cui vorrei il report e l'ho passato tramite il metodo SetDataSource dell'oggetto tipo report.
    I dati risiedono su tre tabelle diverse che ho messo in join tra loro.
    Il report che mi appare contiene i dati del database e non quelli del dataset che gli ho passato.
    Dove posso aver sbagliato? Allego il pezzo di codice di esempio che utilizzo per il lancio del report.

    Dim DB As New Data() 'classe per accesso DB
    Dim MyDataset As New DataSet()
    MyDataset = DB.ReportRimborso(1, 3, #8/16/2010#, #11/2/2010#)
    ' chiamata alla funzione che mi recupera i dati di cui vorrei il report
    Dim MyReport As New Ricevuta 'oggetto crystalreport .rpt

    Grazie in anticipo per i vostri consigli!

    MyReport.SetDataSource(MyDataset)
    CrystalReportViewer1.ReportSource = MyReport

  4. #4
    Utente di HTML.it L'avatar di gibra
    Registrato dal
    Apr 2008
    residenza
    Italy
    Messaggi
    4,244
    Questo problema non ha niente a che vedere con l'oggetto della discussione per cui devi aprirne una nuova, con un nuovo titolo descrittivo.

    In ogni caso, ti consiglio di fare una 'googlata' cercando

    crystalreport vb2008 sample


  5. #5
    Ok scusami, aprirò una nuova discussione e proverò nuovamente a googlare..grazie mille!

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.