Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > FireMonkey
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 06-04-2023
Avatar de pgranados
pgranados pgranados is offline
Miembro
 
Registrado: sep 2022
Ubicación: México
Posts: 264
Poder: 2
pgranados Va por buen camino
¿Cómo que solo te retorna el ultimo registro?

Vamos a hacer esto, tu sentencia SQL
Código SQL [-]
select * from FICHADOC where INSTRUT = '27080020-6' and REGFICHA = '5' and REGPAC = '2'

Ponla directamente en el código para ver que hace.
Responder Con Cita
  #2  
Antiguo 06-04-2023
giantonti1801 giantonti1801 is offline
Miembro
 
Registrado: oct 2022
Posts: 143
Poder: 2
giantonti1801 Va por buen camino
Cita:
Empezado por pgranados Ver Mensaje
¿Cómo que solo te retorna el ultimo registro?

Vamos a hacer esto, tu sentencia SQL
Código SQL [-]
select * from FICHADOC where INSTRUT = '27080020-6' and REGFICHA = '5' and REGPAC = '2'

Ponla directamente en el código para ver que hace.
ya lo hice
Código Delphi [-]
procedure TFormReportes.StringGrid1CellClick(const Column: TColumn;
  const Row: Integer);
 var
 Filtro :string;
 i:integer;
 begin
      //DataModule1.UniQueryFichaDoc.Filtered := False;
      //Filtro := 'INSTRUT = '''+DataModule1.InstRut+'''and REGFICHA = '''+label1.Text+'''';
      //DataModule1.UniQueryFichaDoc.Filter := Filtro;
      //DataModule1.UniQueryFichaDoc.Filtered := True;
      //DataModule1.UniQueryFichaDoc.Active := true;
      //
       DataModule1.UniQueryConsultaDOC.Close;
       DataModule1.UniQueryConsultaDOC.SQL.Text := 'select REGPAC, TIPODOCUMENTO,REGFICHA, INSTRUT, FICPAC from fichadoc where instrut = :INSTRUT and REGFICHA = :REGFICHA and REGPAC = :REGPAC ';
       DataModule1.UniQueryConsultaDOC.ParamByName('INSTRUT').AsString := datamodule1.InstRut;
       DataModule1.UniQueryConsultaDOC.ParamByName('REGFICHA').AsString := '5';
       DataModule1.UniQueryConsultaDOC.ParamByName('REGPAC').AsString := '2';
      DataModule1.UniQueryConsultaDOC.Open;
      DataModule1.UniQueryConsultaDOC.First;
  for i:= 0 to DataModule1.UniQueryConsultaDOC.RecordCount-1 do
  begin
    if DataModule1.UniQueryConsultaDOC.FieldByName('TIPODOCUMENTO').value = 'TRATAMIENTO' then
    begin
      TMSFMXToolBarButton5.Enabled := true;
      TMSFMXToolBarButton5.Opacity := 1;
    end
    else
    begin
      TMSFMXToolBarButton5.Enabled := False;
      TMSFMXToolBarButton5.Opacity := 0.3;
    end;

    if DataModule1.UniQueryConsultaDOC.FieldByName('TIPODOCUMENTO').value = 'EXAMEN' then
    begin
      TMSFMXToolBarButton6.Enabled := true;
      TMSFMXToolBarButton6.Opacity := 1;
    end
    else
    begin
      TMSFMXToolBarButton6.Enabled := False;
      TMSFMXToolBarButton6.Opacity := 0.3;
    end;

    if DataModule1.UniQueryConsultaDOC.FieldByName('TIPODOCUMENTO').value = 'LABORATORIO' then
    begin
      TMSFMXToolBarButton13.Enabled := true;
      TMSFMXToolBarButton13.Opacity := 1;
    end
    else
    begin
      TMSFMXToolBarButton13.Enabled := False;
      TMSFMXToolBarButton13.Opacity := 0.3;
    end;

    if DataModule1.UniQueryConsultaDOC.FieldByName('TIPODOCUMENTO').value = 'FICHA MEDICA' then
    begin
      TMSFMXToolBarButton17.Enabled := true;
      TMSFMXToolBarButton17.Opacity := 1;
    end
    else
    begin
      TMSFMXToolBarButton17.Enabled := False;
      TMSFMXToolBarButton17.Opacity := 0.3;
    end;
   DataModule1.UniQueryConsultaDOC.Next;
  end;
end;
Responder Con Cita
  #3  
