Вы находитесь на страницах старой версии сайта.
Переходите на новую версию Interface.Ru

FAQ по Crystal Reports


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


Вопрос: Как сделать количество динамических параметров в отчете Crystal Reports XI больше чем 1000?

Ответ: Для увеличения количества параметров нужно в реестре записать по пути [HKEY_LOCAL_MACHINE\SOFTWARE\Business Objects\Suite 11.0\Crystal Reports\DatabaseOptions\LOV] строковую переменную MaxRowsetRecords. И в ней указать необходимое количество. Например, указав MaxRowsetRecords="2000" максимальное значение будет равно 2000. Если части пути не существует, то его нужно создать.

13.10.06


Вопрос: Поддерживает ли Crystal Reports возможность создания отчетов, которые используют одновременно данные из MS SQL Server и InterBase?

Ответ: Да. Поддерживает.

13.10.06


Вопрос: В каком случае нужно приобретать редакцию Developer, а в каком Professional?

Ответ: Если Crystal Reports приобретается как рабочее место для составления (или исправления) отчетов, то нужна редакция Professional, если планируется встраивать в собственные программы, то для этого необходима редакция Developer.

13.10.06


Вопрос: Как подключиться в Crystal Reports к СУБД Informix?

Ответ: Соединение к данным Informix находится в закладке More Data Sources. По умолчанию, драйвер устанавливается из дистрибутива при первой попытке установить соединение.

19.09.06


Вопрос: Как создать отчет, который объединяет данные из нескольких СУБД?

Ответ: Для Crystal Reports нет разницы таблицы находятся в одной базе данных или в разных. Можно создать столько подключений к базам данных, сколько источников данных необходимо использовать в отчете.

19.09.06


Вопрос: Как можно разбить отчет на несколько колонок (columns)?

Ответ: Для многоколоночного отчета нужно в свойствах Detail поставить галочку Format with Multiple Columns. Появится закладка Layout, в ней нужно указать ширину колонки и ширину между колонками. Также можно указать направление заполнения по строчкам или столбцам, и если нужно группировку по столбцам.

19.09.06


Вопрос: Как посмотреть все страницы отчёта (вкладка Preview), а не только первую?

Ответ: Перемещаться по страницам отчета можно с помощью клавиш на клавиатуре Pageup и pageDown или используя кнопки из панели Navigation.

19.09.06


Вопрос: При попытке сохранить заданный alias к таблице содержащий в конце символ "\" получаю ошибку: "The alias requested "", contains a combination of characters which is not considered to be valid"?

Ответ: Для того, чтобы было возможно ставить спец символы в алиасы необходимо:

  1. В реестре в ветви HKEY_LOCAL_MACHINE\SOFTWARE\Business Objects\Suite 11.0\Crystal Reports\Database Создать ключ StringValue с названием InvalidAliasCharList. Если данной ветки не существует, то нужно ее создать.
  2. в качестве значения записать .:{}()@&$#^!*~|%"- То есть те символы, которые НЕ ДОЛЖНЫ быть в алиасах. Если в той строчке не будет символа \ то Crystal Reports позволит создать такой алиас.
  3. Перезапустить Crystal Reports.

19.09.06


Вопрос: Мне необходимо просумировать 2 поля, 1 находится в области main report второе в subreport. Как это сделать через shared переменные?

Ответ: Подотчет должен находится в секции выше, чем поле из которого будет вычисляться параметр под отчета. Если суммирующее поле находится в секции Detail, то подотчет должен быть в секциях Page Header или Report Header. В подотчете в формуле нужно написать, например Shared NumberVar x := 1000; а в основной форме создать формулу, где будет строчка Shared NumberVar x; и уже х будет равен 1000 (значение из подотчета).

19.09.06


Вопрос: Я установил Crystal Reports XI Server. Не могу найти "Crystal Reports", т.е. программу, с помощью которой рисовать отчеты?

Ответ: В поставку Crystal Reports XI Server входит Crystal Reports Developer. С помощью него строятся новые формы отчетов или корректируются созданные. Сам сервер это только портал для просмотра, формирования и распространения отчетов.

19.09.06


Вопрос: Как написать формулу в Crystal Reports которая бы суммировала все суммы по колонке за исключением отрицательных сумм?

Ответ:

  1. Создается Running Total Fields
  2. Устанавливаются критерии выбора:

19.09.06


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

Ответ: В Crystal Reports Developer XI возможно создавать отчетность как по определенными временным интервалам (за квартал, за последний год, месяц, неделю день и т.п.), так их по любому интервалу, который задается перед формированием отчета. Для этого создаются 2 параметра типа date time. В условиях выборки (Select Expert) поля даты ставится between, и выбираются эти 2 параметра.

14.06.06


Вопрос: Возможно ли в Crystal Reports задавать в параметре несколько значений? Например, выбрать несколько месяцев и построить по ним отчет?

