Procedura dettagliata: creazione di un report
LightSwitch non dispone di funzionalità di creazione rapporti incorporate, ma è possibile creare e stampare rapporti da un'applicazione LightSwitch integrando Word. È possibile automatizzare la creazione di rapporti utilizzando Visual Studio e le API per Word, ma tramite l'estensione di LightSwitch Office Integration Pack l'attività viene semplificata.
Utilizzando Office Integration Pack, è possibile automatizzare più facilmente Word 2010, Excel 2010 e Outlook 2010 in vari modi. Ad esempio, è possibile importare ed esportare dati, creare documenti e rapporti, nonché utilizzare la posta elettronica e gli appuntamenti. È possibile scaricare l'estensione Office Integration Pack gratuitamente da CodePlex.
Prerequisiti
Per questa procedura dettagliata sono richiesti i componenti seguenti:
Creare il modello di rapporto
Innanzitutto, creare un documento di Word che verrà utilizzato come modello per il rapporto.
Per creare il modello di rapporto
Aprire Word 2010.
Verrà visualizzato un nuovo documento vuoto.
All'inizio del documento digitare PrescriptionContoso Product Catalog.
Evidenziare il testo, quindi nel gruppo Stili della scheda Home nella barra multifunzione scegliere il comando Titolo.
Spostare il cursore sotto il titolo, nella scheda Inserisci scegliere il comando Tabella, quindi scegliere il comando Inserisci tabella.
Verrà visualizzata la finestra di dialogo Inserisci tabella.
Nella casella di testo Numero di colonne immettere 5, quindi nella casella di testo Numero di righe immettere 2.
Selezionare il pulsante di opzione Adatta alla pagina, quindi scegliere il pulsante OK.
Nella prima riga della tabella immettere le intestazioni di colonna: Product ID, Product, Description, Price e Packaging.
Evidenziare la tabella, quindi nel gruppo Collegamenti della scheda Inserisci scegliere il comando Segnalibro.
Nella finestra di dialogo Segnalibro denominare il segnalibro Catalog, quindi scegliere il pulsante Aggiungi.
Nel gruppo Imposta pagina della scheda Layout di pagina scegliere il comando Orientamento, quindi scegliere il comando Orizzontale.
Nella scheda File scegliere il comando Salva con nome.
Nella finestra di dialogo Salva con nome aprire la cartella Documenti, denominare il file Product Catalog quindi scegliere il pulsante Salva.
Nella scheda File scegliere il comando Esci.
Aggiungere un rapporto all'applicazione
Dopo aver creato il modello di rapporto, abilitare l'estensione Office Integration Pack, aggiungere un pulsante alla barra degli strumenti dell'applicazione e aggiungere il codice per creare il rapporto. È inoltre possibile modificare il tipo di documento.
Nota
Se non è già stata compilata l'applicazione di esempio Vision Clinic, è necessario in primo luogo installare e configurare il database PrescriptionContoso, che viene scaricato come parte del pacchetto di esempio.Aprire il file Install.htm, quindi seguire le istruzioni per installare il database.
Per abilitare l'estensione
Nella barra dei menu di Visual Studio scegliere File, Apri, Progetto/Soluzione.
Individuare il file Vision Clinic.sln, quindi scegliere il pulsante Apri.
In Esplora soluzioni aprire il menu di scelta rapida per il nodo Proprietà, quindi scegliere Apri.
In Progettazione applicazione scegliere la scheda Estensioni, quindi selezionare la casella di controllo Office Integration Pack.
Per creare il rapporto
In Esplora soluzioni aprire il menu di scelta rapida per il nodo della schermata ProductList, quindi scegliere Apri.
Nel riquadro della struttura ad albero del contenuto espandere il nodo Barra dei comandi schermata, quindi scegliere Aggiungi, Nuovo pulsante.
Nella finestra di dialogo Aggiungi pulsante, denominare il pulsante creato Catalog, quindi scegliere il pulsante OK.
Aprire il menu di scelta rapida del pulsante Catalog, quindi scegliere Modifica codice Execute.
Nell'Editor di codice immettere le seguenti istruzioni Imports o using all'inizio del file:
Imports OfficeIntegration
Using OfficeIntegration;
Aggiungere al metodo Catalog_Execute il codice seguente:
' Function to format a field as Currency. Dim formatPrice = Function(x As Decimal) As String Return Format(x, "c2") End Function ' Map the Word column names to the entity column names. Dim mapContent As New List(Of ColumnMapping) mapContent.Add(New ColumnMapping("ProductID", "ProductID")) mapContent.Add(New ColumnMapping("ProductName", "ProductName")) mapContent.Add(New ColumnMapping("Description", "Description")) ' Format the price as Currency using the Function created above. mapContent.Add(New ColumnMapping("CurrentPrice", "CurrentPrice", FormatDelegate:=formatPrice)) mapContent.Add(New ColumnMapping("ProductImage", "ProductImage")) ' Define the document object. Dim doc As Object = Word.GenerateDocument(Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments) & "\Product Catalog.docx", Me.Products.SelectedItem, mapContent) ' Export the document object to Word. Word.Export(doc, "Catalog", 2, False, Me.Products, mapContent)
{ // Function to format a field as Currency. dynamic formatPrice = (decimal x) => { return Strings.Format(x, "c2"); }; // Map the Word column names to the entity column names. List<ColumnMapping> mapContent = new List<ColumnMapping>(); mapContent.Add(new ColumnMapping("ProductID", "ProductID")); mapContent.Add(new ColumnMapping("ProductName", "ProductName")); mapContent.Add(new ColumnMapping("Description", "Description")); // Format the price as Currency using the Function created above. mapContent.Add(new ColumnMapping("CurrentPrice", "CurrentPrice", FormatDelegate: formatPrice)); mapContent.Add(new ColumnMapping("ProductImage", "ProductImage")); // Define the document object. object doc = Word.GenerateDocument(Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments) + "\\Product Catalog.docx", this.Products.SelectedItem, mapContent); // Export the document object to Word. Word.Export(doc, "Catalog", 2, false, this.Products, mapContent); }
Nella barra dei menu scegliere Debug, Avvia debug per eseguire l'applicazione.
Nel menu Attività scegliere Product List, quindi scegliere il pulsante Catalog per visualizzare il rapporto.
(Facoltativo) Aggiungere la seguente riga di codice alla fine del metodo Catalog_Execute per salvare e visualizzare il rapporto in un formato con estensione pdf:
Word.SaveAsPDF(doc, Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments) & "\Product Catalog.pdf", True)
Word.SaveAsPDF(doc, Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments) + "\\Product Catalog.pdf", true);
Passaggi successivi
Esplorare le API nello spazio dei nomi OfficeIntegration per individuare molte altre operazioni che è possibile eseguire mediante Office Integration Pack.