Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Coloboración Paypal con ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 15-05-2011
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 38
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola.

En algún punto de tu código deberás indicarle al combo donde debe situarse, algo como:
Código Delphi [-]
  with ComboBox1 do
    ItemIndex:= Items.IndexOf(DataSet.FieldByName('CAMPO').AsString);

Nota: El ejemplo es para darte una idea como poner en el ComboBox el item actualmente seleccionado en un DataSet. Ignoro el nombre del DataSet y del campo; así como también la organización del código.

Saludos.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....

Última edición por ecfisa fecha: 15-05-2011 a las 21:42:58.
Responder Con Cita
  #2  
Antiguo 16-05-2011
Rofocale Rofocale is offline
Miembro
 
Registrado: mar 2010
Posts: 182
Poder: 17
Rofocale Va por buen camino
hola tambien lo hago similar

Código Delphi [-]
cmbCategorias.ItemIndex := cmbCategorias.Items.IndexOf(Trim(sCateg));

y funcionaba perfecto antes de que se filtrar
cuando todo estaba sin filtrar este al recuperar los datos se mostraban perfectamente..
ahora probando cada linea del filtrado

Código Delphi [-]
IBQuery1.Close;
  IBQuery1.SQL.Clear;
  IBQuery1.SQL.Add('SELECT C1.NOMBRE FROM UNIDADES C1, CATEGORIAS C2');
  IBQuery1.SQL.Add('WHERE NOMBRE2 = CCATEGORIAS AND NOMBRE2 =');
  IBQuery1.SQL.Add('(SELECT CCATEGORIAS FROM CATEGORIAS C2 WHERE C2.NOMBRE =:NOMB)');
  IBQuery1.ParamByName('NOMB').AsString:= cbCategorias.Text;
  IBQuery1.Open;
  cbUnidades.Clear; <------- justo esta linea al quitarla hace que ya no filtre y siga como siempre lo tenia y tambien me muestre la posicion perfecta de cada item guardado en el combobox

ahora con el filtrado no tengo mucha idea de como hacer que tambien se muestre la posicion guardada cuando lo recupero para modificarlo

gracias
Responder Con Cita
  #3  
Antiguo 16-05-2011
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 38
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Cita:
ahora con el filtrado no tengo mucha idea de como hacer que tambien se muestre la posicion guardada cuando lo recupero para modificarlo
Hola.

No entiendo muy bién la situación. Es decir no veo la relación de la consulta que hemos venido trantando que sólo te devuelve el campo NOMBRE de la tabla UNIDADES para llenar un ComboBox y la asignacion de los valores de los campos a los Edits.

Tal vez si explicaras un poco más como traes los datos para que sean asignados a los Edits y como realizás la modificación...

Saludos.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....

Última edición por ecfisa fecha: 16-05-2011 a las 00:22:19.
Responder Con Cita
  #4  
Antiguo 16-05-2011
Rofocale Rofocale is offline
Miembro
 
Registrado: mar 2010
Posts: 182
Poder: 17
Rofocale Va por buen camino
Código Delphi [-]
procedure TfrmArticulos.RecuperaDatosBusq;
var
    sCateg, sUnis: String;

begin
    iClave := dmDatos.cdsArticulos.FieldByName('Clave').AsInteger;

    with dmDatos.qryConsulta do begin
        Close;
        SQL.Clear;
        SQL.Add('SELECT o.codigo, a.desc_corta, a.desc_larga, a.precio1,');
        SQL.Add('a.existencia, a.clave,a.minimo, a.maximo,');
        SQL.Add('a.categoria,a.unidades, a.fecha_cap,');
        SQL.Add('a.estatus,a.fotosart, c.nombre AS categorias,');
        SQL.Add('d.nombre AS unidades FROM articulos a ');
        SQL.Add('LEFT JOIN codigos o ON a.clave = o.articulo AND o.tipo = ''P''');
        SQL.Add('LEFT JOIN categorias c ON a.categoria = c.clave ');
        SQL.Add('LEFT JOIN unidades d ON a.unidades = d.clave ');
        SQL.Add('WHERE a.clave = ' + IntToStr(iClave));
        Open;
        if(not Eof) then begin
            pgeGeneral.ActivePage := tabDatos;
            txtCodigo.Text := Trim(FieldByName('codigo').AsString);
            txtDescripCorta.Text := Trim(FieldByName('desc_corta').AsString);
            txtDescripLarga.Text := Trim(FieldByName('desc_larga').AsString);
            txtFechaCap.Text := FormatDateTime('dd/mm/yyyy',FieldByName('fecha_cap').AsDateTime);
            txtPrecio1.text  := FormatFloat('#,##0.00',FieldByName('precio1').AsFloat);
            txtExis.text := floattostr(FieldByName('existencia').AsFloat);
            txtMax.text := floattostr(FieldByName('maximo').AsFloat);
            txtmin.text := floattostr(FieldByName('minimo').AsFloat);

            if FieldByName('estatus').AsString ='A' then
                cmbEstatus.ItemIndex := 0
            else
                cmbEstatus.ItemIndex := 1;

            sUnis := BuscaNombre(FieldByName('unidades').AsInteger, 'unidades');
            sCateg := BuscaNombre(FieldByName('categoria').AsInteger, 'categorias');
            cmbUnidadTipo.ItemIndex := cmbUnidadTipo.Items.IndexOf(Trim(sUnis));
            cmbCategorias.ItemIndex := cmbCategorias.Items.IndexOf(Trim(sCateg));

            MaxMin;

        end;
    end;