Ответ: Можно. Никакой сложности не существует. Для этого нужно создать параметр, и в его свойстве “Allow multiple value” поставить значение True вместо установленного по умолчанию значения False.

14.06.06


Вопрос: Что такое юниверс (universe)?

Ответ: Юниверс (universe) - семантический срез данных предназначен для удобства восприятия данных при составлении отчета. C помощью юниверсов возможно перейти от структуры данных со сложными названиями таблиц и полей из СУБД к понятным для пользователей названиям таблиц и полей.

14.06.06


Вопрос: Какие возможности у Crystal Reports Developer XI и Crystal Report Server XI. Их совместная работа, какой продукт за что отвечает.

Ответ: Crystal Reports Developer XI предназначен для создания и интеграции отчетов в собственные разработки. Crystal Reports Server XI предназначен для формирования и распространения отчетов. В совместной работе, обычно, в Crystal Reports Developer XI создаются отчеты, а в Crystal Reports Server XI распространяются.

14.06.06


Вопрос: Как создать сложный запрос SQL в Crystal Reports XI, если стандартными элементами его составить нельзя?

Ответ: Бывают ситуации, когда с помощью стандартных механизмов нельзя получить данные для отчета. В продуктах Crystal Reports XI для составления сложного запроса предусмотрена команда «Add Command». В ней можно написать любой SQL запрос, по которому данные будут предоставляться для отчета.

14.06.06


Вопрос: Какой аналог Crystal Advanced Developer в XI версии Crystal Reports?

Ответ: В версии продуктов Crystal Reports XI аналогом Crystal Advanced Developer является Crystal Reports Developer XI.

14.06.06


Вопрос: Может ли человек, не знающий языка SQL строить отчеты в Crystal Reports Developer XI

Ответ: Может. Для построения большинства отчетов знания SQL не требуется. Нужно только уметь подключиться к базе данных и знать в каких таблицах какие данные находятся. Выбор полей, группировок, параметров, вычисляемых значений можно выполнить с помощью визуальных элементов Crystal Reports Developer XI.

14.06.06


Вопрос: Чем заменяется слой метаданных, который подготавливался в предыдущих версиях Crystal Reports через утилиту Crystal Dictionary?

Ответ: В Crystal Reports 9 такого механизма нет. Точнее, частично эту функцию брали на себя команды из репозитория Crystal Reports. В Crystal 10, помимо команд, появился специальный механизм бизнес-представлений - Business Views. Этот механизм настраивается и управляется Crystal Enterprise 10 Professional (Crystal Reports 10 Developer или Advanced Developer) или Premium. В Crystal Enterprise 10 Express, который идёт с Crystal Reports 10 Professional, его нет.


Вопрос: Чем отличается репозиторий Crystal Reports 10 от 9-й версии?

Ответ: В Crystal Reports 9 репозиторий - БД Access, доступ к которой осуществляется через ODBC DSN. В т.ч. и разделяемый доступ - через локальную сеть.

В Crystal Reports 10 репозиторий управляется Crystal Enterprise. Это даёт следующие преимущества:

Соответственно, хранится репозиторий Crystal Reports в той же БД, в которой создан и репозоторий Crystal Enterprise (репозоторий Crystal Enterprise - рабочие таблицы сервера Crystal Management Server). При установке Crystal Enterprise 10 устанавливается и утилита для переноса репозитория из Crystal Reports 9 в 10. Диск Crystal Enterprise 10 идёт со всеми редакциями Crystal Reports.


Вопрос: Как использовать репозиторий в Crystal Reports, который появился в 9-й версии?

Ответ: В Crystal Reports 9 появился новый объект - репозиторий объектов. Он используется для сохранения и, соответственно, последующего применения в отчётах четырёх типов объектов:

Репозиторий можно (и имеет смысл) сделать разделяемым между различными разработчиками отчётов. Если нужно, чтобы добавленные из репозитория объекты обновлялись при открытии отчёта в Crystal Reports, установите для отчёта соответствующий признак.

При выполнении отчёта добавленные из репозитория объекты обновляются только тогда, когда отчёт опубликован и выполняется через Crystal Enterprise.


Вопрос: Когда следует использовать подотчёты в отчётах?

Ответ: Если нет другой возможности сформировать нужный отчёт. Т.к., во-первых, подотчёты замедляют выполнение отчёта. Во-вторых, в Crystal Enterprise такие отчёты не кэшируются. Если всё же используются подотчёты, то эффективнее делать их on demand - если позволяет формат отчёта. Часто подотчёты используют там, где можно было бы обойтись группировкой.

