none
QueryBuilder Range RRS feed

  • Pergunta

  • Boa tarde, 

     

    Como faço para colocar 2 ranges numa mesma querybuilder?

    tenho um formulario que preciso pegar os valores de uma data inicial até uma data final.

    Até agora só consegui passar 1 range desta forma, no evento clicked de um botao:

     

    qbdsProdTableJour.addRange(fieldNum(ProdTableJour,TransDate)).

    value(queryvalue(DateFilder1.dateValue()));

    info(qbdsProdTableJour.toString());

    ProdTableJour_ds.executeQuery();

     

    Alguem pode me ajudar?

     

    Att,

     

    Rafael.

    segunda-feira, 29 de março de 2010 19:38

Todas as Respostas

  • Use isto... tem várias maneiras de se fazer isso, ta ai a mais simples e te recomendo fortemente estudar o MOC.

    static void Job1(Args _args)
    {
        Query                           query = new Query();
        QueryBuildDataSource            qbds;
        QueryBuildRange                 qbrOne, qbrTwo;
        ;
        qbds    = query.addDataSource(tableNum(CustTable));
        qbrOne  = qbds.addRange(fieldNum(CustTable, AccountNum));
        qbrOne.value(SysQuery::value("000001_029"));
        qbrTwo  = qbds.addRange(fieldNum(CustTable, CustGroup));
        qbrTwo.value(SysQuery::value("0001"));
        
        info(qbds.toString());
    }


    []s
    Pichler

    Pichler
    terça-feira, 30 de março de 2010 12:06
  • Pelo que eu entendi você quer fazer uma query com um intervalo de datas né?

     

    É bem simples, é só utilizar o seguinte metodo statico no value do Range:

    SysQuery::range(data_de, data_ate);

    Isso tambem funciona para intervalo de nomes, códigos entre outros.

    terça-feira, 30 de março de 2010 13:36
  • obrigado Francis, agora que li direito.
    Pichler
    terça-feira, 30 de março de 2010 14:42
  • Obrigado pela ajuda, resolvi da seguinte maneira:

     

        qbdsProdTableJour.addRange(fieldNum(ProdTableJour, TransDate)).

        value(strFmt("%1..%2", Filtro1.valueStr(), Filtro2.valueStr()));

        ProdTableJour_ds.executeQuery();

    terça-feira, 30 de março de 2010 15:35
  • O SysQuery::Range() retorna exatamente essa sintaxe. Dá na mesma =D
    terça-feira, 30 de março de 2010 16:07