AX 2009 Проверка (Проверка) Логотип не печатается правильно - PullRequest
0 голосов
/ 10 октября 2011

У нас есть изображение .gif с прозрачным фоном, установленным в качестве логотипа в AX 2009. Когда мы печатаем чеки , некоторые нашего пользователя получают чеки с прозрачной фоновой частью логотипа, напечатанной черным. То же самое относится к проверке подписи.

Если я печатаю GIF непосредственно на том же принтере, он печатается нормально (в прозрачной части изображения нет черного)

Это наводит меня на мысль, что это пользовательская настройка в AX, учитывая, что это происходит только для некоторых наших пользователей, и что необработанный gif печатает просто отлично.

Я вижу, что логотип сохраняется в таблице BANKCHEQUELAYOUT в поле типа данных image . Похоже, это запись AX (не для каждого пользователя), поэтому я не думаю, что проблема связана с этим значением.

Кто-нибудь сталкивался с этой проблемой? Есть ли настройки печати на уровне пользователя, на которые мне следует обратить внимание?

Ответы [ 2 ]

1 голос
/ 13 октября 2011

Наконец-то получил это, благодаря комментарию Яна.Вот шаги, которые я предпринял:

  1. Создание изображения в формате .gif с белым фоном.
  2. Измените свойство BackStyle изображения в отчете о проверках на Непрозрачный .
  3. В методе showLogo формы CompanyImage добавьте следующую строку кода:

logoImage.transparent (true, 255,255,255);

, чтобы завершитьМетод showLogo выглядит так:

void  showLogo()

{

Image   logoImage;
;
try
{
    element.lock();
    if (imageContainer)
    {
        logoImage = new Image();
        logoImage.setData(imageContainer);
        logoImage.transparent(true,255,255,255);
        image.image(logoImage);
        image.widthValue(logoImage.width());
        image.heightValue(logoImage.height());
    }
    else
    {
        image.imageResource(0);
        image.widthValue(32);
        image.heightValue(32);
    }

    element.resetSize();
    element.unLock();
}
catch (Exception::Warning)
{
    throw error(strfmt("@SYS19312", imageFilePathName));
}

}

1 голос
/ 11 октября 2011

Сначала убедитесь, что для свойства BackStyle элемента управления растрового изображения установлено значение Transparent. Это обязательный шаг для включения прозрачности любого отчета или формы управления изображением.

Я не пробовал прозрачность с файлами изображений GIF. Однако GIF не был поддерживаемым файлом изображения в предыдущих версиях AX, возможно, произошла ошибка с прозрачностью.

Мое первое предложение - преобразовать GIF в PNG, обновить изображение в макете чека и повторить попытку.

Мой второй вариант - убрать прозрачность и заменить на цвет фона (белый?).

Обновление : AX сохраняет изображения в таблице CompanyImage. Размер изображения может быть рассчитан путем реализации этого метода:

display ImageSize imageSize()
{
    ImageSize size;
    BinData b;
    if (this.Image)
    {
        b = new BinData();
        b.setData(this.Image);
        size = b.size();
    }
    return size;
}

К сожалению new Image(this.Image).size() не работает. Перетащите метод в группу полей AutoReport, затем откройте таблицу в браузере таблиц.

В моем примере файл PNG имел размер 1476 байт, а файл BMP 42062 байт.

...