• Nenhum resultado encontrado

Tarefa Orientada 5 Aplic. Manutenção de Facturas de Clientes

N/A
N/A
Protected

Academic year: 2021

Share "Tarefa Orientada 5 Aplic. Manutenção de Facturas de Clientes"

Copied!
58
0
0

Texto

(1)

Tarefa Orientada 5

Aplic. Manutenção de Facturas de Clientes

Objectivos:

• Aplicação Manutenção de Facturas de Clientes • Utilização de uma fonte de dados.

• Formulários Master/Detail.

• Adicionar consultas a um Table Adapter. • Alterar consultas de um Table Adapter

• Eliminar colunas de um controlo DataGridView.

• Obter o último valor gerado para uma coluna IDENTITY. • Alterar um controlo ToolStrip.

Aplicação Manutenção de Facturas de Clientes

Neste projecto, vamos implementar uma aplicação de base de dados para gerir as facturas dos clientes de uma pequena editora.

Quando a aplicação é iniciada é mostrado o formulário frmFacturasClientes. Neste formulário o utilizador pode procurar um cliente pelo seu identificador ou pelo seu nome, através da barra de ferramentas.

Se o utilizador introduzir parte do nome, ou o nome completo, e pressionar o botão procurar correspondente (à direita da caixa de texto onde foi introduzido o nome a pesquisar), é mostrado o formulário frmSeleccionarCliente. Este formulário mostra, numa grelha, todos os clientes cujo nome estão de acordo com o padrão de pesquisa utilizado no formulário frmFacturasClientes para procurar clientes.

(2)

Depois, o utilizador pode efectuar um duplo toque sobre um registo da grelha para seleccionar um cliente ou, alternativamente, pode seleccionar o registo e, depois pressionar o botão Seleccionar. Em ambos os casos, o controlo vai ser devolvido ao formulário frmFacturasClientes e a informação relativa ao cliente é também mostrada.

Após ter sido seleccionado um cliente, o utilizador pode pressionar o botão Alterar Cliente para mostrar o formulário frmManutençãoClientes. Este formulário é utilizado quer para alterar os dados de um cliente já existente, quer para introduzir dados de um novo cliente. O título do formulário muda de acordo com a situação. Após o utilizador ter efectuado as alterações ou ter introduzido os dados de um novo cliente, pode pressionar os botões Aceitar ou Cancelar para gravar ou cancelar as respectivas operações e para voltar ao formulário frmFacturasClientes.

O utilizador pode também adicionar um novo cliente pressionando o botão Adicionar Cliente. Como resultado, é mostrado o formulário frmManutençãoClientes, com o título Adicionar Cliente. Depois, o utilizador pode introduzir os dados relativos ao novo cliente e pode pressionar os botões Aceitar ou Cancelar para gravar ou cancelar, respectivamente e para voltar ao formulário frmFacturasClientes.

Para eliminar um cliente, o utilizador pode pressionar o botão Eliminar Cliente do formulário frmManutençãoClientes. É mostrada uma caixa de diálogo para confirmar, ou não, a eliminação. Se a operação for confirmada, é removido o cliente correspondente, assim como as respectivas facturas e itens de factura.

O formulário frmManutençãoClientes também contém uma grelha onde são mostradas as facturas do cliente seleccionado. O utilizador pode esta grelha para rever as facturas, para mostrar os itens de cada factura, ou para eliminar uma factura.

(3)

Para visualizar os itens de uma factura, o utilizador pode pressionar duplamente sobre o registo correspondente na grelha ou, alternativamente, pode seleccionar o registo e, depois pressionar o botão Ver Itens Factura. Em ambos os casos, vai ser mostrado o formulário frmItensFactura e a informação relativa à factura é também mostrada.

Para eliminar uma factura, o utilizador pode seleccionar, na grelha, o registo relativo à factura e, depois pode pressionar o botão Eliminar Factura. Depois é solicitada a confirmação de remoção. Caso seja confirmada, a factura é eliminada, bem como todos os seus itens.

