Генерация поэтапных данных об использовании ресурсов в MS Project с VB.Net - PullRequest
0 голосов
/ 07 октября 2019

У меня возникла проблема при заполнении представления об использовании ресурсов MS Project из приложения Windows Forms в VB.Net (созданного с помощью Visual Studio Community 2019), и я хотел бы попросить совета у кого-то с большим опытомчем я, так как я не видел, чтобы получить что-нибудь самостоятельно.

Код довольно обширный, поэтому я постараюсь сократить его до конфликтной строки (буду рад показать больше, еслиэтого недостаточно):

projAssig.TimeScaleData(StartDate:=startDate, EndDate:=endDate, Type:=MSProject.PjAssignmentTimescaledData.pjAssignmentTimescaledWork, TimeScaleUnit:=MSProject.PjTimescaleUnit.pjTimescaleHours).Item(1).Value = CStr(workHours)

Эта строка находится в цикле For, где я перебираю все назначения определенного ресурса, чтобы заполнить их данными. «projAssig» - это такое назначение. И «startDate», и «endDate» являются переменными даты, а «workHours» - это переменная типа «Single».

Идея состоит в том, чтобы назначить количество часов «workHours» между «startDate» и «endDate». Эти три переменные происходят из других частей кода, и я могу убедиться, что их значения согласованы.

Проблема, с которой я столкнулся, заключается в том, что строка кода иногда завершается с ошибкой исключения:

System.Runtime.InteropServices.COMException: 'El valor del argumentsmento no es válido.'

Сообщение написано на испанском языке, но в основном оно говорит о том, что один из аргументов имеет недопустимое значение. Не указывает, какой именно.

Обратите внимание на следующие примеры:

startDate = # 9/25/2019 06:00:00 PM #, endDate = # 9/25/201922:00:00 #, workHours = 4 ||Работает без проблем.

startDate = # 9/25/2019 22:00:00 PM #, endDate = # 9/26/2019 06:00:00 AM #, workHours = 8 ||Сбой с вышеуказанным исключением.

startDate = # 9/25/2019 22:00:00 PM #, endDate = # 9/25/2019 11:00:00 PM #, workHours = 1 ||Сбой с вышеупомянутым исключением.

Как я упоминал выше, он говорит, что один из аргументов имеет недопустимое значение, но если я посмотрю на весь оператор в окне проверки, он отображает строковое значение ""(и не исключение или сообщение об ошибке, как я ожидал, учитывая сообщение выше).

Я не знаю, просто ли я забываю, и это проще, чем кажется, но я простоне видя этого. Или, может быть, я не понимаю, как на самом деле использовать метод TimeScaleData. Весь этот вопрос мне кажется странным.

Я буду признателен за любую помощь, которую вы сможете оказать. Спасибо за ваше время и ваше внимание.

С уважением

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...