Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Conexión con bases de datos
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Conexión con bases de datos

 
 
Herramientas Buscar en Tema Desplegado
  #5  
Antiguo 30-03-2012
Tcmn Tcmn is offline
Miembro
 
Registrado: sep 2004
Posts: 153
Poder: 23
Tcmn Va por buen camino
Cita:
Empezado por Al González Ver Mensaje
Ahí podría estar la clave del problema. ¿Cómo funciona ese candado? ¿Sería mucho pedir que pusieras aquí algo de código fuente?
Pondre el codigo correspondiente a cada paso
1.- Alta del contrato:

Código Delphi [-]
procedure TFrmEmpenos.BtnAddContClick(Sender: TObject);
  begin
  LogicaNegocio.CTDContratos.EnableControls;
  LogicaNegocio.CTDContratos.Insert;
BtnGuardaCambiosAltaCont.Enabled:=True;
  BtnCancelarAltaCont.Enabled:=True;
  BtnQuitarPrendaDetalleContrato.Enabled:=False;
  BtnAddCont.Enabled:=False;
  DBEdit46.ReadOnly:=False;{numero de contrato}
  DBEdit46.SetFocus;
  end;

2.- Guardar el nuevo contrato:

Código Delphi [-]
procedure TFrmEmpenos.BtnGuardaCambiosAltaContClick(Sender: TObject);
  begin
  with LogicaNegocio do
    begin
  CadenaAbuscar:=CTDContratosNUM_CONT.AsString;
    CTDContratos.DisableControls;
    CTD1Cliente.DisableControls;
    if CTDContratos.State in dsEditModes then CTDContratos.Post;
    if CTD1Cliente.State in dsEditModes then CTD1Cliente.Post;
   
    CTD1Cliente.Refresh;
    CTDPrend_Emp.EnableControls;
    CTDContratos.Locate('num_cont',CadenaAbuscar,[loCaseInsensitive]);
    CTDContratos.EnableControls;
    CTD1Cliente.EnableControls;
    BtnGuardaCambiosAltaCont.Enabled:=False;
    BtnCancelarAltaCont.Enabled:=False;
    BtnDesHacerAltaContrato.Enabled:=True;
    DBEdit46.ReadOnly:=True; //Numero de contrato
  //Si la tabla esta en modo de insercion

  if EstadoInsert=True then
      begin
      RejillaPrendasEmpenadasAltaCont.Enabled:=False;
      NavegaPrendasEmpenadas.Enabled:=False;
      BtnInsertarPrendaAltaContrato.Enabled:=True;
      end;//if 
     if not CTDPrend_Emp.IsEmpty then BtnAddCont.Enabled:=True; 
    end;//with
  //Boton para eliminar el contrato por si finalmente no se concreta contrato nuevo con el cliente

BtnDesHacerAltaContrato.Enabled:=True;

  End;

3.- Una vez guardando el registro maestro, es decir, el contrato se procede a insertar las lineas de detalle del contrato por medio de un boton para agregar registros, con el siguiente codigo:

Código Delphi [-]
   procedure TFrmEmpenosCompraOro.BtnInsertarPrendaAltaContratoClick(
    Sender: TObject);
  begin
  {"Seguro" para que no se congele la aplicacion cuando ya tiene un rato sin
  trabajarse con ella}
  if AccesoDatos.Transaccion.Intransaccion=True then AccesoDatos.Transaccion.Commit;
  AccesoDatos.BasedeDatos.Connected:=False;
  AccesoDatos.BasedeDatos.Connected:=True;
  {Fin del "seguro"}
   
  LogicaNegocio.CTDPrend_Emp.Insert;
  BtnQuitarPrendaAltaContrato.Enabled:=False;
  BtnInsertarPrendaAltaContrato.Enabled:=False;
  BtnGuardarPrendaAltaContrato.Enabled:=True;
  BtnCancelarPrendaAltaContrato.Enabled:=True;
  NavegaPrendasEmpenadas.Enabled:=False;
  RejillaPrendasEmpenadasAltaCont.Enabled:=False;
  gbPrendaNuevaAltaContrato.Enabled:=True;//GroupBox que almacena Controles DataAware para insertar

EdtUnidadesNuevaPrendaAltaContrato.SetFocus;
   
  end;

Aunque se presiona el boton anterior, en ocasiones no se pueden insertar registros al detalle del contrato, por lo que se debe de presionar el boton Dehacer alta de contrato para que se elimine el registro que se genero en la cabecera, volver a insertar un nuevo registro en la cabecera y ahora si es posible añadir registros en el detalle, espero no haberte confundido mas.

Saludos Al.
__________________
Salu2

Última edición por Tcmn fecha: 30-03-2012 a las 18:26:58. Razón: Olvide poner etiqueta de codigo Delphi a una seccion del mensaje
Responder Con Cita
 



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
Insercción de registros en clientdataset briast Conexión con bases de datos 9 30-05-2017 17:18:23
Ordenar registros con ClientDataSet Jose Roman Conexión con bases de datos 2 15-01-2010 22:11:27
Inserta Registros maestro/detalle Vlady Firebird e Interbase 2 28-10-2006 04:35:48
por que duplicidad de registros con clientdataset sin ingresar registros ...mysql Arturo MySQL 3 05-09-2006 18:39:37


La franja horaria es GMT +2. Ahora son las 11:34:19.


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