Posts

Many to Many Filters

Image
Blog Index Author: Warren Belz This article discusses the example of a multi-choice field in SharePoint with a multi-choice Combo Box in Power Apps filtering the possibility of   ANY   selected field in the Combo Box matching   ANY   stored value in the list which is stored in a Complex (table) field. Many on Many  queries cannot be done directly in a Filter, but in the example shown below, a gallery is produced showing all cases where the fields match, I have also included the ID number of the record to demonstrate that no duplicates have been chosen. In this example, the field queried is the same field that the combo box is linked to, however this principle is not limited to this situation. Firstly, this video is a demonstration of it working in real time.  The below are examples of the results of various choice combinations. So what is happening here? Firstly, on the  OnChange  of the Combo Box, a Collection needs to loop through the selected items and look for matches over in the

Practical Power Apps - Blog Index

Author: Warren Belz  Practical Power Apps has been designed as a guide for users venturing along their Power Apps Journey. The following topics are discussed Power Apps Delegation (SharePoint)  A general guide to challenges a user may encounter managing Delegation Using the With() statement to manage Delegation issues Some workarounds to lessen the burden Power Apps SharePoint Images Storage and viewing of various type of images Power Apps Slide show A nice visual addition to your app Dynamically expanding two-level menus Get the look and feel of windows menus in Power Apps Office365 Groups for user control inside Power Apps Do more than simply control access Many to Many Filter Explore multi-level filters from a Combo Box

Dynamic expanding multi-level menus

Image
Blog Index Author: Warren Belz As users have become accustomed in many applications, top menus with context-sensitive sub-menus are the norm, but are not part of the standard Power Apps “suite”, so creating this type of function is a useful enhancement to user experience using a “look and feel” familiar to them. Firstly, the App and the Excel file (which is already imported) can be  downloaded here.   I will start this a bit backwards, showing the end result of a three-level menu based on a list as below and then discuss what needs to be done to accomplish this. These are galleries with one field in each: - galManDevice  shows the PC manufacturer list. galTypeDevice  is for all device types belonging to the manufacturer. galModelDevice   shows all models of the type from the manufacturer. To the right of these, there is a picture of the chosen device and the specifications. So what is happening here? There are some things that need to be done to the galleries and panels to control the

Using Office 365 Groups for Security/Control inside Power Apps

Image
Blog Index Author: Warren Belz Office 365Groups have many uses, particularly when Security Enabled, for controlling user authorities to access individual Power Apps while also allowing the same group to control access to the data source ("all in one place"). However, you can also use the user’s membership of any group (not necessarily having access to the app and not needing security enablement) to control what they can do and see once the app is opened. This blog discusses the options for enabling the functionality. One important thing you need to do first is getting the  id  of the group or groups you want to work with. You can use the  DisplayName  (also as shown below), but if this is changed, the process will not function whereas the  id  will always remain the same. Fortunately, getting the  id  of the group is easy, with the simplest way being to put a gallery (I called it  galGroups  below) on the screen with the Items Office365Groups.ListOwnedGroups().value   and in

With() Statement managing Delegation

Blog Index Author: Warren Belz In this blog, I will discuss a method that will allow the combining of non-Delegable filters with Delegable items in a way that will remove Delegation warnings and combine the process into one statement. There are some important things to remember in this: - The With() statement is effectively creating a (very) temporary variable/collection within the statement which only “exists” for the life of the statement execution. It is not Delegable in itself, meaning that it cannot “hold” more than 500-2000 records depending on your settings (I will refer to 2,000 here). However, if you can isolate less than this number with Delegable filters, then any statement using the resulting data is Delegable . You can also use this on an entire list (no Filter) with less than 2,000 records for the purpose of removing the Delegation warning. NOTE: If your With() statement potentially produces more than the 2,000 records, you will not get a Delegation warning