Skip to main content

Lock/Block Page Filters in Dynamics Navision : By using FilterGroup()

 Hi Folks,

In this blog we will see how we can set the filters on Page Programmatically i.e, users cannot remove the filter by clicking the “Clear Filter” button.

But if we will not use filtergroup here, only use SetRange then user will clear these filters using "Clear Filters" from Filters Pane.

Sometimes we have to use this feature for security purpose also (Like Users can see the contacts only created by user itself) . Here i am taking example of Contacts. Currently if you open Contacts in Navision it will show you all contacts.





Now add Filter of "SalesPerson Code" is equal to AH along with FilterGroup or any other filter you want,

Also, i am adding Action button named "Contacts (with Filters)" on company Information page to Run Contact List Page based on our filters.

pageextension 50100 "Company Information Extension" extends "Company Information"
{
    actions
    {
        addlast(Processing)
        {
            action("Contacts (with Filters")
            {
                ApplicationArea = All;

                trigger OnAction()
                var
                    Contacts_Rec: Record Contact;
                begin
                    Contacts_Rec.FilterGroup(10);
                    Contacts_Rec.SetRange("Salesperson Code", 'AH');
                    Contacts_Rec.FilterGroup(0);
                    page.Run(5052, Contacts_Rec);

                end;
            }
        }
    }
}


Now Action button is visible as we added in previous step and after clicking on this button, result will be..

only "Salesperson Code" with value AH contacts is visible now and also user will not able to see or clear filter here.

To Remove the same filters, Use this Code
                    Contacts_Rec.FilterGroup(10);
                    Contacts_Rec.SetRange("Salesperson Code", 'AH');
                    Contacts_Rec.FilterGroup(0);

                    Contacts_Rec.FilterGroup(10);
                    Contacts_Rec.SetRange("Salesperson Code");
                    Contacts_Rec.FilterGroup(0);
                    page.Run(5052, Contacts_Rec);



Result :- Now it works normally.i.e, All contacts will be visible here:

I hope this article is helpful for you.

Stay connected for more articles😏..

Comments

Popular posts from this blog

Amount In Words in Navision / Business Central

Hi Guys, In this article, we will see how to display amount in words in Microsoft Dynamics Business Central. Here, I am taking an example of Report object  which is widely used in Navision for converting decimal amount field into words. Procedure :-  Step-1 Declare the following Global Variables :         RepCheck:  Report  "Check";         NoText:  array [ 2 ]  of   Text ;         AmountInWords:  Text ; where, (1) RepCheck is a variable of  Report DataType Named as " Check " which is 1401. (2) NoText is a variable of DataType " Text " with array Dimension value as 2 which is defined as shown above. (3) AmountInWords is a variable of DataType " Text " which will store final result of amount in words. Step-2 Now, add the following code in OnAfterGetRecord() trigger of DataItem containing that decimal field value. So in my custom Purchase Order Report, i am adding code in the Purchase Header (DataItem) - OnAfterGetRecord() trigger.   trigger  OnA

Flow Custom field to G/L Entry and other Posted tables : From Purchase Order to Posted Purchase invoice

Hi Readers, In this blog we will see how we can transfer data from " Purchase Header" to "Purchase Invoice Header" & "G/L Entry" table in Business Central. In this example, will create "Remarks" field on Purchase Header table and after posting, flow it to Purchase Invoice Header & G/L Entry tables: Firsly, create required fields ("Remarks") in below mentioned tables by creating table extensions: Purchase Header (38) Purch. Inv. Header (122) Gen. Journal Line (81)  G/L Entry (17) For the Purch. Inv. Header table, you can just create copy the field from purchase header and paste it in  Purch. Inv. Header  table. If the field ID No. is same for that field for both the tables then you don't have to code i.e, it automatically transfer that field data from Purch. Header to Purch. Inv. Header . Step-(1)   tableextension   50104  "Purchase Header Ext"  extends  "Purchase Header" {      fields     {         

Calculate Date : Using Date Formula and CalcDate Function in Navision/BC

 Hi Everyone, In this article we will see how we can Calculate Date by adding and subtracting No. of Days / Months based on CalcDate and DateFormula datatype. Here, I define three variables required for: (1) " No of Days " -  To define No. of Days / Months as required. You can also use these units denoted as: <Unit> = D | WD | W | M | Q | Y (D=day, WD=weekday, W=week, M=month, Q=quarter, Y=year). (2) " From Date " and " To Date "  Date type Variables to store calculated date in it. page   50103  "Date from Date Formula" {     PageType = Card;     ApplicationArea = All;     UsageCategory = Administration;     SourceTable =  Integer ;      layout     {          area( Content )         {              group( General )             {                  field( "No. of Days"; "No. of Days" )                 {                     ApplicationArea = All;                 }             }         }     }      actions     {          area