Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Non è possibile stampare direttamente da un'applicazione di LightSwitch, ma è possibile creare un controllo utente Silverlight che applica la stampa e la si aggiunge allo schermo di LightSwitch.In questa procedura dettagliata viene mostrato come stampare una fattura crea un controllo utente di Silverlight e utilizzato come controllo personalizzato in un form.
Creare l'applicazione di LightSwitch
Innanzitutto, creare una semplice applicazione di LightSwitch con il cliente e ordinare le entità e uno schermo dei dettagli e dell'elenco per visualizzare.
Per creare l'applicazione
Nella barra del menu, scegliere File, Nuovo, Progetto.
Nella finestra di dialogo Nuovo progetto, espandere il nodo LightSwitch quindi scegliere Applicazione LightSwitch (Visual Basic) o il modello Applicazione LightSwitch (Visual C#).
Nella casella di testo Nome, immettere LightSwitchInvoicequindi scegliere il pulsante OK.
Nella finestra LightSwitchInvoice Designer, scegliere il collegamento Crea nuova tabella.
Nella finestra Proprietà, impostare il valore della proprietà Nome a Cliente.
In entity designer, selezionare <Add Property> il collegamento e quindi immettere Nome.
Nella colonna Tipo, scegliere il tipo di dati di String.
Nella barra degli strumenti, scegliere il pulsante Nuova tabella.
Nella finestra Proprietà, impostare il valore della proprietà Nome a L'ordine.
In entity designer, selezionare <Add Property> il collegamento e quindi immettere OrderItem.
Nella colonna Tipo, scegliere il tipo di dati di String.
In entity designer, selezionare <Add Property> il collegamento e quindi immettere OrderAmount.
Nella colonna Tipo, scegliere il tipo di dati di Money.
Nella barra degli strumenti, scegliere il pulsante Relazione.
Verrà visualizzata la finestra di dialogo Aggiungi nuova relazione.
Nella colonna A della riga Nome, scegliere Cliente, quindi scegliere il pulsante OK.
In Esplora soluzioni, scegliere dal menu di scelta rapida per Clientiquindi scegliere Apri.
In entity designer, selezionare <Add Property> il collegamento e quindi immettere OrderTotal.
Nella colonna Tipo, scegliere il tipo di dati di Money.
Nella finestra Proprietà, selezionare la casella di controllo Calcolato quindi scegliere il collegamento Modifica metodo.
Nell'editor di codice, aggiungere il codice seguente al metodo di OrderTotal_Compute :
result = (From items In Orders).Sum(Function(X) X.OrderAmount)result = (from items in Orders select items).Sum(X => X.OrderAmount);In Esplora soluzioni, scegliere dal menu di scelta rapida per Schermatequindi scegliere Aggiungi schermata.
Nella finestra di dialogo Aggiungi nuovo schermata, scegliere il modello Schermata di elenco e dettagli.
Nell'elenco Dati della schermata, scegliere Clienti.
Selezionare la casella di controllo Ordini cliente e quindi scegliere il pulsante OK.
Nella barra del menu, scegliere Debug, Avvia debug.
Nella barra degli strumenti Clienti, scegliere il pulsante Aggiungi.
La finestra di dialogo Aggiungi nuovo ordine viene visualizzato.
Nella casella di testo Nome, immettere Derek Snyderquindi scegliere il pulsante OK.
Nella barra degli strumenti OrderTotal, scegliere il pulsante Aggiungi.
Nella casella di testo Ordina elemento, immettere Martello.
Nella casella di testo Importo ordine, immettere 9,95quindi scegliere il pulsante OK.
Nella barra degli strumenti OrderTotal, scegliere il pulsante Aggiungi.
Nella casella di testo Ordina elemento, immettere Chiodi.
Nella casella di testo Importo ordine, immettere 4,50quindi scegliere il pulsante OK.
Nella barra degli strumenti Application, scegliere Salvaquindi chiudere l'applicazione.
Creare il controllo utente di Silverlight
Successivamente, creare un controllo utente Silverlight che fornisce le funzionalità di stampa.
Per creare un controllo utente
Nella barra dei menu, scegliere File, Aggiungi, Nuovo progetto.
Nella finestra di dialogo Nuovo progetto, espandere Visual Basic o il nodo Visual C#, selezionare il nodo Silverlight quindi scegliere il modello Libreria di classi Silverlight.
Nella casella di testo Nome, immettere PrintControlquindi scegliere il pulsante OK.
Nella finestra di dialogo Aggiungi libreria di classi Silverlight, assicurarsi che Silverlight 5 sia selezionato e quindi scegliere il pulsante OK.
In Esplora soluzioni, scegliere dal menu di scelta rapida per Class1.vb o Class1.csquindi scegliere Elimina.
Aprire il menu di scelta rapida per PrintControl, scegliere Aggiungiquindi scegliere Nuovo elemento.
Nella finestra di dialogo Aggiungi nuovo elemento, scegliere il modello Controllo utente Silverlight.
Nella casella di testo Nome, immettere Fatturaquindi scegliere il pulsante OK.
Sulla barra dei menu, scegliere Visualizza, Casella degli strumenti.
Nella finestra Casella degli strumenti, espandere il nodo Controlli comuni di Silverlight, scegliere il controllo griglia dati e aggiungerlo all'area di progettazione.
Nell'editor di codice, sostituire il codice XAML esistente con il codice seguente:
<UserControl xmlns="https://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="https://schemas.microsoft.com/winfx/2006/xaml" xmlns:d="https://schemas.microsoft.com/expression/blend/2008" xmlns:mc="https://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:sdk="https://schemas.microsoft.com/winfx/2006/xaml/presentation/sdk" x:Class="PrintControl.Invoice" mc:Ignorable="d" d:DesignWidth="474" Height="278"> <StackPanel> <Button Content="Print" x:Name="btnPrint" Click="PrintButton_Click" /> <Border BorderThickness="1" BorderBrush="#FF504F4F"> <Grid x:Name="LayoutRoot"> <Grid.ColumnDefinitions> <ColumnDefinition Width="0.02*"/> <ColumnDefinition Width="0.2*"/> <ColumnDefinition Width="0.5*"/> <ColumnDefinition Width="0.1*"/> <ColumnDefinition Width="0.18*"/> </Grid.ColumnDefinitions> <Grid.RowDefinitions> <RowDefinition Height="0.053*"/> <RowDefinition Height="0.08*"/> <RowDefinition Height="0.533*"/> <RowDefinition Height="0.133*"/> <RowDefinition Height="0.2*"/> </Grid.RowDefinitions> <sdk:DataGrid ItemsSource="{Binding Screen.Orders, Mode=OneWay}" AutoGenerateColumns="False" Grid.Row="2" Grid.Column="1" Grid.ColumnSpan="2" > <sdk:DataGrid.Columns> <sdk:DataGridTextColumn Binding="{Binding OrderItem}" CanUserSort="True" DisplayIndex="0" Header="Order Item" MaxWidth="100" MinWidth="50" Visibility="Visible" Width="Auto"/> <sdk:DataGridTextColumn Binding="{Binding OrderAmount, StringFormat=C}" CanUserSort="True" DisplayIndex="1" Header="Order Amount" MaxWidth="100" MinWidth="50" Visibility="Visible" Width="Auto"/> </sdk:DataGrid.Columns> </sdk:DataGrid>Questo codice XAML definisce il layout del controllo.La sezione di <sdk:DataGrid.Columns> specifica l'azione che verrà visualizzato in ogni colonna di DataGrid (in questo caso, OrderItem e i campi di OrderAmount da l Customers ).
Il controllo utente deve essere simile alla figura seguente:
.png)
In Esplora soluzioni, espandere il nodo Invoice.xaml, aprire il menu di scelta rapida per Invoice.xaml.vb o Invoice.xaml.csquindi scegliere Apri.
Nell'editor di codice, sostituire il codice esistente con il codice seguente:
Imports System.Windows.Printing Partial Public Class Invoice Inherits UserControl Private WithEvents pd As PrintDocument Public Sub New() InitializeComponent() pd = New PrintDocument InvoiceDate.Text = DateTime.Today.ToShortDateString() End Sub Private Sub PrintButton_Click(ByVal sender As Object, _ ByVal e As RoutedEventArgs) pd.Print(String.Format("Invoice Date: {0}", DateTime.Today.ToShortDateString())) End Sub Private Sub pd_PrintPage(ByVal sender As Object, _ ByVal e As PrintPageEventArgs) Handles pd.PrintPage e.PageVisual = LayoutRoot End Sub End Classusing System.Windows.Printing; public partial class Invoice : UserControl { private PrintDocument withEventsField_pd; private PrintDocument pd { get { return withEventsField_pd; } set { if (withEventsField_pd != null) { withEventsField_pd.PrintPage -= pd_PrintPage; } withEventsField_pd = value; if (withEventsField_pd != null) { withEventsField_pd.PrintPage += pd_PrintPage; } } } public Invoice() { InitializeComponent(); pd = new PrintDocument(); InvoiceDate.Text = DateTime.Today.ToShortDateString(); } private void PrintButton_Click(object sender, RoutedEventArgs e) { pd.Print(string.Format("Invoice Date: {0}", DateTime.Today.ToShortDateString())); } private void pd_PrintPage(object sender, PrintPageEventArgs e) { e.PageVisual = LayoutRoot; } }Sulla barra dei menu, scegliere Compila, BuildSolution.
Utilizzare il controllo utente
Infine, aggiungere il controllo utente lo schermo di LightSwitch e lo si verifica.
Per aggiungere il controllo utente
In Esplora soluzioni, scegliere dal menu di scelta rapida per la finestra CustomersListDetail quindi scegliere Apri.
Nella finestra di progettazione dello schermo, selezionare il nodo Layout righe | Customer Details.
Nella barra degli strumenti, aprire l'elenco Aggiungi elemento di layout quindi scegliere Controllo personalizzato.
Nella finestra di dialogo Aggiungi controllo personalizzato, scegliere il pulsante Aggiungi riferimento.
Nella finestra di dialogo Gestione riferimenti, espandere il nodo Soluzione, selezionare la casella di controllo PrintControl quindi scegliere il pulsante OK.
Nella finestra di dialogo Aggiungi controllo personalizzato, espandere i nodi PrintControl, scegliere il controllo Fattura quindi scegliere il pulsante OK.
Nell'editor dello schermo, selezionare il nodo Controllo personalizzato | Screen Content e trascinarlo in modo che venga visualizzato il nodo Data Grid | OrderTotal.
Nella finestra Proprietà, impostare il valore della proprietà Nome a Fattura.
Nel gruppo Ridimensionamento, scegliere i pulsanti di opzione Allunga per Allineamento orizzontale e Allineamento verticale.
Sulla barra dei menu, scegliere Debug, Avvia debug per eseguire l'applicazione.
Nell'applicazione in esecuzione, scegliere il pulsante Stampa.
Quando la finestra di dialogo Stampa di Windows viene visualizzato, è possibile selezionare una stampante.