Thursday, 27 October 2016

Dynamic Query For Sales Inquiry from 3 tables:-
=======================================================================================================================================
void clicked()
{
    Query query;
    QueryBuildDataSource qbds,qbds1,qbds2;
    QueryBuildRange qbr,qbr1,qbr2;
    QueryRun qr;
    str i,s,s1;
    SalesTable  salestab;
    SalesLine   salesnum;
    InventDim   dim;
    SalesTest   test;

    super();

    delete_from SalesTest;

    s       =  CustAccount.valueStr();
    i       =  CustGroupId.valueStr();
    s1      =  Itemid.valueStr();

    query   =   new query();
    qbds    =   Query.addDataSource(tableNum(SalesTable));
    qbr     =   qbds.addRange(fieldNum(SalesTable,CustAccount));
    qbr2    =   qbds.addRange(fieldNum(SalesTable,custgroup));

    qbds1   =   qbds.addDataSource(tableNum(SalesLine));
    qbr1    =   qbds1.addRange(fieldNum(SalesLine,ItemId));
    qbds1.relations(true);

    qbds2   =   qbds1.addDataSource(tableNum(InventDim));
    qbds2.relations(true);
    if(s)
        qbr.value(s);
    if(i)
        qbr2.value(i);
    if(s1)
        qbr1.value(s1);

    qr=new QueryRun(query);

    while(qr.next())
    {
    salestab        =  qr.get(tableNum(SalesTable));
    dim             =  qr.get(tableNum(InventDim));
    salesnum        =  qr.get(tableNum(SalesLine));

    SalesTest.Salesid    =   salestab.SalesId;
    SalesTest.Itemid     =   salesnum.ItemId;
    SalesTest.Site       =   dim.InventSiteId;
    SalesTest.Warehouse  =   dim.InventLocationId;
    SalesTest.Custgroup  =   salesnum.CustGroup;
    SalesTest.CustAccount =  salesnum.CustAccount;
    SalesTest.CustName   =   salesnum.Name;
    SalesTest.insert();
    }

    SalesTest_ds.refresh();
    SalesTest_ds.research();
}


No comments:

Post a Comment