Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2006.04.02;
Скачать: [xml.tar.bz2];

Вниз

Вот народился вопрос по 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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.49 MB
Время: 0.045 c
15-1142236865
Alex_Delphi
2006-03-13 11:01
2006.04.02
Где достать исходник к InterBase 6.0.


2-1142514252
zorik
2006-03-16 16:04
2006.04.02
Какую СУБД выбрать?


2-1142619841
CAHEK
2006-03-17 21:24
2006.04.02
Как можно визуально изобразить динамический список?


15-1141748402
kaZaNoVa
2006-03-07 19:20
2006.04.02
Virtual PC &amp; VMware


15-1141972607
WondeRu
2006-03-10 09:36
2006.04.02
Рабство vs Армия





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский