Сообщество LeaderTask

Ресурсы => Плагины => Разработка плагинов / Обсуждение API => Тема начата: Hush от 29 Ноября 2010, 00:51:45

Название: API изменения истории задач
Отправлено: Hush от 29 Ноября 2010, 00:51:45
По-моему неправильно работает добавление записи в историю задачи.
ADDIN_LT_DLL LPCWSTR AddinLT_Task_AddHistoryRecord( LPCWSTR szUID,
DATE dtRecordDate,
BOOL bChangesCreated,
BOOL bChangesState,
BOOL bChangesDates,
BOOL bChangesCommentary,
LPCWSTR szTaskTitle,
UINT iTaskState,
DATE dtTaskDateBegin,
DATE dtTaskDateEnd,
LPCWSTR szCommentary ); // return new HistoryRecordUID or "" if error
Насколько понимаю - запись должна создаваться в зависимости от типа изменения - создание задачи\состояние\даты\комментарий.
Допустим мне надо сделать запись об изменнии состояния задачи, соответственно ставлю
bChangesCreated=false
bChangesState=true
bChangesDates=false
bChangesCommentary=false
Вместо одной  в историю добавляется 4 записи, как будто все флаги=true:
[28.11.2010, 23:40] Задача создана
[28.11.2010, 23:40] Поставлен статус: В работе
[28.11.2010, 23:40] Изменен срок: 27.11.2010
[28.11.2010, 23:40]
Название: Re: API изменения истории задач
Отправлено: Hush от 03 Декабря 2010, 16:50:13
Upd. Господа разработчики, прошу ответить.
Название: Re: API изменения истории задач
Отправлено: Дмитрий Маслов от 06 Декабря 2010, 12:59:19
Так это одна запись или реально три разных?
Просто при изменении параметров задачи по SaveChanges также производится запись в историю задачи.
Название: Re: API изменения истории задач
Отправлено: Hush от 06 Декабря 2010, 14:12:31
Мне нужно сделать одну запись - изменение статуса задачи. Параметры вызова AddinLT_Task_AddHistoryRecord я написал - true только bChangesState. Вместо одной записи возникает 4, как будто все параметры=true. Всё описано выше.
Название: Re: API изменения истории задач
Отправлено: Дмитрий Маслов от 06 Декабря 2010, 16:18:46
Вот я делаю вызов:
AddinLT_Task_AddHistoryRecord( buf, AddinLT_GetCurrDate(), FALSE, TRUE, FALSE, FALSE, AddinLT_Task_GetTitle( buf ), STATE_TASK_IN_WORK, AddinLT_Task_GetDateBegin( buf ), AddinLT_Task_GetDateEnd( buf ), L"" );
В истории записано (добавилась 1 запись):
[06.12.2010, 15:10] Поставлен статус: В работе

FALSE в данном случае равно 0
TRUE в данном случае равно 1

Как повторить указанный баг?
Название: Re: API изменения истории задач
Отправлено: Hush от 07 Декабря 2010, 04:06:17
Разобрался, повторить указанный баг можно неправильно объявив экспорт функции из dll :D. Как оказалось, Delphi отличает тип BOOL от Boolean, они имеют разный размер, отсюда ошибка, что когда я передавал false - LT принимал его за true. Сори за беспокойство.