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

Вниз

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 строку печатает :(



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

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

Наверх




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


15-1193149253
xayam
2007-10-23 18:20
2007.11.25
подскажите бесплатный php-хостинг


4-1179087050
DefCon
2007-05-14 00:10
2007.11.25
Сканеры штрих-кодов


4-1179212932
tralala
2007-05-15 11:08
2007.11.25
Есть ли возможность отловить обрашение к реестру?


6-1172990416
todeus
2007-03-04 09:40
2007.11.25
Проблема с написанием чата...