Итак, когда следует применять подотчёты:

  1. Отчёт объединяет данные из различных источников (из различных таблиц, из различных баз данных и т.п.).
  2. Одни и те же данные должны быть представлены в отчёте разными способами. Например, сгруппированные по одному признаку, а затем сгруппированные по другому (пример: сделать содержание для отчёта).
  3. Когда не важно кэширование и/или производительность. Тогда имеет смысл делать подотчёты для каких-то стандартных секций отчёта. Например, стандартная корпоративная "шапка" документов с фамилиями, логотипами и т.п. Тогда подотчёт д.б. внешним файлом, а в отчёте установить признак Re-import Subreport…

Нелишне напомнить, что подотчёт в подотчёте не допускается.


Вопрос: Какие механизмы для интеграции отчётов в приложения можно использовать в Crystal Reports 10?

Ответ: Для разработки клиентских приложений следует прибрести редакцию Crystal Reports 10 Developer, а для разработки Web-приложений - редакцию Crystal Reports 10 Advanced Developer. Механизмы следующие:


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

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


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

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


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

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


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

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


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

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


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

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


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

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


Вопрос: Crystal Reports 9: Можно ли делать вложенные подотчеты, т.е. subreport в subreport-е?

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


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

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


Вопрос: Crystal Reports 9: Куда делись утилиты Crystal Dictionaries и Crystal SQL Designer?

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


Вопрос: У нас проблема с использованием 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

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

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

    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. Другой путь предполагает выполнение следующих шагов:

    1. Скачать Odbcregs.zip с сайта http://community.seagatesoftware.com.
    2. Скопировать P2sodbc.dll из zip-файла в C:\Windows\system или C:\Winnt\system32. Убедитесь, что на Вашей машине существует только одна версия этого файла - P2sodbc.dll - 6.0.0.72.
    3. Скопируйте файл Outjoin.reg во временную директорию. Дважды щелкните по этому файлу для редактирования реестра.
    4. В регистре найдите HKEY_CURRENT_USER -> SOFTWARE -> SEAGATESOFTWARE -> CRYSTALREPORTS -> DATABASEOPTIONS -> OUTERJOIN.
      И переместите ISCDRV32 из списка "OJSyntax" в "OpenIngres".

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

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


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

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


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

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


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

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


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

Ответ: Используйте версии Crystal Reports 7 или 8 - там это реализовано.


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

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


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

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


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

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


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

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


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

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


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

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


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

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


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

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


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

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


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

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


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

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


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

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


Вопрос: Работает ли Crystal Reports с Lotus Notes?

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


Вопрос: Lotus Domino как источник данных?

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

Эти компоненты 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

 

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

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


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

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


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

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


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

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


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

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


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

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


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

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


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

Ответ:

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

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

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


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

Ответ: Нужно использовать функции 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


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

Ответ: Такие компоненты входят в поставку версии Crystal Reports 8.0 Developer.


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

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


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

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


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

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


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

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


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

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


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

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


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

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


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

Ответ: При экспорте из 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, тут даже есть некоторые плюсы, в том смысле, что видны рамки (правда, тоже не без особенностей).


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

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


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

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


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

Ответ:

  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.

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

Ответ: Необходимо выполнить следующее:

  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))


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

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


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

Ответ: Да, можно. При этом операторы в предложении 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} )


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

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


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

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


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

Ответ: В 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;


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

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


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

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


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

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


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

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


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

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


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

Ответ:

  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. Строки с курсивом при просмотре переносятся нормально, а при печати часть строки съедается. Рекомендуется не использовать курсив для строк с автоматическим переносом, а для остальных строк оставлять запас.

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

Ответ: Нельзя оставлять флажок 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 - <имя пользователя>


Вопрос: Что такое CRRT?

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


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

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


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

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


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

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


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

Ответ: Таких способов пять:

  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 для версии Crystal Reports 8.5 и ниже:
    Для версий Crystal Reports до 7-й включительно компоненты компиляции и распространения отчётов входили в состав Crystal Reports, а для версий 8 и 8.5 поставлялись отдельно.

Следует сказать, что для способов 3, 4 и 5 при первоначальном запуске отчёта требуется установка необходимых библиотек Crystal Reports (утилита Crystal Offline Viewer делает это сама), занимающих порой достаточно много места.


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

Ответ: Для зарегистрированных пользователей на сайте 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-файлы.

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

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


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

Ответ: Для этого необходимо сделать следующее:

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

Для примера можно выбрать тип отчёта Mail Label и посмотреть заданные там значения.


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

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


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

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


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

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

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

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

 


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

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


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

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


За дополнительной информацией обращайтесь в компанию Interface Ltd.

Обсудить на форуме Business Objects/Crystal Decisions

Рекомендовать страницу

INTERFACE Ltd.
Телефон/Факс: +7 (495) 925-0049
Отправить E-Mail
http://www.interface.ru
Rambler's Top100
По техническим вопросам обращайтесь к вебмастеру