Monday 7 May 2018

Using Dynamic Query filter Records and inserting.

public Na_VendorTransTemp inserttable()
{
    VendTable               vendTable;
    VendTrans               vendTrans;
    Na_VendorTransTemp      na_VendorTransTemp1;

    Query                   query;
    QueryBuildDataSource    queryBuildDataSource;
    QueryBuildDataSource    queryBuildDataSource1;
    QueryBuildRange         queryBuildRange,queryBuildRange1,queryBuildRange2;
    QueryRun                queryRun;

    query=new query();      //Initialize Query

    queryBuildDataSource=query.addDataSource(tableNum(vendTable));   //Add Query
    queryBuildDataSource1=queryBuildDataSource.addDataSource(tableNum(vendTrans)); //Add other Data Source for Joining
    queryBuildDataSource1.relations(true);// Enable Relation
    queryBuildDataSource.joinMode(JoinMode::InnerJoin);//Define Join Mode

    queryBuildRange=queryBuildDataSource1.addRange(fieldNum(vendTrans,AccountNum)); // Add Range
    queryBuildRange1=queryBuildDataSource1.addRange(FieldNum(vendTrans,TransDate));
    //querybuildrange2=queryBuildDataSource.addrange(fieldnum(VendTable,vendgroup));

    if(VendorAccount.valueStr() !="")
    {
        queryBuildRange.value(queryValue(VendorAccount.valueStr())); // Add Query Value

    }
     if(FromDate.dateValue() != dateNull() && ToDate.dateValue() !=dateNull())
    {
        queryBuildRange1.value(SysQuery::range(FromDate.dateValue() ,ToDate.dateValue()));

    }
    if(VendorGroup.valueStr() != "")
    {
        querybuildrange2.value(queryvalue(VendorGroup.valueStr()));
    }
    queryRun= new QueryRun(query);   //Pass query to run it

    While(queryRun.next())
    {

        vendTable=queryRun.get(tableNum(VendTable));
        vendTrans=queryRun.get(tableNum(VendTrans));

        na_VendorTransTemp1.TransDate            = VendTrans.TransDate;
        na_VendorTransTemp1.Voucher              = VendTrans.Voucher;
        na_VendorTransTemp1.PromissoryNoteStatus = VendTrans.PromissoryNoteStatus;
        na_VendorTransTemp1.PromissoryNoteID     = VendTrans.PromissoryNoteID;
        na_VendorTransTemp1.AccountNum           = VendTrans.AccountNum;
        na_VendorTransTemp1.PromissoryNoteSeqNum = VendTrans.PromissoryNoteSeqNum;
        na_VendorTransTemp1.CurrencyCode         = VendTrans.CurrencyCode;
        na_VendorTransTemp1.VendGroup            = vendTable.VendGroup;
        na_VendorTransTemp1.insert();
     }
    return na_VendorTransTemp1;
}

No comments:

Post a Comment