Welcome, Guest. Please login or register.
Did you miss your activation email?

Author Topic: CalBack и RowCount  (Read 2194 times)

Subst

  • Sr. Member
  • ****
  • Posts: 444
    • View Profile
CalBack и RowCount
« on: April 06, 2016, 05:46:59 AM »
Вчера собрал последние исходники. Обнаружил баг следующий:

при повторном вызове, например, previewReport происходит следующее:

getCallbackData(LimeReport::CallbackInfo info, QVariant &value) с параметром RowCount не вызывается. Что может привести как к крешу, так и не верному отображению информации в силу факта, что данные могли поменяться, а rowCount останется прежним.

Поковырял исходники. в lrdatadesignintf.cpp
в строке 615 стоит условие для обновления rowCount

if (m_rowCount == -1)

не может ли здесь собака порыться? мне кажется это условие и будет гарантировать запрос rowCount Только один раз.

Subst

  • Sr. Member
  • ****
  • Posts: 444
    • View Profile
Re: CalBack и RowCount
« Reply #1 on: April 06, 2016, 07:08:15 AM »
К предыдущему посту:
чуть позже увидел обновленные исходники

lrdatadesignintf.cpp
 
615      -    if (m_rowCount == -1){
616      -        QVariant rowCount;
617      -        CallbackInfo info;
618      -        info.dataType = CallbackInfo::RowCount;
619      -        emit getCallbackData(info,rowCount);
620      -        if (rowCount.isValid()) m_rowCount = rowCount.toInt();
621      -    }
   615   +
   616   +    QVariant rowCount;
   617   +    CallbackInfo info;
   618   +    info.dataType = CallbackInfo::RowCount;
   619   +    emit getCallbackData(info,rowCount);
   620   +    if (rowCount.isValid()) m_rowCount = rowCount.toInt();
   621   +

Пересобрал, да, проблема решилась, Вы обнаружили этот баг на несколько часов раньше. Спасибо!

Arin Alex

  • Developer
  • Administrator
  • Hero Member
  • *****
  • Posts: 992
    • View Profile
Re: CalBack и RowCount
« Reply #2 on: April 06, 2016, 09:35:43 PM »
А это drow первый заметил :) Постом ранее.