O utilizador pode também adicionar uma factura para o cliente seleccionado. Para tal, deve pressionar o botão Adicionar Factura. Como resultado, é mostrado o formulário frmAdicionarFactura. Neste formulário, o utilizador selecciona um produto na caixa de combinação correspondente, introduz a quantidade na caixa de texto correspondente, e pressiona o botão Adicionar. Como resultado, é acrescentado um item (registo) à grelha deste formulário e são calculados, e mostrados, os totais para a factura. O utilizador também pode eliminar um item desta grelha. Para tal, deve pressionar o botão Eliminar que se encontra à sua direita.

Após ter adicionado todos os itens a uma factura, o utilizador pode pressionar o botão Guardar Factura, de modo a que a factura e os seus itens sejam armazenados na base de dados e seja, novamente, mostrado o formulário frmFacturasClientes. O utilizador pode também pressionar o botão Cancelar para voltar ao formulário frmFacturasClientes sem gravar os dados relativos à factura e respectivos itens.

(4)

Neste projecto, vamos continuar a utilizar o DataSource Configuration Wizard para criar uma fonte de dados.

1 Execute os passos 1 a 5 da tarefa orientada 1, sobre Visual Basic 2005, para criar um novo projecto para uma aplicação Windows.

2 Criação de uma fonte de dados, a partir de uma base de dados no Sql Server, recorrendo ao assistente de configuração.

2.1 Siga os passos 2.1 a 2.12 da tarefa orientada 2 para criar uma fonte de dados.

2.2 Agora escolha os objectos da base de dados para a fonte de dados que vão ser incluídos no DataSet. Expanda o nó associado à caixa de verificação Tables e seleccione as tabelas ClientesED, FacturasED, ItensFacturasED, OpçõesEncomenda, Produtos e Províncias.

(5)

2.3 Neste passo, pode ainda especificar o nome para o DataSet que vai ser criado. De modo predefinido, este nome é constituído pelo nome da base de dados seguido da palavra DataSet

2.4 Pressione o botão Finish.

Terminados os passos do assistente, a nova fonte de dados é mostrada na janela DataSources. Na janela Solution Explorer, é também incluído um ficheiro com o nome que foi atribuído ao DataSet e com a extensão xsd. Este ficheiro contém o esquema para a classe DataSet gerada pelo wizard, isto é, define a estrutura do DataSet.

Data Sources Solution Explorer

(6)

Formulário frmFacturasClientes

Neste formulário o utilizador pode procurar um cliente pelo seu identificador ou pelo seu nome, através da barra de ferramentas e pode, entre outras coisas, visualizar as suas facturas.

3 Desenho do formulário frmFacturasClientes.

3.1 Defina as propriedades Name, Text, AutoScaleMode, StartPosition e File Name com os valores frmFacturasClientes, Manutenção de facturas de clientes, Font, CenterScreen e frmFacturasClientes, respectivamente.

Depois de ter criado um uma fonte de dados, vamos criar controlos ligados para aceder aos dados.

3.2 Seleccione, na janela Data Sources, a opção Details da caixa de listagem associada à tabela ClientesED.

3.3 Arraste a tabela ClientesED para o formulário. Como resultado, vão ser criados objectos Label e TextBox ligados a cada uma das colunas da tabela.

(7)

Como resultado do passo anterior, além dos objectos TextBox e Label, criados para cada coluna da tabela, foram também criados os objectos EditoraDataSet, clientesEDTableAdapter, clientesEDsBindingSource e clientesEDBindingNavigator. Adicionalmente, o Visual Studio liga as caixas de texto e a caixa de combinação às respectivas colunas da tabela.

Adicionalmente, o Visual Studio também gera código, que iremos analisar mais à frente.

3.4 Elimine a barra de navegação criada pelo wizard.

3.5 Para todas as caixas de texto recentemente criadas, defina as propriedades BackColor, ReadOnly e TabStop com os valores Control, True e False, respectivamente.

3.6 Adicione três botões ao formulário. Defina as suas propriedades Name, com os valores btnAdicionarCliente, btnAlterarCliente e btnEliminarCliente e Text, com os valores Adicionar Cliente, Alterar Cliente, Eliminar Cliente, de acordo com a figura seguinte (ver pg. 9).

(8)

3.7 Para criar uma consulta com parâmetros, seleccione uma qualquer caixa de texto do formulário que esteja ligada ao data source. Aceda ao seu menu smart tag e escolha a opção Add query.

Vai surgir a caixa de diálogo Search Criteria Builder.

3.8 Atribua o nome FillByIDCliente à nova consulta que está a criar.

(9)

3.9 Na secção Query Text, introduza o código SQL necessário para que fique de acordo com a figura acima ilustrada. Esta consulta vai ser utilizada para obter os clientes que vão ser mostrados neste formulário e no formulário frmManutençãoClientes.

3.10 Pressione o botão OK.

Como resultado, o Visual Studio vai acrescentar, ao formulário, uma barra de ferramentas com uma caixa de texto e um botão para que o utilizador possa introduzir um valor para o parâmetro e depois possa executar a consulta.

Note que, adicionalmente, o Visual Studio também gerou código, que iremos analisar mais à frente.

Vamos ainda adicionar mais duas consultas ao Table Adapter ClientesEDTableAdapter.

3.11 Seleccione, no DataSet Designer, o Table Adapter ClientesEDTableAdapter com o botão direito do rato. Depois, seleccione o comando Add Query.

(10)

Utilize o Table Adapter Query Configuration Wizard para criar a consulta. 3.12 No primeiro passo do wizard, seleccione a opção Use SQL statements.

3.13 Pressione o botão Next.

(11)

3.14 No segundo passo do wizard, seleccione a opção SELECT which returns rows.

3.15 Pressione o botão Next.

3.16 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 os clientes que vão ser mostrados no formulário frmSeleccionarCliente. Note que é usado o operador LIKE na cláusula WHERE, de modo a que seja possível utilizar meta caracteres para representar padrões alfanuméricos. Por exemplo, se o utilizador especificar, na barra de ferramentas para introdução de parâmetros, a cadeia de caracteres ‘Ped%’ para o parâmetro @Nome, irão ser devolvidos os registos dos clientes cujo nome se inicia com as letras Ped.

(12)

3.17 Pressione o botão Next.

3.18 No quarto passo do wizard, mantenha activada a caixa de verificação Fill a DataTable, atribua o valor FillByNome na caixa de texto Method name e desactive a caixa de combinação Return a DataTable.

3.19 Pressione o botão Finish.

(13)

Note que, ao criar uma consulta com parâmetros deste modo, não vai ser acrescentada ao formulário uma nova barra de ferramentas para introdução de parâmetros.

Vamos agora alterar o aspecto da barra de ferramentas criada no passo 3.10, de modo a que tenha a seguinte apresentação.

3.20 Aceda ao menu smart tag da barra de ferramentas criada no passo 3.10 e seleccione o comando Edit Items.

Como resultado, vai ser mostrada a caixa de diálogo Items Collection Editor.

3.21 Na secção Members, Seleccione o botão com o nome FillByIDClienteToolStripButton e, na janela de propriedades do lado

(14)

direito da caixa de diálogo, defina as propriedades Text e DisplayStyle com os valores Procurar e Text, respectivamente.

3.22 Para adicionar um separador à barra de ferramentas, escolha a opção Separator, na caixa de combinação Select item and add to list below. Depois, pressione o botão Add localizado à direita da caixa de combinação.

3.23 De modo análogo ao anterior, adicione uma legenda (label) à barra de ferramentas.

(15)

3.24 Na secção Members, Seleccione a legenda acabada de criar e, na janela de propriedades do lado direito da caixa de diálogo, defina as propriedades Name, Text e DisplayStyle com os valores NomeToolStripLabel, Nome e Text, respectivamente.

3.25 Adicione uma caixa de texto (TextBox) à barra de ferramentas e defina a sua propriedade Name com o valor NomeToolStripTextBox.

3.26 Adicione um botão (Button) à barra de ferramentas e defina as suas propriedades Name, Text e DisplayStyle com os valores FillByNomeToolStripButton, Procurar e Text, respectivamente.

3.27 Pressione o botão OK a caixa de diálogo Items Collection Editor. A barra de ferramentas do formulário passa a ter o seguinte aspecto.

Para adicionar um controlo DataGridView que mostre os dados de uma tabela relacionada com a tabela principal de um formulário, basta arrastar, da janela Data Source, a tabela subordinada para o formulário. Como resultado, o Visual Studio, além de adicionar a grelha ao formulário, também gera os objectos BindingSource e TableAdapter. Adicionalmente, o Visual Studio também gera código, que analisaremos mais à frente, e define as propriedades (DataSource e DataMember) do objecto BindingSource, de modo a que sejam visualizados os dados da tabela relacionada.

3.28 Na janela Data Sources, expanda a caixa de verificação relativa à tabela ClientesED e arraste a tabela subordinada FacturasED para a parte inferior do formulário frmFacturasClientes.

(16)

Como resultado do passo anterior, além do objecto DataGridView, foram também criados os objectos FacturasEDTableAdapter e FacturasEDsBindingSource.

(17)

3.29 Adicione três botões ao formulário. Defina as suas propriedades Name, com os valores btnItensFactura, btnEliminarFactura e btnAdicionarFactura e Text, com os valores Ver Itens da Factura, Eliminar Factura, Adicionar Factura, de acordo com a figura anterior. 3.30 De modo a tornar a grelha apenas disponível para visualização de

dados, aceda ao menu smart tag do comando FacturasEDDataGridView 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 ainda adicionar mais uma consulta ao Table Adapter ClientesEDTableAdapter para obter o valor do último identificador de cliente (IDCliente) atribuído pelo SQL SERVER. Note que o atributo IDCliente é uma coluna IDENTITY.

3.31 Seleccione, no DataSet Designer, o Table Adapter ClientesEDTableAdapter com o botão direito do rato. Depois, seleccione o comando Add Query.

(18)

Utilize o Table Adapter Query Configuration Wizard para criar a consulta. 3.32 No primeiro passo do wizard, seleccione a opção Use SQL statements.

3.33 Pressione o botão Next.

(19)

3.34 No segundo passo do wizard, seleccione a opção SELECT which returns a single value.

3.35 Pressione o botão Next.

3.36 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 cliente (IDCliente) 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.

(20)

3.37 Pressione o botão Next.

3.38 No quarto passo do wizard atribua o valor ObterÚltimoValorIDENTITY ao nome do método que está a criar.

(21)

3.39 Pressione o botão Next.

3.40 Pressione o botão Finish.

Sempre que desejar alterar uma consulta previamente criada, seleccione-a com o botão direito, no respectivo TableAdapter, e escolha o comando Configure.

(22)

Formulário frmSeleccionarCliente

Este formulário mostra, numa grelha, todos os clientes cujo nome estão de acordo com o padrão de pesquisa utilizado no formulário frmFacturasClientes para procurar clientes.

4 Desenho do formulário frmSeleccionarCliente.

4.1 Adicione um novo formulário ao projecto. Para tal, seleccione a opção Add Windows Form do menu Project.

Aparece a caixa de diálogo Add New Item.

4.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. Como pode observar na figura anterior, sugere-se que utilize o prefixo frm para o nome de cada formulário criado, de modo a que fique claro que o ficheiro gerado contém um formulário. Introduza o nome frmSeleccionarCliente.

(23)

4.3 Defina as propriedades Text, StartPosition, MaximizeBox, AutoScaleMode e ControlBox do formulário com os valores Seleccionar cliente, CenterScreen, False, Font e False, respectivamente.

Vamos agora criar um controlo DataGridView ligado à tabela ClientesED para aceder aos clientes que verificam a condição de pesquisa introduzida no formulário frmFacturasClientes.

4.4 Seleccione, na janela Data Sources, a opção DataGridView da caixa de listagem associada à tabela ClientesED.

4.5 Arraste a tabela ClientesED para o formulário. Como resultado, vai ser criado um objecto DataGridView.

Como resultado do passo anterior, além do objecto DataGridView, foram também criados os objectos EditoraDataSet, clientesEDTableAdapter, clientesEDsBindingSource e clientesEDBindingNavigator. Adicionalmente, o Visual Studio liga as caixas de texto e a caixa de combinação às respectivas colunas da tabela.

4.6 Elimine a barra de navegação criada pelo wizard.

(24)

Adicionalmente, o Visual Studio também gera código, que iremos analisar mais à frente.

4.7 Adicione dois botões ao formulário. Defina as suas propriedades Name, com os valores btnSeleccionar e btnCancelar e Text, com os valores Seleccionar e Cancelar, de acordo com a figura anterior.

4.8 De modo a tornar a grelha apenas disponível para visualização de dados, aceda ao menu smart tag do comando FacturasEDDataGridView e desactive as caixas de verificação Enable Adding, Enable Editing e Enable Deleting. Desactive ainda a caixa de verificação Enable Column Reordering.

(25)

Formulário frmManutençãoClientes

Este formulário é utilizado quer para alterar os dados de um cliente já existente, quer para introduzir dados de um novo cliente.

5 Desenho do formulário frmManutençãoClientes.

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

5.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 frmManutençãoClientes.

5.3 Defina as propriedades Text, StartPosition, AutoScaleMode e ControlBox com os valores Manutenção de Clientes, CenterScreen, Font e False.

Vamos agora criar controlos TextBox e ComboBox, a partir de uma fonte de dados, recorrendo à janela Data Sources.

5.4 Seleccione, na janela Data Sources, a opção Details da caixa de listagem associada à tabela ClientesED.

Deste modo, ao arrastar a tabela ClientesED para o formulário irão ser criados objectos Label e TextBox ligados a cada uma das colunas da tabela.

(26)

5.5 Seleccione, na janela Data Sources, a opção ComboBox da caixa de listagem associada à coluna Província da tabela ClientesED.

Deste modo, ao arrastar a tabela ClientesED para o formulário irá ser criado um controlo ComboBox ligado à coluna Província da tabela ClientesED e irão ser criados objectos Label e TextBox ligados a cada uma das restantes colunas da tabela.

5.6 Arraste a tabela ClientesED da janela Data Sources para o formulário do projecto.

(27)

Como resultado do passo anterior, além dos objectos Label e TextBox, criados para cada coluna da tabela, foram também criados os objectos

EditoraDataSet, clientesEDTableAdapter, clientesEDsBindingSource,

clientesEDBindingNavigator e ComboBox. Adicionalmente, o Visual Studio liga as caixas de texto e a caixa de combinação às respectivas colunas da tabela.

Adicionalmente, o Visual Studio gera também código, que iremos analisar mais à frente.

5.7 Elimine a barra de navegação criada pelo wizard.

5.8 Elimine a legenda IDCliente (IDClienteLabel) e a caixa de texto correspondente (IDClienteTextBox) criadas pelo assistente, pois o atributo IDCliente é uma coluna IDENTITY e, consequentemente, o utilizador não deve aceder aos seus valores.

De seguida, vamos ligar o controlo Combobox à tabela Províncias, de modo a que seja possível, ao utilizador, atribuir a província para um cliente, a partir das províncias existentes na tabela Províncias.

5.9 Aceda ao menu smart tag do controlo ProvínciaComboBox. Active a caixa de verificação Use data bound items. Como resultado, vão ser mostradas as propriedades de ligação.

(28)

5.10 Para especificar o valor da propriedade Data Source, seleccione a tabela Províncias, de acordo com a figura seguinte.

5.11 Para especificar o valor da propriedade Display Member, seleccione o campo Província do controlo ProvínciasBindingSource, de acordo com a figura seguinte.

5.12 Para especificar o valor da propriedade Value Member, seleccione o campo Código do controlo ProvínciasBindingSource, de acordo com a figura seguinte.

(29)

5.13 Para especificar o valor da propriedade Selected Value, seleccione o campo Província do controlo ClientesEDBindingSource, de acordo com a figura seguinte.

5.14 De modo resumido, os valores para as propriedades Data Source, Display Member, Value Member e Selected Value, devem estar de acordo com a imagem seguinte.

(30)

5.15 Seleccione a opção DropDownList para a propriedade DropDownStyle do controlo ProvínciaComboBox, de modo a impedir que o utilizador introduza dados nesta caixa de combinação.

5.16 Altere, na secção DataBindings do controlo ProvínciaComboBox, o valor da propriedade Text para none, de modo a que o valor armazenado nesta propriedade seja ligado ao data source.

5.17 Adicione dois botões ao formulário. Defina as suas propriedades Name, com os valores btnAceitar e btnCancelar e Text, com os valores Aceitar e Cancelar, de acordo com a figura seguinte.

5.18 Defina a propriedade AcceptButton do formulário com o valor btnAceitar.

5.19 Defina a propriedade Tag dos controlos NomeTextBox,

EndereçoTextBox, LocalidadeTextBox, ProvínciaComboBox e

CódigoPostalTextBox com os valores Nome, Endereço, Localidade, Província e Código Postal, respectivamente.

(31)

Formulário frmItensFactura

Este formulário permite visualizar os itens de uma factura seleccionada na grelha do formulário frmFacturasClientes.

6 Desenho do formulário frmItensFactura.

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

6.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 frmItensFactura.

6.3 Defina as propriedades Text, StartPosition e AutoScaleMode, com os valores Ver Itens Factura, WindowsDefaultLocation e Font.

Vamos agora editar o comando SQL gerado, de modo predefinido, pelo assistente para o Table Adapter ItensFacturasED, de modo a que incluía uma operação de junção interna entre as tabelas Produtos e ItensFacturasED. 6.4 Seleccione, no DataSet Designer, a consulta Fill do Table Adapter

ItensFacturasED.

6.5 Na janela de propriedades, toque na elipse à direita da propriedade CommandText.

(32)

Como resultado, é mostrada a caixa de diálogo Query Builder, apresentada a seguir.

6.6 Toque com o lado direito do rato no painel superior do construtor de consultas e seleccione o comando Add Table.

(33)

6.7 Como resultado, é mostrada a caixa de diálogo Add Table. Seleccione a tabela Produtos e pressione o botão Add. Depois, pressione o botão Close.

6.8 Ainda no painel superior do construtor de consultas, construa a consulta de acordo com a imagem seguinte.

(34)

6.9 Depois de testar a execução da consulta, através do botão Execute Query, pressione o botão OK.

Como resultado, vai surgir uma caixa de diálogo a questionar se deseja regenerar os comandos de UPDATE como base no novo comando SELECT. Por outras palavras, se pretende modificar as instruções INSERT, UPDATE e DELETE, de modo a que estejam de acordo com o novo comando SELECT.

(35)

6.10 Pressione o botão Não, dado que o Visual Studio não pode gerar instruções de INSERT, UPDATE e DELETE que contenham campos de mais do que uma tabela.

Assim, as instruções de INSERT, UPDATE e DELETE vão permanecer inalteradas, de modo a incluírem os atributos da tabela principal.

6.11 Arraste o atributo Factura da tabela ItensFacturasED da janela Data Sources para o formulário do projecto.

Como resultado do passo anterior, além dos objectos Label e TextBox, criados para a coluna Factura, são também criados os objectos

