Ошибка "itgenuty009" при синхронизации моей модели денежных потоков

228
Daniëlle Snoeijer

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

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 

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

3
Добро пожаловать в SuperUser! Сообщение об ошибке написано на голландском языке, но, как я понимаю, из него возникает ошибка с формулой `= SUMIF (BALTable [ID]," = "& [ID], BALTable [Close])`. Я полагаю, `BALTable` - это таблица в Excel, а` ID` - это столбец? Patrick Hofman 7 лет назад 0
Пожалуйста, переведите хотя бы сообщение об ошибке на английский язык. Также, пожалуйста, объясните, какие объекты там задействованы. поскольку в настоящее время невозможно дать вам правильный ответ. Máté Juhász 7 лет назад 0

1 ответ на вопрос

2
Patrick Hofman

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

причина

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

enter image description here

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

Как решить

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

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

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

Похожие вопросы