//
// This code is part of Document Solutions for Word demos.
// Copyright (c) MESCIUS inc. All rights reserved.
//
using System;
using System.IO;
using System.Drawing;
using System.Collections.Generic;
using System.Linq;
using System.Globalization;
using GrapeCity.Documents.Word;
namespace DsWordWeb.Demos
{
// This example demonstrates the use of 'calc' Format function
// with optional format string and locale arguments.
public class DataTplCalcFormat
{
public GcWordDocument CreateDocx()
{
var dsDate = new DateTime[] { new DateTime(2023, 04, 12) };
var dsNum = new double[] { 123.456 };
var doc = new GcWordDocument();
var list = doc.ListTemplates.Add(BuiltInListTemplateId.BulletDefault, "myListTemplate");
var style = doc.Styles[BuiltInStyleId.ListParagraph];
doc.DataTemplate.DataSources.Add("dsDate", dsDate);
doc.DataTemplate.DataSources.Add("dsNum", dsNum);
var paras = doc.Body.Paragraphs;
var p = paras.Add("Date formatting examples:", style);
p.ListFormat.Template = list;
p = paras.Add("Date with default formatting: {{calc Format(dsDate.value)}}", style);
p.ListFormat.Template = list;
p.ListFormat.LevelNumber = 1;
p = paras.Add("Date formatted as ('D', 'en-US'): {{calc Format(dsDate.value, \"D\", \"en-US\")}}", style);
p.ListFormat.Template = list;
p.ListFormat.LevelNumber = 1;
p = paras.Add("Date formatted as ('D', 'fr-FR'): {{calc Format(dsDate.value, \"D\", \"fr-FR\")}}", style);
p.ListFormat.Template = list;
p.ListFormat.LevelNumber = 1;
p = paras.Add("Date formatted as ('D', 'ja-JP'): {{calc Format(dsDate.value, \"D\", \"ja-JP\")}}", style);
p.ListFormat.Template = list;
p.ListFormat.LevelNumber = 1;
p = paras.Add("Number formatting examples:", style);
p.ListFormat.Template = list;
p = paras.Add("Number with default formatting: {{calc Format(dsNum.value)}}", style);
p.ListFormat.Template = list;
p.ListFormat.LevelNumber = 1;
p = paras.Add("Number formatted as ('C', 'en-US'): {{calc Format(dsNum.value, \"C\", \"en-US\")}}", style);
p.ListFormat.Template = list;
p.ListFormat.LevelNumber = 1;
p = paras.Add("Number formatted as ('C', 'fr-FR'): {{calc Format(dsNum.value, \"C\", \"fr-FR\")}}", style);
p.ListFormat.Template = list;
p.ListFormat.LevelNumber = 1;
p = paras.Add("Number formatted as ('C3', 'ja-JP'): {{calc Format(dsNum.value, \"C3\", \"ja-JP\")}}", style);
p.ListFormat.Template = list;
p.ListFormat.LevelNumber = 1;
p = paras.Add("Expression formatting examples:", style);
p.ListFormat.Template = list;
p = paras.Add("Numeric expression: {{calc Format(dsNum.value / 2)}}", style);
p.ListFormat.Template = list;
p.ListFormat.LevelNumber = 1;
p = paras.Add("Boolean expression: {{calc Format(IsFirst(dsNum.value))}}", style);
p.ListFormat.Template = list;
p.ListFormat.LevelNumber = 1;
doc.DataTemplate.Process(CultureInfo.GetCultureInfo("en-US"));
// Done:
return doc;
}
}
}