3

При синхронизации моей модели денежных потоков я получаю следующую ошибку:

De feiten kunnen niet in Excel cellen geplaatst worden door fouten in de  formules. Bijvoorbeeld de expressie '=SUMIF(BALTable[ID], "=" & [ID], BALTable[Close])' veroorzaakt een fout in cel AP!G7. 
Corrigeer deze fout eerst en probeer het opnieuw. 
U moet de Engelse versie gebruiken van Excel formules zoals 'SUM' in plaats van het Nederlandse 'SOM'.
Bovendien moet u een komma ',' gebruiken als scheider voor functieparameters in plaats van de puntkomma ';'.

Перевод на английский:

The facts can not be put into Excel cells due to errors in the formulas. 
For instance, the expression '=SUMIF(BALTable[ID], "=" & [ID], BALTable[Close])' causes an error at cell AP!G7. 
Please fix this error first and try again. 
You must use the English versions of Excel formulas such as 'SUM' instead of the Dutch 'SOM'. 
Also, you must use a comma ',' as separator for function arguments instead of a semicolon ';'.

Полный стек ошибок:

Type: System.Runtime.InteropServices.COMException   
bij System.Dynamic.ComRuntimeHelpers.CheckThrowException(Int32 hresult, ExcepInfo& excepInfo, UInt32 argErr, String message)
bij CallSite.Target(Closure , CallSite , ComObject , Object )
bij CallSite.Target(Closure , CallSite , Object , Object )
bij Invantive.Producer.Control.Utility.SetExcelRangeValues(ModelCache modelCache, Workbook workbook, Range range, Object[,] values) in File169:regel 5290Type: Invantive.Configuration.ValidationException
bij Invantive.Configuration.ValidationException..ctor(String errorCode, String errorMessage, String kindRequest, String localStackTrace, String nk, Exception innerException)
bij Invantive.Producer.Control.Utility.SetExcelRangeValues(ModelCache modelCache, Workbook workbook, Range range, Object[,] values)
bij Invantive.Producer.Control.SyncToDatabaseForm.SyncDownloadRows(SystemWorkingContext context, iea_blocks_v block, Int32 numberOfRows, Int32 fakeRowCount, Int32 numberOfColumns, ResultSet resultTable, Decimal step, Int32 currentBlock, Int32 idColumnNumber, Int32 transactionColumnNumber, Point3d dataStartPoint, Dictionary`2 additionalSelectFields, Dictionary`2 fieldsByNameDictionary, Dictionary`2 columnBeginAndEndPoints, Dictionary`2 blocksByCodeDictionary, List`1 fields, Dictionary`2 blockDimensions, ConcurrentBag`1 expressionFieldForCheckPendingChange, Cube innerBorder)
bij Invantive.Producer.Control.SyncToDatabaseForm.SyncDownload(DoWorkEventArgs e)
bij Invantive.Producer.Control.SyncToDatabaseForm.syncBackGroundWorker_DoWork(Object sender, DoWorkEventArgs e)
bij System.ComponentModel.BackgroundWorker.OnDoWork(DoWorkEventArgs e)
bij System.ComponentModel.BackgroundWorker.WorkerThreadStart(Object argument)
bij System.Runtime.Remoting.Messaging.StackBuilderSink._PrivateProcessMessage(IntPtr md, Object[] args, Object server, Object[]& outArgs)
bij System.Runtime.Remoting.Messaging.StackBuilderSink.AsyncProcessMessage(IMessage msg, IMessageSink replySink)
bij System.Runtime.Remoting.Proxies.AgileAsyncWorkerItem.ThreadPoolCallBack(Object o)
bij System.Threading.QueueUserWorkItemCallback.WaitCallback_Context(Object state)
bij System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
bij System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
bij System.Threading.QueueUserWorkItemCallback.System.Threading.IThreadPoolWorkItem.ExecuteWorkItem()
bij System.Threading.ThreadPoolWorkQueue.Dispatch()
bij System.Threading._ThreadPoolWaitCallback.PerformWaitCallback()
bij Invantive.Producer.Control.Utility.SetExcelRangeValues(ModelCache modelCache, Workbook workbook, Range range, Object[,] values) in File169:regel 5352
bij Invantive.Producer.Control.SyncToDatabaseForm.SyncDownloadRows(SystemWorkingContext context, iea_blocks_v block, Int32 numberOfRows, Int32 fakeRowCount, Int32 numberOfColumns, ResultSet resultTable, Decimal step, Int32 currentBlock, Int32 idColumnNumber, Int32 transactionColumnNumber, Point3d dataStartPoint, Dictionary`2 additionalSelectFields, Dictionary`2 fieldsByNameDictionary, Dictionary`2 columnBeginAndEndPoints, Dictionary`2 blocksByCodeDictionary, List`1 fields, Dictionary`2 blockDimensions, ConcurrentBag`1 expressionFieldForCheckPendingChange, Cube innerBorder) in File170:regel 3466
bij Invantive.Producer.Control.SyncToDatabaseForm.SyncDownload(DoWorkEventArgs e) in File170:regel 2332

Как это исправить?

1 ответ1

2

Как вы можете прочитать из сообщения об ошибке, он пытается создать формулу, которая является «недействительной». В этом случае это, вероятно, означает, что ссылочная таблица или ее столбцы не существуют. Судя по названию, вы используете одну из наших демонстрационных моделей (я работаю в компании, предоставляющей программное обеспечение).

причина

Вероятнее всего, произошло то, что вы создали новый лист где-то между существующими листами. Как видно из редактора модели, имя блока не соответствует названию листа:

Это привело к сбою формулы, поскольку на AP нет таблицы с ID столбца.

Как решить

  1. Самое важное правило - всегда вставлять новые листы в конце модели. Если вы вставите лист, проверьте, работает ли модель, синхронизировав ее.

  2. Если вам действительно нужно (или вы хотите) вставить лист посередине, сначала очистите модель, опубликовав ее в новую модель (это сбросит все макет и данные), а затем добавьте лист. После первой синхронизации вы должны снова пройти этот шаг.

Я посмотрю, сможем ли мы сделать некоторые проверки, чтобы пользователи не могли сломать модель, случайно вставив лист.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .