powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / просмотр изображений из PowerBuilder5.0
15 сообщений из 15, страница 1 из 1
просмотр изображений из PowerBuilder5.0
    #35946095
Andreas_84
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ребята,задача такова,что нужно отсканированные документы сохранять и просматривать в проге,написанной на PB 5.0
подскажите,можно ли для просмотра BLOB полей базы вызывать внешние какие нибудь программы
или лучше всётаки присваивать эти значения контролам типа picture(Original size)/Кто как решал подобные вопросы.
И ещё одно,-если одному документу соответствует несколько отсканированных рисунков,как реализовать поумнее удобный их просмотр...??
Заранее спасибо за мысли...)
...
Рейтинг: 0 / 0
просмотр изображений из PowerBuilder5.0
    #35946134
Локшин Марк
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Andreas_84ребята,задача такова,что нужно отсканированные документы сохранять и просматривать в проге,написанной на PB 5.0
подскажите,можно ли для просмотра BLOB полей базы вызывать внешние какие нибудь программы
или лучше всётаки присваивать эти значения контролам типа picture(Original size)/Кто как решал подобные вопросы.
И ещё одно,-если одному документу соответствует несколько отсканированных рисунков,как реализовать поумнее удобный их просмотр...??
Заранее спасибо за мысли...)
PB 5.0 поддерживает OLE. Помещаем в OLE объект IE на форму и показываем там html документ в котором отображаем соотвествующие картинки...
...
Рейтинг: 0 / 0
просмотр изображений из PowerBuilder5.0
    #35946174
Andreas_84
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Локшин Марк,

тоесть ,отсканировав документы,пользователи должны будут все картинки както сначала сохранить в формате html???
...
Рейтинг: 0 / 0
просмотр изображений из PowerBuilder5.0
    #35946248
Фотография Anatoly Moskovsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Andreas_84тоесть ,отсканировав документы,пользователи должны будут все картинки както сначала сохранить в формате html???
HTML вы будете формировать программно перед показом пльзователю картинок. А ссылки на картинки в HTML <img src=...> будете указывать на файлы картинок сохраненные перед показом в какую-то временную папку.
...
Рейтинг: 0 / 0
просмотр изображений из PowerBuilder5.0
    #35946265
Фотография Anatoly Moskovsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вообще вместо IE можно попробовать поискать контрол именно для отображения картинок, например в формате TIFF, в котором предусмотрена возможность хранения многостраничных документов.
Конкретный OLE объект для этого не могу подсказать - не работал с этим.
...
Рейтинг: 0 / 0
просмотр изображений из PowerBuilder5.0
    #35946503
Andreas_84
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Anatoly MoskovskyВообще вместо IE можно попробовать поискать контрол именно для отображения картинок, например в формате TIFF, в котором предусмотрена возможность хранения многостраничных документов.
Конкретный OLE объект для этого не могу подсказать - не работал с этим.

Да с тифом было бы нормально..Может кто то знает какой именно OLE лучше использовать?
...
Рейтинг: 0 / 0
просмотр изображений из PowerBuilder5.0
    #35946836
VanoR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
сохранить BLOB в файл в какую-нибудь временную папочку на диске
и потом
Код: plaintext
run('cmd /c start ' + ls_tempdir + '"' +ls_file+ '"')
проще некуда, да и проблем с различными форматами на разных компах не будет, винда сама подберет просмоторщик на каждом компе индивидуально
...
Рейтинг: 0 / 0
просмотр изображений из PowerBuilder5.0
    #35947036
Локшин Марк
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
VanoRсохранить BLOB в файл в какую-нибудь временную папочку на диске
и потом
Код: plaintext
run('cmd /c start ' + ls_tempdir + '"' +ls_file+ '"')
проще некуда, да и проблем с различными форматами на разных компах не будет, винда сама подберет просмоторщик на каждом компе индивидуально
Мелькающие окошки и куча открытых приложений - колхоз.
...
Рейтинг: 0 / 0
просмотр изображений из PowerBuilder5.0
    #35947108
AIS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А чем вариант "контрол типа picture(Original size)" - плох?
Всё находится и управляется в своем ПО.
Делается выборка ID иллюстраций и сохраняется, например, в DS либо массиве. Ну, и по очереди берем ID и понему уже достаем из базы Blob, и вставляем его в контрол.
В меню добавить навигацию по массиву (либо DS), а также кнопки управления размерами иллюстрации.
И всё это не очень сложно и не к чему не привязан. Плюс можно встроить свой необходимый сервис.
...
Рейтинг: 0 / 0
просмотр изображений из PowerBuilder5.0
    #35947151
Локшин Марк
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AISА чем вариант "контрол типа picture(Original size)" - плох?

