Witajcie po dłuższej przerwie. Niektórzy pytają czy nadal zajmuje się Crystal Reports. Odpowiadam, że TAK! Tylko, że oprócz tworzenia raportów zajmuję się również rozwojem aplikacji w .NET i z braku czasu trochę zaniedbałem swojego bloga. Ale postaram się to nadrobić, zwłaszcza że nadchodzi nowy Crystal Reports 2016 o którym napiszę w kolejnym poście.
Ale do rzeczy...
Czasami zdarza się, że data zapisana jest w naszej bazie danych w postaci tekstu. Osobiście unikam takich rozwiązań, ale pomysłowość programistów nie zna granic ;-)
Generalnie do konwersji ciągu znaków na datę służy funkcja Date. Wystarczy jako argument przekazać pole date({Invoices.OrderDate}) i gotowe!
Ale to działa tylko w przypadku gdy data zapisana jest zgodnie ze standardem czyli na przykład z myślnikami: 2016-02-11
Ale w bazach danych, jeśli już ktoś zdecyduje się na przechowywanie daty jako tekst, to najczęściej stosowany jest zapis w formacie YYYYMMDD, który zajmuje mniej miejsca np. 20160211.
W takim przypadku funkcja Date już nie zadziała...
Ale nie ma się co poddawać! Dotychczas w takich przypadkach wycinałem poszczególne fragmenty daty: rok, miesiąc, dzień i podstawiałem do funkcji Date:
Takie rozwiązanie zadziała, ale przyznacie że ta formuła nie jest zbyt czytelna zwłaszcza dla początkujących adeptów Crystal Reports. Jeszcze gorzej jeśli zmieni się nazwa pola i musimy ją poprawić w kilku miejscach. Uff, ciężkie jest życie projektanta...
Ale ostatnio podczas prowadzenia szkolenia wpadłem na nowy pomysł: a gdyby tak odpowiednio sformatować datę, żeby funkcja Date ją rozumiała?
Przypomniało mi się, że w Crystalu istnieje funkcja Picture. Jej nazwa jest trochę myląca. Nie służy ona do formatowania obrazków, lecz do formatowania tekstu za pomocą tzw. maski.
Na przykład:
Picture({Customer.PostalCode}, "xx-xxx")
Idąc tym tropem wykorzystałem ją do sformatowania daty z myślnikami i podstawiłem pod funkcję Date:
Proste i piękne nieprawdaż?
Polecam :)
Ale do rzeczy...
Czasami zdarza się, że data zapisana jest w naszej bazie danych w postaci tekstu. Osobiście unikam takich rozwiązań, ale pomysłowość programistów nie zna granic ;-)
Generalnie do konwersji ciągu znaków na datę służy funkcja Date. Wystarczy jako argument przekazać pole date({Invoices.OrderDate}) i gotowe!
Ale to działa tylko w przypadku gdy data zapisana jest zgodnie ze standardem czyli na przykład z myślnikami: 2016-02-11
Ale w bazach danych, jeśli już ktoś zdecyduje się na przechowywanie daty jako tekst, to najczęściej stosowany jest zapis w formacie YYYYMMDD, który zajmuje mniej miejsca np. 20160211.
W takim przypadku funkcja Date już nie zadziała...
Ale nie ma się co poddawać! Dotychczas w takich przypadkach wycinałem poszczególne fragmenty daty: rok, miesiąc, dzień i podstawiałem do funkcji Date:
Takie rozwiązanie zadziała, ale przyznacie że ta formuła nie jest zbyt czytelna zwłaszcza dla początkujących adeptów Crystal Reports. Jeszcze gorzej jeśli zmieni się nazwa pola i musimy ją poprawić w kilku miejscach. Uff, ciężkie jest życie projektanta...
Ale ostatnio podczas prowadzenia szkolenia wpadłem na nowy pomysł: a gdyby tak odpowiednio sformatować datę, żeby funkcja Date ją rozumiała?
Przypomniało mi się, że w Crystalu istnieje funkcja Picture. Jej nazwa jest trochę myląca. Nie służy ona do formatowania obrazków, lecz do formatowania tekstu za pomocą tzw. maski.
Na przykład:
Picture({Customer.PostalCode}, "xx-xxx")
Idąc tym tropem wykorzystałem ją do sformatowania daty z myślnikami i podstawiłem pod funkcję Date:
Proste i piękne nieprawdaż?
Polecam :)
Komentarze