Dimdim SoftWare
Мастерская Dr.dimdim
ГлавнаяПоискНаписать письмо
ГлавнаяМоделированиеПроектированиеТЗРазработкаИнтерфейсСтатьиСсылкиАвтор
Главная > ЧаВО

FAQ по Crystal Reports (Crystal Decisions)

Ин-ция взята с сайта Interface Ltd

Наиболее типичные ошибки при выполнении отчетов на Crystal Reports


Q: Почему при поиске (Find) в отчёте Crystal Reports или Crystal Enterprise не ищутся числа, большие 999?

A: Какого-то ограничения на поиск (по числу записей) в отчёте нет. Надо только иметь в виду, что поиск осуществляется текста, а не числа. Например, попытавшись найти в отчёте число 1000, Вы его скорей всего не найдёте, т.к. по умолчанию в отчёте оно будет представлено как 1 000, т.е. с пробелом в разрядах (который обычно задаётся в установках ОС). Поэтому этот факт нужно учитывать при поиске в отчёте. Но в Crystal Reports можно задать расширенный поиск, и искать уже конкретно числа.


Q: Как вывести отчёт в несколько колонок (столбцов)?

A: Для этого необходимо сделать следующее:
1. В редакторе Section Expert (щелчок правой клавишей по секции Details ->Format Section…; меню Format->Section… или кнопка Section Expert) для секции Details (это можно сделать только для неё) установить признак Format with Multiple Columns.
2. На появившейся вкладке Layout установить необходимые значения: ширину и высоту секции, расстояние между секциями по горизонтали и вертикали, порядок прохождения записей, и форматировать ли группировку, если она есть.
Для примера можно выбрать тип отчёта Mail Label и посмотреть заданные там значения.


Q: Как определить состояние отчёта, интегрированного в приложение?

A: Можно использовать API-функцию PEGetJobStatus. Для остальных методов интеграции существуют аналогичные функции/методы/свойства. Например, для VCL-компоненты TCrpe в Borland использовать такие её методы и свойства, как Status, Pages и т.п.


Q: Где взять VCL-компоненты для интеграции отчёта Crystal Reports в приложение C++Builder 6.0?

A: Для зарегистрированных пользователей на сайте Crystal Decisions (www.crystaldecisions.com/products/crystalreports/vcl) скачать файл zip-файл, распаковать его и произвести установку. По умолчанию установка VCL-компонент Crystal Reports настроена под Delphi. Для того, чтобы их можно было использовать в C++Builder, необходимо их перекомпилировать. Инструкция представлена в соответствующем файле помощи к компоненте Ucrpe32.
Тем не менее, чтобы это сделать, надо:
1. Определить путь к библиотеке (по умолчанию он при установке - Borland\Delphi\Crystal) в Tools | Environment Options | Library | Library path.
2. В меню выбрать пункт Component | Install Packages -> Add Designtime Packages.
3. Найти Package-файл и загрузить его.
4. В пустой проект из каталога Borland\Delphi\Crystal добавить pas-модули UCrpe32 и UCrpeDS и скомпилировать их. Появятся hpp-файлы.


Q: Каким образом можно распространять отчёты Crystal Reports?

A: Таких способов пять:
1. Публикация в WEB, используя Crystal Enterprise.
2. Экспорт в один из поддерживаемых форматов: txt, doc, xls, pdf, html, xml и др.
3. Интеграция в приложение, используя какую-либо среду разработки: Visual Basic, Visual C++, Delphi и C++Builder, PowerBuilder и др.
4. Просмотр отчётов с сохранёнными данными после установки на компьютере утилиты Crystal Offline Viewer.
5. Распространение через утилиту Compiling Expert для версии CR 8.5 и ниже:
Для версий CR до 7-й включительно компоненты компиляции и распространения отчётов входили в состав CR, а для версий 8 и 8.5 поставлялись отдельно.
Следует сказать, что для способов 3, 4 и 5 при первоначальном запуске отчёта требуется установка необходимых библиотек CR (утилита Crystal Offline Viewer делает это сама), занимающих порой достаточно много места.


Q: Почему просмотрщик отчетов не коннектится к SQL серверу под Windows NT?

A: Такое происходит, если коннект к SQL-серверу производится без указания имени сервера (параметр SERVERNAME в настройке BDE пуст, этот способ соединения используется в случаях, когда NT-Server установлен StandAlone, и компьютер не подключен к локальной сети). В этом случае для соединения с сервером используются параметры соединения, сохраненные в отчете на момент последнего сохранения, а эти параметры не соответствуют истине, если отчет настраивался на другом компьютере с использованием удаленного (не локального) SQL-cервера.


Q: Почему формула, выводящая переменную, которая рассчитывается ранее в другой формуле ничего не выводит?

A: Нужно обязательно при вставке переменной использовать функцию WhilePrintingRecords:
Пример:
WhilePrintingRecords;
numberVar kol;
kol


Q: Установил Crystal Reports 6.0. Что необходимо задать в его конфигурациях?

