Este formulário permite adicionar uma factura, com um ou mais itens, para o cliente seleccionado no formulário frmFacturasClientes.
7 Desenho do formulário frmAdicionarFactura.
7.1 Adicione um novo formulário ao projecto. Para tal, seleccione a opção Add Windows Form do menu Project. Como resultado, aparece a caixa de diálogo Add New Item.
7.2 Na secção Templates da caixa de diálogo Add New Item, seleccione a opção Windows Form. Depois introduza o nome para o formulário e pressione o botão Add. Introduza o nome frmAdicionarFactura.
7.3 Defina as propriedades Text, StartPosition e AutoScaleMode, com os valores Adicionar Factura, CenterScreen e Font.
7.4 Na janela Data Sources, expanda a caixa de verificação correspondente à tabela ClientesED. Depois, arraste os atributos IDCliente e Nome para o formulário frmAdicionarFactura.
Como resultado do passo anterior, além dos objectos Label e TextBox, criados para cada coluna, são também criados os objectos EditoraDataSet,
ClientesEDTableAdapter, ClientesEDBindingSource e
ClientesEDBindingNavigator. Adicionalmente, o Visual Studio gera também código, que iremos analisar mais à frente.
7.5 Para as caixas de texto recentemente criadas, defina as suas propriedades BackColor, ReadOnly e TabStop com os valores Control, True e False, respectivamente.
7.6 Elimine a barra de navegação criada pelo wizard.
7.7 Na janela Data Sources, expanda a caixa de verificação correspondente à tabela FacturasED. Depois, arraste o atributo DataFactura para o formulário frmAdicionarFactura.
Deste modo, irá ser criado um controlo DateTimePicker ligado à coluna DataFactura da tabela FacturasED e irão ser gerados os objectos FacturasEDTableAdapter e FacturasEDBindingSource.
7.8 Defina a propriedade Format do controlo DateTimePicker, recentemente criado, com o valor Short.
7.9 Seleccione, na janela Data Sources, a opção Details da caixa de listagem associada à tabela Produtos.
7.10 Seleccione, na janela Data Sources, a opção ComboBox da caixa de listagem associada à coluna Código da tabela Produtos.
7.11 Arraste o atributo Código da tabela Produtos da janela Data Sources para o formulário frmAdicionarFactura.
Como resultado, são criados os controlos Label, ComboBox, ProdutosTableAdapter e ProdutosBindingSource.
7.12 Aceda ao menu smart tag do controlo CódigoComboBox. Active a caixa de verificação Use data bound items. Como resultado, vão ser mostradas as propriedades de ligação.
7.13 Atribuía os valores para as propriedades Data Source, Display Member, Value Member e Selected Value, de acordo com a imagem seguinte.
7.14 Seleccione a opção DropDownList para a propriedade DropDownStyle do controlo CódigoComboBox, de modo a impedir que o utilizador introduza dados nesta caixa de combinação.
7.15 Altere, na secção DataBindings do controlo CódigoComboBox, o valor da propriedade Text para none.
7.16 Defina as propriedades Name e Text do controlo CódigoLabel recentemente criado pelo assistente, com os valores ProdutoLabel e Produto:, respectivamente.
7.17 Adicione um controlo Label e defina as suas propriedades Name e Text com os valores e QuantidadeLabel e Quantidade, respectivamente. 7.18 Adicione um controlo TextBox e defina as suas propriedades Name, Tag
e Text com os valores QuantidadeTextBox, Quantidade e 1, respectivamente.
7.19 Adicione um botão ao formulário. Defina as suas propriedades Name e Text com os valores btnAdicionarItem e Adicionar Item, respectivamente.
7.20 Arraste a tabela ItensFacturasED da janela Data Sources para o formulário do projecto.
7.21 Aceda ao menu smart tag da grelha e seleccione o comando Edit Columns.
Como resultado, surge a caixa de diálogo Edit Columns.
7.22 Na secção Selected Columns, seleccione a coluna Factura e pressione o botão Remove, de modo a remover esta coluna da grelha.
7.23 Seleccione a coluna Designação e toque no botão para a colocar em segundo lugar da lista, a seguir à coluna Produto.
Neste momento, o formulário deve apresentar o seguinte aspecto.
7.24 De modo a tornar a grelha apenas disponível para visualização de dados, aceda ao menu smart tag do comando ItensFacturasEDDataGridView e desactive as caixas de verificação Enable Adding, Enable Editing e Enable Deleting. Desactive ainda a caixa de verificação Enable Column Reordering.
Vamos agora adicionar uma coluna não ligada (Unbound Column) ao comando ItensFacturasEDDataGridView, de modo a incluir um botão que permita apagar um item de uma factura, isto é, um registo da grelha.
7.25 Aceda novamente ao menu smart tag do comando ItensFacturasEDDataGridView e seleccione o comando Edit Columns. Como resultado, surge a caixa de diálogo Edit Items.
7.26 Na caixa de diálogo Edit Items, pressione o botão Add. Como resultado, surge a caixa de diálogo Add Column.
7.27 Na caixa de diálogo Add Column, seleccione a opção Unbound column e defina os restantes itens (Name, Type, Header text, Visible, Read Only e Frozen) de acordo com a figura acima ilustrada. Depois, pressione o botão Add.
7.28 Para voltar à caixa de diálogo Edit Items, pressione o botão Close da caixa de diálogo Add Column, de modo a ser apresentado na coluna mais à direita da grelha.
7.29 Utilize o botão para colocar o botão recentemente adicionado no último lugar da lista Selected Columns.
7.30 Ainda na caixa de diálogo Edit Items, seleccione o botão recentemente adicionado e defina as suas propriedades Text e UseColumnTextForButtonValue com os valores Eliminar e True, respectivamente.
7.31 Pressione o botão OK da caixa de diálogo Edit Items. Neste momento, a grelha deve apresentar o seguinte aspecto.
Quando o utilizador toca numa qualquer célula de um controlo DataGriedView é activado o evento CellContentClick. Pode programar um procedimento para este evento que determina se o utilizador tocou numa coluna com um botão e, em caso afirmativo, realizar o processamento necessário. Pode ainda utilizar o segundo argumento que é passado para este procedimento de evento para obter o índice do registo e da coluna que foi tocada.
7.32 Seleccione, na janela Data Sources, a opção Details da caixa de listagem associada à tabela OpçõesEncomenda.
7.33 Arraste a tabela OpçõesEncomenda para o formulário.
Como resultado, vão ser criados objectos Label e TextBox ligados a cada uma das colunas da tabela. São também criados os objectos OpçõesEncomendaTableAdapter e OpçõesEncomendasBindingSource.
7.34 Para todas as caixas de texto recentemente criadas, defina as propriedades BackColor, ReadOnly e TabStop com os valores Control, True e False, respectivamente.
7.35 Na janela Data Sources, expanda a caixa de verificação correspondente à tabela FacturasED. Depois, arraste, um a um, os atributos TotalProduto, Imposto, Transporte e TotalFactura para o formulário frmAdicionarFactura.
Como resultado, vão ser criados objectos Label e TextBox ligados a cada uma das colunas da tabela.
7.36 Para as caixas de texto recentemente criadas, defina as suas propriedades BackColor, ReadOnly e TabStop com os valores Control, True e False, respectivamente.
7.37 Adicione dois botões ao formulário. Defina as suas propriedades Name, com os valores btnGuardarFactura e btnCancelar e Text, com os valores Guardar Factura e cancelar, de acordo com a figura seguinte.
Vamos ainda adicionar mais duas consultas ao Table Adapter FacturasEDTableAdapter para obter as facturas de um dados cliente e o último identificador atribuído à tabela FacturasED.
7.38 Seleccione, no DataSet Designer, o Table Adapter FacturasEDTableAdapter com o botão direito do rato. Depois, seleccione o comando Add Query.
Utilize o Table Adapter Query Configuration Wizard para criar a consulta.
7.39 No primeiro passo do wizard, seleccione a opção Use SQL statements.
7.40 Pressione o botão Next.
7.41 No segundo passo do wizard, seleccione a opção SELECT which returns rows.
7.42 Pressione o botão Next.
7.43 No terceiro passo do wizard, construa a consulta, de acordo com a figura seguinte. Esta consulta vai ser utilizada para obter as facturas do cliente cujo identificador é fornecido através de um parâmetro.
7.44 Pressione o botão Next.
7.45 No quarto passo do wizard, mantenha activada a caixa de verificação Fill a DataTable, atribua o valor FillByCliente na caixa de texto Method name e desactive a caixa de combinação Return a DataTable, de acordo com a figura seguinte.
7.46 Pressione o botão Next. 7.47 Pressione o botão Finish.
7.48 Para adicionar outra consulta ao Table Adapter FacturasEDTableAdapter, repita os passos 7.38 a 7.40.
7.49 No segundo passo do wizard, seleccione a opção SELECT which returns a single value.
7.50 Pressione o botão Next.
7.51 No terceiro passo do wizard, introduza o código SQL necessário para que fique de acordo com a figura abaixo ilustrada. Esta consulta vai ser utilizada para obter o valor do último identificador de factura (IDFactura) atribuído pelo SQL SERVER. Para tal, é utilizada a função IDENT_CURRENT(‘Nome_Tabela’). Esta função devolve o último valor gerado para a coluna IDENTITY da tabela especificada no seu argumento.
7.52 Pressione o botão Next.
7.53 No quarto passo do wizard atribua o valor ObterÚltimoValorIDENTITY ao nome do método que está a criar.
7.54 Pressione o botão Next.
7.55 Pressione o botão Finish.
Neste momento, devem estar associados ao formulário frmAdicionarFactura os seguintes controlos.
Neste momento, o DataSet Designer deve apresentar o seguinte aspecto.
Para finalizar, note que pode aplicar os tópicos abordados nas tarefas orientadas 2 a 7 para melhorar a interface das suas aplicações de bases de dados.