Query class example in D365 F&O

Rumman Ansari   Software Engineer   2025-01-20 08:07:42   126  Share
Subject Syllabus DetailsSubject Details
☰ TContent
☰Fullscreen

You can modify and create queries from code by using the query class. The following example depicts a query being created with the name MyCustTable. It has only one data source custTable, with two fields: AccountNum and CustGroup. Then, you need to add the CustGroup to the range in code, which the following sample code illustrates.

MyCustTable query
Figure: MyCustTable query

The following example shows the result in code:

<span class="pln">
</span><span class="kwd">internal</span><span class="pln"> </span><span class="kwd">final</span><span class="pln"> </span><span class="kwd">class</span><span class="pln"> </span><span class="typ">MyCustTableQueryModifyInCode</span><span class="pln">
 </span><span class="pun">{</span><span class="pln">
 
   </span><span class="com">/// &lt;summary&gt;</span><span class="pln">
   </span><span class="com">/// Class entry point. The system will call this method when a designated menu </span><span class="pln">
   </span><span class="com">/// is selected or when execution starts and this class is set as the startup class.</span><span class="pln">
   </span><span class="com">/// &lt;/summary&gt;</span><span class="pln">
   </span><span class="com">/// &lt;param name = "_args"&gt;The specified arguments.&lt;/param&gt;</span><span class="pln">
   
   </span><span class="kwd">public</span><span class="pln"> </span><span class="kwd">static</span><span class="pln"> </span><span class="kwd">void</span><span class="pln"> main</span><span class="pun">(</span><span class="typ">Args</span><span class="pln"> _args</span><span class="pun">)</span><span class="pln">
   </span><span class="pun">{</span><span class="pln">
       </span><span class="typ">Query</span><span class="pln">                   query </span><span class="pun">=</span><span class="pln"> </span><span class="kwd">new</span><span class="pln"> </span><span class="typ">Query</span><span class="pun">(</span><span class="str">'MyCustTable'</span><span class="pun">);</span><span class="pln"> </span><span class="com">// using the existing query named MyCustTable</span><span class="pln">
       </span><span class="typ">QueryBuildDataSource</span><span class="pln">    qbds</span><span class="pun">;</span><span class="pln">
       </span><span class="typ">QueryBuildRange</span><span class="pln">         qbr</span><span class="pun">;</span><span class="pln">
 
       qbds </span><span class="pun">=</span><span class="pln"> query</span><span class="pun">.</span><span class="pln">dataSourceTable</span><span class="pun">(</span><span class="pln">tableNum</span><span class="pun">(</span><span class="typ">CustTable</span><span class="pun">));</span><span class="pln"> </span><span class="com">// finding data source for table CustTable</span><span class="pln">
       qbr </span><span class="pun">=</span><span class="pln"> qbds</span><span class="pun">.</span><span class="pln">addRange</span><span class="pun">(</span><span class="pln">fieldNum</span><span class="pun">(</span><span class="typ">CustTable</span><span class="pun">,</span><span class="pln"> </span><span class="typ">CustGroup</span><span class="pun">));</span><span class="pln"> </span><span class="com">// adding range on CustGroup to the data source.</span><span class="pln">
 
       </span><span class="typ">QueryRun</span><span class="pln"> queryRun </span><span class="pun">=</span><span class="pln"> </span><span class="kwd">new</span><span class="pln"> </span><span class="typ">QueryRun</span><span class="pun">(</span><span class="pln">query</span><span class="pun">);</span><span class="pln">
       </span><span class="kwd">while</span><span class="pln"> </span><span class="pun">(</span><span class="pln">queryRun</span><span class="pun">.</span><span class="kwd">next</span><span class="pun">())</span><span class="pln">
       </span><span class="pun">{</span><span class="pln">
           </span><span class="typ">CustTable</span><span class="pln"> custTable </span><span class="pun">=</span><span class="pln"> queryRun</span><span class="pun">.</span><span class="kwd">get</span><span class="pun">(</span><span class="pln">tableNum</span><span class="pun">(</span><span class="typ">CustTable</span><span class="pun">));</span><span class="pln">
           info</span><span class="pun">(</span><span class="pln">strFmt</span><span class="pun">(</span><span class="str">'%1, %2'</span><span class="pun">,</span><span class="pln"> custTable</span><span class="pun">.</span><span class="typ">AccountNum</span><span class="pun">,</span><span class="pln"> custTable</span><span class="pun">.</span><span class="typ">CustGroup</span><span class="pun">));</span><span class="pln">
       </span><span class="pun">}</span><span class="pln">
   </span><span class="pun">}</span><span class="pln">

</span><span class="pun">}</span>


No Questions Data Available.
No Program Data.