Debo Construir una aplicación Delphi pero soy novata en el lenguaje quisiera saber si alguién tiene algún código que permita visualizar, ingresar y buscar información de pasajeros en una determinada agencia de viajes. La información de los pasajeros debe estar almacenada en una base de datos (se deja a elección el sistema administrador de base de datos a usar). Esta base de datos debe contener una tabla con la siguiente estructura:
Tabla : Pasajero
Campos: nombre_pasajero texto de largo 50
ciudad_origen texto de largo 50
ciudad_destino texto de largo 50
fecha_viaje numérico
medio_transporte texto de largo 1 (‘T’:Terrestre, ‘A’: Aéreo)
linea_aerea texto de largo 50
empresa_transporte texto de largo 50
La aplicación debe comenzar con un formulario que visualice todos los pasajeros de la agencia, para esto debe leer todos los datos de la tabla Pasajero.
El botón Agregar debe pasar al formulario de Ingreso y el botón Buscar debe pasar al formulario de Búsqueda.
El formulario de Ingreso debe tener la siguiente forma:
El botón Grabar debe validar que todos los datos deben estar ingresados, insertar un nuevo registro en la tabla Pasajero y volver al primer formulario. Al seleccionar el medio de transporte Terrestre se debe habilitar el ingreso de la empresa transportista y se deben deshabilitar el medio de transporte aéreo y el ingreso de la línea aérea. Lo mismo debe suceder en el caso inverso.
El botón Cancelar debe volver al primer formulario sin ingresar el pasajero.
El formulario de Búsqueda debe tener la siguiente forma:
Sólo se debe permitir ingresar el nombre del pasajero. El botón Buscar debe validar que se ingresó el nombre del pasajero, buscar este pasajero en la tabla Pasajero y si no existe enviar un mensaje de error. Si el pasajero existe debe desplegar el resto de los datos.
El botón Volver debe volver al primer formulario.
Cualquier ayuda la agradeceré.
Publicado:
Jue Sep 14, 2006 1:31 pm
alonsojpd Administrador/Moderador
Registrado: Sep 16, 2003 Mensajes: 2687
Asunto: RE: Agencia de viajes en Delphi
En primer lugar crearemos la tabla "pasajero", para ello hemos utilizado "Database Desktop" (aplicación para creación y modificación de tablas que incluye Delphi). Como tipo de base de datos hemos utilizando Paradox (base de datos por defecto para Delphi).
Desde Delphi realizamos el resto de la aplicación (los tres formularios, y el acceso a la base de datos).
Puedes descargar el código fuente complento desarrollado en Delphi 6 desde aquí.
procedure TformAgregarPasajero.Button2Click(Sender: TObject);
begin
//cancelamos la inserción y cerramos el formulario
md.tPasajero.Cancel;
close;
end;
procedure TformAgregarPasajero.FormClose(Sender: TObject;
var Action: TCloseAction);
begin
md.tPasajero.Cancel;
//liberamos el formulario de memoria
Action := caFree;
end;
procedure TformAgregarPasajero.Button1Click(Sender: TObject);
var
seguir : boolean;
begin
//comprobamos que se han introducido todos los datos
if txtPasajero.Text = '' then
begin
MessageDlg('Debe introducir el nombre del pasajero.', mtWarning, [mbok], 0);
txtPasajero.SetFocus;
end
else
begin
if txtCO.Text = '' then
begin
MessageDlg('Debe introducir la ciudad de origen.', mtWarning, [mbok], 0);
txtCO.SetFocus;
end
else
begin
if txtCD.Text = '' then
begin
MessageDlg('Debe introducir la ciudad de destino.', mtWarning, [mbok], 0);
txtCD.SetFocus;
end
else
begin
if md.tPasajeroFecha_viaje.AsString = '' then
begin
MessageDlg('Debe introducir la fecha del viaje.', mtWarning, [mbok], 0);
txtFV.SetFocus;
end
else
begin
if txtMedioT.Text = '' then
begin
MessageDlg('Debe introducir el medio de transporte.', mtWarning, [mbok], 0);
txtMedioT.SetFocus;
end
else
begin
seguir := true;
if (txtMedioT.Text = 'Terrestre') and (txtEmpresaT.Text = '') then
begin
seguir := false;
MessageDlg('Debe introducir la empresa de transporte.', mtWarning, [mbok], 0);
txtEmpresaT.SetFocus;
end;
if (txtMedioT.Text = 'Aéreo') and (txtLinea.Text = '') and (seguir = true) then
begin
seguir := false;
MessageDlg('Debe introducir la línea aérea.', mtWarning, [mbok], 0);
txtLinea.SetFocus;
end;
if seguir then
begin
if txtMedioT.Text = 'Aéreo' then
md.tPasajeroMedio_transporte.Value := 'A';
if txtMedioT.Text = 'Terrestre' then
md.tPasajeroMedio_transporte.Value := 'T';
md.tPasajero.Post;
Close;
end;
end;
end;
end;
end;
end;
end;
procedure TformAgregarPasajero.FormCreate(Sender: TObject);
begin
md.tPasajero.Insert;
end;
procedure TformAgregarPasajero.txtMedioTClick(Sender: TObject);
begin
if txtMedioT.Text = 'Terrestre' then
begin
txtLinea.Text := '';
txtLinea.Enabled := false;
lLineaAerea.Enabled := false;
lEmpresaTransporte.Enabled := true;
txtEmpresaT.Enabled := true;
end;
if txtMedioT.Text = 'Aéreo' then
begin
txtEmpresaT.Text := '';
txtEmpresaT.Enabled := false;
lEmpresaTransporte.Enabled := false;
lLineaAerea.Enabled := true;
txtLinea.Enabled := true;
end;
end;
end.
El código fuente del formulario Buscar formBuscarPasajero:
procedure TformBuscarPasajero.bBuscarClick(Sender: TObject);
begin
if txtNombre.Text <> '' then
begin
//utilizamos la función "locate" para realizar la búsqueda
if md.tPasajero.Locate('nombre_pasajero', txtNombre.Text, []) then
begin
//mostramos el panel donde se muestran los datos del pasajero buscado
gDatos.Visible := true;
//ampliamos el tamaño del formulario
Height := 323;
//para el desplegable de Medio de transporte (según sea A = Aéreo ó T = Terrestre)
if md.tPasajeroMedio_transporte.AsString = 'A' then
txtMedioT.ItemIndex := txtMedioT.Items.IndexOf ('Aéreo');
if md.tPasajeroMedio_transporte.AsString = 'T' then
txtMedioT.ItemIndex := txtMedioT.Items.IndexOf ('Terrestre');
end
else
begin
//ocultamos el panel donde se muestran los datos del pasajero buscado
gDatos.Visible := False;
//reducimos el tamaño del formulario
Height := 68;
MessageDlg('No se ha encontrado ningún pasajero con el nombre especificado.', mtWarning, [mbok], 0);
txtNombre.SetFocus;
end;
end
else
begin
MessageDlg('Debe introducir el nombre del pasajero a buscar.', mtWarning, [mbok], 0);
txtNombre.SetFocus;
end;
end;
procedure TformBuscarPasajero.bCancelarClick(Sender: TObject);
begin
md.tPasajero.Cancel;
close;
end;
procedure TformBuscarPasajero.FormClose(Sender: TObject;
var Action: TCloseAction);
begin
formmenuprincipal.vtMostrarDatos := false;
md.tPasajero.Cancel;
Action := caFree;
end;
procedure TformBuscarPasajero.Button1Click(Sender: TObject);
var
seguir : boolean;
begin
//comprobamos que se han introducido todos los datos
if txtPasajero.Text = '' then
begin
MessageDlg('Debe introducir el nombre del pasajero.', mtWarning, [mbok], 0);
txtPasajero.SetFocus;
end
else
begin
if txtCO.Text = '' then
begin
MessageDlg('Debe introducir la ciudad de origen.', mtWarning, [mbok], 0);
txtCO.SetFocus;
end
else
begin
if txtCD.Text = '' then
begin
MessageDlg('Debe introducir la ciudad de destino.', mtWarning, [mbok], 0);
txtCD.SetFocus;
end
else
begin
if md.tPasajeroFecha_viaje.AsString = '' then
begin
MessageDlg('Debe introducir la fecha del viaje.', mtWarning, [mbok], 0);
txtFV.SetFocus;
end
else
begin
if txtMedioT.Text = '' then
begin
MessageDlg('Debe introducir el medio de transporte.', mtWarning, [mbok], 0);
txtMedioT.SetFocus;
end
else
begin
seguir := true;
if (txtMedioT.Text = 'Terrestre') and (txtEmpresaT.Text = '') then
begin
seguir := false;
MessageDlg('Debe introducir la empresa de transporte.', mtWarning, [mbok], 0);
txtEmpresaT.SetFocus;
end;
if (txtMedioT.Text = 'Aéreo') and (txtLinea.Text = '') and (seguir = true) then
begin
seguir := false;
MessageDlg('Debe introducir la línea aérea.', mtWarning, [mbok], 0);
txtLinea.SetFocus;
end;
if seguir then
begin
if txtMedioT.Text = 'Aéreo' then
md.tPasajeroMedio_transporte.Value := 'A';
if txtMedioT.Text = 'Terrestre' then
md.tPasajeroMedio_transporte.Value := 'T';
md.tPasajero.Post;
Close;
end;
end;
end;
end;
end;
end;
end;
procedure TformBuscarPasajero.FormCreate(Sender: TObject);
begin
//ocultamos el panel donde se muestran los datos del pasajero buscado
gDatos.Visible := False;
//reducimos el tamaño del formulario
Height := 68;
//si se ha hecho doble clic sobre algún pasajero del formulario principal lo mostramos directamente
if formMenuPrincipal.vtMostrarDatos then
begin
gDatos.Visible := true;
Height := 323;
end;
end;
procedure TformBuscarPasajero.txtMedioTClick(Sender: TObject);
begin
if txtMedioT.Text = 'Terrestre' then
begin
txtLinea.Text := '';
txtLinea.Enabled := false;
lLineaAerea.Enabled := false;
lEmpresaTransporte.Enabled := true;
txtEmpresaT.Enabled := true;
end;
if txtMedioT.Text = 'Aéreo' then
begin
txtEmpresaT.Text := '';
txtEmpresaT.Enabled := false;
lEmpresaTransporte.Enabled := false;
lLineaAerea.Enabled := true;
txtLinea.Enabled := true;
end;
end;
procedure TformBuscarPasajero.bVolverClick(Sender: TObject);
begin
close;
end;
end.
El código fuente del módulo de datos (data module) md:
Puede publicar nuevos temas en este foro No puede responder a temas en este foro No puede editar sus mensajes en este foro No puede borrar sus mensajes en este foro No puede votar en encuestas en este foro
Visita nuestro nuevo sitio web con programas y contenidos actualizados: Proyecto A