Хранение изображений в memo-полях в БЭСТ-4
Select messages from
# through # FAQ
[/[Print]\]
Goto page Previous  1, 2, 3  Next  :| |:
-> Программирование в БЭСТ-4

#16:  Author: Дениска PostPosted: 22 Oct 2007 14:54
    —
Марина wrote:

Я их просто получаю FineReader-ом OCR, может поэтому?

Вот взяла один файлик для примера, получилось 301Кб против 122Кб (jpg в 2,5 раза больше). Но это ничего, ведь когда я писала о гигабайтах, просто перепутала с bmp (он был 1Мб)

В общем, высочайшую санкцию начальника на использование jpg я теперь получила, так что теперь можно и через jpg.


Файлы с jpg можно сохранять не с полным качеством. При сохранение с качеством 70% для глаза даже при печати это практически не заметно, а файлы при этом уменьшаются иной раз в 3 раза. Правда умеет ли это делать FineReader я не знаю, если не умеет, то я думаю не стоит огород городить ...

#17:  Author: МаринаLocation: Кондрина Марина Александровна PostPosted: 22 Oct 2007 15:31
    —
Нет, 70% пока не получается

Я вот думаю, если я установила полную версию Adobe Acrobat 8 Professional, то теперь CreateObj уже должен получаться. Но не получается. Неверное,я неправильно задаю параметр в скобках, может кто-нибудь подскажет, как над

#18:  Author: МаринаLocation: Кондрина Марина Александровна PostPosted: 22 Oct 2007 16:16
    —
Ну что же, будем ждать советов по технологии засовывания изображения в memo-поле отдельного файл

#19:  Author: ЯковLocation: Яков PostPosted: 23 Oct 2007 05:58
    —
У нас наверное номенклатура разная.
У меня в одном сертификате почемуто идет перечисление целых товарных групп.
+ есть разделение по цветам и размера

#20:  Author: МаринаLocation: Кондрина Марина Александровна PostPosted: 23 Oct 2007 10:28
    —
nordk wrote:
Марина посовещавшись с Дмитрием Шлыоквым.
Я так понял что другого пути как через мемо-поле
у нас действительно нет к сожалению.
Значит вопрос возвращается к созданию временного
файла с мемо-полем, как Вы и просили.
Попробую разобраться.


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

#21:  Author: МаринаLocation: Кондрина Марина Александровна PostPosted: 23 Oct 2007 11:22
    —
Из memo-поля картинка тоже что-то не вытаскивается в Дизайнер. Картинка вроде подключается, но получаются пустые страницы вместо рисунков (пробовала bmp и jpg из spartimg.dbf програмы mlimage)

#22:  Author: nordkLocation: Горбунов Константин PostPosted: 23 Oct 2007 11:49
    —
Марина wrote:
nordk wrote:
Марина посовещавшись с Дмитрием Шлыоквым.
Я так понял что другого пути как через мемо-поле
у нас действительно нет к сожалению.
Значит вопрос возвращается к созданию временного
файла с мемо-полем, как Вы и просили.
Попробую разобраться.


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


