PDA

Ver la Versión Completa : Cambiar campo a mostrar en un dbgrid con clientdataset.


novato_erick
23-01-2014, 16:44:54
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..


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:


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