Tarefa Orientada 5

Propaganda
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.
Visual Studio 2005
1
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.
Visual Studio 2005
2
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.
Visual Studio 2005
3
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.
Visual Studio 2005
4
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
Visual Studio 2005
Solution Explorer
5
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.
Visual Studio 2005
6
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).
Visual Studio 2005
7
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.
Visual Studio 2005
8
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.
Visual Studio 2005
9
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.
Visual Studio 2005
10
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.
Visual Studio 2005
11
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.
Visual Studio 2005
12
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
Visual Studio 2005
13
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.
Visual Studio 2005
14
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.
Visual Studio 2005
15
Como resultado do passo anterior, além do objecto DataGridView, foram
também
criados
os
objectos
FacturasEDTableAdapter
e
FacturasEDsBindingSource.
Visual Studio 2005
16
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.
Visual Studio 2005
17
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.
Visual Studio 2005
18
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.
Visual Studio 2005
19
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.
Visual Studio 2005
20
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.
Visual Studio 2005
21
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, sugerese 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.
Visual Studio 2005
22
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.
Visual Studio 2005
23
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.
Visual Studio 2005
24
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.
Visual Studio 2005
25
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.
Visual Studio 2005
26
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.
Visual Studio 2005
27
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.
Visual Studio 2005
28
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.
Visual Studio 2005
29
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
EndereçoTextBox,
Tag
dos
LocalidadeTextBox,
controlos
NomeTextBox,
ProvínciaComboBox
e
CódigoPostalTextBox com os valores Nome, Endereço, Localidade,
Província e Código Postal, respectivamente.
Visual Studio 2005
30
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.
Visual Studio 2005
31
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.
Visual Studio 2005
32
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.
Visual Studio 2005
33
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.
Visual Studio 2005
34
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,
EditoraDataSet,
ItensFacturasEDBindingSource
são
também
criados
os
objectos
ItensFacturasEDTableAdapter,
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.
Visual Studio 2005
35
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.
Visual Studio 2005
36
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.
Visual Studio 2005
37
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.
Visual Studio 2005
38
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.
Visual Studio 2005
39
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.
Visual Studio 2005
40
Pressione o botão Finish.
Visual Studio 2005
41
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.
Visual Studio 2005
42
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.
Visual Studio 2005
43
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.
Visual Studio 2005
44
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.
Visual Studio 2005
45
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.
Visual Studio 2005
46
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.
Visual Studio 2005
47
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.
Visual Studio 2005
48
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.
Visual Studio 2005
49
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.
Visual Studio 2005
50
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.
Visual Studio 2005
51
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.
Visual Studio 2005
52
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.
Visual Studio 2005
53
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.
Visual Studio 2005
54
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.
Visual Studio 2005
55
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.
Visual Studio 2005
56
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.
Visual Studio 2005
57
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.
Visual Studio 2005
58
Download