Главная страница
    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 строку печатает :(



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

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

Наверх




Память: 0.53 MB
Время: 0.032 c
15-1192887600
Tirael
2007-10-20 17:40
2007.11.25
есть ли способ


15-1192726437
lak\proxy\
2007-10-18 20:53
2007.11.25
Проблема с Вордом


2-1193984840
dumka
2007-11-02 09:27
2007.11.25
Шрифты


15-1188359243
georgius
2007-08-29 07:47
2007.11.25
Новая версия urlmon


15-1192980859
Kostafey
2007-10-21 19:34
2007.11.25
Использование JBuilder для разработки JSF





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