Ver Mensaje Individual
  #4  
Antiguo 27-05-2008
betto betto is offline
Miembro
 
Registrado: ene 2006
Posts: 42
Reputación: 0
betto Va por buen camino
Smile

yo lo hago de la siguiente manera, espero te sirva:

cargo las listas con una funcion:

cargaPacientes(cbNombres); // aqui mando cargar en el combo los nombres de los pacientes por ejemplo

y la funcion es algo parecido a esto:

Procedure CargaPacientes(Pacientes: TComboBox);
begin
sql:='Select id_paciente as ID, nombres || '' '' || paterno || '' '' || materno as Nombre'+
' From SS_C_PACIENTE Where fecha_baja is null order by 1';
EjecutaSQL(md.ADOQuery,sql,true);
Pacientes.Clear;
while not md.ADOQuery.Eof do
begin
Pacientes.Add(md.ADOQuery.FieldByName('Nombre').AsString,
md.ADOQuery.FieldByName('ID').AsString); // aqui tienes que cambiar algo para que jale
md.ADOQuery.Next;
end;
end;


luego cuando cambio de paciente hago lo siguiente:
sql:='select Importe_Sesion '+
' from SS_C_EMPLEADO_IMPORTE_PAGO IP '+
' join SS_C_EMPLEADO E on (IP.ID_EMPLEADO=E.ID_EMPLEADO) '+
' join SS_C_PACIENTE P on (P.ID_TERAPEUTA=E.ID_EMPLEADO) '+
' where P.ID_PACIENTE='+ cbNombres.CurrentID; // aqui tienes que modifica pa que te jale
EjecutaSQL(md.ADOQuery,sql,true); // en lugar de asignar todos los valores hice una funcionsita
if not md.ADOQuery.Eof then
begin
edImporte.Text:= md.ADOQuery.FieldByName('Importe_Sesion').AsString;
MontoTerapia:= md.ADOQuery.FieldByName('Importe_Sesion').AsInteger;
end
else
edImporte.Text:='';



Y asi todo queda de forma manual y cuando por ejemplo ELIMINAS un registro vuelves a mandar a traer a la primer funcion cargaPacientes(cbNombres);
y primero limpia el combobox y luego carga los pacientes, de esa forma YA NO VERAS INFORMACION ELIMINADA.

te repito es como yo lo hago, no se si te sirva, espero que si, saludos!!!

Responder Con Cita