Antiguo 06-04-2023
Avatar de pgranados
pgranados pgranados is offline
Miembro
 
Registrado: sep 2022
Ubicación: México
Posts: 264
Poder: 2
pgranados Va por buen camino
Hazlo directamente así:
Código Delphi [-]
var Query:string;
begin
Query:= 'select * from FICHADOC where INSTRUT = ''27080020-6'' and REGFICHA = ''5'' and REGPAC = ''2'' ' ;
DataModule1.UniQueryConsultaDOC.Open(Query);
end;
Responder Con Cita
  #4  
Antiguo 06-04-2023
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.055
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Usa el código que te he puesto antes, el tuyo no está bien.

Código Delphi [-]
DataModule1.UniQueryConsultaDOC.Open;
DataModule1.UniQueryConsultaDOC.First;   // > sobra esto
for i:= 0 to DataModule1.UniQueryConsultaDOC.RecordCount-1 do    //  Esto dependiendo del tipo de dataset no te devuelve los registros que hay en el select, sino 1 !!!!!!!!!!
Repito, usar el código que te hemos indicado.
Responder Con Cita
  #5  
Antiguo 06-04-2023
giantonti1801 giantonti1801 is offline
Miembro
 
Registrado: oct 2022
Posts: 143
Poder: 2
giantonti1801 Va por buen camino
Cita:
Empezado por Casimiro Notevi Ver Mensaje
Usa el código que te he puesto antes, el tuyo no está bien.

Código Delphi [-]
DataModule1.UniQueryConsultaDOC.Open;
DataModule1.UniQueryConsultaDOC.First;   // > sobra esto
for i:= 0 to DataModule1.UniQueryConsultaDOC.RecordCount-1 do    //  Esto dependiendo del tipo de dataset no te devuelve los registros que hay en el select, sino 1 !!!!!!!!!!
Repito, usar el código que te hemos indicado.
es el mismo codigo que estoy usando incluso le estoy colocando los valore manueale
Código Delphi [-]
procedure TFormReportes.StringGrid1CellClick(const Column: TColumn;
  const Row: Integer);
 var
 Filtro :string;
 i:integer;
 begin
      //DataModule1.UniQueryFichaDoc.Filtered := False;
      //Filtro := 'INSTRUT = '''+DataModule1.InstRut+'''and REGFICHA = '''+label1.Text+'''';
      //DataModule1.UniQueryFichaDoc.Filter := Filtro;
      //DataModule1.UniQueryFichaDoc.Filtered := True;
      //DataModule1.UniQueryFichaDoc.Active := true;
      //
       DataModule1.UniQueryConsultaDOC.Close;
       DataModule1.UniQueryConsultaDOC.SQL.Text := 'select REGPAC, TIPODOCUMENTO,REGFICHA, INSTRUT, FICPAC from fichadoc where instrut = :INSTRUT and REGFICHA = :REGFICHA and REGPAC = :REGPAC ';
       DataModule1.UniQueryConsultaDOC.ParamByName('INSTRUT').AsString := datamodule1.InstRut;
       DataModule1.UniQueryConsultaDOC.ParamByName('REGFICHA').AsString := '5';
       DataModule1.UniQueryConsultaDOC.ParamByName('REGPAC').AsString := '2';
      DataModule1.UniQueryConsultaDOC.Open;
//DataModule1.UniQueryConsultaDOC.First;   // > sobra esto
for i:= 0 to DataModule1.UniQueryConsultaDOC.RecordCount-1 do
  begin
    if DataModule1.UniQueryConsultaDOC.FieldByName('TIPODOCUMENTO').value = 'TRATAMIENTO' then
    begin
      TMSFMXToolBarButton5.Enabled := true;
      TMSFMXToolBarButton5.Opacity := 1;
    end
    else
    begin
      TMSFMXToolBarButton5.Enabled := False;
      TMSFMXToolBarButton5.Opacity := 0.3;
    end;

    if DataModule1.UniQueryConsultaDOC.FieldByName('TIPODOCUMENTO').value = 'EXAMEN' then
    begin
      TMSFMXToolBarButton6.Enabled := true;
      TMSFMXToolBarButton6.Opacity := 1;
    end
    else
    begin
      TMSFMXToolBarButton6.Enabled := False;
      TMSFMXToolBarButton6.Opacity := 0.3;
    end;

    if DataModule1.UniQueryConsultaDOC.FieldByName('TIPODOCUMENTO').value = 'LABORATORIO' then
    begin
      TMSFMXToolBarButton13.Enabled := true;
      TMSFMXToolBarButton13.Opacity := 1;
    end
    else
    begin
      TMSFMXToolBarButton13.Enabled := False;
      TMSFMXToolBarButton13.Opacity := 0.3;
    end;

    if DataModule1.UniQueryConsultaDOC.FieldByName('TIPODOCUMENTO').value = 'FICHA MEDICA' then
    begin
      TMSFMXToolBarButton17.Enabled := true;
      TMSFMXToolBarButton17.Opacity := 1;
    end
    else
    begin
      TMSFMXToolBarButton17.Enabled := False;
      TMSFMXToolBarButton17.Opacity := 0.3;
    end;
   DataModule1.UniQueryConsultaDOC.Next;
  end;
