Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 08-09-2006
LAFALOFO LAFALOFO is offline
Registrado
 
Registrado: ago 2006
Posts: 6
Poder: 0
LAFALOFO Va por buen camino
Ayuda con este código que me dejaron

Hola qui de nuevo, pues resulta que sigo sin avanzar mucho con esto del Delphi

Bueno, resulta que me han dejado la aplicacion de un compañero que ya no trabaja aqui y me han pedido que haga alguna smodificaciones pero la neta es que no me encuentro en estas ondas... tratare de explicar lo que pasa:

El sistema es para capturar las ordenes que llegan para reparacion de computadoras y demas, se llena la forma (el usuario lo hace) y se guarda en una base de datos al presionar el boton aceptar (BotonAceptarClick) y ahora lo que quieres que haga, es que cuando le dan aceptar, lps datos se guarden pero ademas salga un MessageDlg donde le den la opcion de capturar otra orden (otra pantalla de captura) y no que simplemente se cierre la ventana de captura, ojala me haya explicado... el codigo de el evento onclick para el boton aceptar es este:


procedure TFormaOrdenesServicio.BotonAceptarClick(Sender: TObject);
begin
PanelDatos.SetFocus;
if ValidarDatos then begin
try
//
FuenteDatos.DataSet.UpdateRecord;
xValorId := FuenteDatos.DataSet.FieldByName(cCamposId).Value;
//
dbConsulta.Requery;

//
if FuenteDatos.DataSet.RecordCount > 1 then begin
FuenteDatos.DataSet.Locate(cCamposId, xValorId, [loCaseInsensitive] );
end;
//
HabilitarDatos(false);
HabilitarBotonAceptar(false);
HabilitarBotonProceso(true);
except on E:Exception do
MessageDlg('Verifique su Información, ' +
'ya que esta Provocando el Siguiente Error: ' + #13 + #13 +
E.Message, mtError, [mbOk], 0);
end;
end;
end;



-Panel Datos es el panel donde estan todos los TDBEdit donde se capturan los datos.
-ValidarDatos es un procedimeinto donde valida los campos capturados.


