ComplexFields.vb
- ''
- '' This code is part of Document Solutions for Word demos.
- '' Copyright (c) MESCIUS inc. All rights reserved.
- ''
- Imports System.IO
- Imports System.Drawing
- Imports System.Collections.Generic
- Imports System.Linq
- Imports GrapeCity.Documents.Word
-
- '' This sample demonstrates the use of complext fields.
- '' It adds a complex field that tests whether the current date
- '' Is the New Year day, And modifies the text in the document
- '' accordingly. See also DateAndTime sample.
- Public Class ComplexFields
- Function CreateDocx() As GcWordDocument
- Dim doc = New GcWordDocument()
-
- '' Add a title
- doc.Body.Paragraphs.Add("Testing whether it is the New Year yet").Style = doc.Styles(BuiltInStyleId.Title)
-
- '' Add a paragraph And get its range:
- Dim rng = doc.Body.Paragraphs.Add().GetRange()
- '' Add a static text:
- rng.Runs.Add("Today is ")
-
- '' Add a complex field with "IF" instruction. We also provide
- '' a pre-calculated value for the sake of PDF export, as DsWord
- '' does Not yet support field calculation - see DateAndTime.
- '' Note also that because the code field will Not be calculated
- '' in the PDF export, the "NOT " won't be bold in it:
- Dim val As String
- If Util.TimeNow().DayOfYear = 1 Then
- val = ""
- Else
- val = "NOT "
- End If
- Dim f = rng.ComplexFields.Add("IF ", val)
- '' Add a complex field with "DATE" instruction:
- f.GetCodeRange().ComplexFields.Add(" DATE \@ ""M-d"" ")
- '' Add additional instruction to the "IF" field to compare the nested
- '' DATE field result with "1-1" And return "NOT " if it Is true,
- '' also make the "NOT " bold if visible:
- f.CodeFields.Add("<> ""1-1"" ""Not """).ParentRun.Font.Bold = True
-
- '' Add a static text
- rng.Runs.Add("New Year's Day.")
-
- '' Done
- Return doc
- End Function
- End Class
-