Сами понимаете - 10 минут - это никуда не годится...
Нашли способ ускорить этот процесс в ~50 раз.
В двух словах (куски кода приведены для иллюстрации подхода):
1. Сохраняем отчет в виде html файла
Код: Выделить всё
hhh=LsRpt.SaveAs(name_html,"HTMLTable",false)
Код: Выделить всё
Set File = file_system.GetFile(name_html)
Set TextStream = File.OpenAsTextStream(1)
Text=TextStream.ReadAll()
TextStream.Close
'текст html, вплоть до описания заголовка первого столбца "№" заменяем на нужный нам
pos_st=InStr(1,text,"<TH>№")
text = "<title>Lotsia PDM Plus</title> "+_
"<meta http-equiv="""Content-Type""" content="""text/html; charset=windows-1251"""> "+_
"<TABLE border=1 cellspacing=-1> "+_
"<TR> "+_
mid(text,pos_st)
Set TextStream = File.OpenAsTextStream(2)
TextStream.WriteLine line
TextStream.WriteLine Text
TextStream.Save
TextStream.Close
Код: Выделить всё
AcDoc.Range.InsertFile(name_html)
Код: Выделить всё
AcDoc.Sections(1).Range.Tables(1).Rows.LeftIndent = -4
AcDoc.Sections(1).Range.Tables(1).Rows.AllowBreakAcrossPages = False
AcDoc.Sections(1).Range.Tables(1).AllowAutoFit = False
AcDoc.Sections(1).Range.Tables(1).PreferredWidthType = 1
AcDoc.Sections(1).Range.Tables(1).PreferredWidth=0
AcDoc.Sections(1).Range.Tables(1).Cell(1,7).Range.Text="Разд."
AcDoc.Sections(1).Range.Tables(1).Rows(1).HeadingFormat = True
AcDoc.Sections(1).Range.Tables(1).Columns(1).PreferredWidthType = 3
AcDoc.Sections(1).Range.Tables(1).Columns(1).PreferredWidth = 34
AcDoc.Sections(1).Range.Tables(1).Columns(2).PreferredWidthType = 3
AcDoc.Sections(1).Range.Tables(1).Columns(2).PreferredWidth = 39
AcDoc.Sections(1).Range.Tables(1).Columns(3).PreferredWidthType = 3
AcDoc.Sections(1).Range.Tables(1).Columns(3).PreferredWidth = 88
AcDoc.Sections(1).Range.Tables(1).Columns(4).PreferredWidthType = 3