1. в функции SetReportTemplate
...
i.AppendToTextList(docMapping.GetItemValue("n" & Cstr(j))(0) & "|" & docMapping.GetItemValue("n" & Cstr(j))(0) &_
"~" & docMapping.GetItemValue("[b]не n, а t[/b]" & Cstr(j))(0) & "!" & docMapping.GetItemValue("[b]не n, а f[/b]" & Cstr(j))(0))
...
у меня в отчете из-за этого не было данных.
Кроме того, если добавлять условия отбора, то подставляются русские значения полей, которых нет в документах (у меня, по крайней мере) + FTSearch вылетает в NSD.
2. Настройки я бы не прошивал жестко в источниках, а делал бы там ссылки на документы настройки. И в момент построения отчета, все параметры отображения брал бы не из самих документов источников, а из настроек для Excel. Это конечно немного затруднительно будет для задания свойств каждого поля в источнике, но таким образом можно избежать статики.
3. функция ChekFields
мне выскакивает (MsgOk "Ошибка: несоответствие полей c нумерами.", "error", "Ошибка") и я, как пользователь, теряюсь в догадках, доверять мне этому отчету, который таки дальше строится.
4. сразу показывать пользователю Excel мне кажется не совсем разумно. Если машина слабая, то операции форматирования могут выполняться достаточно долго. Кроме того, после формирования отчета, пользователь остается в интерфейсе Excel. Потом, скажем, закрыл отчет и вернулся в Notes, а там ему говорят "Отчет посторен", жмем "Ок", и что у нас получится? У меня ошибка, т.к.
MsgOk "Формирование отчета завершено", "Info", "Построение отчета"
xlSheet.Cells.Select
' xlSheet.Cells.EntireColumn.AutoFit
xlSheet.Rows("1:1").Select
.Selection.Font.Bold = True
xlSheet.Range("A1").Select
.Visible=True
Вот вроде и все. Спасибо за продолжение.