Марина вобщем функция есть в описании функций к Клипперу 5.3
Называется она
Code:
BLOBIMPORT()
 Read the contents of a file as a BLOB, identified by a memo field number

 Syntax

     BLOBImport(<nFieldPos>, <cSourceFile>) --> lSuccess

 Arguments

     <nFieldPos> is the position of the field in the database file
     structure.

     <cSourceFile> is the name of the file from which to read the BLOB
     data, including an optional drive, directory, and extension.  See
     SETDEFAULT() and SETPATH() for file searching and creation rules.  No
     default extension is assumed.

     This function attempts to open <cSourceFile> in shared mode.  If the
     file does not exist, a runtime error is raised.  If the file is
     successfully opened, the operation proceeds.  If access is denied
     because another process has exclusive use of the file, for example,
     NETERR() is set to true (.T.).  Concurrency control:and BLOBIMPORT()

     Note:  There are no restrictions on the size of <cSourceFile> except
     that you must have enough disk space to make the copy.

 Returns

     BLOBIMPORT() returns true (.T.) if successful; otherwise, it returns
     false (.F.).

 Description

     BLOBIMPORT() provides a mechanism for copying the contents of a file
     into a memo field as BLOB data.  By default, this function operates on
     the currently selected work area.  It can be made to operate on an
     unselected work area by specifying it within an aliased expression.

     BLOBIMPORT() is used in conjunction with BLOBEXPORT() to transfer BLOB
     data back and forth between files and memo fields.  You can use
     BLOBIMPORT() with a variety of file types, including graphic images,
     word processor files, and printer fonts.  These two functions are
     excellent for creating databases for documents, graphics, sounds, etc.

     Note:  DBFieldInfo(DBS_BLOB_TYPE, <nFieldPos>) will return "C"
     (string) for any memo field created using BLOBIMPORT().

 Examples

     þ  This example imports information from a word processing
        document into a field, and then uses BLOBGET() to extract the first
        25 characters of the field:

        FUNCTION POPULATE()
           USE customer NEW VIA "DBFCDX"

           // Construct unique file name based on last
           // name and id
           DO WHILE .NOT. EOF()
              GetPix("Pix", Substr(LastName, 1, 4) + CustID)
              Customer->DBSKIP()
           ENDDO
        FUNCTION GetPix(cPixField, cPixFile)
           LOCAL nPos

           nPos := FieldPos(cPixField)

           // Import the picture file into indicated field
           IF !BLOBImport(nPos, cPixFile)
              Alert("Import of picture " + cPixFile + ";
              failed!")
           ENDIF


Но есть одно но:
временный файл Вы создадите и в мемо-поле положите.
Но все DBF в WINREPORT преобразуются в XML для передачи в FastReport и вот будет ли это поле проходить - сомневаюсь очень сильно: попробуйте.
Если нет - Вы можете создать свой источник в форме с этим
файлом и работать по нему через SELECT
(Не передавать его в WinReport)

#23:  Author: МаринаLocation: Кондрина Марина Александровна PostPosted: 24 Oct 2007 11:30
    —
B blob.ch вызов BlobImport транслируется в DBFilePut, но на DBFilePut БЭСТ ругается как на неизвестную функцию. hbextern.ch подключена. (SP37)

Что делать дальш

#24:  Author: МаринаLocation: Кондрина Марина Александровна PostPosted: 25 Oct 2007 10:55
    —
Константин! Надежда еще есть?

#25:  Author: nordkLocation: Горбунов Константин PostPosted: 25 Oct 2007 13:53
    —
Марина потерпите несколько дней пожалуйста.
Я напишу

#26:  Author: МаринаLocation: Кондрина Марина Александровна PostPosted: 30 Oct 2007 16:52
    —
Для тех программистов, кто еще тупее, чем я. (если такие вообще есть)
Для вызова pdf стоит использовать RunShell
RunShell("X:\trcenter\kartinki\obraz1.pdf")

#27:  Author: ZwezdaLocation: Светлана PostPosted: 09 Nov 2007 06:01
    —
Марина,
возникла похожая ситуация: необходимо выводить на печать сертификаты\лицензии на товары. Причем пользователь может выбрать что печатать, а что нет.
Я еще только начала реализовывать идею и задумка следующая: создать таблицу для хранения номеров лицензий с привязкой к номенклатурному номеру товара и группе. Файлы с изображениями хранить в отдельной папке, имя файла - это и будет номер лицензии+'.jpg' (либо другое расширение, еще не решила).
В бланке отчета для вывода изображения использую TrfPictureView (рисунок). Для отображения списка сертификатов TfrlSDBCheckListBox.
Тогда в обработчике события OnBeforePrint того бэнда, на котором лежит Picture пишем что-то вроде:

Code:
begin
 if box.checked[i]=true then
  begin
    Pict1.loadfromfile('D:\pictures\'+[SHIFR]+'.jpg');
    MasterData1.height:=1016;
  end
  else
  begin
    MasterData1.height:=0;
  end;
  i:=i+1;
end


где SHIFR-номер лицензии.
Если Вы продвинулись далеко в этом вопросе, пожалуйста, поделитесь размышлениями.

#28:  Author: МаринаLocation: Кондрина Марина Александровна PostPosted: 09 Nov 2007 09:51
    —
Да, это здорово. У меня пожалуй получилось немного сложно.

Я сейчас остановилась на pdf, т к к одной партии приходится привязывать до 8 страниц документов, а в jpg это муторно, прявязывать каждую страницу. А еще повлиял на это решение объем привязываемых документов, которые в нашем случае необходимо хранить на сервере.

С целью экономии к каждой партии я привязываю по две pdf - первая pdf привязывается ко всем товарам накладной, поступившей от поставщика (сертификат и т п), вторая индивидуальная для каждого товара (качественное удостоверение с датой розлива и т п)
Привязка выполняется в приходной накладной поставщика

Pdf-ки хранятся на сервере структирированно, т е есть отдельные папки для разных поставщиков, типов алкоголя (водки, вина, шампанские), ну и т п. Это позволяет найти нужный файл и минуя БЭСТ, хотя и непонятно, зачем пользователям это понадобилось

Перечень pdf-файлов с путями у меня находится в отдельной таблице, файл имеет 15-значный ID, с которым я и работаю

В процессе печати (который происходит в расходной накладной) пользователь у меня видит для каждого наименования, привязаны ли уже pdf-ки (их привязывает другой чел) или видит, что такого-то числа эти файлы уже печатались и отправлялись на эту точку, а некоторые еще не отправлялись. Ну то есть он может не печатать документы повторно. Pdf-ки вызываются и печатаются пользователем по отдельности каждая.

Периодически производится удаление ненужных pdf-файлов и очистка информации по ним

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

#29:  Author: МаринаLocation: Кондрина Марина Александровна PostPosted: 15 Nov 2007 10:57
    —
Марина wrote:
B blob.ch вызов BlobImport транслируется в DBFilePut, но на DBFilePut БЭСТ ругается как на неизвестную функцию. hbextern.ch подключена. (SP37)

Что делать дальше?


Все-таки хотелось бы получить разъяснения по этому поводу

#30:  Author: МаринаLocation: Кондрина Марина Александровна PostPosted: 15 Nov 2007 11:02
    —
Вот сейчас потребовалась функция adir, пришлось подключить hbextern.ch и опять ничего не получается. Почему такое происходи



-> Программирование в БЭСТ-4


output generated using printer-friendly topic mod. All times are GMT + 4 Hours

Goto page Previous  1, 2, 3  Next  :| |:
Page 2 of 3

Powered by phpBB © 2001, 2005 phpBB Group