2013-12-24 3 views
0

У меня есть COMException вызванное следующим кодомCOMException вызвано Application.EditClear методом

MSProject.Application mspApp; 
bool result = mspApp.SelectColumn(Constants.ACTUALS_RECENT_INDEX, Missing.Value, Missing.Value, Missing.Value); 
mspApp.EditClear(Missing.Value, Missing.Value, Missing.Value, Missing.Value); 

Значение результата является true.

Вот исключение:

System.Runtime.InteropServices.COMException (0x000003EC): Произошла неожиданная ошибка с методом.

на System.RuntimeType.ForwardCallToInvokeMember (String MemberName, BindingFlags флагов, целевой объект, Int32 [] aWrapperTypes, MessageData & msgData)

в Microsoft.Office.Interop.MSProject._MSProject.EditClear (Object Содержание, объект Форматы, Объектные заметки, Гиперссылки объекта)

Кто-нибудь знает причину этого исключения?

ответ

0

Это звучит как столбец, который становится выбранным это поле только для чтения, такие как ID, уникальный идентификатор, проекта и т.д.

Убедитесь, что столбец выбран тот, который вы действительно хотите. Вы можете сделать это, создав таблицу во время выполнения (и примените ее), чтобы быть уверенным, что пользователь не изменил активный вид и/или базовую таблицу.

+0

Спасибо Рейчел. Знаете ли вы, как судить, является ли столбец только для чтения или нет? –

0

Основная причина в том, что при вызове функции EditClear применяется настраиваемый фильтр. Этот фильтр не приведет к отсутствию данных в таблице. Проблема исчезла, если не применить фильтр.

Смежные вопросы