Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
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
Respuesta



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 18:25:02.


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