- если в шаблоне Excel есть range с именем "zzz", записать туда значение.
- если такого range в шаблоне нет - не записывать туда ничего, и при этом
не падать (!)
Пробую решать :
X++:
public void insertValueSafeMode(Bookmark _bookmark, anytype _anyVal, int _workSheet = 1, NoYes _diagnostics = NoYes::No)
{
COM comApplication;
COM comWorkSheet;
COM comRange;
int curInfoLine;
if (! m_comDocument)
throw error(strfmt("@GEE6401", this.getApplicationName()));
try
{
curInfoLine = infolog.line();
comWorkSheet = this.getWorkSheet(_workSheet);
comApplication = m_comDocument.application();
comWorkSheet.activate();
if (comWorkSheet && comApplication)
{
comRange = comApplication.range(_bookMark);
}
if (comRange)
{
this.insertValueInRange(comRange, _anyVal);
}
}
catch
{
infolog.clear(curInfoLine);
if (_diagnostics)
{
setPrefix('Отсутствует поле в шаблоне Excel');
warning(strfmt('insertValueSafeMode(%1, %2, %3) failed', _bookmark, _anyVal, _workSheet));
}
}
}
Все очень здорово до тех пор, пока все это не попадает внутрь другого try() - catch(). Тогда, естественно, отрабатывает внешний catch(), и отчет работать перестает..
Any idea?