Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Cambiar campo a mostrar en un dbgrid con clientdataset. (https://www.clubdelphi.com/foros/showthread.php?t=85071)

novato_erick 23-01-2014 16:44:54

Cambiar campo a mostrar en un dbgrid con clientdataset.
 
Hola chicos es posible cambiar que en ejecusión un dbgrid cambie el campo a mostrar en caso de tener un valor 0 en la consulta?

ejemplo:

Tengo mi clientDataSet pero en uno de los campos Tengo PRECIO_CIV y otro Campo PRECIO_SIV (Precio con impuesto y precio sin impuesto) lo que necesito es si en precio con impuesto me trae a la hora de abrir mi ClientDataSet valor 0 se muestre entonces el campo PRECIO_SIV en el dbgrid relacionado a un DataSourse...


Este es mi codigo..

Código Delphi [-]
if (tipoConsulta in ['0' .. '9']) and
      (length(trim(eBusquedArticulo.Text)) > 0) then
    begin
      dmlogicaArticulos.cdsConsultaArticuloCodigo.Active := False;
      dsConsultaArticulo.DataSet := dmlogicaArticulos.FindComponent
        ('cdsConsultaArticuloCodigo') as TDataSet;
      dsConsultaArticulo.DataSet.Close;
      with dmlogicaArticulos.qConsultaArticuloCodigo do
      begin
        Close;
        Params.ParamByName('CodigoBarra').AsString :=
          trim(eBusquedArticulo.Text);
      end;
      dsConsultaArticulo.DataSet.Open;
      dmlogicaArticulos.cdsConsultaArticuloCodigo.Active := True;
      eBusquedArticulo.SelectAll;
      if dmlogicaArticulos.cdsConsultaArticuloCodigo.RecordCount = 0 then
      begin
        SHOWMESSAGE('No se Encuentra Artículo');
        eBusquedArticulo.Clear;
      end;
    end;

Alguna sugerencia?


Saludos

ozsWizzard 23-01-2014 17:26:32

Siempre puedes usar una etiqueta/caja de texto y sobreponerla al campo del dbgrid.

novato_erick 23-01-2014 17:28:43

Hola creo que me voy a responder a mi pregunta jejejej bueno la respuesta estaba en simplemente la propiedad del la culumna del dbgrid poniendo visible si el valor del campo del ClientDataSet tiene 0 o no lo tiene..

y aquí apliqué el código:

Código Delphi [-]
 if (tipoConsulta in ['0' .. '9']) and
      (length(trim(eBusquedArticulo.Text)) > 0) then
    begin
      dmlogicaArticulos.cdsConsultaArticuloCodigo.Active := False;
      dsConsultaArticulo.DataSet := dmlogicaArticulos.FindComponent
        ('cdsConsultaArticuloCodigo') as TDataSet;
      dsConsultaArticulo.DataSet.Close;
      with dmlogicaArticulos.qConsultaArticuloCodigo do
      begin
        Close;
        Params.ParamByName('CodigoBarra').AsString :=
          trim(eBusquedArticulo.Text);
      end;
      dsConsultaArticulo.DataSet.Open;
      dmlogicaArticulos.cdsConsultaArticuloCodigo.Active := True;
      if dmlogicaarticulos.cdsConsultaArticuloCodigoPRECIO_CIV.AsFloat = 0 then// aquí realize esto
      begin
        dbgConsultaArticulo.Columns[9].Visible := True;// se muestra
        dbgConsultaArticulo.Columns[9].Width := 150; puse aquí el ancho porque si lo dejo por defecto al mostrarse pierde el tamaño así que para asegurarme que no lo hago lo establezco en program...
        dbgConsultaArticulo.Columns[8].Visible := False;// se oculta el campo
      end;
       eBusquedArticulo.SelectAll;
      if dmlogicaArticulos.cdsConsultaArticuloCodigo.RecordCount = 0 then
      begin
        SHOWMESSAGE('No se Encuentra Artículo');
        eBusquedArticulo.Clear;
      end;
    end;
Saludos


La franja horaria es GMT +2. Ahora son las 01:10:28.

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