Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.04.02;
Скачать: CL | DM;

Вниз

Вот народился вопрос по FastReport. Как впихнуть в него условие?   Найти похожие ветки 

 
DimonS ©   (2006-02-07 07:15) [0]

Доброго всем времени суток.

Есть отчет в ФастРепорте, отчет сводный, т.е. есть только DataHeader? Datamaster и строка DetailFooter, в которой и отображаются суммы.

Вопрос такой. Суммы отображаются б/п, но мне нужно в одном поле БД (OTZ) сплюссовать только те суммы, когда поле [OTZ] принимает значение True. В условном форматировании это не прокатывает, я так понял, что это нужно делать в Редакторе скрипта, типа:

begin
      if [OTZ]=true then [что сюда вписать?]:=[SUM([QZ."OTZ"])];

end

Если это правильно, то чему нужно присвоить значение, а если нет, то как написать правильно?

P.S. Про F1 просьба не писать, не нашел такого, только что-то очень обобщающее.


 
ЮЮ ©   (2006-02-07 07:46) [1]

А если в НабореДвнных дабавить вычислимое поле? Тогда в отчете достаточно будет просто складывать.


 
DimonS ©   (2006-02-07 07:58) [2]

Можно, но ФастРепорт вроде мощная система и такие пустяки, я думаю, должны в ней решаться. Вопрос в том только, как это сделать?


 
DimonS ©   (2006-02-07 13:49) [3]

Блин... Ну что, никто не знает? Вроде тут о ФастРепорде нормальные отзывы были :(


 
WellSlava   (2006-02-07 13:58) [4]

Я в таком положении вышел очень просто - добавил переменную и ее считал по условию, а a футере вывел.


 
DimonS ©   (2006-02-07 14:16) [5]

WellSlava   (07.02.06 13:58) [4]

Это хорошо, а если в отчете четыре Data Footer-а? Не подходит, однако....


 
WellSlava   (2006-02-07 14:31) [6]

можно 4 переменные, конечно.... а средствами FastReport - не пробовал


 
DimonS ©   (2006-02-07 14:53) [7]

4 переменные не катит. Блин.... Ну НЕ ВЕРЮ! что никто с фаст репортом не работал. Ну неужели сложно так подсказать? Не думаю, что это такая уж большая проблема...


 
WellSlava   (2006-02-07 14:58) [8]

- во-первых почему не катит?
- во-вторых, ты уверен, что сделать это посредством FastReport будет проще?


 
DimonS ©   (2006-02-07 15:09) [9]

То WellSlava
Я это уже пробовал. Если не знаешь отчетники типа Мастер-Детайл (не обязательно ФастРепорт), то лучше не советуй, это пройденный этап.

Ну, а если никто не знает, как это сделать (хотя в справке этого же ФастРепорт-а написано, что это элементарно), то вопрос снимается. :(


 
Ильш ©   (2006-02-08 07:16) [10]

begin
     if [OTZ]=true then Label1.Caption:=[SUM([QZ."OTZ"])];
end

в этом духе вроде
там паскаль в общем то


 
DimonS ©   (2006-02-08 07:25) [11]

В том то и дело, это я знаю. Но вот что записать вместо Label1.Caption, чтобы записалось в данной ячейке?


 
Bless ©   (2006-02-08 09:24) [12]

if [OTZ]=true then [что сюда вписать?]:=[SUM([QZ."OTZ"])];

Что-то я не въехал, ты что, складываешь поля типа boolean?
Впрочем, хозяин - барин.

1.
Писать в таком духе нельзя, имхо (проверять лениво), потому что в процитированном мной твоем фрагменте написано
"Если otz истинно, то чему-то там присвоить сумму ВСЕХ значений поля OTZ (а не только тех, которые true)", а это не то, видимо, что тебе нужно.

2. Совет про F1 ты сходу зря откинул, именно он тут как раз и рулит. С FastReport-ом идут хорошие примеры, разъясняющие массу моментов.

3.
>  Но вот что записать вместо Label1.Caption, чтобы записалось
> в данной ячейке?


<имя ячейки>.memo :=...
например, memo1.memo := "блаблабла";

4. Совет про переменные ты тоже зря откинул. С их помощью это все действительно элементарно решается, тут справка тебя не обманула.

Все нижеприведенное должно быть верно для FastReport 2.4, который у меня. Но вряд ли сильно отличается в других версиях.
1. В скрипте страницы (page1) (хотя страница - не единственное место, где это можно сделать. Можешь и в DataHeader-е)пишешь что-то типа
TrueSum := 0.
2. В скрипте MasterData пишешь  
if [OTZ]=true then TrueSum := TrueSum +[QZ."OTZ"];
3.В footer-е пишешь
MyMemo.memo :=[TrueSum]

Вот и все.

Если тебе лениво делать так, можешь попробовать воспользовать возможностями встроенной функции IF, может тогда обойдешься вообще без скриптов.
Тогда в свое мемо просто напишешь
SUM(IF([QZ."OTZ"]=true, [QZ."OTZ"], 0))</code


 
Bless ©   (2006-02-08 09:25) [13]

Забыл закрыть тег. Исправляюсь
if [OTZ]=true then [что сюда вписать?]:=[SUM([QZ."OTZ"])];

Что-то я не въехал, ты что, складываешь поля типа boolean?
Впрочем, хозяин - барин.

1.
Писать в таком духе нельзя, имхо (проверять лениво), потому что в процитированном мной твоем фрагменте написано
"Если otz истинно, то чему-то там присвоить сумму ВСЕХ значений поля OTZ (а не только тех, которые true)", а это не то, видимо, что тебе нужно.

2. Совет про F1 ты сходу зря откинул, именно он тут как раз и рулит. С FastReport-ом идут хорошие примеры, разъясняющие массу моментов.

3.
>  Но вот что записать вместо Label1.Caption, чтобы записалось
> в данной ячейке?


<имя ячейки>.memo :=...
например, memo1.memo := "блаблабла";

4. Совет про переменные ты тоже зря откинул. С их помощью это все действительно элементарно решается, тут справка тебя не обманула.

Все нижеприведенное должно быть верно для FastReport 2.4, который у меня. Но вряд ли сильно отличается в других версиях.
1. В скрипте страницы (page1) (хотя страница - не единственное место, где это можно сделать. Можешь и в DataHeader-е)пишешь что-то типа
TrueSum := 0.
2. В скрипте MasterData пишешь  
if [OTZ]=true then TrueSum := TrueSum +[QZ."OTZ"];
3.В footer-е пишешь
MyMemo.memo :=[TrueSum]

Вот и все.

Если тебе лениво делать так, можешь попробовать воспользовать возможностями встроенной функции IF, может тогда обойдешься вообще без скриптов.
Тогда в свое мемо просто напишешь
SUM(IF([QZ."OTZ"]=true, [QZ."OTZ"], 0))</code


 
DimonS ©   (2006-02-08 09:39) [14]

То Bless ©  
Спасибо, попробую.
А с именем поля я напутал, конечно:
if [OTС]=true then [что сюда вписать?]:=[SUM([QZ."OTZ"])];

OTС - Boolean, OTZ - Float, вот так правильно будет.


 
DimonS ©   (2006-02-08 10:02) [15]

То Bless ©  
SUM(IF([QZ."OTС"]=true, [QZ."OTZ"], 0))

Реально помогло, не знал, что так просто делается!!! Спасибо!



Страницы: 1 вся ветка

Текущий архив: 2006.04.02;
Скачать: CL | DM;

Наверх




Память: 0.51 MB
Время: 0.048 c
2-1142401391
Gamer
2006-03-15 08:43
2006.04.02
Как запретить копирование диска и как ...?


1-1140940887
Paha
2006-02-26 11:01
2006.04.02
TICQClient и сообщения с мобильника


4-1137257101
Volf_555
2006-01-14 19:45
2006.04.02
Как создать прогу, которая помещала бы tray-иконки в себя?


15-1141998023
Cashmare
2006-03-10 16:40
2006.04.02
Иран


2-1142859647
Der Nechk@ssoff
2006-03-20 16:00
2006.04.02
Цвет формы