EditoraDataSet, ItensFacturasEDTableAdapter,

ItensFacturasEDBindingSource e ItensFacturasEDBindingNavigator. Adicionalmente, o Visual Studio gera também código, que iremos analisar mais à frente.

6.12 Arraste a tabela ItensFacturasED da janela Data Sources para o formulário do projecto.

6.13 Aceda ao menu smart tag da grelha e seleccione o comando Edit Columns.

Como resultado, surge a caixa de diálogo Edit Columns.

(36)

6.14 Na secção Selected Columns, seleccione a coluna Factura e pressione o botão Remove, de modo a remover esta coluna da grelha.

6.15 Seleccione a coluna Designação e toque no botão para a colocar em segundo lugar da lista, a seguir à coluna Produto.

6.16 Elimine a barra de navegação criada pelo wizard.

Neste momento, o formulário deve apresentar o seguinte aspecto.

(37)

6.17 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 ainda adicionar mais uma consulta ao Table Adapter ItensFacturasEDTableAdapter para obter os itens de uma factura. Esta consulta utiliza o identificador da factura seleccionada na grelha do formulário frmFacturasClientes.

6.18 Seleccione, no DataSet Designer, o Table Adapter ItensFacturasEDTableAdapter com o botão direito do rato. Depois, seleccione o comando Add Query.

(38)

Utilize o Table Adapter Query Configuration Wizard para criar a consulta. 6.19 No primeiro passo do wizard, seleccione a opção Use SQL statements.

6.20 Pressione o botão Next.

6.21 No segundo passo do wizard, seleccione a opção SELECT which returns rows.

(39)

6.22 Pressione o botão Next.

6.23 No terceiro passo do wizard, pressione o botão Query Builder para construir a consulta graficamente, de acordo com a figura seguinte. Esta consulta vai ser utilizada para obter os itens das facturas que vão ser mostrados neste formulário. Note que, além da operação de junção interna, é também utilizado um parâmetro.

(40)

6.24 Na caixa de diálogo Query Builder, pressione o botão OK. 6.25 No terceiro passo do wizard, pressione o botão Next.

6.26 No quarto passo do wizard, mantenha activada a caixa de verificação Fill a DataTable, atribua o valor FillByFactura na caixa de texto Method name e desactive a caixa de combinação Return a DataTable, de acordo com a figura seguinte.

(41)

Pressione o botão Finish.

(42)

Formulário frmAdicionarFactura

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.

(43)

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.

(44)

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.

(45)

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.

(46)

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.

(47)

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.

(48)

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.

(49)

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.

(50)

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.

(51)

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.

(52)

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.

(53)

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.

(54)

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.

(55)

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.

(56)

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.

(57)

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.

(58)

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.

Referências

Documentos relacionados

EDITAL N.º 001/2019- LEDOC/UNIFAP/MAZAGÃO DE 22 de Março de 2019 A Coordenação do Curso de Licenciatura em Educação do Campo/Campus Mazagão, da

O valor da reputação dos pseudônimos é igual a 0,8 devido aos fal- sos positivos do mecanismo auxiliar, que acabam por fazer com que a reputação mesmo dos usuários que enviam

servidores, software, equipamento de rede, etc, clientes da IaaS essencialmente alugam estes recursos como um serviço terceirizado completo...

De acordo com Fonseca, Fachín-Terán e Fonseca (2019) esse querer conhecer mais, que por vezes se vê investigativo, questionador, contribui com o desenvolvimento do

Em nossa opinião, as demonstrações contábeis anteriormente referidas apresentam adequadamente, em todos os aspectos relevantes, a posição patrimonial e financeira do Banco do

[r]

Fibras poliméricas têm sido sistematicamente incorporadas às formulações de concretos refratários com o objetivo de diminuir os riscos de explosão durante o processo de

A Sementinha dormia muito descansada com as suas filhas. Ela aguardava a sua longa viagem pelo mundo. No entanto, sempre vivera junto ao pomar do António Seareiro e até