При синхронизации транзакций 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-код. Проблема решена сейчас.

Другие вопросы по тегам