A: Отключить SmartLinks (File\Options\DataBase-закладка);
отключить сохранение данных в отчете (File\Save Data With Report);
установить русский шрифт по умолчанию для полей (File\Options\Fonts-закладка);
настроить форматы полей (File\Options\FIelds-закладка);
установить параметры для подключения к серверу (File\Options\SQL-закладка).


Q: Что такое CRRT?

A: CRRT - это Crystal Reports RunTime, т.е. эта та самая программа, с помощью которой пользователи просматривают отчеты, настроенные с помощью Crystal Reports. CRRT устанавливается на компьютере пользователя вместе с клиентской частью IS-Builder.


Q: Какие правила нужно соблюдать, чтобы сделать отчеты переносимыми?

A: Нельзя оставлять флажок File/Save report with data! Иначе отчет будет не переносимым. Даже если изменить в настройке отчета Database/Set Location, данные будут пытаться взяться из старого места.
Для ODBC-источников если отчет будет сохранен без данных, то он будет нормально просматриваться через crrt, но не будет через Preview. чтобы просмотреть его через Preview нужно изменить установки Database/Set Location кнопкой Logon Server, если он это не предложит автоматически.
В отчете зашивается для ODBC:
Server Type ОDBC - <имя источника>
Database - <путь> <имя базы>
для MS SQL:
Microsoft SQL Server Server Name - <имя источника> <имя сервера>
UserID - <имя пользователя>


Q: Какие проблемы со шрифтами есть в Crystal?

A: 1. При вставке элементов TextField одинакового размера шрифта могут смотреться как элементы с разным размером шрифта. Проблемы получившиеся при настройке с разным размером шрифта не исчезают.
2. Часть символов строки съедаются. От типа шрифта слабо зависит. По-видимому, это происходит из-за настройки и просмотра отчета на машинах с разными установками экрана "крупный шрифт" / "мелкий шрифт". Рекомендуется настраивать отчет при установке "крупный шрифт" или проверять при zoom=120%.
3. Надписи шрифтом Times New Roman выглядят как иероглифы. Это не влияет на переменные типа FormulaField с этим шрифтом. Это чаще происходит на машинах где не установлен Crystal Reports. Причиной является неправильное преобразование Crystalом шрифтов типа "Times New Roman (Кириллица)" в шрифты типа "Times New Roman Cyr". Чтобы избежать этого, нужно добавить в файл win.ini в раздел [Font Substitutes] строку
Times New Roman, 0=Times New Roman,204
Рекомендуется ограничить использование в тексте шрифта Times, заголовки документов создавать как Formula Field.
4. Строки с курсивом при просмотре переносятся нормально, а при печати часть строки съедается. Рекомендуется не использовать курсив для строк с автоматическим переносом, а для остальных строк оставлять запас.


Q: Почему в структуре таблицы в Link Expert или в окне вставки поля в отчет некоторых полей, которые физически есть в таблице, не видно?

A: Скорее всего, эти поля были добавлены в таблицу уже после того, как был настроен отчет. Crystal опрашивает структуру таблицы один раз при ее добавлении. Обновить сведения о структуре таблицы можно через пункт Database/Verify Database.


Q: Почему не работает связь с подотчетом, хотя она и указана в Subreport Links?

A: При изменении SQL-выражения в подотчете вручную, связь отчета с подотчетом может нарушиться, чтобы восстановить связь нужно удалить ее, а затем сделать снова (пункт Edit Subreport Links контекстного меню подотчета)


Q: Почему при подсоединении к ODBC-источнику из таблиц Excel не видно таблиц (листов Excel)?

A: Нужно установить флажок File\Options\SQL\System tables. В других средствах, например, MS Query или Borland Database Explorer тоже нужно ставить аналогичную опцию.


Q: Почему при сложении значений двух полей значение результирующей формулы не печатается.

A: Скорее всего, дело в том, что в File/Report Options в поле Convert NULL Field to Default не стоит галочки, т.е. Null значения не преобразуются по умолчанию в 0 (или в "" для символьных значений). Поэтому любое действие Null-поля со значащими полями дает результат - Null. Решение вопроса - задать преобразование Null значений по умолчанию (в File/Report Options в поле Convert NULL Field to Default поставить галочку).


Q: В Crystal Reports шаг сетки, поля страницы, ширина полей и размеры отчета измеряются в дюймах. Это очень не удобно при настройке бланков с установленной формой и размерами (например, Платежное поручение). Возможно, в Crystal где-то есть установки, что использовать - сантиметры или дюймы?

A: В Crystal Reports такой установки нет, но там используются региональные установки Windows. Для того чтобы использовались сантиметры, необходимо в Настройке Панели_управления запустить Язык_и_стандарты и выбрать закладку "Числа", в поле "Система единиц" установить "Метрическая" (Metric).


Q: Как получить итог по странице?

