Последняя версия DataExpress 3 beta от 9 августа 2020 года.
Изображение Скачать | Изображение Что нового?
См. также: Энциклопедия DX | Форум на develop-soft | Расширения
ИзображениеИзображениеИзображение

Решения для создания PDF в DataExpress

Полезное от пользователей DataExpress
Аватара пользователя
Develop-Soft
Сообщения: 1645
Зарегистрирован: 05 мар 2019, 18:09
Благодарил (а): 122 раза
Поблагодарили: 444 раза
Контактная информация:

Решения для создания PDF в DataExpress

Сообщение Develop-Soft » 24 июл 2019, 12:21

Код: Выделить всё

..Счет на оплату ' + nz([Номер],'') + ' от ' + nz([Дата],'') + '.pdf..

тимур
Интересующийся
Сообщения: 88
Зарегистрирован: 01 авг 2018, 04:06
Благодарил (а): 12 раз
Поблагодарили: 1 раз

Решения для создания PDF в DataExpress

Сообщение тимур » 25 июл 2019, 09:41

Develop-Soft писал(а):

Код: Выделить всё

..Счет на оплату ' + nz([Номер],'') + ' от ' + nz([Дата],'') + '.pdf..


Выдает ошибку:
Во время выполнения действия "Печать"
Произошла ошибка iif -> block -> ex_exec_hide -> Несовместимые типы

Аватара пользователя
Develop-Soft
Сообщения: 1645
Зарегистрирован: 05 мар 2019, 18:09
Благодарил (а): 122 раза
Поблагодарили: 444 раза
Контактная информация:

Решения для создания PDF в DataExpress

Сообщение Develop-Soft » 25 июл 2019, 09:45

Тогда так:
..Счет на оплату ' + cstr([Номер]) + ' от ' + cstr([Дата]) + '.pdf..

тимур
Интересующийся
Сообщения: 88
Зарегистрирован: 01 авг 2018, 04:06
Благодарил (а): 12 раз
Поблагодарили: 1 раз

Решения для создания PDF в DataExpress

Сообщение тимур » 25 июл 2019, 14:26

Develop-Soft писал(а):Тогда так:
..Счет на оплату ' + cstr([Номер]) + ' от ' + cstr([Дата]) + '.pdf..


Спасибо, всё работает.

Macheti
Заглянувший
Сообщения: 7
Зарегистрирован: 09 июл 2019, 13:45
Благодарил (а): 35 раз

Решения для создания PDF в DataExpress

Сообщение Macheti » 01 авг 2019, 13:44

YurAnt писал(а):icon.png
DocAsPDF_Viewer

Сделал свой конвертер. Принцип работы - Plug&Play (Drag&Drop т.е.). В использовании прост, как 3 копейки.
На лету конвертирует docx, doc форматы. PDF-файл создается в исходной папке, добавляя имя ..файл.doc.pdf и автоматически открывается в сопоставленной PDF-формату программе. При зажатой Ctrl во время запуска - вместо открытия файла открывается папка с местонахождением сформированного документа и выделяет его.
Параметр всего один - имя файла. Может использоваться в качестве альтернативного просмотрщика в настройках DX или висеть на кнопке вкупе с функциями EX_EXEC и REPORTSAVE. В планах добавить форматы Excel.

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

Превью:

Сборки:
1.0.0.1 - первый "релиз"
1.0.0.2 - добавлена фишка - при одновременном выводе на печать документа из DataExpress и зажатой Ctrl - открывается папка нахождения сформированного PDF-файла.
1.0.0.3 - 1.0.0.2 + ...и выделяет файл в открытой папке
Скачать:DocAsPDF_Viewer.zip

Хотелось бы сказать огромное спасибо автору за прогу и задать вопрос, а будет обновление для EXCEl и может даже формата ods ??))

тимур
Интересующийся
Сообщения: 88
Зарегистрирован: 01 авг 2018, 04:06
Благодарил (а): 12 раз
Поблагодарили: 1 раз

Решения для создания PDF в DataExpress

Сообщение тимур » 07 авг 2019, 09:24

Код: Выделить всё

