Не подскажите в чем проблема?

отредактировано 03:27 Раздел: FastReport 3.0
Здравствуйте! У меня возникла следующая проблема :
Формирую запрос в Query в Delphi и передаб их в FastReport. В отчете происходит суммирование цифр в колонке как обычно ReportSummary! Так вот сумму мне показывает нули хотя в колонках есть цифры. У меня возникло подозрение что эти цифры из Query передаются как строки.

Комментарии

  • отредактировано 03:27
    Если ваши данные хранатся как строки, то и передадуться они как строки.
    Сумма может не работать, если ее неправильно написать. Пример суммы в Memo:
    [SUM(<DataQuery."SomeData">, MasterData1)]
    
    Так все работает.
  • отредактировано July 2006
    Может кто нибуть подскажет как наиболее правильно организовать в отчете постраничное подбивание итогов
    PageFooter не подходит так как между DetailData и ним получается небольшой разрыв что не очень хорошо ;)
  • отредактировано 03:27
    я бы делал так:
    для DetailBand привязал Chil (Visible = False)
    в DetailBand.onBeforePrint считал бы в переменную нужную сумму и проверял FreeSpace до конца страницы когда
    if FreeSpace <= DetailBand.Height then Child.Visible := True; (при условии что Child.Height = DetailBand.Height)
    так не должно быть разрывоо между данными и страничными итогами..

    Хотя может есть и более интересный способ .. тоже интересут ...
  • отредактировано 03:27
    aseroff написал:
    Если ваши данные хранатся как строки, то и передадуться они как строки.
    Сумма может не работать, если ее неправильно написать. Пример суммы в Memo:
    [SUM(<DataQuery."SomeData">, MasterData1)]
    
    Так все работает.
    Дело в том что я получаю данные по запросу, а в базе они у меня numeric(15,5)
    выборку делаю select * from data
    затем просто указываю в frxDBDataset .DataSet эту QUERY и в fastReporte строю отчет. [SUM(<DataQuery."SomeData">, MasterData1)] так и написано, а в итоге показывает ноль.
  • SvetkinSvetkin СПб
    отредактировано July 2006
    To: Sega1968

    Когда мне надо было сделать подитог по страницам, и в конце общий я сделал так:
    void MasterData1OnAfterPrint(TfrxComponent Sender)
    {
     if (Engine.FreeSpace < (MasterData1.Height + Footer1.Height))
       {
        Engine.ShowBand(Footer1);
       }
    }
    
    void MasterData1OnBeforePrint(TfrxComponent Sender)
    {
     if ((Engine.FreeSpace < (ReportSummary1.Height + Footer1.Height)) && (tblListNakl.RecordCount() == <Line>))
       {
        Engine.ShowBand(Footer1);
        Engine.NewPage;
       }
    }
    

    в под итогах:
    SUM(<tblListNakl."SL">)
    

    а общий:
    SUM(<tblListNakl."SL">,MasterData1)
    

    и все работает...
  • отредактировано 03:27
    написал:
    а в итоге показывает ноль
    Попробуйте узнать тип этого поля - функция VarType (...)
    Если строка, то StrToFloat (...)
    Если непонятно что, то VarToStr (StrToFloat (...))

    Сумму в итоге сделайте не по Data."...", а по Memo.

Оставить комментарий

Многофункциональный текстовый редактор. Чтобы отредактировать стиль параграфа, нажмите TAB, чтобы перейти к меню абзаца. Там вы можете выбрать стиль. По умолчанию не выбран ни один стиль. Когда вы выберете текст, появится встроенное меню форматирования. Нажмите TAB, чтобы войти в него. Некоторые элементы, такие как многофункциональные вставки ссылок, картинок, индикаторов загрузки и сообщений об ошибок могут быть вставлены в редактор. Вы можете перемещаться по ним, используя стрелки внутри редактора и удалять с помощью клавиш delete или backspace.