Допустим не все форматы поддерживаются.
По поводу сторонней программы для просмотра рисунков - IE снести из системы - это еще постараться нужно, а вот таскать за собой внешний просмоторщик - не очень удобно.
...
Рейтинг: 0 / 0
просмотр изображений из PowerBuilder5.0
    #35947282
roleks
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я делаю так:

ctdir = string(today(),'dd-mm-yyyy')+'_'+string(now(),'hh-mm-ss')

ls_tempDir = SPACE(ll_bufferLength)

IF GetTempPath(ll_bufferLength, ls_tempDir) = 0 THEN
MessageBox("Temp папка не визначена", "Файл відкрито не буде.")
return -1
END IF

ls_tempDir = ls_tempDir +ctdir+'\'
CreateDirectory ( ls_tempDir )

..Создали папку во временной директории и туда выгружаем все файлы


потом запускаем программу просмотра их
Файл откроется в программе по умолчанию которая назначена в винде для просмотра его

string ls_Null
long ll_rc
string ls_err_str
long ll_last_error
Any temp
CONSTANT long FORMAT_MESSAGE_FROM_SYSTEM = 4096

SetNull(ls_Null)

ll_rc = ShellExecuteA( Handle( This ), "open", &
ls_tempdir+cfilename, ls_Null, ls_Null, 1)

IF ll_rc > 1 THEN
temp = 0
ll_last_error = GetLastError()
if ll_last_error = 0 or ll_last_error = 126 then return -2
ls_err_str = Fill(Char(0),255)
FormatMessage(FORMAT_MESSAGE_FROM_SYSTEM, temp, ll_last_error,&
0, ref ls_err_str, 255, 0)
MessageBox("Помилка", ls_err_str,Exclamation!)
END IF




Вот обьявления всех ф-й
FUNCTION long GetLastError() LIBRARY "kernel32" ALIAS FOR "GetLastError"
FUNCTION long FormatMessage(Long dwFlags ,ref Any lpSource , Long dwMessageId ,Long dwLanguageId , ref String lpBuffer , &
Long nSize , Long Arguments) LIBRARY "kernel32" ALIAS FOR "FormatMessageA"

FUNCTION long ShellExecuteA( long hwnd, string lpOperation, string lpFile, string lpParameters, string lpDirectory, integer nShowCmd ) LIBRARY "SHELL32"

FUNCTION ulong GetTempPath(ulong nBufferLength, ref string lpBuffer) &
LIBRARY "kernel32" ALIAS FOR GetTempPathA
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
просмотр изображений из PowerBuilder5.0
    #36732581
Vadim Romanenko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
FUNCTION ulong GetTempPath(ulong nBufferLength, ref string lpBuffer) &
LIBRARY "kernel32" ALIAS FOR GetTempPathA

Чего-то она возвращает короткую строку пути временной папки (ДОС-версия, каждая папка в пути не более 8 символов, с тильдами в конце).

Что б это значило?? Хотя вроде как работает работа с файлами даже с такой строкой...
...
Рейтинг: 0 / 0
просмотр изображений из PowerBuilder5.0
    #36732648
Локшин Марк
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Vadim RomanenkoFUNCTION ulong GetTempPath(ulong nBufferLength, ref string lpBuffer) &
LIBRARY "kernel32" ALIAS FOR GetTempPathA

Чего-то она возвращает короткую строку пути временной папки (ДОС-версия, каждая папка в пути не более 8 символов, с тильдами в конце).

Что б это значило?? Хотя вроде как работает работа с файлами даже с такой строкой...
Потому, что Windows поддерживает альтернативные имена для файлов. Если хочется длинного пути воспользуйтесь функцией
Код: plaintext
1.
function ulong GetLongPathName(ref byte lpszShortPath[ 4100 ], ref byte lpszLongPath[ 4100 ],  ulong cchBuffer )
               Library "kernel32" Alias For "GetLongPathNameA;Ansi";
...
Рейтинг: 0 / 0
просмотр изображений из PowerBuilder5.0
    #36733484
Фотография Филипп
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Можно использовать примитивный ListView, если писать изображения во временную папку, смотрите пример ...
...
Рейтинг: 0 / 0
просмотр изображений из PowerBuilder5.0
    #36736912
Я в свое время сделал сервис прикрепления произвольных файлов к разного рода
объектам в программе на PB9 через OLE

В частности для файлов произвольного формата предполагалось что система сама успешно сопоставит файлу нужную программу вот так: ole_1.insertfile(tempfile)

Все это успешно работало но на Висте обломалось по неизвестным причинам

Пришел к выводу что чисто для просмотра картинок самое надежное:
run('Explorer.EXE '+tempfile) - работает везде

PS
НА самом деле сделано по- разному для разных типов файлов
например Excel и Word - через OLE - там все хорошо
...
Рейтинг: 0 / 0
15 сообщений из 15, страница 1 из 1
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / просмотр изображений из PowerBuilder5.0
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]