2009-11-10 3 views
2

Мы используем Delphi 7 для разработки приложений баз данных с преимуществом в качестве бэкэнд. Наша система обычно устанавливается на сервере Windows с помощью ПК, выступающих в качестве терминалов. Все настройки и база данных находятся на сервере.
У нас возникли проблемы с запуском нашего программного обеспечения на серверах Citrix. В частности, проблема печати. Как при выборе правильного принтера, так и при форматировании отчета. Мы используем Rbuilder версии 10 для создания наших отчетов, и они отправляются на принтер для печати зебры, а не стандартный драйвер принтера для Windows. Отчеты также нестандартного размера. вещи, которые мы видим, растягивают и переводят отчет на странице.
Кто-нибудь видел подобное поведение или имеет какое-либо представление о том, что может быть причиной этого.
У нас нет тестовой системы Citrix, поэтому ее трудно проверить. Мы не можем копировать его в обычной среде Windows.Печать на сервере citrix

+0

@DelphiGirl - Добро пожаловать в переполнение стека. Используйте две пробелы в конце строки для новой строки. Странно, но правда ... – Kobi

+0

Я не могу помочь напрямую, но когда у меня был большой клиент с Citrix, Citrix отправил мне комплект установочных компакт-дисков для тестирования. Я думаю, что это было 60-дневное судебное разбирательство или что-то в этом роде, но это позволило мне проверить его правильно. – mj2008

+0

Мы изучаем варианты тестирования нашего программного обеспечения на citrix. спасибо за подсказку. – LizHanson

ответ

1

На Citrix (и сервере терминалов Microsoft) принтеры часто получают «прикрепленные» после запуска приложения. Это приводит к тому, что принтер, который может быть указан, присутствует в списке принтеров Reportbuilder.

Мы решили эту проблему, заставляя ReportBuilder, чтобы обновить список, когда принтеры изменяются, используя следующий код (прилагается к Application.OnSettingChange)

procedure TMainForm.ApplicationEventsSettingChange(Sender: TObject;
Flag: Integer; const Section: string; var Result: Integer);
begin
if uppercase(Section) = 'DEVICES' then
begin
ppPrintr.ppPrinters.Refresh;
end;
end;

Надеется, что это решит вашу проблему.

+0

Кажется, что это может быть удобно и решает часть проблемы, с которой мы сталкиваемся с принтерами в citrix. обязательно добавит его в мой код. Однако это не решает проблемы форматирования, которые мы видим. В основном этикетки становятся растянутыми до гораздо большего размера, чем мы установили в отчете. Это не влияет на каждый вход в систему или каждое приложение. Эффект растяжения кажется случайным. Может ли драйвер принтера или настройки локального/сетевого принтера перезаписывать параметры размера страницы в формате отчета. – LizHanson

0

Посмотрите на это link, вы можете получить оценочную версию, но вы также можете скачать виртуальные машины с полной установкой citrix. В настоящее время продукт называется XenApp.

0

По моему опыту, печать Citrix - это кошмар.

Вы хотите, чтобы принтер, который вы хотите использовать, был установлен как локальный принтер на сервере Citrix, а затем запретил использование клиентских принтеров для приложения. Это должно помочь правильному принтеру.

В принципе, вы хотите, чтобы вы правильно запускали приложение с консоли сервера, а затем попытаетесь использовать его в качестве приложения Citrix.

Удачи.