string GetFieldValue(DocumentObject field)
{
if (field is NumericFieldBase)
{
int number = -1;
if (field is PageRefField)
{
PageRefField pageRefField = (PageRefField)field;
number = this.fieldInfos.GetShownPageNumber(pageRefField.Name);
if (number <= 0)
{
if (this.phase == Phase.Formatting)
return "XX";
else
return Messages.BookmarkNotDefined(pageRefField.Name);
}
}
else if (field is SectionField)
{
number = this.fieldInfos.section;
if (number <= 0)
return "XX";
}
else if (field is PageField)
{
number = this.fieldInfos.displayPageNr;
if (number <= 0)
return "XX";
}
else if (field is NumPagesField)
{
number = this.fieldInfos.numPages;
if (number <= 0)
return "XXX";
}
else if (field is SectionPagesField)
{
number = this.fieldInfos.sectionPages;
if (number <= 0)
return "XX";
}
return NumberFormatter.Format(number, ((NumericFieldBase)field).Format);
}
else if (field is DateField)
{
DateTime dt = (this.fieldInfos.date);
if (dt == DateTime.MinValue)
dt = DateTime.Now;
return this.fieldInfos.date.ToString(((DateField)field).Format);
}
else if (field is InfoField)
{
return GetDocumentInfo(((InfoField)field).Name);
}
else
Debug.Assert(false, "Given parameter must be a rendered Field");
return "";
}