Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » FastReport

Модерирует : ShIvADeSt

 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93

Открыть новую тему     Написать ответ в эту тему

Vital283



BANNED
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Не пойму как добавить новый отчет в FastReportServer.
В какую папку положить понятно,
а как сделать, чтобы он был доступен в Web?
Где что нужно прописать?

Всего записей: 149 | Зарегистр. 21-05-2007 | Отправлено: 12:49 01-11-2010
skvor22

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Добрых суток всем!
 
Пишу программу на Delphi, необходимо подключить свою функцию к FastReport для заполнения поля прописью, данные берутся из этого же отчета.
Код расположен на разных окнах.
Код на Delphi из программы:
 
 
function TForm2.frxReport1UserFunction(const MethodName: string;
  var Params: Variant): Variant;
  var  a:Currency;
       s,d :boolean;
begin
  if MethodName = 'summaprop' then
  Result :=UserUnit.MoneyToString(Params[0],Params[1],Params[2]);
end;
 
 ////////////////////////////////////////////////////////////////////////////////////////////////
 
procedure TForm7.SpeedButton1Click(Sender: TObject);
begin
            Form2.frxReport1.AddFunction('UserUnit.MoneyToString(S:Currency;kpk:boolean;usd:boolean)');
            Form2.frxReport1.DesignReport;
            Form2.frxReport1.PrepareReport;
            Form2.frxReport1.ShowReport;
end;
 
Delphi не ругается, но своей  функции в "Дереве данных" FastReport не нахожу.  
В чем ошибка? Как правильно подключить свою функцию для расчета ?

Всего записей: 28 | Зарегистр. 25-04-2009 | Отправлено: 23:25 07-11-2010
DroN_S

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
Как правильно подключить свою функцию для расчета ?

уже писал про это
читать http://www.reportingfor.info/ru/news.php?extend.76.4

Всего записей: 1143 | Зарегистр. 09-04-2005 | Отправлено: 07:36 08-11-2010
skvor22

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Нашел свою ошибку.
Правильно так:
 
function TForm2.frxReport1UserFunction(const MethodName: string;
  var Params: Variant): Variant;
  var
  n:string;
begin
     if MethodName = 'SUMMAPROP' then
     begin
        n:=   UserUnit.MoneyToString(Params[0],Params[1],Params[2],Params[3]);
        Result :=UserUnit.MoneyToString(Params[0],Params[1],Params[2],
                Params[3]);  // Функция печати прописью
     end
end;
 
procedure TForm7.SpeedButton1Click(Sender: TObject);
begin
   Form2.frxReport1.AddFunction('function SUMMAPROP (S:Currency;kpk:boolean;usd:boolean;prop:boolean):string',
         'Дополнительные функции', 'Пропись(<Число>)/Возвращает Число прописью');
   Form2.frxReport1.DesignReport;
   Form2.frxReport1.PrepareReport;
   Form2.frxReport1.ShowReport;
end;
 
    В самом отчете в нужном поле ставлю так:[SUMMAPROP(123.5,False,False,False)]     где 123.5 - пробные цифры для преобразования, False -управляющие параметры  моей функции
DroN_S, читал эту ссылку. Это хорошо если работаешь только на одном ПК, и потом необходимо пере компилировать исходники скриптовой библиотеки FastScript. А если переходишь на новую версию FastScript, то нужно не забыть опять делать изменение скриптовой библиотеки.
В интернете почему-то в основном примеры не для FastReport 4. В примерах везде пишут:  
         if AnsiCompareText('Пропись', Name) = 0 then val := Propis(Trunc(frParser.Calc(p1)));
         frAddFunctionDesc(nil, 'Пропись', 'Дополнительные функции', 'Пропись(<Число>)/Возвращает Число прописью');
а в FastReport 4 нужно
         if MethodName = 'Пропись' then   Result := MyFunc(Params[0]);
         rxReport1.AddFunction('function MyFunc(s: String): String', 'Дополнительные функции', 'Пропись(<Число>)/Возвращает Число прописью'));
