Günü Sözü

"Hiçbir şey bilmeyen cahildir, ama bilip de susan ahlaksızdır. " Bertolt Brecht.
"İyilik yapabildiğim zaman mutlu olurum; ama en büyük mutluluk yapılan bir haksızlığı düzeltmektir." Tolstoy

3 Eylül 2018 Pazartesi

query filtre örneği, lookup filter örneği

filteredDs.addRange(fieldNum(FilteredTable, Field1)).value(strFmt(
    "(%1.%2 like %3.%4)",
    filteredDs.name(),
    fieldStr(FilteredTable, Field1),
    definitionDs.name(),
    fieldStr(FilterDefiniton, Field1)));


lookup filter
forma eklenen bir alan ve bu alan lookup ise filtre verme

Query                   query = new Query();
    QueryBuildDataSource    qbds;
    QueryBuildRange qr;
    SysMultiTableLookup     sysTableLookup;

    qr = query.addDataSource(tableNum(CustTable)).addRange(FieldNum(CustTable,RecId));
    //qr.value(strFmt('(!(AccountNum LIKE "%1"))',SysQuery::valueLikeAfter('M')));
   // qr.value(strFmt('(!(AccountNum LIKE "%1"))',"M*"));
    qr.value(strFmt('(!(AccountNum LIKE "M*"))'));

//status(2); bu recid değilde accountnum da gösterilecekse enable yapar



    sysTableLookup = SysMultiTableLookup::newParameters(this, query);
    sysTableLookup.addLookupField(fieldNum(CustTable, AccountNum));
    sysTableLookup.addLookupField(fieldNum(CustTable, Party));

    sysTableLookup.performFormLookup();


örnek

 Query q;
    Queryrun qr;
    QueryBuildRange qbr;
    QueryBuildDataSource qbds;
    InventTrans iv;
    Real Total;
    str range;

    /* The following query produces the same results as:
    while select sum(qty) from inventTrans
        where (inventtrans.ItemId == "1016756") || inventtrans.ItemId == "1032958"
            join inventDim
                group by inventBatchId
                where inventDim.InventDimId == inventTrans.InventDimId */

    q = new query("Inventory_Transactions");
    qbds = q.addDataSource(tablenum(InventTrans));
    qbds.addSelectionField(fieldnum(InventTrans,Qty),selectionfield::Sum);
    qbr = qbds.addRange(fieldnum(InventTrans,ItemId));

    qbr.value(strfmt('((%1 == "%2") || (%1 == "%3"))',fieldstr(inventtrans,ItemId),'1016756','1032958'));
    range = strfmt('((ItemId == "%1")||(ItemID =="%2"))',queryvalue('1016756'),queryvalue('1032958'));
    qbr.value(range);

    qbds = qbds.addDataSource(tablenum(InventDim));
    qbds.relations(true);
    qbds.orderMode(ordermode::GroupBy);
    qbds.addSortField(fieldnum(InventDim,InventBatchId));
    qr = new QueryRun(q);  // If the user clicks OK, continue.
    if (qr.prompt())
    {
        while (qr.next())
        {
           iv = qr.get(tablenum(InventTrans));
           total =  iv.Qty;
        }
    }
    info(strfmt("Quantity: %1",total));
     info (qr.query().dataSourceNo(1).toString());

Hiç yorum yok:

Yorum Gönder