''
'' This code is part of Document Solutions for Word demos.
'' Copyright (c) MESCIUS inc. All rights reserved.
''
Imports System.Globalization
Imports GrapeCity.Documents.Word
'' This example demonstrates the available logical functions
'' that can be used with the 'calc' report templates feature.
Public Class DataTplCalcLogical
Function CreateDocx() As GcWordDocument
'' A simple data source to be used by the logical functions:
Dim data = {True}
Dim doc = New GcWordDocument()
'' Add the data source:
doc.DataTemplate.DataSources.Add("ds", data)
'' Styles and templates to show results:
Dim bulletListTemplate = doc.ListTemplates.Add(BuiltInListTemplateId.BulletDefault, "bulletListTemplate")
Dim exStyle = doc.Styles(BuiltInStyleId.Heading3)
Dim resStyle = doc.Styles(BuiltInStyleId.Strong)
Dim paras = doc.Body.Paragraphs
Dim add As Action(Of String) =
Sub(expr)
'' Four zero-width spaces are inserted after the opening brace to prevent template expansion:
paras.Add(expr.Insert(1, New String(ChrW(&H200B), 4)) + " : ", exStyle).ListFormat.Template = bulletListTemplate
paras.Last.GetRange().Runs.Add(expr, resStyle)
End Sub
add("{{ calc Iif(ds.value, ""Iif result true"", ""Iif result false"") }}")
add("{{ calc IsNull(""Some data"") }}")
add("{{ calc Not IsNull(""Some data"") }}")
'' Process the templates:
doc.DataTemplate.Process(CultureInfo.GetCultureInfo("en-US"))
'' Add a short note describing the demo at the top of the document:
paras.Insert(
"This example demonstrates the available logical functions " +
"that can be used with the 'calc' report templates feature. " +
"Please see this example's source code for full details.",
InsertLocation.Start)
paras.Insert("Report templates: available calc logical functions", doc.Styles(BuiltInStyleId.Heading1), InsertLocation.Start)
'' Done:
Return doc
End Function
End Class