Потом гадаешь и думаешь почему ничего не получается из примеров. :-\

Всего записей: 28 | Зарегистр. 25-04-2009 | Отправлено: 17:22 08-11-2010
projection120

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Добрый день. Подскажите пожалуйста как я могу при создании отчета в run-time указать длину поля мемо в сантиметрах. В design-time она указывается именно в сантиметрах а когда обращаюсь Memo.Width  то уже в пикселях.

Всего записей: 7 | Зарегистр. 26-10-2010 | Отправлено: 08:36 09-11-2010
nunyutka

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Проблема следующая: Отчет за период. Мне надо просмотреть все заказы которые выберутся за период и посмотреть какой в их номере 10-ый знак и в зависимости от этого стоимость этого заказа прибавить в соответствующую переменную.  
 
Я делаю так, но это просматривает только 1 заказ
 
procedure ReportSummary1OnBeforePrint(Sender: TfrxComponent);
                   
begin
k:=0;
f:='';    
f:=Trim(<qryInfo."ORDNO">);
if f[10]='2' then k:=k+(<qryInfo.ORD_PRICE>/1.18);  
 if f[10]='3' then g:=g+(<qryInfo.ORD_PRICE>/1.18);
         
                         end;

Всего записей: 12 | Зарегистр. 28-10-2010 | Отправлено: 10:32 10-11-2010
f3ka

Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
nunyutka
необходимо это проверять не ReportSummary1OnBeforePrint а в MasterDataOnBeforePrint

Всего записей: 497 | Зарегистр. 02-03-2007 | Отправлено: 11:20 10-11-2010
nunyutka

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
[q][/q]
Не проходит... У меня вообще закралось подозрение что я где то что то не доделываю.. потому что что пишу просто присвоение какого то значения  в ReportSummary1OnBeforePrint и в MasterDataOnBeforePrint, а в отчет не выводится

Всего записей: 12 | Зарегистр. 28-10-2010 | Отправлено: 11:33 10-11-2010
f3ka

Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
nunyutka
в смысле не выводиться значение? а оно (значение переменной) вообще где то в отчете в Memo есть?

Всего записей: 497 | Зарегистр. 02-03-2007 | Отправлено: 11:36 10-11-2010
nunyutka

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
конечно...у меня две такие функции уже оббилась не знаю что делать.. начнем с более простой...
 
 
 f,s: string;
   
procedure  MasterData1OnBeforePrint(Sender: TfrxComponent);
   
  begin
  s := <qryInfo."ORDNO">;
 
   Delete(s,14,8);
     
         end;
потом в отчете в мемке написано [s]
нет ни ошибки и в поле ничего не выводится

Всего записей: 12 | Зарегистр. 28-10-2010 | Отправлено: 11:43 10-11-2010
f3ka

Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
nunyutka
на самом деле не все так просто на сколько я помню...
я бы советовал прочитать Руководство пользователя-Скрипт-Обращение к переменным из списка переменных отчета, а также Руководство пользователя-Построение отчетов-Переменные...
думаю проблема решится...
если нет оффлайн хелпа вот онлайн

Всего записей: 497 | Зарегистр. 02-03-2007 | Отправлено: 11:58 10-11-2010 | Исправлено: f3ka, 12:00 10-11-2010
nunyutka

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
благодарю... попробую найти что нибудь хорошего
 
 
Добавлено:
Поспешила.... неужели этот хелп реально может чем то помочь? все в общих чертах... по этим данным у меня все схоже

Всего записей: 12 | Зарегистр. 28-10-2010 | Отправлено: 12:00 10-11-2010
f3ka

Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
nunyutka
переменная создана в списке переменных? в скрипте переменная в "<>" скобках? читаем руководство, сравниваем что у тебя, пробуем исправить, если не получается пишем сюда...

