Estoy creando una consulta, que tendrá resultados diferentes en
función de los parámetros recibidos y si la situación se cumple, va a
crear un filtro y una cantidad fija de los resultados de esta
situación. El filtro está listo, pero no saben cómo establecer la
cantidad en estas situaciones. A continuación se muestra la consulta:

public IEnumerable<ConeSlab> ConsultarPlacasAcompanhamento(String
codigoLaminador, Int16 placasAEnfornar, Boolean placasEnfornadas,
Int16 placasDesenfornadas, Boolean placasRejeitadas)
{
    try
    {
        var criteria = DetachedCriteria.For<ConeSlab>()
           .CreateAlias("Cone", "C")
           .CreateAlias("Slab.SlabPDO", "SP")
           .Add(Restrictions.Eq("C.Mill", codigoLaminador))
           .Add(Restrictions.IsNotNull("C.IdentBeginDtm"))
           .Add(Restrictions.IsNotNull("SP.IdentBeginDtm"));

        var ordem = "SP.IdentBeginDtm";

        Junction disjunction = Restrictions.Disjunction();

        //Identificadas
        if (placasAEnfornar > 0)
        {
            ICriterion criterion = Restrictions.Conjunction()
                .Add(Restrictions.IsNotNull("SP.IdentEndDtm"))
                .Add(Restrictions.IsNull("SP.ChargeDtm"))
                .Add(Restrictions.IsNull("SP.RejectDtm"));
          **//How to set here?**
            disjunction.Add(criterion);
        }

        //Enfornadas
        if (placasEnfornadas)
        {
            ICriterion criterion = Restrictions.Conjunction()
                .Add(Restrictions.IsNotNull("SP.ChargeDtm"))
                .Add(Restrictions.IsNull("SP.DischDtm"))
                .Add(Restrictions.IsNull("SP.RejectDtm"));
            disjunction.Add(criterion);
        }

        //Desenfornadas
        if (placasDesenfornadas > 0)
        {
            ICriterion criterion = Restrictions.Conjunction()
                .Add(Restrictions.IsNotNull("SP.DischDtm"))
                .Add(Restrictions.IsNull("SP.MillDtm"))
                .Add(Restrictions.IsNull("SP.RejectDtm"));
            **//How to set here?**
            disjunction.Add(criterion);
       }

        //Rejeitadas
        if (placasRejeitadas)
            criteria.Add(Restrictions.IsNull("SP.RejectDtm"));

        criteria.Add(disjunction);

        return coneSlabRepository.GetListCriteria(criteria, 300,
Order.Desc(ordem));

    }
    catch (Exception ex)
    {
        Log.Error(AppStrings.EventNatureProgramacaoSequenciamento,
LibStrings.MessageExceptionQuery, ex);
        throw new LoggedException(ex.Message);
    }
}

 Un ejemplo:
 Tengo que mostrar a tan sólo 10 registros y 20 registros
Desenfornadas identificados. Si la condición es también Enfornadas
para mostrar, la pantalla se ve así:
 - Todos los registros que satisfacen la condición de Enfornadas
 - Identificados 10 registros
 - 20 registros Desenformadas.

 Por lo tanto, la cantidad no se puede establecer al final. Tendría
una manera de ajustar de forma individual?

-- 
Para escribir al Grupo, hágalo a esta dirección: 
[email protected]
Para más, visite: http://groups.google.com/group/NHibernate-Hispano

Responder a