end;

Código Delphi [-]
function TfrmArticulos.BuscaNombre(iValor:Integer; sTabla:string):String;
begin
     with dmDatos.qryModifica do begin
        Close;
        SQL.Clear;
        SQL.Add('SELECT nombre FROM ' + sTabla + ' WHERE clave = ' + IntToStr(iValor));
        Open;
        Result := FieldByName('nombre').AsString;
        Close;
     end;
end;

con esto recuperaba los edits y combobox..
ahora con el filtrado se recupera todos los edits normal pero los combobox no se muestra lo recuperado solo salen limpios.. como para seleccionar y elegir de nuevo.. aunque claro las posiciones estan guardadas solo que no se muestran..
si le quito el filtrado si se muestran normal
Responder Con Cita
  #5  
Antiguo 16-05-2011
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 38
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola.

Supongo que podrías encapsular la carga de los combos dentro de un procedimiento:
Código Delphi [-]
// Filtrar los combos 
procedure TfrmArticulos.FiltrarComboBox;
begin
  IBQuery1.Close;
  IBQuery1.SQL.Clear;
  IBQuery1.SQL.Add('SELECT C1.NOMBRE FROM UNIDADES C1, CATEGORIAS C2');
  IBQuery1.SQL.Add('WHERE NOMBRE2 = CCATEGORIAS AND NOMBRE2 =');
  IBQuery1.SQL.Add('(SELECT CCATEGORIAS FROM CATEGORIAS C2 WHERE C2.NOMBRE =:NOMB)');
  IBQuery1.ParamByName('NOMB').AsString:= cbCategorias.Text;
  IBQuery1.Open;
  cbUnidades.Clear;
  while not IBQuery1.Eof do
  begin
    cbUnidades.Items.Add(IBQuery1.FieldByName('NOMBRE').AsString);
    IBQuery1.Next;
  end;
  cbUnidades.ItemIndex:= 0;
  IBQuery1.Close
end;

// Cargar los combos ( Ahora dentro de un procedimiento )
procedure TfrmArticulos.CargarComboBox;
begin
  IBQuery1.Close;
  IBQuery1.SQL.Text:= 'SELECT * FROM CATEGORIAS ORDER BY NOMBRE';
  IBQuery1.Open;
  while not IBQuery1.Eof do
  begin
    cbCategorias.Items.Add(IBQuery1.FieldByName('NOMBRE').AsString);
    IBQuery1.Next;
  end;
  cbCategorias.ItemIndex:= 0;
  IBQuery1.Close;
  IBQuery1.SQL.Text:= 'SELECT * FROM UNIDADES ORDER BY NOMBRE';
  IBQuery1.Open;
  while not IBQuery1.Eof do
  begin
    cbUnidades.Items.Add(IBQuery1.FieldByName('NOMBRE').AsString);
    IBQuery1.Next;
  end;
  cbUnidades.ItemIndex:= 0;
  IBQuery1.Close;
  FiltrarComboBox;
end;

// FormShow ahora quedaría así: 
procedure TfrmArticulos.FormShow(Sender: TObject);
begin
  CargarComboBox;
  FiltrarComboBox;
end;

Luego al principio del procedimiento RecuperaDatosBusq, podrías hacer:
Código Delphi [-]
procedure TfrmArticulos.RecuperaDatosBusq;
var
    sCateg, sUnis: String;

begin
  CagarComboBox;
  iClave := dmDatos.cdsArticulos.FieldByName('Clave').AsInteger;
  ...
Creo que debería funcionar. Pero vas a tener que probarlo vos, yo no tengo modo de comprobarlo.

Saludos.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #6  
Antiguo 16-05-2011
Rofocale Rofocale is offline
Miembro
 
Registrado: mar 2010
Posts: 182
Poder: 17
Rofocale Va por buen camino
hola eficsa solo recupera el primer combobox el segundo el de unidades sale en blanco :S
Responder Con Cita
  #7  
Antiguo 16-05-2011
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 38
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola Rofocale.

Con tanta ida y venida de código se me olvidó borrar una línea ...

Probá quitando la última línea de código del procedimiento CargarComboBox:
Código Delphi [-]
   FiltrarComboBox; // <- Eliminar

Saludos.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....

Última edición por ecfisa fecha: 16-05-2011 a las 17:56:46.
Responder Con Cita
Respuesta


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
ayuda con combobox mdcynsk PHP 2 21-10-2010 15:20:37
Curiosidad While anidado con ADO lpedrazzi Conexión con bases de datos 0 30-11-2007 15:04:54
Query Anidado Ricsato SQL 4 06-11-2006 21:58:26
Ayuda con ComboBox pecosita C++ Builder 2 17-09-2006 02:38:26
Select anidado erika.martinez SQL 2 02-02-2006 12:19:57


La franja horaria es GMT +2. Ahora son las 07:29:01.


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