end;
Archivos Adjuntos
Tipo de Archivo: rar FICHA.rar (141,8 KB, 0 visitas)
Responder Con Cita
  #6  
Antiguo 06-04-2023
[egostar] egostar is offline
Registrado
 
Registrado: feb 2006
Posts: 6.557
Poder: 25
egostar Va camino a la fama
Hola

Intenta con esto:

Código Delphi [-]
      :::::
      DataModule1.UniQueryConsultaDOC.Open;
      // Agrega estas dos líneas ***********************
      DataModule1.UniQueryConsultaDOC.Last; 
      DataModule1.UniQueryConsultaDOC.First; 
     // *******************************************
     for i:= 0 to DataModule1.UniQueryConsultaDOC.RecordCount-1 do
     begin
        ::::::

Saludos
__________________
"La forma de empezar es dejar de hablar y empezar a hacerlo." - Walt Disney
Responder Con Cita
  #7  
Antiguo 06-04-2023
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.055
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
He puesto:
Código Delphi [-]
DataModule1.UniQueryConsultaDOC.open;    
while not DataModule1.UniQueryConsultaDOC.eof do
Responder Con Cita
  #8  
Antiguo 06-04-2023
[egostar] egostar is offline
Registrado
 
Registrado: feb 2006
Posts: 6.557
Poder: 25
egostar Va camino a la fama
Cita:
Empezado por Casimiro Notevi Ver Mensaje
He puesto:
Código Delphi [-]
DataModule1.UniQueryConsultaDOC.open;    
while not DataModule1.UniQueryConsultaDOC.eof do
Así es, esa es la mejor forma de evitarse el problema, pero si insiste en usar el FOR, pues....

Saludos
__________________
"La forma de empezar es dejar de hablar y empezar a hacerlo." - Walt Disney
Responder Con Cita
  #9  
Antiguo 06-04-2023
giantonti1801 giantonti1801 is offline
Miembro
 
Registrado: oct 2022
Posts: 143
Poder: 2
giantonti1801 Va por buen camino
Cita:
Empezado por egostar Ver Mensaje
Hola

Intenta con esto:

Código Delphi [-]
      :::::
      DataModule1.UniQueryConsultaDOC.Open;
      // Agrega estas dos líneas ***********************
      DataModule1.UniQueryConsultaDOC.Last; 
      DataModule1.UniQueryConsultaDOC.First; 
     // *******************************************
     for i:= 0 to DataModule1.UniQueryConsultaDOC.RecordCount-1 do
     begin
        ::::::

Saludos
nada amigo ni con esta dos lineas funciona ahora bien habra otra forma de hacer esta consulta y obtener los resultado que si es verdadero se habilite el boton?
Responder Con Cita
  #10  
Antiguo 06-04-2023
cloayza cloayza is offline
Miembro
 
Registrado: may 2003
Ubicación: San Pedro de la Paz, Chile
Posts: 914
Poder: 23
cloayza Tiene un aura espectacularcloayza Tiene un aura espectacular
Estimado colega, le propongo esta alternativa
Código Delphi [-]
   
   {Esta función se encarga de habilitar el boton y la opacidad}
   procedure EnableButton(boton:TMSFMXToolBarButton; AEnable:Boolean);
   begin
        boton.Enable:=AEnable;
    if Boton.Enable then
       Boton.Opacity := 1
    else
       Boton.Opacity := 0.3;
   end;
begin 
  DataModule1.UniQueryConsultaDOC.Close; 
  DataModule1.UniQueryConsultaDOC.sql.Clear; 
  DataModule1.UniQueryConsultaDOC.sql.Add('select REGPAC, TIPODOCUMENTO,REGFICHA, INSTRUT, FICPAC from fichadoc'); 
  DataModule1.UniQueryConsultaDOC.SQL.Add('where instrut = :INSTRUT and REGFICHA = :REGFICHA'); 
  DataModule1.UniQueryConsultaDOC.ParamByName('INSTRUT').AsString := datamodule1.InstRut; 
  DataModule1.UniQueryConsultaDOC.ParamByName('REGFICHA').AsString := Label1.text; 
  DataModule1.UniQueryConsultaDOC.open; 
  
  while not DataModule1.UniQueryConsultaDOC.eof do 
  begin
     EnableButton(TMSFMXToolBarButton5, SameText(DataModule1.UniQueryConsultaDOCTIPODOCUMENTO.AsString,'TRATAMIENTO') );
               
     EnableButton(TMSFMXToolBarButton6, SameText(DataModule1.UniQueryConsultaDOCTIPODOCUMENTO.AsString,'EXAMEN'));
               
     EnableButton(TMSFMXToolBarButton13, SameText(DataModule1.UniQueryConsultaDOCTIPODOCUMENTO.AsString,'LABORATORIO'));
     
     EnableButton(TMSFMXToolBarButton17, SameText(DataModule1.UniQueryConsultaDOCTIPODOCUMENTO.AsString,'FICHA MEDICA'));
 
        DataModule1.UniQueryConsultaDOC.Next; 
   end;
end;

Saludos y buena fortuna
Responder Con Cita
  #11  
Antiguo 07-04-2023
giantonti1801 giantonti1801 is offline
Miembro
 
Registrado: oct 2022
Posts: 143
Poder: 2
giantonti1801 Va por buen camino
Cita:
Empezado por cloayza Ver Mensaje
Estimado colega, le propongo esta alternativa
Código Delphi [-]
   
   {Esta función se encarga de habilitar el boton y la opacidad}
   procedure EnableButton(boton:TMSFMXToolBarButton; AEnable:Boolean);
   begin
        boton.Enable:=AEnable;
    if Boton.Enable then
       Boton.Opacity := 1
    else
       Boton.Opacity := 0.3;
   end;
begin 
  DataModule1.UniQueryConsultaDOC.Close; 
  DataModule1.UniQueryConsultaDOC.sql.Clear; 
  DataModule1.UniQueryConsultaDOC.sql.Add('select REGPAC, TIPODOCUMENTO,REGFICHA, INSTRUT, FICPAC from fichadoc'); 
  DataModule1.UniQueryConsultaDOC.SQL.Add('where instrut = :INSTRUT and REGFICHA = :REGFICHA'); 
  DataModule1.UniQueryConsultaDOC.ParamByName('INSTRUT').AsString := datamodule1.InstRut; 
  DataModule1.UniQueryConsultaDOC.ParamByName('REGFICHA').AsString := Label1.text; 
  DataModule1.UniQueryConsultaDOC.open; 
  
  while not DataModule1.UniQueryConsultaDOC.eof do 
  begin
     EnableButton(TMSFMXToolBarButton5, SameText(DataModule1.UniQueryConsultaDOCTIPODOCUMENTO.AsString,'TRATAMIENTO') );
               
     EnableButton(TMSFMXToolBarButton6, SameText(DataModule1.UniQueryConsultaDOCTIPODOCUMENTO.AsString,'EXAMEN'));
               
     EnableButton(TMSFMXToolBarButton13, SameText(DataModule1.UniQueryConsultaDOCTIPODOCUMENTO.AsString,'LABORATORIO'));
     
     EnableButton(TMSFMXToolBarButton17, SameText(DataModule1.UniQueryConsultaDOCTIPODOCUMENTO.AsString,'FICHA MEDICA'));
 
        DataModule1.UniQueryConsultaDOC.Next; 
   end;
end;

Saludos y buena fortuna
gracias amigo pero donde coloco esta funcion ya que puedo ver que debo crear un proceso para eso o lo puedo colocar en el evento onClickCeld?
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
Mostrar en un DBGRID Relacion Muchos Muchos dmassive SQL 6 12-02-2009 18:55:19
Guardar muchos muchos Tedit el-mono OOP 4 30-09-2008 06:40:33
Problemas con generadores en relacion Muchos-a-Muchos Hagen Firebird e Interbase 3 30-10-2006 16:47:51
Consulta en SQL con muchos parámetros Aprendiendo SQL 5 05-04-2005 22:30:13
Consulta SQl, relacion 1 a muchos Walter SQL 3 15-07-2003 03:13:28


La franja horaria es GMT +2. Ahora son las 09:50:27.


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