Compartilhar via


Instruções passo a passo: imprimindo uma fatura

Você não pode ser impresso diretamente de um aplicativo de LightSwitch , mas você pode criar um controle de usuário do Silverlight que implementa a impressão e adicioná-lo a uma tela de LightSwitch .Essa explicação passo a passo mostra como imprimir uma tornar criando um controle de usuário do Silverlight e usá-lo como um controle personalizado em um formulário.

Crie um aplicativo de LightSwitch

Primeiro, você cria um aplicativo simples de LightSwitch com o cliente e regras entidades e uma tela de lista e detalhes para exibi-los.

Para criar o aplicativo

  1. Na barra de menu, escolha Arquivo, Novo, Projeto.

  2. Na caixa de diálogo Novo Projeto , expanda o nó de LightSwitch , escolha Aplicativo LightSwitch (Visual Basic) ou o modelo de Aplicativo LightSwitch (Visual C#) .

  3. Na caixa de texto Nome , entre em LightSwitchInvoice, escolha o botão de OK .

  4. Na janela de Designer de LightSwitchInvoice , escolha o link de Crie a nova tabela .

  5. Na janela de Propriedades , defina o valor da propriedade de Nome a Cliente.

  6. No designer de entidade, escolha <Add Property> o link, e entre em Nome.

  7. Na coluna de Tipo , escolha o tipo de dados de String .

  8. Na barra de ferramentas, escolha o botão de Nova tabela .

  9. Na janela de Propriedades , defina o valor da propriedade de Nome a Pedido.

  10. No designer de entidade, escolha <Add Property> o link, e entre em OrderItem.

  11. Na coluna de Tipo , escolha o tipo de dados de String .

  12. No designer de entidade, escolha <Add Property> o link, e entre em OrderAmount.

  13. Na coluna de Tipo , escolha o tipo de dados de Money .

  14. Na barra de ferramentas, escolha o botão de Relação .

    A caixa de diálogo Adicionar Novo Relacionamento aparece.

  15. Na coluna de A linha de Nome , escolha Cliente, escolha o botão de OK .

  16. Em Gerenciador de Soluções, abra o menu de atalho para Clientes, escolha Abrir.

  17. No designer de entidade, escolha <Add Property> o link, e entre em OrderTotal.

  18. Na coluna de Tipo , escolha o tipo de dados de Money .

  19. Na janela de Propriedades , selecione a caixa de seleção Computado , e clique no link de Editar método .

  20. No editor de códigos, adicione o seguinte código para o método de OrderTotal_Compute :

    result = (From items In Orders).Sum(Function(X) X.OrderAmount)
    
    result = (from items in Orders select items).Sum(X => X.OrderAmount);
    
  21. Em Gerenciador de Soluções, abra o menu de atalho para Telas, escolha Adicionar a tela.

  22. Na caixa de diálogo Adicionar nova tela , escolha o modelo de Tela de lista e detalhes .

  23. Na lista de Dados da Tela , escolha Clientes.

  24. Selecione a caixa de seleção Pedidos do cliente , e clique no botão de OK .

  25. Na barra de menu, escolha Depurar, Iniciar Depuração.

  26. Na barra de ferramentas Clientes , escolha o botão de Adicionar .

    A caixa de diálogo Add New Order aparece.

  27. Na caixa de texto Nome , entre em Derek Snyder, escolha o botão de OK .

  28. Na barra de ferramentas Orders , escolha o botão de Adicionar .

  29. Na caixa de texto de Ordenação o item , entre em Martelo.

  30. Na caixa de texto de Ordenação a quantidade , entre em 9,95, escolha o botão de OK .

  31. Na barra de ferramentas Orders , escolha o botão de Adicionar .

  32. Na caixa de texto de Ordenação o item , entre em Pregos.

  33. Na caixa de texto de Ordenação a quantidade , entre em 4,50, escolha o botão de OK .

  34. Na barra de ferramentas Aplicativo , escolha Salvar, e então feche o aplicativo.

Crie o controle de usuário do Silverlight

Em seguida, você cria um controle de usuário do Silverlight que fornece recursos de impressão.

Para criar um controle de usuário

  1. Na barra de menu, escolha Arquivo, Adicionar, Novo Projeto.

  2. Na caixa de diálogo Novo Projeto , expanda Visual Basic ou o nó de Visual C# , escolha o nó de Silverlight , escolha o modelo de Biblioteca de Classes Silverlight .

  3. Na caixa de texto Nome , entre em PrintControl, escolha o botão de OK .

  4. Na caixa de diálogo Adicionar Biblioteca de Classes Silverlight , certifique-se de que Silverlight 5 está selecionada e, escolher-se no botão de OK .

  5. Em Gerenciador de Soluções, abra o menu de atalho para Class1.vb ou Class1.cs, escolha Excluir.

  6. Abra o menu de atalho para PrintControl, escolha Adicionar, escolha Novo Item.

  7. Na caixa de diálogo Adicionar novo item , escolha o modelo de Controle de Usuário Silverlight .

  8. Na caixa de texto Nome , entre em Tornar, escolha o botão de OK .

  9. Na barra de menu, escolha Modo de Visualização, Caixa de Ferramentas.

  10. Na janela de Caixa de Ferramentas , expanda o nó de Controles Comuns do Silverlight , escolha o controle de Gradededados , e adicioná-lo para a superfície de design.

  11. No editor de códigos, substitua o código existente XAML com o seguinte código:

    <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>
    

    Este código XAML define o layout do controle.A seção de <sdk:DataGrid.Columns> especifica o que será exibido em cada coluna de DataGrid (neste caso, OrderItem e os campos de OrderAmount de entidade de Customers ).

    O controle de usuário deve se parecer com a ilustração seguinte:

    Controle de usuário do Silverlight

  12. Em Gerenciador de Soluções, expanda o nó de Invoice.xaml , abra o menu de atalho para Invoice.xaml.vb ou Invoice.xaml.cs, escolha Abrir.

  13. No editor de códigos, substitua o código existente com o seguinte código:

    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 Class
    
    using 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;
    }
    }
    
  14. Na barra de menus, escolha Compilar, BuildSolution.

Consumir o controle de usuário

Finalmente, você adiciona o controle de usuário para a tela de LightSwitch e testá-lo.

Para adicionar o controle de usuário

  1. Em Gerenciador de Soluções, abra o menu de atalho para a tela de CustomersListDetail , escolha Abrir.

  2. No designer da tela, escolha o nó de Layout das Linhas | Customer Details .

  3. Na barra de ferramentas, abra a lista de Adicionar o item de layout , escolha Controle Personalizado.

  4. Na caixa de diálogo Adicionar Controle Personalizado , escolha o botão de Adicionar Referência .

  5. Na caixa de diálogo Referenciar o gerenciador , expanda o nó de Solução , selecione a caixa de seleção PrintControl , escolha o botão de OK .

  6. Na caixa de diálogo Adicionar Controle Personalizado , expanda os nós de PrintControl , escolha o controle de Fatura , escolha o botão de OK .

  7. No editor de tela, escolha o nó de Controle Personalizado | Screen Content , e arraste-o para que aparece o nó de Grade de Dados | Orders .

  8. Na janela de Propriedades , defina o valor da propriedade de Nome a Tornar.

  9. No grupo de Redimensionamento , escolha botões de opção de Alongar para Alinhamento horizontal e Alinhamento vertical.

  10. Na barra de menus, escolha Depurar, Iniciar Depuração para executar o aplicativo.

  11. No aplicativo em execução, escolha o botão de Imprimir .

    Quando a caixa de diálogo Windows Imprimir aparece, você pode escolher uma impressora.

Consulte também

Outros recursos

Gerando relatórios e imprimindo no LightSwitch