Continuando o desenvolvimento da nossa aplicação ASP.NET com Delphi for .NET, sobre um sistema on-line de vídeo-locadora, veremos agora como confirmar a locação a partir de uma reserva e fazer a locação de vídeos. Mão na massa!
Confirmando a locação a partir de uma reserva
Realizada a reserva através da página do usuário, faremos agora uma página destinada à área administrativa do sistema para concretizar uma reserva transformando-a para uma locação, supondo que ocorra a retirada do vídeo. Caso a retirada do vídeo não ocorra no prazo previsto, a mesma será ignorada nas consultas a seguir levando em consideração a data prevista e a data atual. No menu File|New>Other>Delphi for .NET Projects>New ASP.NET Files>ASP.NET Page crie uma nova página com o nome de “a_reservas.aspx” e adicione ao corpo dela uma tabela de 4 linhas e 1 coluna com 700 pixels de largura. Arraste para a primeira linha da tabela o uccontrole.ascx que fará o controle de usuários autenticados nesta página. Na segunda linha escreva o texto de identificação “Manutenção de Reservas” e na linha seguinte adicione um DataGrid(“gridReservas”).
Adicione por final um Button(“btnVoltar”). Selecionando o gridReservas, clique sobre o mesmo com o botão direito do mouse e selecione o item Auto Format aplicando a ele um estilo de cores e fontes. Clicando novamente selecione agora o item Property Builder onde iremos modificar a estrutura da categoria Columns, onde no topo da janela desmarque o item Create columns automatically at run time. Em seguida clique no item Bound Column em Available columns e envie-o para Selected columns. Agora selecione-o e atribua o valor COD_LOCACAO na propriedade Data Field, onde receberemos o valor do campo na tabela Locacao através do result set da Select. Desmarque também a opção Visible da coluna.
Agora insira uma nova coluna, ou seja, clique novamente
Utilizando a tecla de atalho F12, vá até o código da página e declare na seção Private do código a procedure “CriaListaReservas” que irá preencher o gridReservas com os registros válidos encontrados no Select ao banco de dados. Utilize a teclas Ctrl+Shift+C para criar a implementação do procedimento e adicione ao mesmo o código da Listagem 1. O método criado é muito semelhante aos outros já criados, utiliza de componentes criados e instanciados em runtime no objeto SelectCommand do DataAdapter e passamos a instrução de SQL que obedecerá os parâmetros de registros com Status igual a “R” com a data prevista de devolução/vencimento maior ou igual a data atual (“Today”);
Listagem 1. Método para carregamento das reservas ativas
procedure TWebForm2.CriaListaReservas;
var
Comand: FbCommand;
DataAdapter: FbDataAdapter;
Ds: DataSet;
begin
{ Criação dos objetos de conexão }
DataAdapter := FbDataAdapter.Create;
Comand := FbCommand.Create;
{ Atribuição da string de conexão e abertura do BD}
Conn.ConnectionString := strConexao;
Conn.Open;
{ Atribuição dos atributos de seleção dos dados }
DataAdapter.SelectCommand := Comand;
DataAdapter.SelectCommand.Connection :=
DataAdapter.SelectCommand.CommandText :=
'SELECT LOCACAO.COD_LOCACAO, VIDEOS.TITULO,
'CLIENTES.NOME, ' +
'LOCACAO.DATA FROM LOCACAO ' +
' INNER JOIN VIDEOS ON (LOCACAO.VIDEO =
'VIDEOS.COD_VIDEO) ' +
' INNER JOIN CLIENTES ON (LOCACAO.CLIENTE =
'CLIENTES.COD_CLIENTE) ' +
'WHERE ((LOCACAO.STATUS = ''R'') AND (LOCACAO
'.PREV_DEVOLUCAO >= ''TODAY'')) ORDER BY
'LOCACAO.DATA';
{ Criação em memória do DataSet auxliar }
Ds := DataSet.Create;
DataAdapter.Fill(Ds, 'Titulo');
try
...