Promotic
Zalogowanie logon

Łańcuch formatowania obiektu PmFormat

Format konwersji pomiędzy wartością a łańcuchem tekstowym.

Typy formatowanej wartości:
- Float = liczba rzeczywista (tzn. z kropką dziesiętną)
- Int = liczba całkowita
- Bool = wartość true lub false
- String = łańcuch tekstowy
- DateTime = data oraz czas
- TimeSpan = przedział czasu (tzn. wartość nie zawiera miesiąc oraz rok)
- Enum = wartość liczbowa reprezentująca tekst (np. 1=Poniedziałek, 2=Wtorek, ... ,7=Niedziela)


Parametry łańcucha tekstowego to w formacie KeyVal, który został napełniony z wartości parametru sFormat metody SetFormat lub CreatePmFormat.

Klucze wspólne dla wszystkich typów:

Type:xx; - Typ wartości. Na przykład "Type:Float;".
Float (domyślnie) - liczba rzeczywista
Int - liczba całkowita
Bool - wartość logiczna (1/0)
String - łańcuch tekstowy
DateTime - Data oraz czas
TimeSpan - Przedział czasu
Enum - Wartość liczbowa reprezentująca tekst.
Len:nn - Całkowita liczba znaków bez LTxt oraz RTxt. Na przykład "Len:6;". Dla wartości liczbowe jest to włącznie Sign, DSep, Group.
Patrz: Przykłady dla typu Float.
-1 (domyślnie) - nieograniczone, dla Scan znajdź koniec liczby
n - określona liczba znaków
IfShort:nn - Co zrobić, jeżeli wartość jest krótsza niż Len. Na przykład "Len:4;IfShort:2;".
0 (domyślnie) - nie wykonuj nic
1 - uzupełń z lewej znaki spacja
2 - uzupełń z prawej znaki spacja
7 - tylko dla wartości liczbowe: uzupełń z lewej zerami pomiędzy znak a pierwszą cyfrę (dla wartości nieliczbowe jako IfShort:1)
IfLong:nn - Co zrobić, jeżeli wartość jest dłuższa niż Len. Na przykład "Len:4;IfLong:2;".
Patrz: Przykłady dla typu Float.
0 (domyślnie) - nie wykonuj nic, to znaczy pozostaw następne
1 - obetnij z lewej na długość Len
2 - obetnij z prawej na długość Len
4 - uzupełń znakiem określonym w IfLongPar na długość Len
5 - zastąpi tekstem zawartym w IfLongPar
7 - tylko dla wartości liczbowe: zawsze format max do IfLongPar (dla wartości nieliczbowej jako IfLong:2)
IfLongPar:ss - Określa znak(i) uzupełniające parametra IfLong. Na przykład "Len:4;IfLong:5;IfLongPar:MyErr;".
ss - Znak(y)
dla IfLong:4; - znak uzupełniający (domyślnie="", spowoduje uzupełnienie znakiem gwiazdka "*")
dla IfLong:5; - tekst zastępczy (domyślnie="")
IfNull:nn - Co zrobić, jeżeli wartość jest null. Na przykład "IfNull:1;".
Patrz: Przykłady dla null:.
0 (domyślnie) - Podczas konwersji wartości null na łańcuch znaków, zostanie ona przekonwertowana na wartość 0 lub pusty łańcuch znaków "". a następnie dalej konwertowana zgodnie z łańcuchem formatowania.
1 - Podczas konwersji wartości null na łańcuch znaków, zastępczy łańcuch znaków jest używany w IfNullPar i nie następuje dalsze formatowanie. Podczas konwersji wartości łańcuchowej z powrotem na wartość, jeżeli wartość łańcucha znaków dokładnie pasuje do zastępczego łańcucha znaków w IfNullPar, wynikiem jest null.
IfNullPar:ss - Łańcuch zastepczy wartości null (domyślnie=""). Na przykład "IfNull:1;IfNullPar:null;".
LTxt:ss - Tekst wlewo od wartości Na przykład "LTxt:Wartość ;".
Patrz: Zastosowanie Radix do formatowania liczb do postaci szesnastkowej.
RTxt:ss - Tekst wprawo od wartości (dla Scan RTxt nie może być wewnątrz wartości) Na przykład "RTxt:°C;".
Patrz: Przykłady dla typu Float.
Case:nn - Konwersja na duże/małe znaki (znaki w LTxt oraz RTxt nie podlegają konwersji). Na przykład "Case:2;".
Patrz: Przykłady dla typu String.
0 (domyślnie) - Zachowaj bez zmian
1 - UpperCase - Na wielkie znaki
2 - LowerCase - Na małe znaki

