Можно ли это сделать?

отредактировано 13:43 Раздел: FastReport 2.xx VCL
На MasterData будут данные (Cur, Amount):
USD 222
USD 333
RUR 444
....
и т.д.

Можно ли средствами FR сделать суммирование по валютам, чтобы в Footer'е было что-нибудь похожее на:
Итого: USD: 555
RUR: 444
... и т.д. причем в идеале, чтобы валюты не зашивать, а автоматом определялись какие в текущем списке есть...
в перле одна строчка =) $sum[$Cur] += $Amount

Комментарии

  • отредактировано 13:43
    2 leftMIND:

    Можно ...
    Смотри в сторону массивов и переменных ...
    Суммы по валютам складываешь в массив на Master Data.OnBeforePrint.
    Количество валют ведёшь в отдельной переменной.
    На Master Footer создаёшь SubReport, в котором Master Data = виртуальный датасет с количеством записей = количество валют
  • отредактировано 13:43
    Спасибо!
    Тогда вопрос - а можно как-нибудь узнать размер массива?
  • отредактировано 13:43
    ... а делается все просто - может кому пригодится:
    делается две мемки - в одну идут названия валют, в другую - сумму
    в onbeforeprint masterdata

    begin

    for i:=0 to (Memo24.Lines.Count-1) do
    begin
    if Memo24.Lines=[ActivePlugin.cds."Cur"] then
    begin
    Memo25.Lines:=Memo25.Lines+[ActivePlugin.cds."Amount"];
    tempBool:=true;
    end;
    end;

    if tempBool=false then
    begin
    Memo24.Lines.Add([ActivePlugin.cds."Cur"]);
    Memo25.Lines.Add([ActivePlugin.cds."Amount"]);
    end;

    tempBool:=false;

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

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