Ver Mensaje Individual
  #5  
Antiguo 13-05-2019
Avatar de mRoman
mRoman mRoman is offline
Miembro
 
Registrado: nov 2003
Posts: 599
Reputación: 21
mRoman Va por buen camino
Cita:
Empezado por Saul Rivera Ver Mensaje
Hola tengo un cxgrid con una columa llamada producto que se llena con dataset el proble es que ahora ocupo que se llene mediante un parametro que se asigna en tiempo de ejecucion de la siguiente manera
yo tengo un lookupcombobox que muestra el nombre de proyecto y necesito que en el grid se sargue un query que tiene como parametro en el where el id del proyecto, entonces al momento de seleccionar el nombre del proyecto deb capturar el id de ese proyecto y mandarlo como parametro el query para que me muestre los productos que estan asignados a ese proyecto

este es mi query
Código SQL [-]
SELECT P1.ID_PROYECTO,
P1.NOMBRE,
I1.COD_PRODUCTO,
NOMBRE = case 
    WHEN dbo.ObtenerDeConfiguracion(216) = '0' then
        I1.nombre
    else 
        I1.COD_UPC_PROPIO + ' - ' + I1.nombre
    end, 
I2.CANTIDAD_STOCK
FROM PR_PROYECTOS P1
    INNER JOIN PR_FICHA_HDR F1
          ON F1.ID_PROYECTO = P1.ID_PROYECTO
    INNER JOIN PR_FICHA_DTL_MAT F2
          ON F1.ID_FICHA = F2.ID_FICHA
    INNER JOIN INV_PRODUCTOS I1
          ON F2.COD_PRODUCTO = I1.COD_PRODUCTO
    INNER JOIN INV_EXISTENCIAS I2
          ON I1.COD_PRODUCTO = I2.COD_PRODUCTO
    LEFT JOIN OT_ORDEN_TRABAJO_PROYECTO_HDR T1
          ON P1.ID_PROYECTO = T1.ID_PROYECTO
WHERE P1.ID_PROYECTO = :ID_PROYECTO
con esto lleno el cxgrid pero me tira este error "invalid imput parameter values. check the status values for detail"

esto supongo es porque no le mando el id del proyecto para que busque la informacion y no se como hacerlo
Intente esto y no me funciono

Código Delphi [-]
procedure TfrmRequisicion.gvDataDBTableView1COD_PRODUCTOCompareValuesForCellMerging(
  Sender: TcxGridColumn; AProperties1: TcxCustomEditProperties;
  const AValue1: Variant; AProperties2: TcxCustomEditProperties;
  const AValue2: Variant; var AAreEqual: Boolean);
begin
  dmMain.qryAProductos.ParamByName('ID_PROYECTO').AsInteger := dmMain2.qryProyectos.FieldByName('ID_PROYECTO').AsInteger
end;
Espero puedan ayudarme Soy muy nuevo en delphi
Hola Saúl:

Existe una propiedad del LookUpComboBox, que se llama ".KeyValue", esta propiedad almacena el valor del campo asociado al DataSet que le hayas configurado, en su propiedad "KeyField".

De tal manera que tu código quedaría asi:
Código Delphi [-]
procedure TfrmRequisicion.gvDataDBTableView1COD_PRODUCTOCompareValuesForCellMerging(
  Sender: TcxGridColumn; AProperties1: TcxCustomEditProperties;
  const AValue1: Variant; AProperties2: TcxCustomEditProperties;
  const AValue2: Variant; var AAreEqual: Boolean);
begin
  dmMain.qryAProductos.ParamByName('ID_PROYECTO').AsInteger := cbxProyecto.KeyValue;
end;


Espero te sirva....
SALUDOS!
__________________
Miguel Román

Afectuoso saludo desde tierras mexicanas....un aguachile?, con unas "cetaseas" bien "muertas"?, VENTE PUES !!

Última edición por mRoman fecha: 13-05-2019 a las 17:30:59.
Responder Con Cita