Всего записей: 497 | Зарегистр. 02-03-2007 | Отправлено: 12:32 10-11-2010
nunyutka

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
все переделала, хоть ошибок и не нашла.... щас выводит в мемки, но вот цикл не правильно работает.. он берет только первый заказ а мне надо что бы он просуммировал все заказы за выбранный период.... подскажете?
 
Добавлено:
и еще.. можно как то наложить ограничения на мемку что бы в ней выводилось только 12 символов

Всего записей: 12 | Зарегистр. 28-10-2010 | Отправлено: 12:49 10-11-2010
f3ka

Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
nunyutka

Код:
 
procedure  MasterData1OnBeforePrint(Sender: TfrxComponent);  
...
f:=Trim(<qryInfo."ORDNO">);
if f[10]='2' then Set('k', Get('k')+(<qryInfo.ORD_PRICE>/1.18));  
 if f[10]='3' then Set('g', Get('g')+(<qryInfo.ORD_PRICE>/1.18));
...
 

c длинной в 12 символов, делать в MemoOnBeforePrint обрезку переменной или применить форматирование для Memo

Всего записей: 497 | Зарегистр. 02-03-2007 | Отправлено: 13:30 10-11-2010
nunyutka

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Так и не работает

Всего записей: 12 | Зарегистр. 28-10-2010 | Отправлено: 13:50 10-11-2010 | Исправлено: nunyutka, 10:04 11-11-2010
Andryshok



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
nunyutka так так так..... я делал так - дописывал свои функции в библу fastScript, перекомпилял пакеты фаст ркпорт, инсталлил в IDE а потом просто пользовал свою функцию в дизайн там так сказать, в вышем случае это может быть функция возвращающая ваше знчение если оно удовлетворяет условию, т.е если 10 число равно 10 то возвращаем цену иначе 0 - смысл вобщем такой sum (моя ф-я[поле БД])
unit в котором эти функции хранятся называется вроде iseruttil точно не вспомню
почитайте ТУТ
и   ТУТ
 
Добавлено:
Если что - пишите в ПМ, - пример вышлю, а точнее юнит с функциями, просто щас нету под рукой
 
а мона еще проще - сравнить ваше 10 число функц IIF и если удовлетв усл. то занести куда либо или суммировать, можно даже прямо в мемку как вы называете, а потом делать с ними все что угоднго, в конце концов ведь можно установить мемку как невидимую и непечатаемую и просто пользовать ее значения

Всего записей: 649 | Зарегистр. 03-06-2009 | Отправлено: 16:03 12-11-2010 | Исправлено: Andryshok, 20:17 12-11-2010
SIgor33

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
nunyutka
файл как сказал Andryshok можно использовать, только называется он fs_isysrtti.pas  
 
 

Всего записей: 652 | Зарегистр. 03-03-2009 | Отправлено: 16:25 12-11-2010
nunyutka

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
а мона еще проще - сравнить ваше 10 число функц IIF и если удовлетв усл. то занести куда либо или суммировать, можно даже прямо в мемку как вы называете, а потом делать с ними все что угоднго, в конце концов ведь можно установить мемку как невидимую и непечатаемую и просто пользовать ее значения
это не проходит....  

Всего записей: 12 | Зарегистр. 28-10-2010 | Отправлено: 10:34 13-11-2010
Andryshok



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
заказ а мне надо что бы он просуммировал все заказы за выбранный период.... подскажете?  
Ладненько......., не проходит коль, возьмем ваш старый принцип и возьмем функцию sum (датасет) а вы видимо складываете значение одной мемки, вообщем, если в хотите и у мню будет желание и время - короче пишите в ПМ, я дам вам мыло вышлите вашу задачу со скринами и тд и я - объясню на пальцах как ее решить, хотелось бы еще узнать ваш опыт работы с фаст репорт

Всего записей: 649 | Зарегистр. 03-06-2009 | Отправлено: 19:52 13-11-2010
Открыть новую тему     Написать ответ в эту тему

Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93

Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » FastReport


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru