lunes, 1 de agosto de 2011

LookUp Programado Con Rango de fechas, query, tabla Temporal

server static void lookupResponsable(object cont,FormDataSource fdsf,date fecha_Inicio,date fecha_fin)
{
SysTableLookup myLookup =
SysTableLookup::newParameters(tablenum(SMAGSTempserviceObject),cont);

Query query = new Query(querystr(SMAServiceOrderTableLine));

QueryBuildDataSource qbds;

QueryBuildRange qbr;
str rangos;
SMAServiceOrderTable _SMAServiceOrderTable;
SMAServiceOrderLine _SMAServiceOrderLine;
queryrun qr;
SMAGSTempserviceObject _SMAGSTempserviceObject;
RecordInsertList _SMAGSTempserviceObjectList;

//tcDateTime fecha_ini_t;
//UtcDateTime fecha_fin_t;

;

rangos = strfmt("%1..%2",Date2StrXpp(fecha_Inicio)+" 12:00:00 am",Date2StrXpp(fecha_fin)+" 11:59:59 pm");


qbds = query.dataSourceTable(tablenum(SMAServiceOrderTable));
qbds.addRange(fieldnum(SMAServiceOrderTable,ServiceDateTime)).value(rangos);

qbds.addGroupByField(fieldnum(SMAServiceOrderTable,Responsible));

qr=new queryrun(query);
while(qr.next())
{

   _SMAServiceOrderLine=qr.get(tablenum(SMAServiceOrderLine));
   _SMAServiceOrderTable=qr.get(tablenum(SMAServiceOrderTable));

   _SMAGSTempserviceObject.ServiceObjectId=_SMAServiceOrderTable.Responsible;
   _SMAGSTempserviceObject.descripcion= _SMAServiceOrderTable.ServiceResponsibleName();
   _SMAGSTempserviceObject.doInsert();

}

myLookup.addLookupField(fieldnum(SMAGSTempserviceObject,ServiceObjectId));
myLookup.addLookupField(fieldnum(SMAGSTempserviceObject,descripcion));

myLookup.parmTmpBuffer(_SMAGSTempserviceObject);

myLookup.performFormLookup();







}

2 comentarios:

  1. Yo tengo otras opciones para filtrar con rangos en www.dynamicsaxlatino.com/rangos-en-un-query-personalizados/‎

    ResponderEliminar
  2. Hola tengo esta opcion si quieres un lookup para seleccionar una persona de la libreta de contactos para Dynamics AX 2012
    http://www.dynamicsaxlatino.com/crear-lookup-de-contacto-de-la-libreta-de-contactos-ax-2012/

    ResponderEliminar