Aqui la onda es que ese MessageDlg debe salir despues de la validacion de datos (ValidarDatos) y despues se `pregunta si se desea capturar otra orden o no, en caso que digan No, se hace UpdateRecord en la base de datos y en caso que se diga Si, se hace el Update record y se manda a llamar de nuevo la orden de captura que en este caso se llama FormaOrdenesServicio...

Asi que... ayudenme por favor, no se en que parte del codigo ponerle ese MessageDlg y tampoco se como escribir el codigo en base a este codigo que me han dejado.





Responder Con Cita
  #2  
Antiguo 08-09-2006
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
Hola en el principio de este codigo po

if MessageBox(Handle,
PChar('Realmente Desea guardar la orden' + #13#10 +
'O seguir con el proceso'),
PChar('Guardar Orden'),
MB_OKCANCEL + MB_DEFBUTTON1 + MB_APPLMODAL) = IDOK then
begin
end;

Con esto le envia un mensaje si acepta, la guarda, si cancela no pasa nada.

Saludos
Responder Con Cita
  #3  
Antiguo 08-09-2006
LAFALOFO LAFALOFO is offline
Registrado
 
Registrado: ago 2006
Posts: 6
Poder: 0
LAFALOFO Va por buen camino
Gracias pero aun no hace loq ue busco!

Muchas gracias coleguita, no tenia ni idea...

Agregue ese fragmento de codigo al mio y resulta muy bien, nada mas que lo puse abajito de la validacion de datos sino, de nada servia esa validacion, ahora, despues de la calidacion, al momento en que se da Aceptar, aparece el mensaje; si le das Aceptar, termina el proceso, y si se da cancelar (el otro boton pues) no hace nada de nada jeje...

Ahora, lo que quisiera hacer es preguntar si se desea guardar la orden o capturar otra, en caso que digan GUARDAR, se compelta el prceso tal y como lo tengo ahora, pero si se da CAPTURAR OTRO que se mande llamar de nuevo la forma de captura...

Como le hago?


Otra cosa, como puedo modificar las leyendas de los botones para que en vez que em salga si/no o Aceptar/Cancelar, pueda ponerle: Guardar/Capturar Otra dentro de este mismo mensaje?


Bueno ya con eso resolveria mi mistico problema, gracias por la ayuda al coleguita Caral y ojala tambien puedan ayudarme en esto... le spongo el codigo tal y como lo modifique:


procedure TFormaOrdenesServicio.BotonAceptarClick(Sender: TObject);
begin
PanelDatos.SetFocus;
if ValidarDatos then begin
if MessageBox(Handle,
PChar('Desea Guardar la Orden y Cerrar la Ventana' + #13#10 +
' o Desea Capturar Otra Orden de Servicio'),
PChar('Confirmacion de Captura'),
MB_OKCANCEL + MB_DEFBUTTON1 + MB_APPLMODAL) = IDOK then
try
//
FuenteDatos.DataSet.UpdateRecord;
xValorId := FuenteDatos.DataSet.FieldByName(cCamposId).Value;
//
//GrabarBitacora;
dbConsulta.Requery;
//
if FuenteDatos.DataSet.RecordCount > 1 then begin
FuenteDatos.DataSet.Locate(cCamposId, xValorId, CaseInsensitive] );
end;
//
HabilitarDatos(false);
HabilitarBotonAceptar(false);
HabilitarBotonProceso(true);
ESH.Hide;
Etiqueta13.Hide;
Campo13.Hide;
Etiqueta14.Hide;
Campo14.Hide;
ESS.Hide;
Etiqueta15.Hide;
Campo15.Hide;
Etiqueta16.Hide;
Campo16.Hide;
EOS.Hide;
Etiqueta17.Hide;
Campo17.Hide;
Etiqueta18.Hide;
Campo18.Hide;
except on E:Exception do
MessageDlg('Verifique su Información, ' +
'ya que esta Provocando el Siguiente Error: ' + #13 + #13 +
E.Message, mtError, [mbOk], 0);
end;
end;
end;




Gracias de antemano a todos los foreros.
Responder Con Cita
  #4  
Antiguo 08-09-2006
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.233
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Por favor, esto es un "comentario" para ambos (sobre todo para Caral que lleva 73 mensajes en estos foros!!).

Utilizad TAG's cuando pongáis código Delphi en los mensajes.

==> ¿Cómo se ponen los TAG's? Pincha aquí, es sencillo.
.
.
.
.
.
Gracias.
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #5  
Antiguo 12-09-2006
LAFALOFO LAFALOFO is offline
Registrado
 
Registrado: ago 2006
Posts: 6
Poder: 0
LAFALOFO Va por buen camino
Aqui estoy de neuvo con este codigo que me dejaron para corregir, me ha costado un poco de trabajo pues soy nuevo en Delphi y ademas este tio hace todo por codigoy eso me lo complica mas... en fin, pude meterle este MessageDlg al inicio del procedimeinto BotonAceptarClick, de tal forma que si le dan No, se guardan los datos capturados en la base de datos... peeero, no se donde ni como ponerle para que cuando den Si, me dibuje otra orden de captura, que en este caso se llama TFormaOrdenesServicio.
Podrian ayudarme por favor?
No se en que parte del codigo ponerlo y no se la sintaxis que debo poner, supongo sera algo como mrYes then algo asi peron no se donde


Código Delphi [-]
procedure TFormaOrdenesServicio.BotonAceptarClick(Sender: TObject);
begin
  PanelDatos.SetFocus;
  if ValidarDatos then begin
  if MessageDlg('Desea Capturar Otra Orden de Servicio ?', mtConfirmation,
                   [mbYes, mbNo], 0) = mrNo then
      try
      FuenteDatos.DataSet.UpdateRecord;
      xValorId  := FuenteDatos.DataSet.FieldByName(cCamposId).Value;
      //
      //GrabarBitacora;
      dbConsulta.Requery;
      //
      if FuenteDatos.DataSet.RecordCount > 1 then begin
         FuenteDatos.DataSet.Locate(cCamposId, xValorId, [loCaseInsensitive] );
      end;
      //
      HabilitarDatos(false);
      HabilitarBotonAceptar(false);
      HabilitarBotonProceso(true);
      ESH.Hide;
      Etiqueta13.Hide;
      Campo13.Hide;
      Etiqueta14.Hide;
      Campo14.Hide;
      ESS.Hide;
      Etiqueta15.Hide;
      Campo15.Hide;
      Etiqueta16.Hide;
      Campo16.Hide;
      EOS.Hide;
      Etiqueta17.Hide;
      Campo17.Hide;
      Etiqueta18.Hide;
      Campo18.Hide;
    except on E:Exception do
      MessageDlg('Verifique su Información, ' +
                 'ya que esta Provocando el Siguiente Error: ' + #13 +  #13 +
                 E.Message, mtError, [mbOk], 0);
    end;
  end;
end;



Gracias de antemano.
Responder Con Cita
  #6  
Antiguo 12-09-2006
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.107
Poder: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

Bueno. Algo así podría valer:

Código Delphi [-]
  case MessageDlg('Desea Capturar Otra Orden de Servicio ?', mtConfirmation, [mbYes, mbNo], 0) of
    mrYes:
    begin
      ShowMessage('Pulsaste el botón mbYes');
    end;
    mrNo:
    begin
      ShowMessage('Pulsaste el botón mbNo');
    end;
  else
    ShowMessage('Cerraste el diálogo sin pulsar ningún botón');
  end;

O algo así también:

Código Delphi [-]
  if (MessageDlg('Desea Capturar Otra Orden de Servicio ?',
   mtConfirmation, [mbYes, mbNo], 0) = mrNo) then
  begin
    ShowMessage('Pulsaste el botón mbNo');
  end
  else
  begin
    ShowMessage('No pulsaste el botón mbNo');
  end;
__________________
David Esperalta
www.decsoftutils.com

Última edición por dec fecha: 12-09-2006 a las 20:36:51.
Responder Con Cita
  #7  
Antiguo 14-09-2006
LAFALOFO LAFALOFO is offline
Registrado
 
Registrado: ago 2006
Posts: 6
Poder: 0
LAFALOFO Va por buen camino
Tadaaaan!

Soloq ueria agradecer a los foreros ya que sus consejos e ideas me han ayudado mucho y por fin he resuelto este problemilla, que viendolo bien no era nada complicado.


GRAX
Responder Con Cita
  #8  
Antiguo 14-09-2006
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
Hola LAFALOFO
Para terminar y erriquecer un poco la explicacion de mi maestro Dec. con su permiso y sabiendo que se te presento esta duda antes solo queria darte estos codigos de mensajes que se, te cuestan un poco, para que los puedas usar en otra ocasion.

Si, No Cancela
Código Delphi [-]
 if MessageBox(Handle, 
                PChar('Mensaje'), 
                PChar('Título'),
                MB_YESNOCANCEL + MB_DEFBUTTON1 + MB_APPLMODAL) = IDYES then
  begin
  end;

reintentar, cancelar
Código Delphi [-]
if MessageBox(Handle, 
                PChar('Mensaje'), 
                PChar('Título'),
                MB_RETRYCANCEL + MB_DEFBUTTON1 + MB_APPLMODAL) = IDRETRY then
  begin
  end;

Anular, reintentar, omitir
Código Delphi [-]
  if MessageBox(Handle, 
                PChar('Mensaje'), 
                PChar('Título'),
                MB_ABORTRETRYIGNORE + MB_DEFBUTTON1 + MB_APPLMODAL) = IDRETRY then
  begin
  end;
Se que esto es sencillo pero lo pongo puesto que tanto tu como a otro le podria servir en algun momento.
Saludos y suerte
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Que significa este codigo? D-MO PHP 14 23-01-2006 11:08:21
No me gusta este Codigo, Me ayudan?! marceloalegre Varios 5 28-10-2005 02:27:27
Alguno conoce este codigo? gatsu PHP 2 29-08-2004 09:39:09
Por que no funciona este codigo en XP? kia Varios 3 15-10-2003 22:39:33
¿Qué significa este Código de Control??? Combat-F2D Impresión 3 18-06-2003 01:23:48


La franja horaria es GMT +2. Ahora son las 17:38:46.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi