Область сопоставления xml word

title description documentationcenter author ms.prod ms.topic ms.devlang ms.tgt_pltfrm ms.workload ms.search.keywords ms.date ms.author ms.translationtype ms.sourcegitcommit ms.openlocfilehash ms.contentlocale ms.lasthandoff

Как добавлять поля в макет отчета Word

Описывается процедура добавления полей набора данных отчета в существующий макет отчета Word для отчета.

jswymer

dynamics-nav-2018

article

na

na

na

07/01/2017

jswymer

HT

4fefaef7380ac10836fcac404eea006f55d8556f

1085c5390cf6f20cc2bd5c2a95057e6499dbac8c

ru-ru

10/16/2017

Практическое руководство. Добавление полей в макет отчета Word

Набор данных отчета может состоять из полей, отображающих метки, данные и изображения. В этом разделе описывается процедура добавления полей набора данных отчета в существующий макет отчета Word для отчета. Поля добавляются с использованием пользовательской части XML в Word для отчета и путем добавления элементов управления содержимым, сопоставляемых полям в наборе данных отчета. Добавление полей требует определенных знаний набора данных отчета, чтобы можно было идентифицировать поля, которые требуется добавить в макет.

[!NOTE]
Невозможно изменить встроенные макеты отчетов.

Открытие пользовательской части XML для отчета в Word

  1. Если это еще не сделано, откройте макет отчета Word в Word.

    Дополнительные сведения см. в разделе Практическое руководство. Создание и изменение пользовательского макета отчета.

  2. Отобразите вкладку Разработчик на ленте Microsoft Word.

    По умолчанию вкладка Разработчик не отображается на ленте. Дополнительные сведения см. в разделе Практическое руководство. Отображение вкладки разработчика на ленте.

  3. На вкладке Разработчик выберите Область сопоставления XML.

  4. В области Сопоставление XML в раскрывающемся списке Пользовательская XML-часть выберите пользовательскую XML-часть для отчета ADD INCLUDE, который обычно последний в списке. Имя пользовательской XML-части имеет следующий формат.

    urn:microsoft-dynamics-nav/reports/имя_отчета/ИД

    имя_отчета — это имя, назначенное отчету.

    ИД — это идентификационный номер отчета.

    После выбора пользовательской XML-части в области сопоставления XML отображаются метки и элементы управления полем, доступные для отчета.

Добавление поля метки или данных

  1. Поместите курсор в документ, где требуется добавить элемент управления.

  2. В области Сопоставления XML щелкните правой кнопкой мыши элемент управления, который требуется добавить, щелкните Вставить элемент управления содержимым и щелкните Обычный текст.

    [!NOTE]
    Невозможно добавить поле, вручную введя название поля набора данных в элементе управления содержимым. Необходимо использовать область Сопоставление XML для сопоставления полей.

Добавление повторяющихся строк полей данных для создания списка

  1. В таблице добавьте строку таблицы со столбцом для каждого поля, которое должно повторяться.

    Эта строка будет функционировать как местозаполнитель для повторяющихся полей.

  2. Выберите всю строку.

  3. В области Сопоставления XML щелкните правой кнопкой мыши элемент управления, соответствующий элементу данных отчета, который содержит повторяемые поля, щелкните Вставить элемент управления содержимым и выберите Повторяющийся.

  4. Добавьте повторяющиеся поля на строку следующим образом.

    1. Поместите указатель в столбец.

    2. В области Сопоставления XML щелкните правой кнопкой мыши элемент управления, который требуется добавить, щелкните Вставить элемент управления содержимым и щелкните Обычный текст.

    3. Для каждого поля повторите шаги а и б.

Добавление полей изображений

Набор данных отчета может включать поле, содержащее изображение, например логотип компании или изображение товара. Чтобы добавить изображение из набора данных отчета, вставьте элемент управления содержимым Изображение.

Изображения выравниваются в верхнем левом углу элемента управления содержимым и автоматически меняют свой размер пропорционально границе элемента управления содержимым.

