CalendarType
Inhalt
[
Ausblenden
]CalendarType enumeration
Gibt den Typ eines Kalenders an.
public enum CalendarType
Werte
Name | Wert | Beschreibung |
---|---|---|
Gregorian | 0 | Der gregorianische Kalender. |
Hijri | 1 | Der Hijri-Mondkalender. |
Hebrew | 2 | Der hebräische Mondkalender. |
SakaEra | 3 | Der Saka-Ära-Kalender. |
UmAlQura | 4 | Der Um-al-Qura-Kalender. |
Beispiele
Zeigt, wie automatisch ein benutzerdefiniertes Format auf Feldergebnisse angewendet wird, wenn die Felder aktualisiert werden.
public void FieldResultFormatting()
{
Document doc = new Document();
DocumentBuilder builder = new DocumentBuilder(doc);
FieldResultFormatter formatter = new FieldResultFormatter("${0}", "Date: {0}", "Item # {0}:");
doc.FieldOptions.ResultFormatter = formatter;
// Unser Feldergebnisformatierer wendet ein benutzerdefiniertes Format auf neu erstellte Felder mit drei Formattypen an.
// Feldergebnisformatierer wenden neue Formatierungen auf Felder an, wenn diese aktualisiert werden.
// was passiert, sobald wir sie mit dieser InsertField-Methodenüberladung erstellen.
// 1 - Numerisch:
builder.InsertField(" = 2 + 3 \\# $###");
Assert.AreEqual("$5", doc.Range.Fields[0].Result);
Assert.AreEqual(1, formatter.CountFormatInvocations(FieldResultFormatter.FormatInvocationType.Numeric));
// 2 - Datum/Uhrzeit:
builder.InsertField("DATE \\@ \"d MMMM yyyy\"");
Assert.IsTrue(doc.Range.Fields[1].Result.StartsWith("Date: "));
Assert.AreEqual(1, formatter.CountFormatInvocations(FieldResultFormatter.FormatInvocationType.DateTime));
// 3 - Allgemein:
builder.InsertField("QUOTE \"2\" \\* Ordinal");
Assert.AreEqual("Item # 2:", doc.Range.Fields[2].Result);
Assert.AreEqual(1, formatter.CountFormatInvocations(FieldResultFormatter.FormatInvocationType.General));
formatter.PrintFormatInvocations();
}
/// <summary>
/// Wenn Felder mit Formatierung aktualisiert werden, überschreibt dieser Formatierer deren Formatierung
/// mit einem benutzerdefinierten Format, während jeder Aufruf verfolgt wird.
/// </summary>
private class FieldResultFormatter : IFieldResultFormatter
{
public FieldResultFormatter(string numberFormat, string dateFormat, string generalFormat)
{
mNumberFormat = numberFormat;
mDateFormat = dateFormat;
mGeneralFormat = generalFormat;
}
public string FormatNumeric(double value, string format)
{
if (string.IsNullOrEmpty(mNumberFormat))
return null;
string newValue = String.Format(mNumberFormat, value);
FormatInvocations.Add(new FormatInvocation(FormatInvocationType.Numeric, value, format, newValue));
return newValue;
}
public string FormatDateTime(DateTime value, string format, CalendarType calendarType)
{
if (string.IsNullOrEmpty(mDateFormat))
return null;
string newValue = String.Format(mDateFormat, value);
FormatInvocations.Add(new FormatInvocation(FormatInvocationType.DateTime, $"{value} ({calendarType})", format, newValue));
return newValue;
}
public string Format(string value, GeneralFormat format)
{
return Format((object)value, format);
}
public string Format(double value, GeneralFormat format)
{
return Format((object)value, format);
}
private string Format(object value, GeneralFormat format)
{
if (string.IsNullOrEmpty(mGeneralFormat))
return null;
string newValue = String.Format(mGeneralFormat, value);
FormatInvocations.Add(new FormatInvocation(FormatInvocationType.General, value, format.ToString(), newValue));
return newValue;
}
public int CountFormatInvocations(FormatInvocationType formatInvocationType)
{
if (formatInvocationType == FormatInvocationType.All)
return FormatInvocations.Count;
return FormatInvocations.Count(f => f.FormatInvocationType == formatInvocationType);
}
public void PrintFormatInvocations()
{
foreach (FormatInvocation f in FormatInvocations)
Console.WriteLine($"Invocation type:\t{f.FormatInvocationType}\n" +
$"\tOriginal value:\t\t{f.Value}\n" +
$"\tOriginal format:\t{f.OriginalFormat}\n" +
$"\tNew value:\t\t\t{f.NewValue}\n");
}
private readonly string mNumberFormat;
private readonly string mDateFormat;
private readonly string mGeneralFormat;
private List<FormatInvocation> FormatInvocations { get; } = new List<FormatInvocation>();
private class FormatInvocation
{
public FormatInvocationType FormatInvocationType { get; }
public object Value { get; }
public string OriginalFormat { get; }
public string NewValue { get; }
public FormatInvocation(FormatInvocationType formatInvocationType, object value, string originalFormat, string newValue)
{
Value = value;
FormatInvocationType = formatInvocationType;
OriginalFormat = originalFormat;
NewValue = newValue;
}
}
public enum FormatInvocationType
{
Numeric, DateTime, General, All
}
}
Siehe auch
- namensraum Aspose.Words
- Montage Aspose.Words