Klucze wspólne dla Int oraz Float:

Radix:nn - Inny system liczbowy (dla typu Int). Na przykład "Type:Int;Radix:16;".
Patrz: Zastosowanie Radix do formatowania liczb do postaci szesnastkowej.
2 - binarny
8 - oktal
10 (domyślnie) - dziesiątkowy
16 - w układzie szesnastkowym. Znaki hexa będą małe, ale można je zwiększyć przy pomocy Case:1;
Sign:nn - Jak wyświetlać znak plus. Na przykład "Sign:1;".
Patrz: Przykłady dla typu Float.
0 (domyślnie) - Nie wyświetlać (wyświetlać tylko "-")
1 - Wyświetlać "+" (jeżeli zero, wtedy spacja)
2 - Wyświetlać " " (spacja)
Group:nn - Łączenie grup liczb do trójek. Na przykład "Group:1;".
Patrz: Przykłady dla typu Float.
0 (domyślnie) - Nie łączyć
1 - Grupuj wlewo od separatora dziesiętnego (tysiące)
2 - Grupuj wprawo od separatora dziesiętnego (tysięczne)
3 - Grupuj wlewo i wprawo od separatora dziesiętnego (tysiące i tysięczne)
GroupSep:nn - Separator pomiędzy grupami. Na przykład "Group:1;GroupSep:2;".
0 (domyślnie) - spacja
1 - kropka
2 - przecinek
DLen:nn - Liczba znaków wprawo od separatora dziesiętnego. Na przykład "DLen:3;".
Patrz: Przykłady dla typu Float.
-1 (domyślnie) - Nieograniczone (uzupełnienie do liczby określonej w Len, ale jeżeli Len=-1 wtedy DLen:3)
n - Liczba całkowita włącznie z separatorem Group (3=domyślnie).
DSep:nn - Typ kropki dziesiętnej (ma znaczenie tylko jeżeli DLen!=0). Na przykład "DSep:1;".
0 (domyślnie) - Znak . (kropka)
1 - Znak , (przecinek)
DZero:nn - Zera wprawo za liczbą (ma znaczenie tylko jeżeli DLen!=0). Na przykład "DZero:1;".
0 (domyślnie) - Zachowaj zera
1 - Zastąp zera spacją
2 - Optymalizuj (usunąć zera oraz ewentualnie separator dziesiętny)

Klucze dla DateTime:

Reguła formatowania dla daty i czasu (DateTime) Reguła formatowania dla czasu DateTime określa postać tekstową (naformatowaną) czasu. Odpowiednio wytworzona reguła formatowania umożliwia dwukierunkową konwersję między wyrażeniem tekstowym a wartością typu DateTime bez utraty informacji.
 
Reguła formatowania zawiera zarówno stałe pozycje (np. separatory wewnątrz czasu) jak i pojedyncze elementy czasu. Pozycje czasu mogą być w dowolnej kolejności. Każda pozycja czasu (dzień, godzina, minuta, itd.) posiada własny identyfikator (znak: D, H, M, itd.).
 
Wpis czasowy w regule formatowania jest oznaczony znakiem procent %, odróżniając je w ten sposób od stałych elementów (separatorów). Po tym następuje opcjonalna liczba cyfr (gdzie znak gwiazdka * oznacza minimalny wymagany rozmiar bez zer z lewej, np. zamiast 01.01. będzie 1.1.). Pozycja czasu jest zakończona obowiązkowym identyfikatorem pozycji czasowej.
 
Fmt:ss - Format czasu (domyślnie "%Y.%m.%d %H:%M:%S.%T"). Na przykład "Type:DateTime;Fmt:%Y.%m.%d %H:%M:%S.%T;".
Patrz: Przykłady dla typu DateTime.
 
