Asia, johon törmään usein ja jota paljon kysytään: Kuinka saada Power Apps Canvas -sovelluksesta tiedot PDF:ksi tai paperille?
Tähän asti kaikenlainen tulostaminen Power Appsista on aina vaatinut kaverikseen Power Automaten. Jätän PrintScreenit ym. kuvakaappaukset tässä omaan arvoonsa. 😉
Tähän asti oikeastaan ainoa järkevä tapa on ollut lähettää halutut tiedot Power Appsista Power Automatelle, joka sitten erinäisten temppujen kautta luo käyttäjälle PDF:n tai vaikkapa Wordin. Tämä on toki edelleenkin ihan käypä tapa. Se, mitä tämä tapa ei tosin mahdollista, on tietojen lähettäminen Power Appsista suoraan tulostimelle. Käyttäjän pitää aina erikseen tulostella toimitettu PDF/Word -tiedosto.
Kevään 2021 aikana Power Appsiin tuli uusi mahtava ominaisuus: Print() -funktio!
Kyseinen funktio nimensä mukaisesti printtaa Power Appsissa sillä hetkellä auki olevan ruudun tiedot käyttämällä selaimen omaa tulostustoimintoa. Print() -funktion mukana tuli myös ominaisuus asettaa Power Appsissa haluttujen elementtien näkyvyys niin, että ne eivät näy tilatussa tulosteessa eli esimerkiksi navigaatioelementit ja painikkeet voi jättää tulosteesta pois.
Kurkataanpas hieman kuinka tuo Print() -funktio toimii!
Esimerkissä meillä on Canvas app, jolla varataan tapahtumia ja niihin kaikenlaisia lisäpalveluita:
Haluaisimme tarjota käyttäjälle mahdollisuuden tulostaa kyseisen ruudun tiedot.
Luodaan ruudulle painike, jonka OnSelect –arvoksi kirjoitetaan tuo Print() -funktio:
Lopullisessa tulosteessa haluamme jättää ruudulta pois:
- Navigaatioelementit
- Painikkeet
- Myös tuo Print-painike
Valitaan halutut elementit ja laitetaan niiden Visible -arvoksi: Not(Parent.Printing)
Nyt näitä elementtejä ei näytetä, jos ollaan ”tulostenäkymässä”.
Testataan!
Painetaan Print-painiketta (alla olevassa kuvassa käytössä Chrome-selain)
Ei-halutut elementit jäävät kivasti piiloon, mutta vasemman yläkulman kuvaelementti jää näemmä pois tulosteesta, tai ainakaan ei näy tulosteen esikatselussa.
Hetken ihmettelyn jälkeen selvisi, että tulostustoiminnossa pitää laittaa päälle ominaisuus: Background graphics
Kyseisen naksun paikka vaihtelee hieman riippuen käytetystä selaimesta. Chromella ja Chromium -selaimilla naksu löytyy ”More settings” -alta
Tämän jälkeen tulosteemme näyttäisi vihdoinkin täydelliseltä. Mukaan olisi tulossa juuri ne halutut asiat.
Print() -funktio tosiaan tulostaa vain sen ruudun, jossa funktio ajetaan. Siihen ei pysty antamaan esimerkiksi parametreina muita ruutuja.
Kun meillä on sovelluksia, joissa tiedot jakaantuvat useisiin ruutuihin kannattaa tulostaminen toteuttaa niin, että luodaan erillinen ”Tulostusruutu”, joka toimii ns. koontiruutuna joka tulostetaan.
Tulostusruutuun haetaan sitten halutut tiedot kaikista ruuduista mitä sovelluksessa on.
Print() -funktio ajetaan sitten koontiruudussa, jolloin mukaan saadaan kaikkien haluttujen ruutujen tiedot
Power Appsista löytyy tällaista ”Tulostusruutua” varten nykyään ihan omat ruutupohjat, joissa tulee mukana tuo Print() -funktiolla varustettu painike:
Print() -toiminto on tosiaan vielä hyvin tuore ja tulee varmasti kokemaan kehitystä. Kenties mahdolliseksi tulee antaa funktiolle parametreinä useampi ruutu.
Joissain tapauksissa voi olla edelleen paras tapa tehdä tulostus Power Automaten kautta, varsinkin jos halutaan tuloste tietynlaiselle Word-pohjalle. Tosin tuossakin voisi miettiä, että rakentaa Power Appsin sisään mahd. samalta näyttävän Tulostusruudun, jonka sitten voi tulostella. Säästyisi sitten sekin Premium-lisensoinnin raha 😉
Happy printing!
– Pilviguru / Huru-ukko Jasu Snell