LazReport скрипт
Модератор: Модераторы
-
RusDeveloper
- новенький
- Сообщения: 92
- Зарегистрирован: 06.04.2016 11:02:43
LazReport скрипт
посмотрел функции доступные в LazReport-е. достаточно скудный выбор:
строковые:
-COPY
-STR
математические:
-INT
-ROUND
-FRAC
интерпретатор:
-еще 6 штук...
а как же функции конвертации целого числа в строку, строки в число, числа с плавающей точкой в строку и т.д. это все подключать через свои функции?
строковые:
-COPY
-STR
математические:
-INT
-ROUND
-FRAC
интерпретатор:
-еще 6 штук...
а как же функции конвертации целого числа в строку, строки в число, числа с плавающей точкой в строку и т.д. это все подключать через свои функции?
- alexs
- долгожитель
- Сообщения: 4069
- Зарегистрирован: 15.05.2005 23:17:07
- Откуда: г.Ставрополь
- Контактная информация:
1. Функций больше на самом деле. Надо смотреть внимательней 
2. Можно подключить большой набор дополнительных функций из пакета lr_add_function.lpk (кинуть в проект компонент TlrAddFunctionLibrary)
3. Многие конвертации делаются на лету. В скрипте нет такой жёсткой типизации.
2. Можно подключить большой набор дополнительных функций из пакета lr_add_function.lpk (кинуть в проект компонент TlrAddFunctionLibrary)
3. Многие конвертации делаются на лету. В скрипте нет такой жёсткой типизации.
-
RusDeveloper
- новенький
- Сообщения: 92
- Зарегистрирован: 06.04.2016 11:02:43
1. установил lr_add_function.lpk и кинул TlrAddFunctionLibrary на модуль. ничего при редактировании шаблона не изменилось
или должно измениться в run-time? и нужно шаблоны теперь в run-time редактировать?
2. Посмотрел в документации Редактор переменных (http://wiki.lazarus.freepascal.org/LazReport_Documentation#Adding_your_own_functions). Создать категорию и переменную ума хватило, а вот для выражения нет кнопки с тремя точками
2. Посмотрел в документации Редактор переменных (http://wiki.lazarus.freepascal.org/LazReport_Documentation#Adding_your_own_functions). Создать категорию и переменную ума хватило, а вот для выражения нет кнопки с тремя точками
У вас нет необходимых прав для просмотра вложений в этом сообщении.
- alexs
- долгожитель
- Сообщения: 4069
- Зарегистрирован: 15.05.2005 23:17:07
- Откуда: г.Ставрополь
- Контактная информация:
Всё будет в рантайме естественно.
Вот список функций и категорий
Все, за исключением последних трех категорий - из поставки LR + TlrAddFunctionLibrary
Вот список функций и категорий
Все, за исключением последних трех категорий - из поставки LR + TlrAddFunctionLibrary
У вас нет необходимых прав для просмотра вложений в этом сообщении.
-
RusDeveloper
- новенький
- Сообщения: 92
- Зарегистрирован: 06.04.2016 11:02:43
в run-time все то же самое, только на английском. т.е. те же функции и отсутствие кнопки с тремя точками для выражения...
откуда Вы это окно вызвали? что-то оно и по дизайну не похоже на те, что у меня... или это такой вид под Linux? в любом случае остаются оба вопроса:
1) почему ничего не изменилось после установки lr_add_function.lpk и размещения TlrAddFunctionLibrary на модуле?
2) почему в Редакторе переменных отсутствует кнопка с тремя точками?
1) почему ничего не изменилось после установки lr_add_function.lpk и размещения TlrAddFunctionLibrary на модуле?
2) почему в Редакторе переменных отсутствует кнопка с тремя точками?
- alexs
- долгожитель
- Сообщения: 4069
- Зарегистрирован: 15.05.2005 23:17:07
- Откуда: г.Ставрополь
- Контактная информация:
Какая версия лазаря?
У меня Lazarus 1.7 r52481:52722M FPC 3.1.1 x86_64-linux-gtk 2. Кажется в одной из промежуточных версий была поломана работа со списками в LR - функции не регистрировались.
Ну а теперь по пунктам:
1. Чтобы было по русски - надо включить русские языковые ресурсы.
2. В редакторе переменных кнопки вызова редактора функции нет. Честно говоря - я совсем не вижу необходимости в этом окне.
3. Интерфейс у меня GTK2 из Fedora 23 - насчёт линукса угадал
4. Окно - штатный редактор функций из редактора memo (см изображение)
У меня Lazarus 1.7 r52481:52722M FPC 3.1.1 x86_64-linux-gtk 2. Кажется в одной из промежуточных версий была поломана работа со списками в LR - функции не регистрировались.
Ну а теперь по пунктам:
1. Чтобы было по русски - надо включить русские языковые ресурсы.
2. В редакторе переменных кнопки вызова редактора функции нет. Честно говоря - я совсем не вижу необходимости в этом окне.
3. Интерфейс у меня GTK2 из Fedora 23 - насчёт линукса угадал
4. Окно - штатный редактор функций из редактора memo (см изображение)
У вас нет необходимых прав для просмотра вложений в этом сообщении.
-
RusDeveloper
- новенький
- Сообщения: 92
- Зарегистрирован: 06.04.2016 11:02:43
alexs писал(а):Какая версия лазаря?
У меня Lazarus 1.7 r52481:52722M FPC 3.1.1 x86_64-linux-gtk 2. Кажется в одной из промежуточных версий была поломана работа со списками в LR - функции не регистрировались.
Ааа... r52481 это ревизия Лазаруса, а что такое 52722M? Вы ж, наверное, что-то еще допиливали после выгрузки Лазаруса из СВН? И какая ревизия у ФПЦ?
alexs писал(а):Ну а теперь по пунктам:
1. Чтобы было по русски - надо включить русские языковые ресурсы.
Этот пункт не столь важен на самом деле
alexs писал(а):2. В редакторе переменных кнопки вызова редактора функции нет. Честно говоря - я совсем не вижу необходимости в этом окне.
Вы не пользуетесь редактором переменных?
alexs писал(а):3. Интерфейс у меня GTK2 из Fedora 23 - насчёт линукса угадал
хоть одна хорошая новость
alexs писал(а):
4. Окно - штатный редактор функций из редактора memo (см изображение)
так и есть... картинку, что у меня там, я уже выложил... что в design-time, что в run-time один хрен... 2 строковых, 3 математических и 6 интерпретатор функций. и как я писал никакой lr_add_function.lpk не помог
- alexs
- долгожитель
- Сообщения: 4069
- Зарегистрирован: 15.05.2005 23:17:07
- Откуда: г.Ставрополь
- Контактная информация:
1.
52722 - вот ревизия.
Эта информация идёт из окна "О программе IDE". Так они там нумеруют.
2.
Free Pascal Compiler version 3.1.1 [2016/06/17] for x86_64
3.
Я не вижу в нём смысла. У меня два вида переменных - одни я передаю из программы в отчёт, через присвоения frVariables:
И переменные, которые используются внутри отчёта. Эти вообще создаются при первом присваивании в скрипте.
Хотя, формально, они также хранятся в frVariables.
Попробуй на транковой версии.
У меня нормальное поведение в линухе и в винде.
52722 - вот ревизия.
Эта информация идёт из окна "О программе IDE". Так они там нумеруют.
2.
Free Pascal Compiler version 3.1.1 [2016/06/17] for x86_64
3.
RusDeveloper писал(а):Вы не пользуетесь редактором переменных?
Я не вижу в нём смысла. У меня два вида переменных - одни я передаю из программы в отчёт, через присвоения frVariables:
Код: Выделить всё
frVariables['TB_DOC_ID']:=DOC_ID;И переменные, которые используются внутри отчёта. Эти вообще создаются при первом присваивании в скрипте.
Хотя, формально, они также хранятся в frVariables.
Попробуй на транковой версии.
У меня нормальное поведение в линухе и в винде.
-
RusDeveloper
- новенький
- Сообщения: 92
- Зарегистрирован: 06.04.2016 11:02:43
добавлю от себя еще один вопрос. есть вот такой скрипт в мемо:
где
VS1 - переменная, которая передается в отчет из кода frVariables['VS1'] := 5; (она передается без ошибок и если в мемо прописать [VS1], то выводится "5");
[sqlMain."S1"] - числовое поле, тоже выводится без проблем в мемо, если прописать просто [sqlMain."S1"]
при запуске отчета получаю ошибку Invalid variant operation на строке result := V1 + V2 в
причем V1 = 5, а вот V2 = unsupported variant type: TFMTBCDFactory
где ошибка?
Код: Выделить всё
VS1:= VS1 + [sqlMain."S1"];где
VS1 - переменная, которая передается в отчет из кода frVariables['VS1'] := 5; (она передается без ошибок и если в мемо прописать [VS1], то выводится "5");
[sqlMain."S1"] - числовое поле, тоже выводится без проблем в мемо, если прописать просто [sqlMain."S1"]
при запуске отчета получаю ошибку Invalid variant operation на строке result := V1 + V2 в
Код: Выделить всё
function SumOrConcat(const V1,V2: Variant): Variant;
begin
if VarIsStr(V1) then
result := V1 + VarToStr(V2)
else
if VarIsStr(V2) then
result := VarToStr(V1) + V2
else
result := V1 + V2
end;причем V1 = 5, а вот V2 = unsupported variant type: TFMTBCDFactory
где ошибка?
-
RusDeveloper
- новенький
- Сообщения: 92
- Зарегистрирован: 06.04.2016 11:02:43
поставил Lazarus 52722 и FPC выше, чем 3.0, но не могу сказать, какой именно ревизии (лежал у меня отдельно в папке, когда-то я его из SVN взял) - появились новые функции, но проблема с unsupported variant type: TFMTBCDFactory осталась, а ведь она вроде не зависит от FPC (файл lr_pars.pas - из лазарусовсого SVN берется)... я так понимаю, что это такая фишка? и у всех так работают скрипты?
- alexs
- долгожитель
- Сообщения: 4069
- Зарегистрирован: 15.05.2005 23:17:07
- Откуда: г.Ставрополь
- Контактная информация:
Нормально работает
вот проверку сделал:
Вот код присвоения переменной значения (в основном бинарнике):
Код скрипта из отчёта:
вот проверку сделал:
Вот код присвоения переменной значения (в основном бинарнике):
Код: Выделить всё
procedure SetDocID(DOC_ID:integer);
begin
frVariables['TB_DOC_ID']:=DOC_ID;
end;
Код скрипта из отчёта:
Код: Выделить всё
begin
TB_DOC_ID:=TB_DOC_ID + [Page2.quRashDoc."tb_doc_id"];
[MESSAGEBOX([TB_DOC_ID], ['a'], [1])];
TB_DOC_ID:=TB_DOC_ID - [Page2.quRashDoc."tb_doc_id"];
[MESSAGEBOX([TB_DOC_ID], ['a'], [1])];
end;-
RusDeveloper
- новенький
- Сообщения: 92
- Зарегистрирован: 06.04.2016 11:02:43
заменил
на
пишет Undefined symbol Page1.sqlMain."S1", т.е. не видит Page1 почему-то... а почему?
и еще вот Вы код приводите:
quRashDoc - это что? TSQLQuery на форме заказа отчета?
Код: Выделить всё
VS1:= VS1 + [sqlMain."S1"];на
Код: Выделить всё
VS1:= VS1 + [Page1.sqlMain."S1"];пишет Undefined symbol Page1.sqlMain."S1", т.е. не видит Page1 почему-то... а почему?
и еще вот Вы код приводите:
Код: Выделить всё
TB_DOC_ID:=TB_DOC_ID + [Page2.quRashDoc."tb_doc_id"];quRashDoc - это что? TSQLQuery на форме заказа отчета?
- alexs
- долгожитель
- Сообщения: 4069
- Зарегистрирован: 15.05.2005 23:17:07
- Откуда: г.Ставрополь
- Контактная информация:
У меня отчёт содержит форму (Page2) с запросами
Я использую zeos, соответсвенно в отчёте у меня используется компонент TLRZQuery
Посмотри пример из lazarus/components/lazreport/samples/enduser_reports/sql_demo - я по данной технологии отчёты строю.
Я использую zeos, соответсвенно в отчёте у меня используется компонент TLRZQuery
Посмотри пример из lazarus/components/lazreport/samples/enduser_reports/sql_demo - я по данной технологии отчёты строю.
-
RusDeveloper
- новенький
- Сообщения: 92
- Зарегистрирован: 06.04.2016 11:02:43
ни в Lazarus 1.6, ни в Lazarus 52722 пакет lr_zeosdb 0.2.2 установить не могу. пишет, что некоторых требуемых пакетов не найдено, смотрите диаграмму пакетов. сейчас еще попробую загрузить его из его SVN. но почему, мать его, он не устнавливается в IDE?!!!