iif([Факсимиле]=0,
REPORTSAVE('Invoice.docx','D:\DataExpress\templates\out\Счет ПромСталь.docx', 1=1),
block(
// сохраняем сформированный файл печати в docx (1=2 - это ЛОЖЬ, т.е. - не открываем):
REPORTSAVE('InvoiceFax.docx','D:\DataExpress\templates\out\Счет на оплату.docx', 1=2),
// скрыто запускаем консольный конвертер (настроен на PDF. Подробный список параметров конвертера по ссылке ниже):
EX_EXEC_HIDE('D:\DataExpress\templates\docto.exe', '-f "D:\DataExpress\templates\out\Счет на оплату.docx" -O "D:\DataExpress\templates\out\Счет на оплату.pdf" -T wdFormatPDF -OX .pdf -R'),
// в конкретном наборе параметров утилита конвертит все, что попадается ей в указанной папке.

// Далее вставляем в последовательность MSGBOX. Он служит для создания паузы в цепочке (это долгая история)
// Указанное в нем сообщение ничего не означает (можно написать "Привет, Гарик!")
msgbox(' ','PDF-файл успешно сформирован'), Null))



Опять хочу вернутся к вопросу о сохранении шаблонов.
Функция REPORTSAVE работает и сохраняет нормально на локальных компьютерах в сети, без сетевой папки и диска.
Но EX_EXEC_HIDE На одном компе нормально конвертирует, на двух других не конвертирует.
Настройки одинаковы, папки и пути к ним у всех одинаковые. Чудеса какие-то.

Аватара пользователя
Develop-Soft
Сообщения: 1645
Зарегистрирован: 05 мар 2019, 18:09
Благодарил (а): 122 раза
Поблагодарили: 444 раза
Контактная информация:

Решения для создания PDF в DataExpress

Сообщение Develop-Soft » 07 авг 2019, 09:30

Macheti писал(а):.. а будет обновление для EXCEl и может даже формата ods ??))

Не планировалось.
тимур писал(а):EX_EXEC_HIDE На одном компе нормально конвертирует, на двух других не конвертирует.
Настройки одинаковы, папки и пути к ним у всех одинаковые. Чудеса какие-то

Что-то неправильно делаете. Проверяйте строку выполнения в MsgBox.

тимур
Интересующийся
Сообщения: 88
Зарегистрирован: 01 авг 2018, 04:06
Благодарил (а): 12 раз
Поблагодарили: 1 раз

Решения для создания PDF в DataExpress

Сообщение тимур » 07 авг 2019, 09:48

Develop-Soft писал(а):Что-то неправильно делаете. Проверяйте строку выполнения в MsgBox.


Это как?

Аватара пользователя
Develop-Soft
Сообщения: 1645
Зарегистрирован: 05 мар 2019, 18:09
Благодарил (а): 122 раза
Поблагодарили: 444 раза
Контактная информация:

Решения для создания PDF в DataExpress

Сообщение Develop-Soft » 07 авг 2019, 09:51

MsgBox('','Строка, которую планируется скормить EX_EXEC_HIDE')
затем копируйте эту строку и проверьте в системе (Пуск->Выполнить). Если не сработало - значит ошибка в конструкции.

тимур
Интересующийся
Сообщения: 88
Зарегистрирован: 01 авг 2018, 04:06
Благодарил (а): 12 раз
Поблагодарили: 1 раз

Решения для создания PDF в DataExpress

Сообщение тимур » 07 авг 2019, 10:23

Develop-Soft писал(а):MsgBox('','Строка, которую планируется скормить EX_EXEC_HIDE')
затем копируйте эту строку и проверьте в системе (Пуск->Выполнить). Если не сработало - значит ошибка в конструкции.


Сделал так:
MsgBox('','D:\DataExpress\templates\docto.exe', '-f "D:\DataExpress\templates\out\Счет на оплату.docx" -O "D:\DataExpress\templates\out\Счет на оплату.pdf" -T wdFormatPDF -OX .pdf -R')

Выдало
Не удается найти MsgBox('','D:\DataExpress\templates\docto.exe', '') Проверьте правильно ли указано имя и повторите попытку

Хотя на этом компьютере как раз работает нормально.