Topic: Вопросы по FastReport

Насколько я понял, при открытии Генератора отчетов на автомате в нем в правом окне должна отображаться структура нашей базы - иначе я просто не понимаю, откуда он должен брать поля для генерации? Или я что-то не догоняю... Еще не вижу панели инструментов в том же Генераторе при создании Диалоговой формы. Поставил полную версию Репорта - там эти менюшки есть. Кстати, в РепортСтудио языки переключаются на ходу - но есть подозрение что это уже допиленная сборка, т.к. регать ее вроде как не надо. Ну и в полной версии подключить нашу базу вообще никак...
А вообще можно пример SQL-запроса для подключения базы или там так все обособленно каждый раз, что нет возможности использовать некий шаблон?

Re: Вопросы по FastReport

5maniac5 wrote:

Насколько я понял, при открытии Генератора отчетов на автомате в нем в правом окне должна отображаться структура нашей базы - иначе я просто не понимаю, откуда он должен брать поля для генерации? Или я что-то не догоняю... Еще не вижу панели инструментов в том же Генераторе при создании Диалоговой формы. Поставил полную версию Репорта - там эти менюшки есть. Кстати, в РепортСтудио языки переключаются на ходу - но есть подозрение что это уже допиленная сборка, т.к. регать ее вроде как не надо. Ну и в полной версии подключить нашу базу вообще никак...
А вообще можно пример SQL-запроса для подключения базы или там так все обособленно каждый раз, что нет возможности использовать некий шаблон?

в этой теме я пошагово описал, как создаются отчеты, правда там на английском, но текста минимум )

http://myvisualdatabase.com/forum/viewtopic.php?id=4


если что то останется неясным, спрашивайте )

Dmitry.

Re: Вопросы по FastReport

О, спасибо, увидел. Буду пробовать. Я правильно понял, SQL-запрос строится автоматически на основании поискового запроса?

Re: Вопросы по FastReport

5maniac5 wrote:

О, спасибо, увидел. Буду пробовать. Я правильно понял, SQL-запрос строится автоматически на основании поискового запроса?

нет, SQL запрос нужно написать самостоятельно, тем самым фильтруя информацию из базы данных по необходимым параметрам, например по датам.

Dmitry.

Re: Вопросы по FastReport

Два вопроса.
Первый. В отчете русский текст отображается заглавными буквами (поля из базы данных). Так и должно быть?
Второй. Редактировать уже имеющийся и сформированный файл .fr3 можно только в отдельно установленном Репорте?

Re: Вопросы по FastReport

Niema wrote:

Первый. В отчете русский текст отображается заглавными буквами (поля из базы данных). Так и должно быть?
Второй. Редактировать уже имеющийся и сформированный файл .fr3 можно только в отдельно установленном Репорте?

1. Особенности БД SQLite, весь не англоязычный текст хранится в верхнем регистре, чтобы работал регистронезависимый поиск.

Можно воспользоваться функцией NameCase, чтобы текст смотрелся более читаемо: [NameCase(<Report."Field1">)]
но тогда каждое новое слово будет с заглавной буквы.

или можно воспользоваться скриптом, который следует разместить на событие OnAfterData для необходимого текстового поля на отчете:

       if Memo1.Text='' then exit;         
       Memo1.Text :=  LowerCase(Memo1.Text);
       Memo1.Text[1] := UpperCase(Memo1.Text[1]);

данный скрипт сделают букву заглавной только первую.


2. Нет, редактировать шаблон можно в готовом проекте, меню: Инструменты > Открыть дизайнер отчетов.

Dmitry.

Re: Вопросы по FastReport

DriveSoft wrote:

1. Особенности БД SQLite, весь не англоязычный текст хранится в верхнем регистре, чтобы работал регистронезависимый поиск.

Можно воспользоваться функцией NameCase, чтобы текст смотрелся более читаемо: [NameCase(<Report."Field1">)]
но тогда каждое новое слово будет с заглавной буквы.

или можно воспользоваться скриптом, который следует разместить на событие OnAfterData для необходимого текстового поля на отчете:

       if Memo1.Text='' then exit;         
       Memo1.Text :=  LowerCase(Memo1.Text);
       Memo1.Text[1] := UpperCase(Memo1.Text[1]);

данный скрипт сделают букву заглавной только первую.

1. Ох, лес тёмный. Оставлю как есть.

DriveSoft wrote:

2. Нет, редактировать шаблон можно в готовом проекте, меню: Инструменты > Открыть дизайнер отчетов.

2. Спасибо. Не сообразила.

Re: Вопросы по FastReport

Как создать отчет результата из таблицы поиска? В качестве примера Вы подробно описали создание отчета, где выводится на печать все содержимое таблицы, а если нужно только часть ту, которую получили в результате поиска по имени например "Петя" и в таблице формы поиска выводятся все "Пети" из базы и их нужно распечатать.

Re: Вопросы по FastReport

grig006 wrote:

Как создать отчет результата из таблицы поиска? В качестве примера Вы подробно описали создание отчета, где выводится на печать все содержимое таблицы, а если нужно только часть ту, которую получили в результате поиска по имени например "Петя" и в таблице формы поиска выводятся все "Пети" из базы и их нужно распечатать.

тогда SQL запрос из примера нужно не много дополнить

...
FROM employees
WHERE employees.firstname LIKE "{edFirstName}"

где edFirstName это название компонента TextBox на форме, в котором будем вводить имя Петя.

Dmitry.

Re: Вопросы по FastReport

спасибо, я так понимаю, что это будет постоянный запрос и каждый раз будет генерироваться отчет по "имени". А я предполагал, что в форме поиска можно будет каждый раз выбирать по какому критерию делать поиск, если в этой форме несколько полей для ввода - "имя", "фамилия", .... и еще что-нибудь... то и в таблице будет выводиться результат в соответствии с выбранным критерием и этот результат нужно распечатать

Re: Вопросы по FastReport

grig006 wrote:

спасибо, я так понимаю, что это будет постоянный запрос и каждый раз будет генерироваться отчет по "имени". А я предполагал, что в форме поиска можно будет каждый раз выбирать по какому критерию делать поиск, если в этой форме несколько полей для ввода - "имя", "фамилия", .... и еще что-нибудь... то и в таблице будет выводиться результат в соответствии с выбранным критерием и этот результат нужно распечатать

можно использовать и несколько критерий для поиска, только количество критериев поиска должно быть постоянно.
Например если мы ищем по имени и по дате, только мы всегда должны вводить оба этих критерия.

FROM employees
WHERE (employees.firstname LIKE "{edFirstName}" ) AND (employees.birthdate={dtBirthDate})

в будущем я реализую возможность создавать отчеты, без необходимости писать SQL.

Dmitry.

Re: Вопросы по FastReport

большое спасибо, надеюсь на скорую разработку функции создания отчетов без написания SQL. это на много упростит работу

Re: Вопросы по FastReport

DriveSoft wrote:
grig006 wrote:

Как создать отчет результата из таблицы поиска? В качестве примера Вы подробно описали создание отчета, где выводится на печать все содержимое таблицы, а если нужно только часть ту, которую получили в результате поиска по имени например "Петя" и в таблице формы поиска выводятся все "Пети" из базы и их нужно распечатать.

тогда SQL запрос из примера нужно не много дополнить

...
FROM employees
WHERE employees.firstname LIKE "{edFirstName}"

где edFirstName это название компонента TextBox на форме, в котором будем вводить имя Петя.

Пробую так сделать, но все равно в отчете дает все имеющиеся данные. Правда я пробую с полем типа счетчик:

Select

application.record_count,
application.date,
application.client,
application.phone,
application.device,
application.trouble,
application.other

from application;
where application.record_count Like "{edCounter}"     

может это сработать как-то или здесь принципиальная ошибка какая-то

п.с. За проект спасибо, реально нужная вещь!

Re: Вопросы по FastReport

По моему Like только для текстовых полей работает, вам нужно проверять на равенство, то есть поставить знак =

Re: Вопросы по FastReport

yurapb
как уже правильно сказали, LIKE в данном запросе не уместен, и в тоже время в запросе ошибка, точка с запятой стоит после from application;

в SQL запросе, точка с запятой обозначает конец запроса, т.е. все что следует после точки запятой, игнорируется.

Правильно будет так

SELECT

application.record_count,
application.date,
application.client,
application.phone,
application.device,
application.trouble,
application.other

FROM application

WHERE application.record_count = {edCounter}     
Dmitry.

Re: Вопросы по FastReport

atempbox

Спасибо за помощь

DriveSoft

поправил - но заработало только после

точка с запятой обозначает конец запроса

еще раз спасибо!