[!IMPORTANT]
Можно добавить изображения только в формате, поддерживаемом Word, например BMP, JPEG и PNG. При добавлении изображения в формате, не поддерживаемом Word, получается ошибка при выполнении отчета из клиента ADD INCLUDE.

Добавление изображения

  1. Поместите указатель в документ, где требуется добавить элемент управления.

  2. В области Сопоставления XML щелкните правой кнопкой мыши элемент управления, который требуется добавить, щелкните Вставить элемент управления содержимым и щелкните Изображение.

  3. Чтобы увеличить или уменьшить размер изображения, перетащите маркер размера по направлению к центру элемента управления содержимым или от него.

Обзор пользовательской XML-части

Макеты отчетов Word создаются на базе пользовательских XML-частей. Пользовательская XML-часть для отчета состоит из элементов, соответствующих элементам данных, столбцам и меткам, составляющим набор данных отчета. Пользовательская XML-часть используется для сопоставления данных в отчете при выполнении отчета.

Структура XML и пользовательская часть XML

В следующей таблице приведен упрощенный обзор XML пользовательской XML-части.

XML-элементы Описанием
<?xml version="1.0" encoding="utf-16"?> Заголовок
<WordReportXmlPart xmlns="urn:microsoft-dynamics-365/report/<reportname>/<id>/" Спецификация пространства имен XML. <reportname> — это имя, назначенное отчету. <id> — это ИД, назначенный отчету.
..<Labels>

....<ColumnNameCaption>ColumnNameCaption</ColumnNameCaption>

....<LabelName>LabelCaption</LabelName>

..</Labels>

Содержит все метки отчета.
— Элементы меток, связанные со столбцами, имеют формат <ColumnNameCaption>ColumnNameCaption</ColumnNameCaption>.
— Элементы меток имеют формат <LabelName>LabelName</LableName.
— Метки перечислены в алфавитном порядке.
..<DataItem1>

....<DataItem1Column1>DataItem1Column1</DataItem1Column1>

Элементы данных и столбцы верхнего уровня. Столбцы перечислены в алфавитном порядке.
....<DataItem2>

......<DataItem2Column1>DataItem2Column1</DataItem2Column1>

....</DataItem2>

....<DataItem3>

......<DataItem3Column1>DataItem3Column1</DataItem3Column1>

....</DataItem3>

Элементы данных и столбцы, вложенные в элемент данных верхнего уровня. Столбцы перечислены в алфавитном порядке под соответствующим элементом данных.
..</DataItem1>

</WordReportXmlPart>

Заключительный элемент.

Пользовательская часть XML в Word

В Word следует открыть пользовательскую XML-часть в области Сопоставление XML, а затем воспользоваться этой областью для сопоставления этих элементов элементам управления содержимым в документе Word. Область Сопоставление XML можно открыть на вкладке Разработчик (для получения дополнительных сведений см. Практическое руководство. Отображение вкладки разработчика на ленте).

Элементы в области Сопоставление XML отображается в структуре, схожей с XML-источником. Поля меток группируются под общим элементом Метки, а элементы данных и столбцы упорядочены в иерархическую структуру, соответствующую источнику XML, где столбцы отображаются в алфавитном порядке. Элементы идентифицируются по имени, как определено свойством «Имя» в конструкторе наборов данных отчетов в ADD INCLUDE.

На приведенном ниже рисунке изображена простая пользовательская XML-часть из предыдущего раздела в области Сопоставление XML документа Word.

Часть области сопоставления XML в Word

  • Для добавления метки или поля в макет вставьте элемент управления содержимым, соответствующий элементу в области Сопоставление XML.

  • Для создания повторяющихся строк столбцов вставьте элемент управления содержимым Повторяющийся для родительского элемента данных и добавьте элемент управления содержимым для столбцов.

  • Для меток фактический текст, отображаемый в созданном отчете, — это значение свойства Заголовок для поля в таблице элементов данных (если метка связана со столбцом в наборе данных отчета) или для метки в конструкторе меток отчетов (если метка не связана со столбцом в наборе данных).

  • Язык метки, отображаемый при выполнении отчета, зависит от настройки языка объекта отчета.