A: В FormatSection->Supress для Detail-секции пишется текст (или в эту же секцию вставляется и скрывается формула аналогичного содержания):
NumberVar PageTotal;
NumberVar PN;
If PN<PageNumber then
( PN:=PageNumber; PageTotal:=0; );
If not IsNull({...}) then
PageTotal:={...}+PageTotal;
no;
в PageFooter вставляется FormulaFiled следующего содержания:
WhilePrintingRecords;
NumberVar PageTotal;
PageTotal;


Q: Как сделать нумерацию записей внутри группы?

A: Нужно сделать переменную (например, NumberVar n;), которая обнуляется в GroupHeader и увеличивается на 1 в Detail. Для этого использовать формулы в соответствующих секциях (переменная должна быть объявлена в обеих формулах). Не забыть поставить WhilePrintingRecords.


Q: В отчете используется поле "Количество" (это не расчетная переменная, а поле из таблицы БД), под него отведено три знака под дробную часть. При просмотре отчета третий знак всегда нулевой, хотя точно известно, что там должна быть значащая цифра, почему?

A: В формате числового поля (Format Editor по правой кнопке мыши) имеются атрибуты: Decimals-задает число знаков в дробной части для отображения и Rounding-задает число знаков для округления. В данном конкретном случае в этих атрибутах было установлено соответственно "1.000" и "0.01", т.е. происходит округление дробной части до 2 знака, а отображается три знака. Для исправления ситуации нужно в атрибуте Rounding установить значение с тем же числом знаков после точки, что и в Decimals, т.е. "0.001"


Q: Можно ли в формуле при использовании конструкции "If... Then" использовать в предложении Then несколько операторов?

A: Да, можно. При этом операторы в предложении Then (это справедливо и для Else) должны быть заключены в круглые скобки и разделены точкой с запятой (после последнего оператора, перед закрывающей скобкой, точки с запятой не должно быть!).
Пример:
numberVar s ;
numberVar k ;
If {MBAnAccRptM.Prizn}='Д'
Then
( s:=s+{MBAnAccRptM.Summa};
k:=k+{MBAnAccRptM.Kol} )
Else
( s:=s-{MBAnAccRptM.Summa};
k:=k-{MBAnAccRptM.Kol} )


Q: В графике даты показываются в формате "Date(01.11.1999)". Как сделать, чтобы они показывались просто "01.11.1999".

A: Нужно в отчете сделать группу по полю типа Дата, по которому строится график, например, "on each day" и скрыть эту группу.


Q: В таблице есть поле типа "datetime". В отчете необходимо вывести не только дату, но и время, которое содержится в поле. Как это можно сделать?

A: Необходимо выполнить следующее:
1. В меню File/Report_Options в поле Convert Date-Time_Field выбрать "to Date-Time".
2. Вставить поле из базы типа Date-Time и в свойствах поля (по правой кнопке мыши) в Format в поле Order выбрать "Time".
Но имеется следующая особенность: при использовании библиотеки P2ssql.dll версии 8.0.0.21 и 7.0.0.44 преобразование поля типа Datetime в Date-Time происходит без проблем, а при использовании меньшей версии происходит преобразование в строку. При просмотре поля из отчета, сделанного с P2ssql.dll версии 8.0.0.21 и 7.0.0.44, в меньшей версии происходит неправильное преобразование в Date-Time (например дата 28.08.2000 представляется в виде DateTime(-4713,01,01,00,00) , а правильно д.б. DateTime(2000,08,28,00,00))


Q: Как сделать, чтобы заголовок группы был раньше шапки на странице?

A: 1. Делаем две секции одинакового размера: PageHeader и GroupHeader#1, где шапку в Page делаем в нижней части, а заголовок группы в верхней части соответствующей секции.
2. PageHeader делаем Underlay с формулой:
NumberVar PG;
PG<>GroupNumber;
Формулу делаем для того, чтобы секция наезжала только тогда, когда начало группы, т.е. имеется заголовок группы, а когда просто начало страницы - не нужно наезжать. Для этого в Details в Supress делаем формулу:
NumberVar PG;
PG:=GroupNumber;
no;
Другой вариант
1. Делаем секцию PageHeader с шапкой (без линий) и в Supress для нее делаем формулу, как в п.2 из предыдущего способа.
2. Делаем еще одну подсекцию в GroupHeader(после остальных подсекций) с копией шапки и с линиями.
3. В Details в Supress пишем формулу, как в предыдущем методе.
Или может быть в данном случае подойдет следующий, третий вариант: в Option для группы задаем - повторять заголовок на каждой странице и шапку помещаем в GroupHeader.


Q: Как в Crystal сделать Cross Table, в которой помимо оборотов по счетам присутствовали бы сальдо начальное и конечное и итоги по оборотам? Причем хочется, чтобы порядок колонок был следующим: сальдо начальное, обороты по счетам, итоги по оборотам, сальдо конечное.

