cancel
Showing results for 
Search instead for 
Did you mean: 
WarrenBelz

Opening Attachments from Power Apps instead of having to download.

Option 1 - View Mode Opening

In the example below, the Form is started in Edit Mode, showing a normal attachment control, however once it is switched to view mode, a different attachment list appears with an icon at the right that allows direct opening of the attachment with “one click”. If the file can be opened in a browser (images, PDFs) it will do so, otherwise it will download.

OpenAttachments.gif

So what is going on here?

Firstly, a small limitation – the “view mode” list is actually a gallery (which cannot be inserted into the form), so is simply placed in the same location as the Attachment Control. Consequently, if the Form is longer than the screen, the gallery will not “scroll” with the form. The visibility of both controls is controlled by the form mode as shown further down.

The important piece is the Items of the “View” Gallery. If you simply reference the attachment control, you do not get the values you need, so you need to Lookup the SharePoint List with the relevant reference. I have simply used the ID of the selected item in the gallery from which the form was chosen, but this could be whatever identifier you wanted.

LookUp(
   TestFields,
   ID = galTest.Selected.ID
).Attachments

An additional function below is to shade alternate rows as shown in the demonstration – if you want to do this

With(
   {
      wList: 
      LookUp(
         TestFields,
         ID = galTest.Selected.ID
      ).Attachments
   },
   ForAll(
      Sequence(CountRows(wList)),
      Patch(
         Last(
            FirstN(
               wList,
               Value
            )
         ),
         {RowNo: Value}
      )
   )
)

Then the TemplateFill of the gallery is

If(
   Mod(
      ThisItem.RowNo,
      2
   ) = 1,
   White,
   ColorFade(
      LightBlue,
      60%
   )
)

Now the values of the controls in the gallery – the Label Text

ThisItem.DisplayName

And the Icon (it is an icon added to Media) OnSelect

Launch(ThisItem.AbsoluteUri)

The Visible of the Attachment Card is

frmAttachDemo.Mode=FormMode.Edit

and the Visible of the Gallery

frmAttachDemo.Mode=FormMode.View

and that is about the sum of it.
I have found it very useful in my SharePoint Integrated forms, (which are very basic user interfaces) that now allow one “double click” on the SharePoint item to open the form in View mode and then a further click to launch the form. This makes reviewing large numbers of daily submitted PDF and image forms much quicker.

 

Option 2 - Gallery with Images

If you have pictures in your attachments, you can view thumbnails of these in a gallery and then open the relevant item by simply selecting it. In the example below, the three attachment pictures are displayed in a horizontal gallery below the attachment control

ImageGallery.png

As in the example above the Items of the Gallery are

LookUp(
   TestFields,
  ID = galTest.Selected.ID
).Attachments

The Image of the Image control is

ThisItem.Value

The OnSelect of the image is

Launch(ThisItem.AbsoluteUri)

 

Option 3 - HTML Control with Links

In the example below, the HTML Text box is inside the Attachment Control. It does not need to be, but may assist with placement and scrolling.

ImageLinkHTML.png

All items shown are hyperlinks and open the relevant attachments directly. The HtmlText of the box is

Concat(
    LookUp(
        TestFields,
        ID = 1
    ).Attachments,
    "<p><b><a href= '" & AbsoluteUri & "'>" & DisplayName & "</a></b></p>"
)

I hope this gives you some thought on the flexibility of Attachment controls and their usage.

Comments