Автор Тема: API изменения истории задач  (Прочитано 3438 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Hush

  • Плагинописатель
  • Способный
  • ***
  • Сообщений: 100
  • Репутация +21/-0
    • Просмотр профиля
API изменения истории задач
« : 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]

Оффлайн Hush

  • Плагинописатель
  • Способный
  • ***
  • Сообщений: 100
  • Репутация +21/-0
    • Просмотр профиля
Re: API изменения истории задач
« Ответ #1 : 03 Декабря 2010, 16:50:13 »
Upd. Господа разработчики, прошу ответить.

Оффлайн Дмитрий Маслов

  • Администратор
  • Маэстро
  • *****
  • Сообщений: 6146
  • Репутация +220/-19
  • Я делаю мир таким!
    • Просмотр профиля
Re: API изменения истории задач
« Ответ #2 : 06 Декабря 2010, 12:59:19 »
Так это одна запись или реально три разных?
Просто при изменении параметров задачи по SaveChanges также производится запись в историю задачи.

Оффлайн Hush

  • Плагинописатель
  • Способный
  • ***
  • Сообщений: 100
  • Репутация +21/-0
    • Просмотр профиля
Re: API изменения истории задач
« Ответ #3 : 06 Декабря 2010, 14:12:31 »
Мне нужно сделать одну запись - изменение статуса задачи. Параметры вызова AddinLT_Task_AddHistoryRecord я написал - true только bChangesState. Вместо одной записи возникает 4, как будто все параметры=true. Всё описано выше.

Оффлайн Дмитрий Маслов

  • Администратор
  • Маэстро
  • *****
  • Сообщений: 6146
  • Репутация +220/-19
  • Я делаю мир таким!
    • Просмотр профиля
Re: API изменения истории задач
« Ответ #4 : 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

Как повторить указанный баг?

Оффлайн Hush

  • Плагинописатель
  • Способный
  • ***
  • Сообщений: 100
  • Репутация +21/-0
    • Просмотр профиля
Re: API изменения истории задач
« Ответ #5 : 07 Декабря 2010, 04:06:17 »
Разобрался, повторить указанный баг можно неправильно объявив экспорт функции из dll :D. Как оказалось, Delphi отличает тип BOOL от Boolean, они имеют разный размер, отсюда ошибка, что когда я передавал false - LT принимал его за true. Сори за беспокойство.