Продукты Р7
Корпоративный сервер 2024
Корпоративный сервер 2024
Сервер документов
Сервер документов
Редакторы
Редакторы
Корпоративный сервер 2019
Корпоративный сервер 2019
Графика
Графика
Команда
Команда
Мобильные редакторы
Мобильные редакторы
Облачный офис
Облачный офис
Почта
Почта
Органайзер
Органайзер
Дополнительно
Часто задаваемые вопросы
Разработчикам
Интеграции
Новые возможности

GetReviewReport

Обновлено: 15.12.25

GetReviewReport() → { object }

Возвращает отчет обо всех изменениях, внесенных в документ в режиме просмотра.

Параметры:

Этот метод не имеет параметров.

Возвращает:

Тип ReviewReport

Пример

builder.CreateFile("docx");
var oDocument = Api.GetDocument();
var oParagraph1 = oDocument.GetElement(0);
oDocument.SetTrackRevisions(true);
oParagraph1.AddText("Reviewing documents");
oParagraph1.SetJc("center");
oParagraph1.SetFontSize(24);
oParagraph1.SetBold(true);
var oParagraph2 = Api.CreateParagraph();
oParagraph2.AddText("If you need to get review report, you can use Document Builder. The steps below will show how to do it.");
oDocument.Push(oParagraph2);
var oReviewReport = oDocument.GetReviewReport();
oDocument.SetTrackRevisions(false);
var oParagraph = Api.CreateParagraph();
oDocument.Push(oParagraph);
oParagraph = Api.CreateParagraph();
oDocument.Push(oParagraph);
oParagraph.AddText("Review report");
var nRows = 1;
for (let sUserName in oReviewReport) {
  nRows += oReviewReport[sUserName].length;
}
var nCols = 4;
var oTable = Api.CreateTable(nCols, nRows);
oDocument.Push(oTable);

function privateFillCell(nCurRow, nCurCol, sText) {
  var oRow = oTable.GetRow(nCurRow);
  var oCell = oRow.GetCell(nCurCol);
  var oCellContent = oCell.GetContent();
  var oRun = oCellContent.GetElement(0).AddText(sText);
  return {
    Cell: oCell,
    Run: oRun
  };
}
privateFillCell(0, 0, "Name");
privateFillCell(0, 1, "Date");
privateFillCell(0, 2, "Action");
privateFillCell(0, 3, "Text");
var nCurRow = 1;
for (let sUserName in oReviewReport) {
  var arrUserChanges = oReviewReport[sUserName];
  var arrCells = [];
  for (let nIndex = 0, nCount = arrUserChanges.length; nIndex < nCount; ++nIndex, ++nCurRow) {
    var oChangeInfo = arrUserChanges[nIndex];
    arrCells.push(privateFillCell(nCurRow, 0, "").Cell);
    privateFillCell(nCurRow, 1, (new Date(oChangeInfo["Date"])).toString());
    var sType = oChangeInfo["Type"];
    if ("TextAdd" === sType) {
      privateFillCell(nCurRow, 2, "Added text");
      privateFillCell(nCurRow, 3, oChangeInfo["Value"]);
    } else if ("TextRem" === sType) {
      privateFillCell(nCurRow, 2, "Removed text");
      privateFillCell(nCurRow, 3, oChangeInfo["Value"]).Run.SetStrikeout(true);
    } else if ("TextPr" === sType) {
      privateFillCell(nCurRow, 2, "Formatted text");
    } else if ("ParaAdd" === sType) {
      privateFillCell(nCurRow, 2, "Added paragraph");
    } else if ("ParaRem" === sType) {
      privateFillCell(nCurRow, 2, "Removed paragraph");
    } else if ("ParaPr" === sType) {
      privateFillCell(nCurRow, 2, "Formatted paragraph");
    } else {
      privateFillCell(nCurRow, 2, "Unknown change");
    }
  }
  var oMergedCell = oTable.MergeCells(arrCells);
  if (oMergedCell) {
    var oCellContent = oMergedCell.GetContent();
    oCellContent.GetElement(0).AddText(sUserName);
  } else if (arrCells.length > 0) {
    oCellContent = arrCells[0].GetContent();
    oCellContent.GetElement(0).AddText(sUserName);
  }
}
oTable.SetStyle(oDocument.GetStyle("Bordered"));
builder.SaveFile("docx", "GetReviewReport.docx");
builder.CloseFile();