![]() |
![]() |
| Paypal | FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
|||||||
| Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Buscar | Temas de Hoy | Marcar Foros Como Leídos |
![]() |
|
|
Herramientas | Buscar en Tema | Desplegado |
|
|
|
#1
|
||||
|
||||
|
Hola Vales08.
Se me pasó por alto comentarte una idea, podés confirmar los cambios al salir del form o mediante un Botón. Usando Firebird sería algo como: Por último, si querés verificar al salir si en el buffer de cached existen registros sin confirmar, podes consultar la propiedad UpdatesPending de tipo Boolean. Creo que no me quedó nada en el tintero, pero bueno vos dirás luego... ![]() Saludos.
__________________
Daniel Didriksen Guía de estilo - Uso de las etiquetas - La otra guía de estilo .... Última edición por ecfisa fecha: 25-05-2011 a las 01:15:11. |
|
#2
|
|||
|
|||
|
Hola ecfisa!!!
Estoy contenta porque me ha funcionado perfecto tu codigo.. realemnte ah sido de muy gran ayuda.. te cuento que me ha hecho renegar, ya que yo tenia otro codigo para dar de altay todo lo demas, pero eh podido soluionarlo bien y me funciona muy bien.. El codigo: Código:
DModule.tbDetCober.CachedUpdates:= True; DModule.tbMedicos.CachedUpdates:= True; DModule.tbDetCober.Open; DModule.tbMedicos.Open; Te paso como me ha quedado el codigo para que lo veas, espero no haberme mandado ninguna macana jaja. Código:
(*Boton que esta entre las grillas, el cual pasa las coberturas de una a otra*)
procedure TProfesional.pasar_cober_prof_aClick(Sender: TObject);
var
i: Integer;
begin
for i:= 0 to Grilla_cob_prof_aa.SelectedRows.Count -1 do
begin
Grilla_cob_prof_aa.DataSource.DataSet.GotoBookmark(Pointer(Grilla_cob_prof_aa.SelectedRows.Items[i]));
with DM do
begin
DSET_prof_cober.DataSource:= nil; (* desconectar DataSource *)
DSET_prof_cober.Append;
DSET_prof_cober.FieldByName('ID_PROF').AsInteger:=DSET_prof.FieldByName('ID_PROF').AsInteger;
DSET_prof_cober.FieldByName('COBERTURA_MEDICA').AsString:= DSET_cob_med.FieldByName('NOMBRE').AsString;
DSET_prof_cober.Post; (* guardar *)
Base_datos.ApplyUpdates([DSET_prof_cober]); (* aplicar updates *)
DSET_prof_cober.DataSource:= DM.DSET_prof.DataSource; (* reconectar DataSource *)
end;
end;
end;
(*Boton donde confirmo los datos ingresados del paciente antes de asignarle las coberturas*)
procedure TProfesional.ConfirmarClick(Sender: TObject);
begin
if MessageDlg('¿Desea guardar los datos ingresados?',mtConfirmation,[mbYes,mbNo],0)= mrYes then
begin
DM.DSET_prof_cober.DataSource:=nil; (* desconectar DataSource *)
DM.DSET_profESTADO.Value:=0;
DM.DSET_profEDAD.Value:=edad_prof_a.Value;
DM.Base_datos.ApplyUpdates([DM.DSET_prof, DM.DSET_prof_cober]);
DM.DSET_prof_cober.DataSource:=DM.DSET_prof.DataSource; (* conectar detalle *)
DM.Transaccion.CommitRetaining;
end
else
DM.Transaccion.RollbackRetaining;
end;
Mi ultima duda y 'creo' que no molesto mas: como hago para que se me vacie la grilla donde deposito las coberturas elegidas?? porque cada vez que voy a ingresar un profesional y a asignarle las coberturas, me figuran todas las anteriores ja. Muchas gracias por todo.. saludos.- |
|
#3
|
||||
|
||||
|
Hola Vales. (Creo que ya nos conocemos lo suficiente para no usar el apellido)
![]() Si te referís al DBGrid conectado con la tabla que almacena las coberturas por médico, no tendrían que aparecer luego de haber realizado Append. A menos que no tengas bién establecida la relación maestro/detalle. Creo (no recuerdo bién) que usabas componentes IBX... Te pongo un ejemplo para establecer una relación m/d con dos TIBDataSet. El TDataSet afectado es el detalle teniendo que tener en su propiedad DataSource el nombre del DataSource del TDataSet que será su master (médicos). Creo que en tu caso el nombre seria parecido a: dsMedicos (->tbMedicos). Luego en la propiedad SelectSQL la sentencia sería: (Los nombres de tabla y campos seguramente diferirán, las sentencias no ) Ahí tenés establecida la relación m/d. En la grilla sólo aparecerán las coberturas cuando consultes o modifiques un médico. Pero no así en un nuevo ingreso, ya que el nuevo registro no tiene ningún detalle asociado todavía. Un saludo y me alegro que vayas bién con tu proyecto.
__________________
Daniel Didriksen Guía de estilo - Uso de las etiquetas - La otra guía de estilo .... Última edición por ecfisa fecha: 25-05-2011 a las 01:38:49. |
|
#4
|
|||
|
|||
|
Hola ecfisa..
Lo tenia hecho al reves, que boba.. Ahora me funciona barbaro.. Muchas gracias x tu ayuda y tu tiempo.. Saludos.- |
![]() |
| Herramientas | Buscar en Tema |
| Desplegado | |
|
|
Temas Similares
|
||||
| Tema | Autor | Foro | Respuestas | Último mensaje |
| Pasar Datos De Dbgrid A Otro | Helg17 | Tablas planas | 7 | 27-03-2009 10:16:37 |
| Pasar informacion de un dbgrid a otro | schaka | Conexión con bases de datos | 3 | 11-02-2008 10:15:32 |
| Pasar lineas de in dbgrid a otro dbgrid | look | OOP | 3 | 21-09-2007 23:16:29 |
| Agregar registros a un DBGRID provenientes de otro Formulario | JoanKa | Varios | 2 | 19-05-2006 01:58:09 |
| Pasar datos desde un DBGrid | jdangosto | OOP | 2 | 19-02-2005 16:55:37 |
|