Posts

Showing posts from September, 2019

Query not value enum in D365

//Query not value field QueryBuildRange qbrRecId; qbrRecId = qbds1.addRange( fieldNum ( HcmWorker , RecId   )); // add range qbrRecId.value( SysQuery ::valueNot( "22565420979" )); //22565420979 is RecId of worker;    // QueryBuildDatasource add range not equal to ENUM value QueryBuildRange qbrStatus; qbrStatus  = qbds1.addRange( fieldNum ( PerdiemHeader , Status)); // add range qbrStatus .value( SysQuery ::valueNot(enum2str( PerdiemStatus ::Rejected))); it works for one range ,but what if i want add multiple value to range like this : QueryBuildDataSource qbds;               qbds.addRange( fieldNum ( HcmWorker , RecId ).value( SysQuery ::valueNot( "22565420979" )); qbds.addRange( fieldNum ( PerdiemHeader ,Status).value( SysQuery ::valueNot(enum2str( PerdiemStatus ::Rejected)));

User ID to user name or Worker Name in D365

hcmworker   userId2Worker = hcmworker ::find( hcmworker ::userId2Worker(curUserId()));

How to pass the parameter from one form to another in Dynamic365

1. Create two forms with Name FormA & FormB   2. Below code is override in clicked method() of button. void  clicked() {      // Args class is usually used in Axapta for passing parameters between forms      Args             args;      FormRun          formRun;     ;     args =  new   args ();      // Our values which we want to pass to FormB      // If we want pass just simple string we can use 'parm' method of 'Args' class like     args.parm(  LeaveRequestID.text() );      // If we want pass whole record we can use 'parm' method of 'Args' class        args.record(TableName);      // Run FormB     args.name(  formstr ( FormB ) );     formRun = classFactory.formRunClass( Args );     formRun.init();     formrun.run();     formrun.wait();      super (); } 3. Now override init() method in FormB. public   void  init() {      str             anyStringValueFromCaller;      TableName       tablename;