функция SUM() в скрипте

отредактировано 16:11 Раздел: FastReport 3.0
procedure Footer1OnBeforePrint(Sender: TfrxComponent);
begin

set('nds',20);

это место
<span style='color:red'>set('sumsch',<SUM(<frxDBDataset2."SUMM">,DetailData1)>); </span>
выдает ошибку работы с вариантами

set('sumnds',get('sumsch')-get('sumsch')/(1+get('nds')/100));
set('sumwnds',get('sumsch')-get('sumnds'));
end;

Я если правильно понял в скрипте к агригатным функциям не достучаться, или это не так?!


Комментарии

  • отредактировано 16:11
    да надо добавить:
    Версия 3,07

    sumsch,nds,sumnds.... переменные отчета

  • отредактировано January 2005
    Замечено что на 3.07+Delphi 6 upd 2

    любая попытка вызвать
    <SUM(Cell, MasterData1)>
    
    приводит к ivalid variant operation

    хотя с delphi 7 все работает
  • отредактировано 16:11
    У меня 3.07+Delphi 6 upd 2

    Версия Delphi тут не причем, поскольку конструкция <SUM(Cell, MasterData1)> прекрасно работает, если она помещена в текст объекта мемо в виде [<SUM(Cell, MasterData1)>]. В версиях 2.* все работало при событии onBeforePrint Memo обьекта, там еще можно было паскалеподобный код набросать вида описанного выше (и без всяких синтаксических излишеств "<" "]") и все работало. Но к сожалению в версии 3.* все это было прибито, обозвали это FastScript'ом и на те вам теперь версия Delphi виновата!!!
    Так как быть когда необходимо в скрипте произвести вычисления c использованием агрегатных функций?

    П.С. Это ж надо такое придумать Дельфи не такое. Я такого еще не встречал - в мире тысячи разработчиков компонентов и чтоб у когото не работало по причине не того апгрейда или версии среды разработки - абсурд Господа, стыдитесь.
  • отредактировано 16:11
    написал:
    Версия Delphi тут не причем, поскольку конструкция <SUM(Cell, MasterData1)> прекрасно работает, если она помещена в текст объекта мемо в виде [<SUM(Cell, MasterData1)>].
    Тебе значит повезло больше чем мне. Я проверял на FRDemo из demos\main
    собрал на d6+upd2 oldstyle crosstab не заработал

    пересобрал на d7+upd1 работает. Как вот объяснить такое, не знаю.
  • отредактировано January 2005
    Кто ищет - тот найдёт, а кто нет - тот не дождётся.

    попробуй порпавить исходники, ну если есть конечно.

    unit frxAggregate;
    ......................................
    procedure TfrxAggregateItem.Calc;
    var
      Value: Variant;
      i: Integer;
    begin
      if not FBand.Visible and not FCountInvisibleBands then Exit;
    
      FReport.CurObject := FMemoName;
      if FAggregateFunction <> agCount then
        Value := FReport.Calc(FExpression) else
        Value := Null;
    
      if VarType(Value) = varBoolean then
        if Value = True then
          Value := 1;
    
      { process vbands }
      if FVColumn > 0 then
      begin
        if VarIsNull(FItemsArray) then
        begin
          FItemsArray := VarArrayCreate([0, 1000], varVariant);
          FItemsCountArray := VarArrayCreate([0, 1000], varVariant);
          for i := 0 to 1000 do
          begin
            FItemsArray[i] := Null;
            FItemsCountArray[i] := 0; // вот здесь вот у них NULL стоял я его заменил на 0
          end;
        end;
    
    ..........................
    
    
  • отредактировано 16:11
    User написал:
    П.С. Это ж надо такое придумать Дельфи не такое. Я такого еще не встречал - в мире тысячи разработчиков компонентов и чтоб у когото не работало по причине не того апгрейда или версии среды разработки - абсурд Господа, стыдитесь.
    Угу, и заплатки на нее, конечно, выпускаются от нечего делать, а совсем не для исправления ошибок ;)
  • отредактировано 16:11
    написал:
    Угу, и заплатки на нее, конечно, выпускаются от нечего делать, а совсем не для исправления ошибок

    Есть ошибки или нет, но вот подумай. Если некто взялся чтото писать в некоторой среде разработки на некоторой версии. Причем после своей работы заявляет что там все работает, а оно совсем не работает, то уж версия точно не причом, ведь тестирование должно было быть....
    Я сталкивался с практикой некоторых разлаботчиков - изменять код VCL под свои нужды (что возможно оправдано для какогото проекта, но только не для компонентов). Если и здесь применялась подобная практика... то тогда да у одних работает у других нет.
  • отредактировано January 2005
    User написал:
    Есть ошибки или нет, но вот подумай. Если некто взялся чтото писать в некоторой среде разработки на некоторой версии. Причем после своей работы заявляет что там все работает, а оно совсем не работает, то уж версия точно не причом, ведь тестирование должно было быть....
    Поэтому очень часто на этом форуме разработчик требует отчет с промоделированной ошибкой, после чего часто вопрошающий куда-то линяет со своим вопросом.
    Тестирование проводится на продукте со всеми установленными заплатками. И твое заявление что они тут не причем мягко говоря...
    Я тебе советую таки зайти на сайт инпрайс и поискать отзывы конкретно по вариантам.
  • отредактировано 16:11
    написал:
    Я тебе советую таки зайти на сайт инпрайс и поискать отзывы конкретно по вариантам.

    Не понял.
  • отредактировано January 2005
    User написал:
    Не понял.
    QualityCentral

    Так сказать всё об ошибках в продуктах борланда и не только

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

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