Написал я свой фастрепортовский Connection. Но не удается хотя бы спрятать от юзера ConnectionString в дизайнере.
Если при построении отчёта я могу подменять ConnectionString для объектов DataConnectionBase необходимого типа в Dictionary, то в дизайнере это не проходит и при желании юзер может узнать логин и пароль (а если Windows Authentication, то вообще не получить доступ к данным).
И этот вариант только псевдо-трёхуровневый.
Всё таки придётся помучаться с написанием своих DbConnection и DbDataAdapter.
P.S.
Неужели нет способа элегантно решить проблему гибкого дизайна отчётов в трёхуровневой системе (DBMS - AppServer - Client)?
Может у кого будут соображения на этот счёт?
У меня ворос почему иногда в отчёте при выводе данных некоторые строки произвольно подчёркиваються пунктиром такое вот бывает иногда? с чем это связанно?
У меня возникла проблема вообщем я делал отчёт и во время печати мне понадобилось увеличить Report Data1.Height=1, почему то когда приходит время увеличения появляеться глюк чёрный экран помогите решить эту проблему мне надо все строчки увиличить в два раза по высоте а потом уменьшить так в отчёте нужно
private void Data3_AfterPrint(object sender, EventArgs e)
{
string str1=((String)Report.GetColumnValue("type_dis.Название"));
if((str1).Length >41)
{
Text22.Height=1;
Data1.Height=1;
}
}
это код вот так вот работает но почему чёрное? в том месте где должно было увеличить строку в два раза и вообще дальше отчёт не строиться
есть ещё одна проблемка всё там же, мне удалось таки динамический расширить, но вот ещё одна проблемка в отчёте я использую суб репорт!!! Когда увеличил высоту data1 главного отчёта то изменяю высоту суб репорта он как то смещается неудачно приложу скрин помогите разобраться..
private void Data3_AfterPrint(object sender, EventArgs e)
{
string str1=((String)Report.GetColumnValue("type_dis.Название"));
if((str1).Length >41)
{ Data3.Height=Units.Centimeters * 1;// расположен на субрепорте
Text2.Height=Units.Centimeters * 1;// расположен на субрепорте
Data1.Height=Units.Centimeters * 1;
//Subreport1.Height=Units.Centimeters * 1;
Изучаю возможности Генератора отчёта да и вообще строю как понимаю интуитивно поэтому выходит так когда придёт опыт думаю смогу больше оптимизировать работу, а вам огромное спасибо за помощь разобрался с вами во всех проблемках, мне ещё столько отчётов предстоит делать так что думаю не раз буду обращаться
Если проблема только в этом - определите у своего класса такое же свойство директивой new и спрячьте его:
Дело не в этом, а в том что не удавалось малой кровью решить проблему гибкого дизайна отчётов в трёхуровневой системе.
Но с написанием своих DbConnection и DbDataAdapter, а также соответстующего FR DataConnection - заработало.
Хотелось бы узнать список всех методов DbConnection и DbDataAdapter, которые FR DataConnection использует.
Пока мы только реализовали метод Fill для своего DbDataAdapter.
Вопросик а зачем в последней сборке потребовалось убрать конструктор для DesignerSettings и ReportSettings? И как собственно теперь назначить свой DesignerSettings?
Предполагается, что изменять установки надо, задавая значения отдельных св-в:
Config.DesignerSettings.Icon = new Icon(...)
А в классе EnvironmentSettings вообще отдельный набор св-в, без использования XXSettings.
Предполагается, что изменять установки надо, задавая значения отдельных св-в:
Config.DesignerSettings.Icon = new Icon(...)
А в классе EnvironmentSettings вообще отдельный набор св-в, без использования XXSettings.
Существует просто маленький нюанс - предположим мы открываем Дизайнер как MDIChild, тогда получается что установки CustomSave и так далее будут действовать глобально для всех открытых дизайнеров, а это как раз и не очень хорошо. Или опять где-то проглядел?
ConnectionString используется для передачи всех параметров соединения; его же соединение сохраняет в файле отчета, а также передает в редактор соединения (ConnectionEditorBase). Какие-то настройки Вам ведь нужно хранить?
Этот код построит первый отчет, добавит к нему второй, потом опять первый.
В ближайшем будущем появятся события ManualBuild у страницы отчета и самого отчета - можно будет управлять этим процессом в скрипте отчета.
Здравствуйте!
Как Вы предлагаете в моем случае не очень удобно, т.к. у меня есть набор уже готовых отчетов, которые я хочу слить воедино и печатать пакетом.
Я попробовал использовать такую комбинацию:
но ничего не выходит, т.к. последняя вызываемая функция LoadPrepared(...) удаляет предыдущие страницы.
Можно в функцию LoadPrepared(...) добавить параметр, который бы указывал reportAllInOne очищать PreparedPages или добавлять новые страницы в конец списка?
Было бы очень удобно...
1. У меня есть датасорс.
В отчете я создаю группировку по одному из полей датасорса, а сортировать группы хочу по другому (специальному полю) и не могу это сделать...
2. Если в настройках датасорса установить значение свойства SortOrder в None, то уже ничего не группируется...
AddPage - это добавление именно пустой страницы в режиме построения отчета. Для данной задачи не подходит. Добавлю другой метод. К сожалению, специфика готового отчета в FR такова, что эффективно объединить два отчета не получится. Если отчеты большие, процесс объединения может быть долгим. Поэтому все же рассмотрите возможность объединять отчеты на этапе их построения.
Не знаю по месту ли вопрос, но у меня он такой:
В связи с выходом в свет Mono 2.0 хотелось бы узнать, есть ли какие то возможные перспективы работы с FastReport.NET в Linux-среде под Mono?
Перспективы есть, но пока отдаленные. Связано это с тем, что в библиотеках, которые использует FR.Net, много работы с WinAPI. Соответственно, их нужно переделывать - отвязывать от API, где это возможно, или урезать функциональность. Это касается, в первую очередь, библиотеки DockPanel. Мы будем рассматривать возможность переделки в следующем году.
Перспективы есть, но пока отдаленные. Связано это с тем, что в библиотеках, которые использует FR.Net, много работы с WinAPI. Соответственно, их нужно переделывать - отвязывать от API, где это возможно, или урезать функциональность. Это касается, в первую очередь, библиотеки DockPanel. Мы будем рассматривать возможность переделки в следующем году.
Имеется ли в виду выпуск в перспективе отдельной сборки под Linux (Unix), как в OpenOffice, например?
Комментарии
Написал я свой фастрепортовский Connection. Но не удается хотя бы спрятать от юзера ConnectionString в дизайнере.
Если при построении отчёта я могу подменять ConnectionString для объектов DataConnectionBase необходимого типа в Dictionary, то в дизайнере это не проходит и при желании юзер может узнать логин и пароль (а если Windows Authentication, то вообще не получить доступ к данным).
И этот вариант только псевдо-трёхуровневый.
Всё таки придётся помучаться с написанием своих DbConnection и DbDataAdapter.
P.S.
Неужели нет способа элегантно решить проблему гибкого дизайна отчётов в трёхуровневой системе (DBMS - AppServer - Client)?
Может у кого будут соображения на этот счёт?
Если проблема только в этом - определите у своего класса такое же свойство директивой new и спрячьте его:
private void Data3_AfterPrint(object sender, EventArgs e)
{
string str1=((String)Report.GetColumnValue("type_dis.Название"));
if((str1).Length >41)
{
Text22.Height=1;
Data1.Height=1;
}
}
это код вот так вот работает но почему чёрное? в том месте где должно было увеличить строку в два раза и вообще дальше отчёт не строиться
Text22.Height=1;
Если нужны сантиметры, делайте так:
Text22.Height = Units.Centimeters * 1; // 1см
private void Data3_AfterPrint(object sender, EventArgs e)
{
string str1=((String)Report.GetColumnValue("type_dis.Название"));
if((str1).Length >41)
{ Data3.Height=Units.Centimeters * 1;// расположен на субрепорте
Text2.Height=Units.Centimeters * 1;// расположен на субрепорте
Data1.Height=Units.Centimeters * 1;
//Subreport1.Height=Units.Centimeters * 1;
}
}
У Вас довольно простой отчет; зачем такие сложности (скрипт, сабрепорт)?
Дело не в этом, а в том что не удавалось малой кровью решить проблему гибкого дизайна отчётов в трёхуровневой системе.
Но с написанием своих DbConnection и DbDataAdapter, а также соответстующего FR DataConnection - заработало.
Хотелось бы узнать список всех методов DbConnection и DbDataAdapter, которые FR DataConnection использует.
Пока мы только реализовали метод Fill для своего DbDataAdapter.
- ConnectionString;
- Open();
DbDataAdapter:
- FillSchema(DataTable, SchemaType);
- Fill(DataTable).
Вроде все.
Config.DesignerSettings.Icon = new Icon(...)
А в классе EnvironmentSettings вообще отдельный набор св-в, без использования XXSettings.
А можно подробнее как используется и где свойство ConnectionString?
Оно нам не нужно по сути в трёхуровневой системе.
Здравствуйте!
Как Вы предлагаете в моем случае не очень удобно, т.к. у меня есть набор уже готовых отчетов, которые я хочу слить воедино и печатать пакетом.
Я попробовал использовать такую комбинацию:
report.Prepare();
report.SavePrepared(stream);
report2.Prepare();
report2.SavePrepared(stream2);
reportAllInOne.LoadPrepared(stream);
reportAllInOne.LoadPrepared(stream2);
reportAllInOne.Preview = previewControl;
reportAllInOne.ShowPrepared();
но ничего не выходит, т.к. последняя вызываемая функция LoadPrepared(...) удаляет предыдущие страницы.
Можно в функцию LoadPrepared(...) добавить параметр, который бы указывал reportAllInOne очищать PreparedPages или добавлять новые страницы в конец списка?
Было бы очень удобно...
Спасибо!
В отчете я создаю группировку по одному из полей датасорса, а сортировать группы хочу по другому (специальному полю) и не могу это сделать...
2. Если в настройках датасорса установить значение свойства SortOrder в None, то уже ничего не группируется...
Если я делаю так:
for (int iPage = 0; iPage < report1.PreparedPages.Count - 1; iPage++)
{
FastReport.ReportPage page = report1.PreparedPages.GetPage(iPage);
reportAllInOne.PreparedPages.AddPage(page);
}
то страницы появляются, но пустые...
Может получиться каждую страницу выгружать в stream, а потом в другом отчете в конкретной странице загружать из stream-а?
Делаю так: После этого итоги перестают считаться - равны 0.
Версия 1.0.5.
В связи с выходом в свет Mono 2.0 хотелось бы узнать, есть ли какие то возможные перспективы работы с FastReport.NET в Linux-среде под Mono?
Имеется ли в виду выпуск в перспективе отдельной сборки под Linux (Unix), как в OpenOffice, например?