См. также

Практическое руководство. Создание и изменение пользовательского макета отчета

У меня есть файл xml, который я создал из электронной таблицы Excel. Этот xml представляет строки и столбцы электронной таблицы.

Например:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<data-set xmlns="dummy.xsd">
    <record>
        <LastName>Smith</LastName>
        <Sales>16753</Sales>
        <Country>UK</Country>
        <Quarter>Qtr 3</Quarter>
    </record>
    <record>
        <LastName>Johnson</LastName>
        <Sales>14808</Sales>
        <Country>USA</Country>
        <Quarter>Qtr 4</Quarter>
    </record>
    <record>
        <LastName>Williams</LastName>
        <Sales>10644</Sales>
        <Country>UK</Country>
        <Quarter>Qtr 2</Quarter>
    </record>
<data-set>

Я хотел бы иметь возможность просматривать каждую строку и отображать каждую ее часть в виде компонента слова, чтобы я мог отформатировать ее с помощью форматов слова.

Итак, у меня было бы что-то вроде (с [[..]] символизацией компонентов и повторяющейся структурой)

[[
    [[
        [[Lastname]]   -    [[Sales]] - [[Contry]] - [[Repeat]]
    ]]
    [[
        [[Lastname]]   -    [[Sales]] - [[Contry]] - [[Repeat]]
    ]]
]]

Я уже открыл панель разработчика и загрузил свой xml с помощью функции (Добавить новую часть …) панели XML Mapping .

Когда я щелкаю правой кнопкой мыши тег иерархии XML и выполняю команду «Вставить элемент управления содержимым> Повторение», это создает компонент слова со следующим текстом:

«Введите любое содержимое, которое вы хотите повторить, включая другие элементы управления содержимым. Вы также можете вставить этот элемент управления вокруг строк таблицы, чтобы повторить части таблицы».

Если я помещу в него часть поля record ( Insert Content Control> PlainText ), это будет:

«Элементы управления обычным текстом не могут быть вставлены вокруг текущего выделения»

Я также попытался поместить схему в * Разработчик> Надстройки> Схема XML> Добавить схему «

2 ответа

Лучший ответ

Я наконец добился этого, сделав так:

  1. Активируйте «Панель разработчика» на «Ленте»
  2. Откройте «Панель сопоставления XML»
  3. Выберите «Разработчик> Сопоставление XML> Пользовательская часть XML> Добавить новую часть (…)» и выберите XML.
  4. Затем выберите файл XML в списке «Пользовательская XML-часть», щелкните правой кнопкой мыши элемент списка и выберите «Вставить элемент управления содержимым> Повторение». Это должно создать своего рода «двойные теги» в документе.
  5. Затем НЕ активируйте «Режим дизайна» («Разработчик> Режим дизайна») (иначе он будет жаловаться)
    • Поместите курсор мыши внутри «двойных тегов», которые были созданы на странице (вместо «Введите любое содержимое, которое вы хотите повторить, включая другие элементы управления содержимым. Вы также можете вставить этот элемент управления вокруг строк таблицы в чтобы повторить части таблицы. «)
    • Щелкните правой кнопкой мыши поле элемента на «Панели сопоставления XML» и выберите «Вставить элемент управления содержимым> Обычный текст». Это создаст новый «одиночный тег», который представляет поле на странице слова (вложенный в «двойной тег», представляющий «foreach»).
    • Выключите режим дизайна (и снова включите и выключите, если необходимо). Элементы должны отображаться и содержать поле, которое было вставлено

Единственная проблема в том, что он очень медленный. Я попытался сопоставить 100 строк XML (только с двумя столбцами), и это заняло почти 5 минут.


2

matt
12 Фев 2015 в 09:12

У меня есть XML-файл, который я сгенерировал из таблицы Excel. Этот xml представляет строки и столбцы электронной таблицы.

Например:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<data-set xmlns="dummy.xsd">
    <record>
        <LastName>Smith</LastName>
        <Sales>16753</Sales>
        <Country>UK</Country>
        <Quarter>Qtr 3</Quarter>
    </record>
    <record>
        <LastName>Johnson</LastName>
        <Sales>14808</Sales>
        <Country>USA</Country>
        <Quarter>Qtr 4</Quarter>
    </record>
    <record>
        <LastName>Williams</LastName>
        <Sales>10644</Sales>
        <Country>UK</Country>
        <Quarter>Qtr 2</Quarter>
    </record>
<data-set>

Я хотел бы иметь возможность проходить через каждую строку и отображать каждую ее часть в текстовом компоненте, так что я могу отформатировать его в форматах слова.

Так что я бы хотел что-то вроде (с [[..]] символизирующим компоненты и структурой повтора)

[[
    [[
        [[Lastname]]   -    [[Sales]] - [[Contry]] - [[Repeat]]
    ]]
    [[
        [[Lastname]]   -    [[Sales]] - [[Contry]] - [[Repeat]]
    ]]
]]

Я уже открыл панель разработчика и загрузил свой xml с помощью функции (Добавить новую деталь…) панели сопоставления XML.

Когда я щелкаю правой кнопкой мыши на теге иерархии XML и выполняю команду * Вставить управление содержимым> Повторение, это создает компонент слова со следующим текстом:

«Введите любой контент, который вы хотите повторить, включая другие элементы управления контентом. Вы также можете вставить этот элемент управления вокруг строк таблицы, чтобы повторить части таблицы».

Если я добавлю в него некоторые поля записи (вставьте элемент управления содержимым> PlainText), он скажет:

«Элемент простого текста не может быть вставлен в текущий выбор»

Я также попытался поместить схему в *Developer > Add-Ins > XML Schema > Add Schema»

2015-02-11 09:21

2

ответа

Решение

Я наконец добился этого, сделав так:

  1. Активируйте «Панель разработчика» в «Ленте»
  2. Откройте «Панель картирования XML»
  3. Выберите «Разработчик> Отображение XML> Пользовательская часть XML> Добавить новую часть (…)» и выберите XML
  4. Затем выберите файл XML в списке «Пользовательская часть XML» и щелкните элемент правой кнопкой мыши на элементе списка и выберите «Вставить управление содержимым> Повторение». Это должно создать вид «двойных тегов» в документе.
  5. Затем НЕ активируйте «Режим разработки» («Разработчик> Режим разработки») (иначе он будет жаловаться)
    • Поместите курсор мыши внутри «двойных тегов», которые были созданы на странице (вместо «Введите любой контент, который вы хотите повторить, включая другие элементы управления контентом. Вы также можете вставить этот элемент управления вокруг строк таблицы, чтобы повторить части стола. «)
    • И щелкните правой кнопкой мыши поле элемента в «Панели сопоставления XML» и выберите «Вставить элемент управления содержимым> Простой текст». Это создаст новый «одиночный тег», представляющий поле на странице слова (вложенный в «двойной тег». «которые представляют» foreach «)
    • Выключите режим проектирования (и снова включите и выключите, если необходимо). Элементы должны отображаться и содержать поле, которое было вставлено

Единственная проблема в том, что это очень медленно. Я попытался отобразить XML на 100 строк (только с 2 столбцами) и занял почти 5 минут.

2015-02-12 09:12

0 / 0 / 1

Регистрация: 09.02.2018

Сообщений: 9

1

22.05.2018, 09:04. Показов 2405. Ответов 4


Студворк — интернет-сервис помощи студентам

Друзья! Никак не могу разобраться с задачкой. Есть документ с XML-сопоставлением. В нем очень много повторяющихся слов, которые можно изменяя одно слово, менять все соответствующие.
Таких документов может быть больше сотни, и в каждом нужно поменять одинаковые ключевые слова.
Помогите, пожалуйста, вкурить, к каким объектам WORD нужно обращаться, чтобы менять содержание этих элементов из VB.NET.

Спасибо!



0



l34ddx

65 / 62 / 23

Регистрация: 23.07.2014

Сообщений: 121

22.05.2018, 13:55

2

VB.NET
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
Imports Word = Microsoft.Office.Interop.Word
    Public Class Form1      
        Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
            Dim objWordApp As New Word.Application
            objWordApp.Visible = True
        Dim ofd As New OpenFileDialog
        If ofd.ShowDialog() = DialogResult.OK Then
        Else
            objWordApp.Quit()
            objWordApp = Nothing
            Exit Sub
        End If
                Dim objDoc As Word.Document
        For Each fls In ofd.FileNames
            objDoc = objWordApp.Documents.Open(fls)
            objDoc = objWordApp.ActiveDocument
                       objDoc.Content.Find.Execute(FindText:="Ищем", ReplaceWith:="Меняем", Replace:=Word.WdReplace.wdReplaceAll)                     
            objDoc.Save()
            objDoc.Close()
        Next
        objDoc = Nothing
        objWordApp.Quit()
        objWordApp = Nothing
 
    End Sub
    End Class



0



Kishhh

0 / 0 / 1

Регистрация: 09.02.2018

Сообщений: 9

22.05.2018, 14:14

 [ТС]

3

Это немного не то… Вы приводите просто замену текста, который есть в документе. Мне нужно найти элемент, например по тэгу, (SelectContentControlsByTag). И заменить его содержимое, тем самым изменив содержимое всех одинаковых элементов.

VB.NET
1
2
 
oDoc.ContentControls.Item(1).Range.Text = ""

Вот так я могу найти по порядковому номеру. И присвоить содержание. Но не могу разобраться, как найти по тэгу или по названию.



0



l34ddx

65 / 62 / 23

Регистрация: 23.07.2014

Сообщений: 121

22.05.2018, 14:53

4

Так что ли?

VB.NET
1
2
3
4
5
6
7
Dim i As Integer = 0
            For Each contrls As Word.ContentControls In oDoc.SelectContentControlsByTag("Tag")
                If contrls.Item(i).Range.Text = "a" Then
                    contrls.Item(i).Range.Text = "b"
                End If
                i += 1
            Next



0



0 / 0 / 1

Регистрация: 09.02.2018

Сообщений: 9

22.05.2018, 14:59

 [ТС]

5

Цитата
Сообщение от l34ddx
Посмотреть сообщение

contrls

программа не воспринимает.



0



IT_Exp

Эксперт

87844 / 49110 / 22898

Регистрация: 17.06.2006

Сообщений: 92,604

22.05.2018, 14:59

5

Здравствуйте. 

Никогда не касался данной темы.

Суть в том, что когда я открываю документ Word из DocumentSet-а сайта SharePoint, то на панели MSWord во вкладке «Разработчик» можно кликнуть по иконке «Область сопоставления XML» — справа откроется панель «Сопоставление
XML»

В ней, можно выбрать пункт меню «http://schemas.microsoft.com/office/2006/metadata/properties»

И я увижу почти все поля моего ContentType привязаного к библиотеке документов. В Word-документ можно вставить такое «поле» (тег) и после повторного открытия будет видно значение этого тега. Очень удобно.

Вопрос в том, что почему то, в этом списке отображаются не все поля ContentType. Одно поле я добавил последним «CategorySAP» и не смотря на то что в ContentType оно есть, в списке «Сопоставление XML»
его нет.

Подскажите, куда посмотреть и что сделать, чтобы это поле так же отображалось в «Сопоставление XML» ?

Like this post? Please share to your friends:
  • Область печать на одной странице excel
  • Область редактирования в word
  • Область печати выходит за границы в word
  • Область просмотра в проводнике не показывает word
  • Область печати в excel синий