Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > Tablas planas
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

 
 
Herramientas Buscar en Tema Desplegado
  #13  
Antiguo 21-04-2008
teclilla teclilla is offline
Miembro
 
Registrado: feb 2008
Posts: 41
Poder: 0
teclilla Va por buen camino
OK,
Al crear el formulario:
Código Delphi [-]
procedure TFormAlbaran.FormCreate(Sender: TObject);
begin
        //abrimos tablas
        Talbaranes.Open;
        Talbaranes.First;
        TCliente.Open;
        TProductos.Open;
        TalbprodDetalle.Open;
end;

Despues tengo en el formulario un botón para añardir un nuevo albaran:

Código Delphi [-]
procedure TFormAlbaran.SpeedButtonAnadirClick(Sender: TObject);
var
   id_ant: longint;
begin
        DBEditsEscritura;       //(Readonly:=false)
        Label13.Caption:='Añadiendo un nuevo albarán.';
        DesactivarBotones;  //Solo visibles Botones Confirmar y cancelar
        Talbaranes.Last;
        id_ant:=Talbaranes.FieldByName('Idalb').AsInteger;
        Talbaranes.Append; //modo insert
        //introducimos idalb calculado y fecha actual
        Talbaranes.FieldByName('Idalb').AsInteger:=id_ant+1; //siguiente alb
        Talbaranes.FieldByName('Fecha').AsDateTime:=Date; //fecha hoy
end;

Despues introducimos los demas DbEdits que queramos del albaran y despues le damos al boton de confirmar para grabar:
Código Delphi [-]
procedure TFormAlbaran.SpeedButtonConfirmarClick(Sender: TObject);
begin
     GrabarAlbaran;
     ControlStock;
     DBEditsLectura;     //(Readonly:=true)
     ActivarBotones;   // Visibles los demas botones 
     Label13.Caption:='';
end;

Código Delphi [-]
procedure TFormAlbaran.GrabarAlbaran;
begin
    if ((DBEditIdalb.Field.IsNull) or (DBEditFechaAlb.Field.IsNull) or (DBEditNifCli.Field.IsNull))then
        if Application.MessageBox('Faltan datos obligatorios del Albarán','Añadiendo Albarán',mb_iconExclamation+mb_ok)= id_ok then
        begin
        SpeedButtonCancelarClick(Self);
        Abort;
        end
    else
        begin
        //guardamos presupuesto
        Talbaranes.ApplyUpdates;
        Talbaranes.Post;
        TalbprodDetalle.ApplyUpdates;
        TalbprodDetalle.Post;
        end;
end;
 
//este procedimiento lleva el stock de los productos que se añaden al
//albaran y salen de fabrica.
procedure TFormAlbaran.ControlStock;
begin
        //para los detalles del alb correspondiente
        TalbprodDetalle.First;
        while not TalbprodDetalle.Eof do
        begin
        TProductos.Locate('Codigo',TalbprodDetalleCodprod.asString,[]);
        TProductos.Edit;//editamos
        //modificamos
        TProductos.FieldByName('Stock').asInteger:=TProductos.FieldByName('Stock').asInteger - TalbprodDetalleCantidad.AsInteger;
        TProductos.Post;//grabamos
        TalbprodDetalle.next;
        end;
end;

Al ejecutar el programa, si doy de alta un albaran, y sin cambiar de registro cierro, no se guarda en la tabla maestra y si en la tabla detalle, pero si cambio de registro antes de salir se graba en las dos

MUCHAS GRACIAS.
Responder Con Cita
 


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
Tabla Paradox maestro/detalle Ayuda Jaros Tablas planas 2 05-01-2008 13:35:33
Problema tabla Maestro-detalle en la q la pk de t.detalle formad por 2cods de la maes akinom38 Varios 1 09-11-2007 19:27:44
Respecto a la relacion maestro detalle detalle ilichhernandez Conexión con bases de datos 0 15-05-2007 18:13:54
Maestro-Detalle 'virtual' con una sola tabla gluglu Conexión con bases de datos 2 11-10-2004 19:44:23
Maestro-Detalle ;Actualizar detalle a partir de un DBgrid norberto_larios Conexión con bases de datos 1 11-09-2004 18:17:34


La franja horaria es GMT +2. Ahora son las 16:24:44.


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