A: Cross Table строится только по однородным данным (в пределах одной группы) с итогами по ним (например, только по оборотам). Для построения Cross Table с неоднородными данными нужно использовать временную таблицу, подготовленную особым образом. В этой таблице должно быть поле (символьное), содержание которого будет использоваться для группировки данных по колонкам (или рядам). Заполнять это поле нужно с учетом того, чтобы в результате сортировки данные в Cross Table были расположены нужным нам образом, для чего можно использовать русские буквы, латинские буквы одинаковые по начертанию с русскими, пробелы, цифры (при сортировке сначала идет пробел, затем латинские буквы и далее русские). Например, для построения Cross Table из вопроса (для примера, строки - аналитика по счету, колонки - обороты по Д корсчета) таблица будет иметь такие поля: Analit, Сolumn, Summa, где Analit будет использоваться для строк, Сolumn - для колонок, Summa - для суммируемых данных. Поле Сolumn должно иметь такие значения: "Cальдо начальное", "Д корсч1", "Д корсч2",..., "Итого по Д", "Cальдо конечное" (их может быть несколько - для каждой из аналитик). Чтобы порядок был именно таким в названии "Cальдо начальное" первую букву надо сделать латинской, остальные поля сортируются естественным образом. Поле Summa должно быть заполнено соответствующими данными (сальдо, обороты, итоги). Поскольку итоги в такой таблице уже подсчитаны, нужно будет в Cross Table скрыть стандартные итоги. Иногда приходится использовать несколько пробелов для обеспечения нужной сортировки, когда это используется для строк, то для того, чтобы не было явно заметной лесенки, можно поле выровнять по правому краю, а в некоторые названия (например, слишком короткие) справа добавить нужное количество пробелов.


Q: Пожалуйста, подскажите, как импортировать текст в формате RTF в отчет?

A: Импортируйте текст в текстовый объект. (В режиме редактирования текстового объекта щелкаете правой кнопкой мыши - далее по указаниям)


Q: Где можно прочитать расшифровку ошибок Print Engine?

A: Папка Segate Crystal Reports 6.0->Segate Crystal Reports Developer's Help, далее в Cодержании помощи выбираем книгу Crystal Report Engine и последниий пункт Crystal Report Engine Error Codes. Или от слова далее - в Указателе набираем err и пункт Crystal Report Engine.


Q: Разработанный на Crystal Reports отчет при запуске выдает ошибку Print Engine 534. В чем может быть причина?

A: Самая распространенная причина такой ошибки - при разработке отчета не убрали имя базы данных и имя владельца таблицы в пункте меню SetLocation.

Еще одна часто встречающаяся причина - в базе данных нет одной или несколько таблиц, использующихся в отчете. Или в отчете используются поля, которых нет в таблицах.

Для получения более детальной информации о причинах ошибки в конкретном случае рекомендуется через SQL Trace (или Profiler в MS SQL 7.0) получить проблемный запрос и выполнить его через ISQL/w (Query Analyzer) под тем пользователя, от имени которого выполняется отчет. Еще один путь получения дополнительной информации - в каталоге CRYSTAL формируется файл SQLSVR.ERR, где содержится текст этой ошибки.


Q: Какие есть проблемы с экспортом в Word и Excel из Office 97?

A: При экспорте из Crystal в формат Excel 5.0, Excel 97 открывает такой файл нормально и выглядит он в нем нормально (хотя эксперимент не был чистым, т.к. на машине были установлены Office 95 и Office 97).

При экспорте из Crystal в формат Word, Word 97 не может прочитать русские шрифты. Что интересно, если экспортированный файл сначала открыть и сохранить с помощью Word 7.0, то после этого Word 97 читает его нормально. Поиск более свежих dll для экспорта ничего не дал, экспорт из Crystal 7.0 в формат Word имеет те же результаты.

Вариант решения проблемы: экспортировать в файл формата rtf, который затем открывать с помощью Word 97, тут даже есть некоторые плюсы, в том смысле, что видны рамки (правда, тоже не без особенностей).


Q: Как сделать, чтобы Cross-Tab переносился на следующую страницу, если он не входит по ширине?

A: Если Cross-Tab не в подотчете, то Crystal делает это автоматически


Q: Как проверить значение поля на Null?

A: Можно использовать функцию isnull(). Но надо иметь в виду, что в File/Report Options в поле Convert NULL Field to Default не должно быть галочки, иначе значения Null будут преобразованы в 0 или "" в зависимости от типа поля.


Q: Как использовать переменные?

A: Переменные должны быть объявлены (для каждого типа переменной имеется свой оператор объявления NumberVar, StringVar и т.д.). Можно сразу при объявлении присвоить начальное значение переменной, например, numberVar kol:=0; При использовании этой же переменной в других формулах она опять должна быть объявлена. Располагать формулы нужно в той секции, где должно происходить вычисление, например, для подсчета количества групп - в HeaderGroup (или FooterGroup), для подсчета количества записей - в Details. Если значение формулы не нужно видеть в отчете, ее можно сделать скрытой (Supress). Можно для вычисления переменной не делать специальную формулу, а расположить ее в формате секции в формуле Supress (обязательно поставить в конце Yes или No в зависимости от того секция должна быть скрытая или нет).


