logo
small logo
  • Produkty
  • Zamów
  • Wsparcie techniczne
  • About
  • Customer panel Wsparcie techniczne
    • en
    • de
    • JP
    • ZH
  • Glówna strona
  • /
  • Articles
  • /
  • Kalendarz perski w raporcie
  • Kopiowanie pasm z jednego raportu do drugiego wraz z całą zawartością

    31 marca 2021

    Czasami zachodzi potrzeba użycia części jednego raportu w innym. W prostych przypadkach można do tego

    read more
  • FastCube – szybki OLAP Cube Engine i Pivot Grid

    29 lutego 2020

    Trudno sobie wyobrazić wykonanie analizy danych bez technologii OLAP (On-Line Analytical Processing). Jednak są różne

    read more
  • Raporty i dokumenty PDF w Blazorze

    5 kwietnia 2021

    Microsoft udostępnił niedawno platformę webową o nazwie Blazor. Framework ten umożliwia tworzenie interaktywnych interfejsów internetowych

    read more
  • Jak zainstalować FastReport Business Graphics .NET

    18 sierpnia 2021

    Ten artykuł wyjaśnia, jak zainstalować FastReport Business Graphics .NET na Twoim komputerze i jak dodać

    read more
  • How to use Online Designer in ASP .NET Core

    17 stycznia 2018

    One of the novelties by FastReport .NET 2018 was the adaptation of OnlineDesigner to the

    read more

Kalendarz perski w raporcie

19 maja 2021

Czy wiesz, że różne kraje mają różne formaty daty? Kiedy tworzysz raport wielojęzyczny, lub raport dla kraju, w którym mówi się po persku (Farsi), ważne jest, aby wyświetlić daty w odpowiednim formacie. Domyślnie FastReport używa europejskiego formatu daty, ale narzędzia .NET umożliwiają konwertowanie go na różne formaty.

Naszym zadaniem jest więc przekonwertowanie daty do formatu perskiego. Dla przykładu, w naszym raporcie znajduje się wyrażenie [Data], które przywołuje dzisiejszą datę:

[Date]

Wyrażenie [Data] uzyskuje bieżącą datę systemową w formacie DateTime, lecz wartością raportu tekstowego po wszystkich przetworzeniach jest String. Wytwórzmy nową funkcję w skrypcie raportu:

private void ConvertToPersianDate(object sender, EventArgs e)

Funkcję wywołamy z obiektów tekstowych. Utworzymy zmienną tymczasową, która będzie konwertować tekst obiektu na DateTime:

DateTime d = DateTime.Parse((sender as TextObject).Text);

"sender as TextObject" jest adresem do obiektu, który wywołał funkcję. Możemy korzystać z funkcję i właściwości obiektu, jeżeli w taki sposób się do niego odwołamy.

Następnie będzie nam potrzebny obiekt PersianCalendar, który będzie konwertował datę na format perski:

PersianCalendar pc = new PersianCalendar();

Zwróć uwagę, że obiekt ten znajduje się w bibliotece System.Globalization i musi być wskazany w sekcji "using". Następnie powinniśmy zmienić tekst obiektu.

Przyjrzyj się tej linii z większą dokładnością:

(sender as TextObject).Text = string.Format("{0}/{1}/{2}", pc.GetYear(d), pc.GetMonth(d), pc.GetDayOfMonth(d));

W tym miejscu ustawiamy tekst naszego obiektu. Wartość będzie w formacie rok/miesiąc/dzień, ponieważ używamy funkcji PersianCalendar, które pobierają odpowiednie wartości. Fragment kodu, w którym ustawiany jest tekst może być dowolnie edytowany. Na przykład kod dla daty w formacie dzień.miesiąc.rok wygląda tak:

"{0}.{1}.{2}", pc.GetDayOfMonth(d), pc.GetMonth(d), pc.GetYear(d)

W efekcie tego otrzymujemy następującą funkcję:

using System.Globalization;
namespace FastReport
{
 public class ReportScript
 {
 private void ConvertToPersianDate(object sender, EventArgs e)
 {
 // Converting to DateTime format
 DateTime d = DateTime.Parse((sender as TextObject).Text);
 
 // Creating an object for conversion
 PersianCalendar pc = new PersianCalendar();
 
 // Creating a string using PersianCalendar
 // It is possible to change the string template
 (sender as TextObject).Text = string.Format("{0}/{1}/{2}", pc.GetYear(d), pc.GetMonth(d), pc.GetDayOfMonth(d));
 }
 }
}

Dodaj funkcję do zdarzenia AfterData odpowiedniego obiektu.

AfterData

Teraz data wygląda tak:

Wynik końcowy

Aby skorzystać z innych funkcji związanych z czasem, można skorzystać z poniższej tabeli:

 GetDayOfWeek(),  Day of week
 GetMonth(),  Month
 GetDayOfMonth(),  Day of month
 GetYear(),  Year
 GetHour()  Hour
 GetMinute()  Minute
 GetSecond()  Second

Teraz już wiesz jak zmienić format daty w raporcie. Ten artykuł może być przydatny przy zmianie formatu na (rok, miesiąc, dzień). Format ten jest używany w Japonii, Chinach, Korei Północnej, Korei Południowej, Tajwanie, na Węgrzech, Litwie i w Iranie; jest on również wykorzystywany jako format pomocniczy w niektórych krajach europejskich i azjatyckich.

about product zamów
avatar
Alexey Tantzura
QA
Fast Reports Team: Alexey Tantzura - Quality Assurance at Fast Reports
.NET FastReport

Add comment
logo
  • 800-985-8986 (English, US)
  • +4930568373928 (German)
  • +55 19 98147-8148 (Portuguese)
  • info@fast-report.com
  • 901 N Pitt Str #325 Alexandria VA 22314
  • Zamów
  • Pobierz
  • Dokumentacja
  • Opinie użytkowników
  • Jak odinstalować nasze produkty
  • FAQ
  • Tutorial Video
  • Forum
  • Support SLA
  • Articles
  • Our News
  • Prasa o nas
  • Partnerzy
  • Extended licensing
  • Kontakty

© 1998-2023 by Fast Reports Inc.

  • Poufność

Trustpilot