Składnia jednej pozycji czasu: %[*|1-9]id

Pozycje czasu:
Y - rok (np. 2025) [4 cyfry].
Patrz metoda PmDateObject.GetYear.
y - Tylko dwa ostatnie numery roku (np. 25) [2 cyfry].
m - miesiąc (1-12) [2 cyfry].
Patrz metoda PmDateObject.GetMonth.
d - dzień (1-31) [2 cyfry].
Patrz metoda PmDateObject.GetDay.
H - godzina (0-23) [2 cyfry].
Patrz metoda PmDateObject.GetHour.
M - minuta (0-59) [2 cyfry].
Patrz metoda PmDateObject.GetMinute.
S - sekunda (0-59) [2 cyfry].
Patrz metoda PmDateObject.GetSecond.
T - milisekunda (0-999) [3 cyfry].
Liczba cyfr oznacza tutaj precyzję po kropce dziesiętnej, więc 1=dziesiąte, 2=setne i 3=tysięczne.
Patrz metoda PmDateObject.GetMillisecond.
D - dzień w roku (1-366) [3 cyfry].
Działa tylko do konwersji czasu (DateTime) do postaci tekstowej.
Patrz metoda PmDateObject.GetDayOfYear.
Wi - tydzień w roku (1-53) [2 cyfry] według ISO 8601.
Działa tylko do konwersji czasu (DateTime) do postaci tekstowej.
Patrz metoda PmDateObject.GetWeekOfYear.
ws - dzień w tygodniu rozpoczynającym się Niedzielą (0-6) [1 cyfra].
Działa tylko do konwersji czasu (DateTime) do postaci tekstowej.
Patrz metoda PmDateObject.GetWeekday.
wm - dzień w tygodniu rozpoczynającym się poniedziałkiem (1-7) [1 cyfra] według ISO 8601.
Działa tylko do konwersji czasu (DateTime) do postaci tekstowej.


Notatka! Nie wszystkie pozycje muszą być wpisane. Ale wtedy informacje są tracone w formie tekstowej.
Podczas konwersji z powrotem z tekstu do DateTime nie może brakować pozycje z części daty (rok, miesiąc, dzień). Inne brakujące pozycje są traktowane jako 0.

Klucze dla TimeSpan:

Reguła formatowania dla zakresu czasu (TimeSpan) określa tekstową (sformatowaną) postać przedziału czasu. Odpowiednio wytworzona reguła formatowania umożliwia dwukierunkową konwersję między wyrażeniem tekstowym a wartością typu TimeSpan bez utraty informacji.
 
Reguła formatowania zawiera zarówno stałe pozycje (np. separatory wewnątrz przedziału czasu) jak i pojedyncze pozycje przedziału czasu. Pozycje przedziału czasu muszą być w obowiązkowej kolejności od największej pozycji (dzień) do najmniejszej (milisekunda). Każda pozycja przedziału czasu (dzień, godzina, minuta, itd.) ma swój identyfikator (znak: D, H, M, itd.).
 
Pozycja przedziału czasu w regule formatowania powinna być oznaczona znakiem procent %, to odróżnia je od stałych elementów (separatorów). Po tym następuje opcjonalna liczba znaków (gdzie znak gwiazdka * oznacza minimalny wymagany rozmiar bez zer z lewej, np. zamiast 01.01. będzie 1.1.). Po tym następuje obowiązkowy identyfikator pozycji przedziału czasu.
 
Fmt:ss - Użytkownikiem określony format przedziału czasu (domyślnie "Fmt:%*N%*d-%H:%M:%S.%T"). Tylko dla FmtType jest 0. Na przykład "Type:TimeSpan;FmtType:0;Fmt:%*N%*d-%H:%M:%S.%T;".
Patrz: Przykłady dla typu TimeSpan.
 
Składnia jednej pozycji czasu %[*|1-9]id

Pozycje przedziału czasu:
N - Jak wyświetlać znak plus.
d - dzień (1-31) [2 cyfry].
H - godzina (0-23) [2 cyfry].
M - minuta (0-59) [2 cyfry].
S - sekunda (0-59) [2 cyfry].
T - milisekunda (0-999) [3 cyfry].
Liczba cyfr oznacza tutaj precyzję po kropce dziesiętnej, więc 1=dziesiąte, 2=setne i 3=tysięczne.
FmtType:nn (opcjonalne) - Typ formatowania przedziału czasu. Na przykład "Type:TimeSpan;FmtType:10;".
Patrz: Przykłady dla typu TimeSpan.
0 (domyślnie) - Użytkownikiem określony format przedziału czasu określony łańcuchem formatowania. Patrz klucz Fmt.
10 - Systemowy format przedziału czasu. Określone są wartości użytych elementów przedziału czasu wraz z literą wskazującą typ elementu. Elementy z wartością null nie są wyświetlane.
Składnia: [-][Nd][Nh][Nm][Ns][Nt], gdzie N jest numer oraz:
d - Liczba dni. Na przykład 2d oznacza 2 dni lub 1.5d oznacza 36 godzin.
h - Liczba godzin. Na przykład 2h oznacza 2 godziny lub 1.5h oznacza 90 minut.
m - Liczba minut. Na przykład 2m oznacza 2 minuty lub 1.5m oznacza 90 sekund.
s - Liczba sekund. Na przykład 2s oznacza 2 sekundy lub 1.5s oznacza 1500 milisekund.
t - Liczba milisekund. Na przykład 10t oznacza 10 milisekund lub 500t oznacza 500 milisekund.


Notatka! Kolejność pozycji przedziału czasu musi być podana od największej (dzień) do najmniejszej (milisekunda). Nie musi się jednak zaczynać od dni, ale od któregokolwiek z pozostałych elementów. Pierwsza (największa) znaleziona pozycja przedziału czasu:
1) zostanie zwiększona o przeliczone brakujące wyższe pozycje.
2) Będzie miała: domyślnie liczba znaków = *, więc jak trzeba.
 
Notatka! Pozycje przedziału czasu nie muszą być wymienione aż do najmniejszych pozycji. Może kończyć się na dowolnej pozycji. Ale wtedy informacje są tracone w formie tekstowej. Przy ponownej konwersji z postaci tekstowej do postaci TimeSpan, te brakujące pozycje są traktowane jako 0.
 
Notatka! Reguła formatowania umożliwia ustawić użytkownikiem określony format przedziału czasu. Ponadto istnieje również format systemowy przedziału czasu.

Klucze dla Enum:

Formuła formatowania dla Enum określa, w jaki sposób wartość liczbowa ma zostać skonwertowana do tekstu, który przedstawia jej określone znaczenie. Na przykład 1=Poniedziałek, 2=Wtorek, ... , 7=Niedziela.
W tym celu używana jest tabela konwersji między wartością liczbową w danych a tekstem ze znaczeniem wartości do wyświetlenia.
Rows:{keyval} - Tabela konwersji w formie tablicy (PmArray) wierszy (PmMap). Wiersz (mapa) tworzy para wartości liczbowej (v) i tekstu (n).
W celu zapisania tabeli konwersji należy zastosować KeyVal - format zapisu opisanych wartości (w trybie pseudotablica).
Na przykład "Rows:{0:{v:1;n=Poniedziałek};1:{v:2;n=Wtorek};2:{v:3;n=Środa};3:{v:4;n=Czwartek};4:{v:5;n=Piątek};5:{v:6;n=Sobota};6:{v:7;n=Niedziela};};".
Patrz: Przykłady dla typu Enum:.

Pozostałe klucze:

FmtC:ss - Format konwersji języka C (przestarzały w celu zachowania kompatybilności). Opis patrz: Reguła formatowania języka C. Na przykład "FmtC:%5.2f;".
Patrz: Zastosowanie FmtC do formatowania wg języka C:.

Przykłady dla typu Float

Kombinacja kluczy RTxt oraz DLen:
JavaScriptVBScriptWybierz oraz skopiuj do schowka

var oFmt = Pm.CreatePmFormat("Type:Float;RTxt: %;DLen:2;");
var sVal = oFmt.Format(90.845);   // sVal = "90.84 %"
Zastosowanie Group w celu podzielenia liczby na trójki cyfr:
JavaScriptVBScriptWybierz oraz skopiuj do schowka

var oFmt = Pm.CreatePmFormat("Len:12;DLen:7;IfLong:2;Group:3;");
var sVal = oFmt.Format(-1234567.123456);   // sVal = "-1 234 567.1"
Zastosowanie Sign w celu wyrównania dodatnich oraz ujemnych wartości:
JavaScriptVBScriptWybierz oraz skopiuj do schowka

var oFmt = Pm.CreatePmFormat("Sign:2;");
var sVal;
sVal = oFmt.Format(1235.67);   // sVal = " 1235.670"
sVal = oFmt.Format(-1235.67);   // sVal = "-1235.670"

Przykłady dla typu Int

Zastosowanie Radix do formatowania liczb do postaci szesnastkowej:
JavaScriptVBScriptWybierz oraz skopiuj do schowka

var oFmt = Pm.CreatePmFormat("Type:Int;Radix:16;LTxt:0x;Case:1;");
var sVal = oFmt.Format(10.58);   // sVal = "0xB"
var nVal = oFmt.Scan(sVal);   // nVal = 11
Zastosowanie Radix do formatowania liczb do postaci ósemkowej:
JavaScriptVBScriptWybierz oraz skopiuj do schowka

oFmt = Pm.CreatePmFormat("Type:Int;Radix:8;LTxt:0o;");
sVal = oFmt.Format(10.58);   // sVal = "0o13"
nVal = oFmt.Scan(sVal);   // nVal = 11
Zastosowanie Radix do formatowania liczb do postaci binarnej:
JavaScriptVBScriptWybierz oraz skopiuj do schowka

oFmt = Pm.CreatePmFormat("Type:Int;Radix:2;LTxt:0b;");
sVal = oFmt.Format(3.4);   // sVal = "0b11"
nVal = oFmt.Scan(sVal);   // nVal = 3

Przykłady dla typu Bool

Przykład1:
JavaScriptVBScriptWybierz oraz skopiuj do schowka

var oFmt = Pm.CreatePmFormat("Type:Bool;");
var sVal;
sVal = oFmt.Format(3.14);   // sVal = "1"
sVal = oFmt.Format(0);   // sVal = "0"
Przykład2:
JavaScriptVBScriptWybierz oraz skopiuj do schowka

var oFmt = Pm.CreatePmFormat("Type:Bool;LTxt:Ln;RTxt:V;");
var sVal;
sVal = oFmt.Format(true);   // sVal = "Ln1V"
sVal = oFmt.Format(false);   // sVal = "Ln0V"

Przykłady dla typu String

Przykład1:
JavaScriptVBScriptWybierz oraz skopiuj do schowka

var oFmt = Pm.CreatePmFormat("Type:String;LTxt:x;RTxt:q;Case:1;");
var sVal = oFmt.Format("aBcD");   // sVal = "xABCDq"
Przykład2:
JavaScriptVBScriptWybierz oraz skopiuj do schowka

var oFmt = Pm.CreatePmFormat("Type:String;LTxt:X_;RTxt:_Q;Len:6;IfLong:2;");
var sVal = oFmt.Format("abcdefgh");   // sVal = "X_abcdef_Q"

Przykłady dla typu DateTime

Przykład:
JavaScriptVBScriptWybierz oraz skopiuj do schowka

var t = Pm.CreateDate(2025, 2, 13, 4, 15, 6, 789);

var oFmt = Pm.CreatePmFormat("Type:DateTime;Fmt:%2d.%2m.%4Y %2H:%2M:%2S.%T;");
var sVal = oFmt.Format(t);   // sVal = "13.02.2025 04:15:06.789"

oFmt = Pm.CreatePmFormat("Type:DateTime;Fmt:%2d.%2m.%4Y %2H:%2M:%2S;");
sVal = oFmt.Format(t);   // sVal = "13.02.2025 04:15:06"

oFmt = Pm.CreatePmFormat("Type:DateTime;Fmt:%4Y.%2d.%2m %2H:%2M:%2S;");
sVal = oFmt.Format(t);   // sVal = "2025.13.02 04:15:06"

oFmt = Pm.CreatePmFormat("Type:DateTime;Fmt:%*d.%*m.%*Y %*H:%*M:%*S.%T;");
sVal = oFmt.Format(t);   // sVal = "13.2.2025 4:15:6.789"

oFmt = Pm.CreatePmFormat("Type:DateTime;Fmt:%*Y.%*m.%*d;");
sVal = oFmt.Format(t);   // sVal = "2025.13.2"

oFmt = Pm.CreatePmFormat("Type:DateTime;Fmt:%*H:%*M:%*S;");
sVal = oFmt.Format(t);   // sVal = "4:15:6"

oFmt = Pm.CreatePmFormat("Type:DateTime;Fmt:%Y%m%d%H%M%S;");
sVal = oFmt.Format(t);   // sVal = "20251302041506"

oFmt = Pm.CreatePmFormat("Type:DateTime;Fmt:%Y.%m.%d %H:%M:%S.%T;");
sVal = oFmt.Format(t);   // sVal = "2025.2.13 4:15:6.789"

// ten zapis odpowiada ISO 8601
oFmt = Pm.CreatePmFormat("Type:DateTime;Fmt:%Y.%m.%dT%H:%M:%S.%T;");
sVal = oFmt.Format(t);   // sVal = "2025.2.13T4:15:6.789"

// zapis w formie dla bazy danych MS SQL
oFmt = Pm.CreatePmFormat("Type:DateTime;Fmt:'%Y-%m-%d %H:%M:%S.%T';");
sVal = oFmt.Format(t);   // sVal = "'2025-2-13 4:15:6.789'"

// zapis w formie dla bazy danych MySQL
oFmt = Pm.CreatePmFormat("Type:DateTime;Fmt:'%Y-%m-%d %H:%M:%S';");
sVal = oFmt.Format(t);   // sVal = "'2025-2-13 4:15:6'"

// zapis w formie dla bazy danych Oracle
oFmt = Pm.CreatePmFormat("Type:DateTime;Fmt:TIMESTAMP'%Y-%m-%d %H:%M:%S.%T';");
sVal = oFmt.Format(t);   // sVal = "TIMESTAMP'2025-2-13 4:15:6.789'"

// zapis w formie dla baz danych Microsoft Access, dBase, PARADOX przy ustawieniu bezpośredniego dostępu
oFmt = Pm.CreatePmFormat("Type:DateTime;Fmt:#%m %d %Y %H:%M:%S#;");
sVal = oFmt.Format(t);   // sVal = "#2 13 2025 4:15:6#"

Przykłady dla typu TimeSpan

Przykład:
JavaScriptVBScriptWybierz oraz skopiuj do schowka

var t = Pm.CreateDate(0, 0, 53, 4, 15, 6, 789);

var oFmt = Pm.CreatePmFormat("Type:TimeSpan;Fmt:%2d %2H:%2M:%2S.%T;");
var sVal = oFmt.Format(t);   // sVal = "53 04:15:06.789"

oFmt = Pm.CreatePmFormat("Type:TimeSpan;Fmt:%*d %*H:%*M:%*S;");
sVal = oFmt.Format(t);   // sVal = "53 4:15:6"

oFmt = Pm.CreatePmFormat("Type:TimeSpan;Fmt:%H:%M:%S.%T;");
sVal = oFmt.Format(t);   // sVal = "1276:15:06.789"

oFmt = Pm.CreatePmFormat("Type:TimeSpan;Fmt:%N%2d %2H:%2M:%2S.%T;");
sVal = oFmt.Format(-t);   // sVal = "-53 04:15:06.789"

oFmt = Pm.CreatePmFormat("Type:TimeSpan;FmtType:10");
sVal = oFmt.Format(-t);   // sVal = "-53d4h15m6s789t"

t = Pm.CreateDate(0, 0, 1053, 4, 15, 6, 789);

oFmt = Pm.CreatePmFormat("Type:TimeSpan;Fmt:%*N%d-%H:%M:%S.%T;");
sVal = oFmt.Format(t);   // sVal = "1053-04:15:06.789"

oFmt = Pm.CreatePmFormat("Type:TimeSpan;Fmt:%*N%H:%M:%S.%T;");
sVal = oFmt.Format(t);   // sVal = "25276:15:06.789"

oFmt = Pm.CreatePmFormat("Type:TimeSpan;Fmt:%*N%M:%S.%T;");
sVal = oFmt.Format(t);   // sVal = "1516575:06.789"

oFmt = Pm.CreatePmFormat("Type:TimeSpan;Fmt:%*N%S.%T;");
sVal = oFmt.Format(t);   // sVal = "90994506.789"

oFmt = Pm.CreatePmFormat("Type:TimeSpan;FmtType:10;");
sVal = oFmt.Format(t);   // sVal = "1053d4h15m6s789t"

t = Pm.CreateDate(0, 0, 0, 1, 30, 0, 0);

oFmt = Pm.CreatePmFormat("Type:TimeSpan;Fmt:%*N%d-%H:%M:%S.%T;");
sVal = oFmt.Format(t);   // sVal = "0-01:30:00.000"

oFmt = Pm.CreatePmFormat("Type:TimeSpan;FmtType:10;");
sVal = oFmt.Format(t);   // sVal = "1h30m"

Przykłady dla typu Enum:

Przykład:
JavaScriptVBScriptWybierz oraz skopiuj do schowka

var oFmt = Pm.CreatePmFormat("Type:Enum;Rows:{0:{v:1;n:Poniedziałek};1:{v:2;n:Wtorek};2:{v:3;n:Środa};3:{v:4;n:Czwartek};4:{v:5;n:Piątek};5:{v:6;n:Sobota};6:{v:7;n:Niedziela};};");
var sVal;
sVal = oFmt.Format(2);   // sVal = "Wtorek"
sVal = oFmt.Format(6);   // sVal = "Sobota"

Przykłady dla null:

Przykład:
JavaScriptVBScriptWybierz oraz skopiuj do schowka

var oFmt = Pm.CreatePmFormat("Type:Float;");
var sVal = oFmt.Format(null);   // sVal = "0.000"

var oFmt = Pm.CreatePmFormat("Type:Float;IfNull:1;");
var sVal = oFmt.Format(null);   // sVal = ""
var vVal = oFmt.Scan("");   // vVal = null

var oFmt = Pm.CreatePmFormat("Type:Float;IfNull:1;IfNullPar:null;");
var sVal = oFmt.Format(null);   // sVal = "null"
var vVal = oFmt.Scan("null");   // vVal = null

Zastosowanie FmtC do formatowania wg języka C:

Przykład:
JavaScriptVBScriptWybierz oraz skopiuj do schowka

var oFmt = Pm.CreatePmFormat("FmtC:%d;");
var sVal = oFmt.Format(1);   // sVal = "1"

oFmt = Pm.CreatePmFormat("FmtC:x%dq;");
sVal = oFmt.Format(1);   // sVal = "x1q"

oFmt = Pm.CreatePmFormat("FmtC:%f;");
sVal = oFmt.Format(12.3456789);   // sVal = "12.3456789"

oFmt = Pm.CreatePmFormat("FmtC:%13.2f;");
sVal = oFmt.Format(123456789.123456789);   // sVal = " 123456789.12"

oFmt = Pm.CreatePmFormat("FmtC:%x");
sVal = oFmt.Format(255);   // sVal = "ff"

oFmt = Pm.CreatePmFormat("FmtC:%03X;");
sVal = oFmt.Format(10.58);   // sVal = "00B"

oFmt = Pm.CreatePmFormat("FmtC:n=%03X;");
sVal = oFmt.Format(10.58);   // sVal = "n=00B"
Patrz również:

Historia:
Pm9.00.32:
- Nowa opcja "type:Enum;" umożliwia określić postać formatowania dla wyliczania wartości.
- Nowa opcja IfNull:nn a IfNullPar:ss umożliwia wprowadzić łańcuch zastępczy dla wartości null.
Pm9.00.26: Nowa opcja FmtType umożliwia określić systemową postać formatowania dla TimeSpan.
Pm9.00.20:
- Nowa opcja D = dzień w roku.
- Nowa opcja Wi = tydzień w roku.
- Nowa opcja ws = dzień w tygodniu (tydzień rozpoczynającym się niedzielą).
- Nowa opcja wm = dzień w tygodniu (tydzień rozpoczynającym się poniedziałkiem).
Pm9.00.17: Wytworzono
© MICROSYS, spol. s r.o.Update cookies preferences