Q: Как гарантировать, что переменная будет вычислена после другой?

A: Использовать функцию EvaluateAfter(x).


Q: Как выровнять поля в отчете?

A: Во-первых, привязка объектов к сетке (File/FileOptions/Layout закладка поле SnapToGrid). Во-вторых, есть горизонтальные и вертикальные GuideLines, к которым можно выровнять объект. (Размеры объектов, привязанных к таким линиям можно изменить одновременно перемещением линии). Лучше эти линии сделать видимыми в Disign и невидимыми в Preview (меню View или в File/FileOptions/Layout есть).


Q: В CR8 (как и в седьмом) есть функция, называемая "сумма прописью", которая прекрасно переводит числа в текст (но только на английский язык). Есть ли такая же функция, которая делает то же самое, но по русски.

A: Нет, но ее можно написать в Delphi или VB и подключить как UFL.


Q: В подотчете объявлена переменная как shared, в отчете подотчет располагается выше формулы, в которой используется эта переменная, но эта переменная все равно не читается. В чем может быть дело?

A: Может быть, Вы неверно определили переменные (разное имя или разный тип).


Q: Где можно получить компоненты ActiveX для доступа к Cristal Report из пользовательских приложений?

A: Такие компоненты входят в поставку версии Cristal Report 8.0 Developer.


Q: Как передать значения переменных из основного отчета в подотчет и наоборот?

A: Нужно использовать функции Store и Fetch. Этих функций имеется несколько - по типу переменной: StoreNumberVar, StoreStringVar и т.д. Для сохранения значения переменной используется Store...Var('имя переменной', значение из поля/формулы), для восстановления - Fetch('имя переменной'). Имя переменной пишется в кавычках, объявлять ее не нужно ни при сохранении, ни при восстановлении. Надо помнить, что формула для восстановления должна располагаться в секции ниже той, где сохраняется переменная.
Пример:В подотчете:
Formula1:=StoreNumberVar("post", {MBAnalit.Kod})
В основном отчете:
Formula2:=FetchNumberVar("post")
Из основного отчета в подотчет можно передать значение с помощью LinksSubreport, указав это поле и связав его с параметром в подотчете.
Для Crystal V.8 нужно для этой цели использовать разделяемые(Shared) переменные.
Пример:В подотчете:
Shared numberVar OstN:=sum(...);
В основном отчете:
Shared numberVar OstN;
OstN


Q: Отчет состоит из трех cross-tab, расположенных друг за другом и как бы "склеенных" между собой. Первый cross-tab имеет одну колонку фиксированного размера. В двух последующих cross-tab количество колонок генерируется по заданным входным параметрам. При этом получается, что одна таблица наползает на другую, либо между ними слишком большое расстояние. Можно ли задать размещение последней таблицы динамически (в зависимости от размера второй).

A: Для корректного размещения cross-tab используйте множественные секции, например Page Footer a и Page Footer b. Для создания секций используйте редактор Section Expert.


Q: Как в Crystal Report 7 или 8 вызвать хранимую процедуру из SQL Server 7?

A:

  1. :необходимо чтобы процедура имела возвращаемые параметры
  2. в закладке SQL диалога Options следует включить опцию Stored Procedures, после этого в CR имя процедуры будет восприниматься как имя таблицы, а возвращаемый параметр как колонка

Q: Можно ли поправить в Crystal Reports version 8.0 в preview данные, то есть возможна ли непосредственная правка не в базе, а в образе отчета перед печатью (пользоваться для этого экспортом крайне неудобно)?

A: Нет, такой возможности нет и, видимо, это принципиальное ограничение.

Q: Вопрос: Как вставить номер страницы?

A: Следует вставить специальное поле page number в секцию page footer.

Q: Как вставить в отчет суммы по Group Footer… Как добавить "некросстабулярные" столбцы…

A: добавить дополнительные объекты "внутрь" crosstab невозможно. Все вычисления следует проводить либо вне объекта crosstab либо при помощи формул.

Q: Можно ли добавить несколько столбцов crosstab с различными формулами?

A: Да. Для создания новой формулы в crosstab в диалоге Cross-Tab кликните по кнопке New Formula

Q: Можно ли метки строк расположить строками?

A: В объекте crosstab в качестве меток строк и колонок используется значения полей базы данных. Для выбора поля, значение которого используется в качестве заголовка, нужно в диалоге Cross-Tab выбрать наименование поля из списка Fields и кликнуть по кнопке Rows или Columns соответственно.

Q. В отчете присутствует sub-report, в котором определена переменная shared numbervar x := 1; В самом отчете в REPORT_HEADER'е определена эта же переменная для печати shared numbervar x;x Почему значение переменной зависит от ее расположения в отчете: REPORT_FOOTER:1, REPORT_HEADER (ниже sub-report):0?

A: Значение переменной зависит от расположения, потому что Crystal Report - многопроходный генератор и подотчет выполняется на последнем этапе. Значение переменной, присваеваемое в подотчете, будет определено только в секциях ниже той, в которой размещен подотчет, и то при условии использования функции WhilePrintingRecords

Q. Как гарантировать выборку shared переменных, вычисляемых в sub-report'е, независимо от расположения ее в главном отчете?

A: Если нужно отобразить и подотчет, и переменную в заголовке отчета, можно использовать множественные секции Report Header, причем подотчет должен располагаться в верхней секции, а формула, содержащая переменную, - в нижней.

Q. Lotus Domino как источник данных?

A. Данные Lotus Domino могут быть прочтены Seagate Crystal Reports посредством ODBC или с использованием приямого драйвера, входящего в поставку. Для Windows 95, Windows 98 и Windows NT, слой Lotus Domino DBMS включает три файла:

  • Nsql32.dll
  • Nsqlv32.dll
  • Nsqlc32.dll

Эти компоненты Lotus Domino должны быть инсталлированы на клиентской машине.

Для доступа к Lotus Domino при инсталляции Crystal Reports следует выбрать Lotus Domino, при этом инсталлируются дополнительные файлы P2snote.dll and P3slnen.dll в каталоги Windows или Winnt Crystal.

Nextpwd.dll и Lotus API DLL (Lcppn201.dll) инсталлируются в выполняемый каталог Lotus Domino.

В файл Notes.ini добавляется строка: EXTMGR_ADDINS=extpwd

Выполняемый каталог и каталог данных добавляются в Lotus Domino PATH.

В таблице приведено сравнение доступа к Lotus Domino посредством ODBC и прямого драйвера.

Feature

Native driver

ODBC driver

Logon to different servers

Yes

Yes

Use Lotus Domino client extension manager to pass password to Lotus Domino client

Yes

No

Obtain list of available databases (including subfolders)

Yes

Yes

List database filename

Yes

Yes

List database title

Yes

No

Report on Views and Forms

Yes

Yes

Distinguish between Views and Forms with same name

Yes

No

Omit Forms with no fields

Yes

No

Omit Subforms (cannot be used independently)

Yes

No

Text fields shown as strings

Yes

Yes

Text fields shown as memos

Yes

No

Rich Text fields shown as strings

Yes

No

Rich Text fields shown as memos

Yes

Yes

Computed values for composed fields

Yes

No

Multiple value fields shown as first value with proper type

Yes

No

Multiple value fields shown as string and memo

Yes

No

Converting report from other driver

Yes

Partial

Left outer join on linked tables

Yes

Yes

Other joins on tables

No

Yes

 

Q. Работает ли Crystal Reports с Lotus Notes?

A. Да, работает. Crystal Reports может как создавать отчеты, используя Lotus Domino в качестве источника данных, так и экспортировать данные в Lotus Domino. Экспорт в Lotus Domino. Seagate Crystal Reports позволяет экспортировать данные, используя клиента Lotus Domino версии 3.0 и выше. Клиент Lotus Domino OS/2 не поддерживается.

Q. Как отобразить в отчете все значения параметра, принимающего множественные значения?

A. Необходимо создать формулу, в которой к каждому значению параметра можно обратиться как к элементу массива (только для множественных параметров!), например: {?param}[1]+' '+ {?param}[2]+' '+ {?param}[3]

Q. Не получается использовать русский текст в формуле для Crystal Reports 7.0.

A. Да, действительно, такая проблема существует. Обойти ее можно, написав фрагменты текста на русском языке, например, в Блокноте и перетащить его в Formula Editor через Clipboard.

Q. Не могли ли бы Вы подсказать, где можно скачать (купить) документацию по использованию Crystal Reports 6.0 (7.0) на русском языке?

A. документации на русском языке не существует. Наиболее подробное описание использования Crystal Reports 6.0 (7.0) дается в статьях Маклакова, опубликованных в журнале "Компьютер Пресс" №1,2,4 за 1998 г. C материалами этих статей Вы можете ознакомиться на нашем сайте в разделе “Публикации”.

Q: Где найти документацию по параметру DrillDownContext функции PESearchForText?

A: Функция PESearchForText не поддерживается API и удалена из документации (Developer's help)


Q: Как преобразовать число в формат строки со стандартным представлением как телефонного номера?

A: Используйте функцию Picture из набора дополнительных функций.


Q: В Detail секции главного отчета сидит подотчет, и когда содержимое этого подотчета не вмещается в свободное пространство листа, программа начинает печать подотчета с нового листа. В результате остается достаточно свободного места на предыдущем листе. Как побороть эту проблему?

A: Для экономии места кликните по подотчету правой кнопочкой, выберите Format Subreports и в закладочке Common отключите опцию Keep Object Together.


Q: У нас проблема с использованием Crystal Reports 6.0, 7.0 для данных в формате InterBase 5.0:

Не получается в отчетах использование данных из нескольких таблиц одной базы данных, связи устанавливаются в окне Visual Linking Expert вручную правильно, но при вводе в секцию Detail связанных полей из разных таблиц при попытке увидеть отчет выдается сообщение:

ODBC error: [Visigenic][ODBC InterBase 4.x Driver]

Syntax error or access violation

A: Существует два пути решения проблемы.

  1. После связывания таблиц в Visual Linking Expert войти в меню Database/Show SQL Query и исправить SQL-запрос вручную, например:

  1. SELECT
    DEPARTMENT.DEPARTMENT,
    EMPLOYEE.FIRST_NAME, EMPLOYEE.LAST_NAME
    FROM
    { oj DEPARTMENT DEPARTMENT INNER JOIN EMPLOYEE EMPLOYEE ON
    DEPARTMENT.DEPT_NO = EMPLOYEE.DEPT_NO}
    На
    SELECT
    DEPARTMENT.DEPARTMENT,
    EMPLOYEE.FIRST_NAME, EMPLOYEE.LAST_NAME
    FROM
    DEPARTMENT, EMPLOYEE
    WHERE
    DEPARTMENT.DEPT_NO = EMPLOYEE.DEPT_NO

  2. Другой путь предполагает выполнение следующих шагов:


    а) Скачать Odbcregs.zip с сайта http://community.seagatesoftware.com.

    б) скопировать P2sodbc.dll из zip-файла в C:\Windows\system или C:\Winnt\system32. Убедитесь, что на Вашей машине существует только одна версия этого файла - P2sodbc.dll - 6.0.0.72.

    в) Скопируйте файл Outjoin.reg во временную директорию. Дважды щелкните по этому файлу для редактирования реестра.
     

    г) В регистре найдите HKEY_CURRENT_USER -> SOFTWARE -> SEAGATESOFTWARE -> CRYSTALREPORTS -> DATABASEOPTIONS -> OUTERJOIN.
    И переместите ISCDRV32 из списка "OJSyntax" в "OpenIngres".


Q: Нет возможности складывать суммы из субрепортов.

A: Подотчеты являются независимыми и действительно, нет возможности включать агрегативные данные из подотчетов в основной отчет.


Q: Создание реально работающего ехе-шника с параметром (пока не получается).

A: Используйте версии CR7 или 8 - там это реализовано.


Q: Очень долгая работа при использовании представлений (вьюшек), особенно если их несколько. Проблемы с вытаскиванием данных из нескольких файлов, особенно когда количество таблиц больше 5,6…..

A: Вопросы связаны с производительностью сервера, а не Crystal Reports. Оптимизировать каждый запрос следует индивидуально. Некоторая функциональность (суммирующие отчеты, выражения having by) с целью повышения производительности может быть выполнена на стороне сервера (только в случае использования версии Crystal Reports 7 или 8 ).


Q: В редакторе формул много разных функций по работе с различным типом данных. Как ими пользоваться? (без нормального описания разобраться сложно).

A: В help есть достаточно подробное описание каждой функции (с примерами).


Q: В 7 версии есть какая-то возможность добавления функций, написанных самим пользователем (например на Дельфи); как это делается - пока не ясно.

A: По определенным правилам пишется dll, компилируется и размещается в корневой директории Crystal. В документации (в электронном виде на дистрибутиве) есть подробное описание.


