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

Вниз

FastReport 3.0 переменные   Найти похожие ветки 

 
IntruderLab   (2007-10-30 09:33) [0]

Вобщем-то задача на удивление проста, в отчете формируется определенное значение, которое необходимо отдать программе для дальнейшей обработке, как ее вытащить оттуда для версии FR3.x я не понимаю. Ответ  где то рядом, но видимо запарил, кому не сложно - подскажите плиз


 
Reindeer Moss Eater ©   (2007-10-30 09:40) [1]

Через список переменных отчета


 
IntruderLab   (2007-10-30 09:44) [2]

а примерчик можно?


 
Reindeer Moss Eater ©   (2007-10-30 09:45) [3]

Конечно можно. Загляни в документацию.


 
Сергей М. ©   (2007-10-30 09:47) [4]

MyReport.Variables["MyVariable"]


 
IntruderLab   (2007-10-30 09:54) [5]

это то я понимаю.... вопрос на какое событие вешать?


 
Сергей М. ©   (2007-10-30 09:56) [6]


> на какое событие вешать?


На какое считаешь нужным, на то и "вешай".


 
IntruderLab   (2007-10-30 09:57) [7]

хех, у мя выдает невозможно преобразовать String в Double


 
IntruderLab   (2007-10-30 09:58) [8]

вот такая у меня строка в коде программы

     s := repChangeBlanks.Calc(repСhangeBlanks.Variables["sSaldo"]);

и вот такая в коде скрипта отчета

     Set("sSaldo", <rds2."PD_SUMMA">);


 
IntruderLab   (2007-10-30 10:00) [9]

Наврал
невозможно преобразовать вариант (null) в string


 
Anatoly Podgoretsky ©   (2007-10-30 10:01) [10]

> IntruderLab  (30.10.2007 10:00:09)  [9]

Все правильно - невозможно.


 
IntruderLab   (2007-10-30 10:04) [11]

:) понятно что не возможно
а что я не так делаю?


 
Reindeer Moss Eater ©   (2007-10-30 10:08) [12]

а что я не так делаю?

Игнорируешь совет №3


 
IntruderLab   (2007-10-30 10:09) [13]

а в [8] разве не так я описывал?


 
IntruderLab   (2007-10-30 10:09) [14]

и в доках я рылся....


 
Сергей М. ©   (2007-10-30 10:11) [15]


> у меня строка в коде программы
>


В обработчике какого события ?


 
IntruderLab   (2007-10-30 10:23) [16]

У меня по жмаху на батоне. Я и спрашивал в каком событии вытащить переменные из отчета


 
Сергей М. ©   (2007-10-30 10:28) [17]


> Я и спрашивал в каком событии вытащить переменные из отчета


В любом, возникающем после выполнения скрипта, устанавливающего значение переменной.


 
IntruderLab   (2007-10-30 10:32) [18]

превью подойдет?


 
Reindeer Moss Eater ©   (2007-10-30 10:33) [19]

А сама переменная-то предварительно была добавлена в список переменных?
А то сейчас выяснится что ты пытаешься получить переменную скрипта объявленную в теле отчета.


 
Сергей М. ©   (2007-10-30 10:37) [20]


> превью подойдет?


сначала см. [19]


 
IntruderLab   (2007-10-30 10:41) [21]

в отчете у меня объявлена переменная называется sSaldo, потом я открываю отчет значение переменной присваиваю, а теперь мне надо отдать значение этой переменнной в программу для дальнейшей обработки.... я уже подумываю о том чтобы в процедуре sql сервера все таки ее посчитать :( раз не получается из отчета дернуть :(


 
IntruderLab   (2007-10-30 10:43) [22]

Делал еще вот так в событии preview
var s : Variant; i : Integer; varr : TfrxVariable;
begin
 i := repChangeBlanks.Variables.IndexOf("sSaldo");
 if i <> -1 then
 begin
   varr := repChangeBlanks.Variables.Items[i];
   s := varr.Value;
 end;
 ShowMessage(s);
end;


 
Сергей М. ©   (2007-10-30 10:46) [23]


> я открываю отчет значение переменной присваиваю


Значит null ты ей присваиваешь, судя по [9]


 
IntruderLab   (2007-10-30 10:55) [24]

Вот данные с самого отчета
procedure repChangeBlanksOnStartReport(Sender: TfrxComponent);
begin
      Set("sSaldo", <rds2."PD_SUMMA">);
      ShowMessage(<sSaldo");                                                      
end;

Отчет сам отдает 25000, то есть ту сумму которая реальна...


 
IntruderLab   (2007-10-30 11:01) [25]

ShowMessage(<sSaldo>);   ну тут вот так соответсвенно...


 
Сергей М. ©   (2007-10-30 11:03) [26]


> OnStartReport


Что за событие ?

В FR3 есть события Before/AfterPrint, ManualBuild..


 
IntruderLab   (2007-10-30 11:11) [27]

при старте формирования отчета :)


 
IntruderLab   (2007-10-30 11:12) [28]

В самом то отчете от переменную вытаскивает :( суть такая что программой я не могу ее вытянуть :(


 
Сергей М. ©   (2007-10-30 11:18) [29]


> при старте формирования отчета


Мож я и мартышка к старости, но в инспекторе объектов дизайнера отчета в упор не вижу события с именем "OnStartReport".


 
IntruderLab   (2007-10-30 11:20) [30]

Это событие TfrxReport


 
Сергей М. ©   (2007-10-30 11:26) [31]


> Это событие TfrxReport


И там тоже нет такого.

А если бы и было, то почему в [24] фигурирует регулярная процедура, а не метод объекта ?

Да и с какого перепугу этот код будет скомпилирован ?


 
IntruderLab   (2007-10-30 11:36) [32]

Короче, я уже запутался.

Заного: в отчете объявлена переменная sSaldo, и на коде отчета (в скрипте) дан следующий код:
procedure Page1OnAfterPrint(Sender: TfrxComponent);
begin
      Set("sSaldo", <rds2."PD_SUMMA">);  
end;

В коде программы (D7)
Следующий код:
procedure TfrmAirCompanyReports.repChangeBlanksAfterPrint(
 Sender: TfrxReportComponent);
var i : Integer; varr : TfrxVariable;
begin
 i := repChangeBlanks.Variables.IndexOf("sSaldo");
 if i <> -1 then
 begin
   varr := repChangeBlanks.Variables.Items[i];
   s := varr.Value;
 end;
end;


 
Сергей М. ©   (2007-10-30 11:42) [33]


> IntruderLab   (30.10.07 11:36) [32]


И ?

Чему равно TVarData(varr.Value).VType ?

Какого типа переменная s ?


 
IntruderLab   (2007-10-30 11:44) [34]

s : Variant


 
Сергей М. ©   (2007-10-30 11:46) [35]


> s : Variant


Чудесно.

Чему равно TVarData(varr.Value).VType после присвоения ?


 
IntruderLab   (2007-10-30 12:03) [36]

это как проверить? я тормозю ужасно сегодня, 2 сутки не сплю, работу заканчиваю :(


 
Сергей М. ©   (2007-10-30 12:04) [37]


> это как проверить?


ShowMessage(IntToStr(Integer(TVarData(s).VType)));

А что, отладчик уже упразднили ?


 
IntruderLab   (2007-10-30 12:08) [38]

256


 
Сергей М. ©   (2007-10-30 12:13) [39]


> 256


Ну тогда ShowMessage(s) не должен вызвать никаких проблем.


 
IntruderLab   (2007-10-30 12:15) [40]

Дак и не вызывает, Null строку печатает :(


 
Сергей М. ©   (2007-10-30 12:16) [41]


> Null строку печатает


Какая такая "Null строка" ?

Строка м.б. пустая или не пустая, если это строка и ошибки при этом не возникло.


 
IntruderLab   (2007-10-30 12:43) [42]

Прикол в следующем, если для этой переменой в самом отчете присвоить жестко Expressions ну например как у меня <rds."test"> то вышеприведенный скрипт даже  учитывая что в скрипте отчета приведено SET("sSaldo","100");
Будет выдавать <rds."test"> как строку :(


 
Сергей М. ©   (2007-10-30 12:50) [43]

А документацию к FR3 почитать ?
Там и примеры использования переменных имеются ..


 
IntruderLab   (2007-10-30 13:00) [44]

читал....


 
Сергей М. ©   (2007-10-30 13:02) [45]

И ?


 
IntruderLab   (2007-10-30 14:19) [46]

Вобщем решение недокументированное!!!
Для работы в FR3.0 необходимо сделать следующее - перед ShowReport
написать следующую фичу:
frxReport.EngineOptions.DestroyForms := False;
и усЁ Гуд
Всем спасибо!!!



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

Форум: "Начинающим";
Текущий архив: 2007.11.25;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.55 MB
Время: 0.04 c
15-1192809768
Ekzot
2007-10-19 20:02
2007.11.25
Замена пробелов в командной строке


2-1193658179
Sonia
2007-10-29 14:42
2007.11.25
dxDBGrid и OnMouseMove


15-1193318137
Alex
2007-10-25 17:15
2007.11.25
Помогите настроить BDE (DBF)


2-1193751520
kyn66
2007-10-30 16:38
2007.11.25
Ошибка при высвобождении объекта


15-1192631024
Реактор
2007-10-17 18:23
2007.11.25
Проблема с печатью рисунка





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский