Wstęp
Wspominając wszystkie projekty, w których miałem okazję uczestniczyć, nie potrafię przypomnieć sobie przypadku, w którym z ust naszego Klienta nie padła by uwaga dotycząca formatowania tekstu. Najczęściej dotyczyły one formatowania data i walut. Rok na pierwszym miejscu, innym razem dzień, miesiąc wyrażony liczbą innym razem tekstem. Zawsze inaczej i zawsze źle. Niby to prosta rzecz, ale potrafi być irytująca. Jak to wygląda w PowerApps? Na szczęście aplikacja pozwala bardzo dokładnie formatować dowolne ciągi znaków. W dzisiejszym odcinku pokażę ci jak to zrobić korzystając z kilku wbudowanych funkcji.
Znaj swoje źródło danych
Zaznaczałem to już w poprzednich odcinkach, ale powtórzę jeszcze raz. Pracując z PowerApps bardzo przydaje się analiza źródła danych, z którego korzystasz. Liczbę, czy datę możesz zapisać w dedykowanej kolumnie typu Number/DateTime/Currency. Zdarzają się jednak sytuacje, w której źródło wykorzystuje do tego po prostu kolumnę typu Text. W takim przypadku przydatną rzeczą jest przekonwertowanie tych wartości do odpowiedniego typu. Jak to zrobić?
Konwersja danych
Odpowiedź jest prosta i jak to zwykle w PowerApps, sprowadza się do użycia odpowiedniej funkcji. Zmianę tekstu na liczbę wykonasz funkcją Value. Tekst na datę, funkcją DateTimeValue. Konwersję i formatowanie tekstu zrealizujesz funkcją Text. Ta ostatnia pozwala na bardzo wiele. Więcej szczegółów zobaczysz w filmie.
Przykład
Czas na przykład. Pokażę Ci w nim jak sformatować daty, liczby i waluty. Pamiętaj o ustawieniach regionalnych. Te oprócz odpowiedniego separatora listy, narzucają też specyficzne formatowanie walut i liczb. Jeśli u Ciebie dane wyświetlają się inaczej, to pewnie zasługa tych ustawień. Nie przejmuj się tym na razie.
Podsumowanie
W ramach podsumowania zostawiam Ci dzisiaj lekturę uzupełniającą. To linki do trzech artykułów z oficjalnej dokumentacji PowerApps. Naprawdę warto je przeczytać:
🔗 Funkcja Text: https://docs.microsoft.com/en-us/powerapps/maker/canvas-apps/functions/function-text
🔗 Funkcja Value: https://docs.microsoft.com/en-us/powerapps/maker/canvas-apps/functions/function-value
🔗 Funkcja DateTimeValue: https://docs.microsoft.com/en-us/powerapps/maker/canvas-apps/functions/function-datevalue-timevalue
W kolejnym odcinku spróbujemy uzupełnić naszą aplikację o bardzo ważny element – listę zawodników. Do tego potrzebować będziemy dodatkowego źródła danych. Jak je dodać i podłączyć do dedykowanej galerii zobaczysz już za tydzień. Do następnego razu!
Witam,
A co w przypadku gdy Sherpoint zwraca wartość z kolumny obliczeniowej w formie 0.000 (z kropką)
Powerapps (w polskiej wersji) odczyta to jako tekst i nie można tego przekonwertować do value (tzn. można tylko nie wiem jak)
W excelu można skorzystać z opcji znajdź i zmień.
Jak to rozwiązać w PowerApps?
Grzegorz
Jeśli funkcja Value() nie działa w takim przypadku (przyznam, że nie przetestowałem tego w takim scenariuszu) to zawsze możesz użyć funkcji substitue (https://docs.microsoft.com/pl-pl/powerapps/maker/canvas-apps/functions/function-replace-substitute) i zamienić kropkę na przecinek. To pomysł, który przyszedł mi do głowy ad hoc, Pewnie wymyślisz coś lepszego, ale to powinno wystarczyć. Powodzenia i daj znać, czy się udało 🙂
Dzięki !
Działa 🙂
Pozwolę sobie jeszcze na jedno pytanie (skoro tak łatwo poszło:)
Koszysta z listy comobox jako Filtr. Nie potrawie napisać formuły która pozwoli zaznaczyć klika opcji (comobox działa tylko przy wybieraniu jednej opcji)
Z góry dzięki za pomoc !!!
Jeszcze raz napisz co chcesz osiągnąć, bo nie rozumiem pytania 🙁
Korzystam z listy wybieralnej Comobox. W liście ustawione są wartości (dla przykładu) A i B. Następnie za pomocą tej listy filtruję tabelę (wartości A i B znajdują się w kolumnie X). Korzystając z formuły „Filter” mogę filtrować tablę po wartości A lub B. Problem: jak wybrać dwie wartości na raz. Czyli chce wyświetlić (przefiltrować) wartość AiB.
Powinno wystarczyć użycie OR w warunku filtra. Przy okazji dlaczego tabela a nie galeria?
or ? nie za bardzo wiem gdzie;
Filter(’ Sprzedaz’;Faktura.Value= ComboBox4.Selected.Value).
Widziałem gdzie w internecie, ze trzeba skorzystać z funkcji selectedItems ale nie mogę jej wykorzystać właściwie
(tabela tak na próbę 😉
Ok. Chyba zrozumiałem 🙂 zamiast znaku równości użyj operatora in. Zerknij np. na ten wątek: https://powerusers.microsoft.com/t5/General-Discussion/How-to-Filter-a-Gallery-using-a-Combo-Box/td-p/68188. Powinienem naprowadzić Cię na rozwiązanie. PS. Galeria lepsza 😉
Działa !
Olbrzymie dzięki. Siedziałem nad tym od dłuższego czasu.
Dzień dobry, mamy pytanie czy można połączyć thisitem.nazwa z value ? Po krotce na karcie głównej aplikacji mam wartości , które mam w formacie tekst, chcę żeby aplikacja mi sortowala te wartości od największej , ale sortuje w taki sposób 99, 98, 8, 85, 7, 71 . (Sortuje przez sortbycolumns), Myślę, że jak przemieniłbym wartości na format liczbowy to sortowałby tak, jak tego oczekuje ( zgodnie z wartością ). Ale w żaden sposób nie mogę przerobić wartości na liczbę, nie wiem co źle robię. Dziękuję za pomoc