Q: Нет возможности выдачи данных в несколько столбцов на одном листе (кроме одного типа отчёта (Label), но он не обладает хорошей выборкой данных.

A: В Crystal Reports с версий 7 и 8 включен специальный тип отчета (многоколоночный).


Q: Под вопросом работа Кристала при соединении таблиц, когда в одной таблице есть записи, а в другой нет. Два последних вопроса по проблеме такого рода: например, есть основная таблица Клиенты и две или три зависимые таблицы с различными услугами, оказанными клиенту. Получается так, что если у клиента есть эти услуги, то Кристал нормально их выводит; если нет - то этот клиент вообще не выводится, хотя надо, чтобы выводился с нулевыми значениями. Использование свойств связей между таблицами не всегда помогает, нет возможности в запросе поставить not exists как в Inter base

A: Создайте SQL- запрос с помощью SQL Designer и используйте его в качестве источника при создании отчета в Reports Designer.


Q: С какими операционными системами работает Crystal Reports 8.0?

A: Поддерживаемые платформы: Windows 2000, Windows 95, 98 , NT.


Q: Как осуществляется в Crystal Reports 8.0 доступ к данным ?

A: Поддерживается прямой доступ к распространенным СУБД- как настольным, так и реляционным, а также доступ к источникам данных через ODBC и OLE DB.


Q: Как реализована в Crystal Reports 8.0 поддержка OLAP -технологии?

A: Seagate Crystal Reports 8 поддерживает возможность создания отчетов на основе информации OLAP -серверов (Essbase Cube, IBM DB2 OLAP Server™ OLE DB for OLAP, Informix® MetaCube® or Holos HDC Cube).


Q: Можно ли в Crystal Reports 8 анализировать данные, если нет доступа к источнику данных ?

A: В Crystal Reports 8 данные могут сохраняться вместе с отчетом (в упакованном виде) и могут быть всесторонне проанализированы без доступа к источнику.


Q: Отчет выполняется нормально в просмотрщике CRRT. А при просмотре в Crystal при попытке соединиться с сервером дает ошибку "Невозможно соединиться с сервером", хотя имя сервер, имя пользователя и пароль набираю правильно и с сервером все в порядке. Какая может быть причина?

A: Одна из причин - настройка отчета делается разработчиком, у которого в компоненте Пользователей задано в поле "Перекодировать пароль" - ДА. При коннекте с сервером он указывает пароль для входа в КАС, а фактический пароль для соединения с сервером он не знает. Для Разработчика нельзя указывать перекодировку пароля!


Q: Отчет, который раньше работал, при просмотре в CRRT дает ошибку 599 (в Previev в Crystal - все нормально). В чем причина?

A: Это может быть в такой ситуации: работаем одновременно с двумя КАС с разными базами на разных серверах, сначала вошли в первую и просмотрели отчет - все нормально, зашли во вторую, зарегистрировавшись в другой базе на другом сервере, далее вернулись в первую и снова пытаемся просмотреть отчет - возникает ошибка 599. Нужно выгрузить XPassw и повторить просмотр отчета.


Q: CR 9: Куда делись утилиты Crystal Dictionaries и Crystal SQL Designer?

A: С новой версией уже не поставляются такие утилиты, как Crystal Dictionaries и Crystal SQL Designer. Поскольку Crystal Repository заменяет их функциональность. Фактически, диалог формирования запроса в SQL Designer-e повторял диалог создания отчёта в CR. Хотя ещё можно использовать существующие файлы библиотек (.dc5) и запросов (.qry) в качестве источника данных


Q: CR 9: Не появилась ли возможность печати отчета на несколько страниц (т.е. A3 на экране на 2 А4 на принтере)?

A: Нет. Как прежде, разделение при печати обеспечивается принтером. Для этого надо экспортировать отчёт в какой-л. удобный формат.


Q: CR 9: Можно ли делать вложенные подотчеты, т.е. subreport в subreport-е?

A: Нет, и вряд ли будет - нет необходимости. Собственно, и подотчёты нежелательны из-за скорости (медлительности) формирования и неоптимальности SQL-запросов.


Q: CR 9: Исправлен ли экспорт в формат PDF?

A: Для экспорта в PDF, так же как и в MS Word, Excel, Lotus 1-2-3, текст, RTF устранены обнаруженные недостатки и неадекватности преобразований. Так, например, для формата PDF ранее некорректно преобразовывался русский текст, не работали гиперссылки.


Q: CR 9: В восьмой версии я мог руками поправить сгенерированный мастером запросов SQL прямо в Crystal Reports (Show SQL Query). Девятка показывает мне его только на чтение. Можно ли как-нибудь отредактировать этот SQL?

A: Надо использовать репозиторий объектов, в частности, команды. Т.е. cформировать отчёт, через буфер обмена перенести SQL-код в команду, где его можно изменить, добавить параметры, и затем использовать как источник.


Q: CR 9: Какими средствами выполняются отчёты в 9-й версии? В CR 8.5 для этого применялись Crystal Enterprise Server на 5 concurrent лицензий или скачанная с сайта Crystal Decisions утилита для компиляции отчёта.

A: В пакете Crystal Reports 9 поставляется Report Application Server - среда, обеспечивающая выполнение и просмотр отчётов через Web. При этом число открытых отчётов не ограничено.


Q: CR 9: Куда делись сервисы Web Component Server и Page Server? В CR 8 я использовал эти два сервиса для открытия отчета с данными на машине клиента. Что предлагается использовать вместо этих сервисов?

A: См. ответ на предыдущий вопрос.


Q: CR 9: Какие изменения произошли в драйверах прямого доступа к реляционным базам данных?

A: Существенных изменений два:
- введена поддержка Oracle 9i;
- убран прямой доступ к MS SQL Server. Теперь доступ к этой БД осуществляется в соответствии с технологией Microsoft - через ADO + OLE DB.


Q: CR 9: Можно ли использовать в CR 9 отчёты, подготовленные в предыдущих версиях?

A: Да, но совместимость, как и во многих других программных продуктах, только снизу вверх, т.е. отчёты, подготовленные в CR 9, недоступны в предыдущих версиях.
Кроме того, нельзя публиковать отчёты CR 9 в Crystal Enterprise Server 8.5.


Q: CR 9: Что подразумевается под Java Beans источниками данных? Это могут быть Enterprise Java Beans?

A: "Любой скомпилированный класс Java, который возвращает опубликованный метод java.sql.ResultSet, может быть использован как источник данных." (см. http://support.crystaldecisions.com/communityCS/TechnicalPapers/cr9_java_bean_datasource.pdf)

Вверх

<<Назад

Главная| ИС.. | Моделирование | Проектирование |ТД | Разработка | Интерфейс | Статьи | Ссылки | Автор
DimDim SoftWare Мастерская Dr. dimdim Copyright 2003-2004
Администратор info-system@mail.ru
Последнее обновление 26-Дек-2003