При синхронизации транзакций Exact Online GL с Invantive Control for Excel ошибка: "Вы пытаетесь переместить ячейки в таблице на листе"
При попытке синхронизировать мою модель с Invantive Control for Excel возникает следующая ошибка:
Это полное сообщение об ошибке:
Type: System.Runtime.InteropServices.COMException
at System.RuntimeType.ForwardCallToInvokeMember(String memberName, BindingFlags flags, Object target, Int32[] aWrapperTypes, MessageData& msgData)
at Microsoft.Office.Interop.Excel.Range.Delete(Object Shift)
at Invantive.Producer.Control.Utility.ResizeBlock(ModelCache modelCache, Workbook workbook, List`1 blocks, iea_blocks_v block, Cube currentCube, Cube desiredCube, Point3d startPoint, Int64 growLength) in File169:line 7968
at Invantive.Producer.Control.Utility.AdjustBlockDimensionOneAxis(SystemWorkingContext context, ModelCache modelCache, Workbook workbook, iea_blocks_v currentBlock, Cube currentCube, Cube desiredCube, IEnumerable`1 anchoredBlocksResult, List`1 blocks, Point3d desiredStartPoint, Int64 growLength, iea_blocks_vBlk_repeat_rows_along adjustAxis, iea_blocks_vBlk_repeat_rows_direction adjustDirection) in File169:line 7293
at Invantive.Producer.Control.Utility.AdjustBlockDimensions(SystemWorkingContext context, ModelCache modelCache, Workbook workbook, List`1 blocks, iea_blocks_v currentBlock, Cube currentCube, Cube desiredCube, Point3d desiredStartPoint) in File169:line 6617
at Invantive.Producer.Control.SyncToDatabaseForm.SyncDownload(DoWorkEventArgs e) in File170:line 2173
Какие шаги для решения этой ошибки?
РЕДАКТИРОВАТЬ
Оператор SQL для блока в Invantive Control:
select division_hid
, division_name
, reportingyear_attr
, years_balance_code_attr
, years_balance_description
, open
from BalanceLines
where years_balance_balancetype_attr = "B"
and reportingyear_attr = $X{eol_year_to}
$X{eol_year_to}
ссылка на именованный диапазон eol_year_to
чье значение используется в запросе.
Я добавил в таблицу Excel два столбца: один с вертикальным поиском по коду классификации счетов GL, а второй по описанию классификации счетов GL. После этого дополнения модель больше не синхронизируется с Exact Online.
2 ответа
Вы также можете получить код классификации и описание учетной записи GL в Exact Online за один раз. Для получения списка всех транзакций GL, а также кода / описания классификации используйте что-то вроде следующего:
select tln.division division_hid
, sdn.description division_name
, tln.financialyear finyear_number_attr
, tln.financialperiod finperiod_number_attr
, tln.glaccountcode glaccount_code_attr
, tln.glaccountdescription glaccount_description
, tln.journalcode gltransaction_journal_code_attr
, tln.currency gltransaction_journal_currency_code_attr
, tln.amountdc amount_value
, tln.vatpercentage amount_vatpercentage
, tln.description
, tln.accountname account_name
, sysdate nu
, '=I_EOL_GL_ACTCLN_CODE(,$C{E,.,.,^+4,.})' glactclncode
, '=I_EOL_GL_ACTCLN_DESCRIPTION(,$C{E,.,.,^+4,.})' glactclndescription
from transactionlines tln
join systemdivisions sdn
on sdn.code = tln.division
where tln.financialyear >= $X{eol_year_from}
and tln.financialyear <= $X{eol_year_to}
and tln.financialperiod >= $X{eol_month_from}
and tln.financialperiod <= $X{eol_month_to}
order
by tln.division
, tln.financialyear
, tln.glaccountcode
Классификации по балансу
В вашем запросе это будет:
select division_hid
, division_name
, reportingyear_attr
, years_balance_code_attr
, years_balance_description
, open
, '=I_EOL_GL_ACTCLN_CODE(,$C{E,.,.,^+3,.})' glactclncode
, '=I_EOL_GL_ACTCLN_DESCRIPTION(,$C{E,.,.,^+3,.})' glactclndescription
from BalanceLines
where years_balance_balancetype_attr = "B"
and reportingyear_attr = $X{eol_year_to}
Выражения столбцов
Процесс сейчас:
- SQL загружает все транзакции Главной книги Exact Online за указанный период в Excel.
- Сделайте это, нажав Синхронизировать.
- Тогда формулы Excel
I_EOL_GL_ACTCLN_CODE
а такжеI_EOL_GL_ACTCLN_DESCRIPTION
оцениваются.
Эти формулы имеют уникальный код деления (компания) и, по крайней мере, код учетной записи GL. Так как код учетной записи GL варьируется в зависимости от транзакции GL, вы хотите сослаться на содержимое определенного столбца вашего запроса. Вы можете сгенерировать жестко сформулированную формулу с действительным кодом учетной записи GL. Но лучше взять код учетной записи GL из другой ячейки в Excel. $C{...}
синтаксис позволяет вам во время синхронизации заменить его ссылкой на ячейку. Пожалуйста, обратитесь к онлайн-руководству и мастеру редактирования модели.
$C{E,.,.,^+4,.}
средства:
- Поворотный метод: используйте ориентацию X/Y в (E)xcel. Вы могли бы использовать
D
слишком, чтобы принять любое преобразование из базы данных в Excel, но используется редко. .
: текущий блок, например '.' в vi иногда ссылаются на "здесь"..
: текущий лист, как '.' в vi иногда ссылаются на "здесь".^+4
: столбец, крайняя левая ячейка ('^') текущей строки Excel, а затем четыре ячейки справа..
: текущий ряд
Вы также можете добавить еще две координаты в выражение столбца для столбца 2 и строки 2, чтобы указать диапазон ячеек.
Invantive Control помещает данные в таблицу Excel. Я добавил формулы в последние два столбца этой таблицы. Invantive Control не может сдвигать эти формулы, поскольку это может привести к поломке таблицы Excel.
Мы добавили формулы в SQL-код. Проблема решена сейчас.