Главная
Новый форум
 FAQFAQ   SearchSearch   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

Хранение изображений в memo-полях в БЭСТ-4
Goto page Previous  1, 2, 3  Next
 
Post new topic   Reply to topic   printer-friendly view     Forum Index -> Программирование в БЭСТ-4
View previous topic :: View next topic  
Author Message
Дениска



Joined: 26 Feb 2002
Posts: 649



PostPosted: 22 Oct 2007 14:54    Post subject: Reply with quote

Марина wrote:

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

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

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


Файлы с jpg можно сохранять не с полным качеством. При сохранение с качеством 70% для глаза даже при печати это практически не заметно, а файлы при этом уменьшаются иной раз в 3 раза. Правда умеет ли это делать FineReader я не знаю, если не умеет, то я думаю не стоит огород городить ...
Back to top
View user's profile Send private message
Марина



Joined: 27 Aug 2002
Posts: 501
Location: Кондрина Марина Александровна
Occupation: ОАО БКО программист
Interests: Боровичи Новгородской обл

PostPosted: 22 Oct 2007 15:31    Post subject: Reply with quote

Нет, 70% пока не получается

Я вот думаю, если я установила полную версию Adobe Acrobat 8 Professional, то теперь CreateObj уже должен получаться. Но не получается. Неверное,я неправильно задаю параметр в скобках, может кто-нибудь подскажет, как над
Back to top
View user's profile Send private message
Марина



Joined: 27 Aug 2002
Posts: 501
Location: Кондрина Марина Александровна
Occupation: ОАО БКО программист
Interests: Боровичи Новгородской обл

PostPosted: 22 Oct 2007 16:16    Post subject: Reply with quote

Ну что же, будем ждать советов по технологии засовывания изображения в memo-поле отдельного файл
Back to top
View user's profile Send private message
Яков



Joined: 04 Mar 2002
Posts: 618
Location: Яков
Occupation: Экстремальная терапия бизнеса
Interests: Владивосток

PostPosted: 23 Oct 2007 05:58    Post subject: Reply with quote

У нас наверное номенклатура разная.
У меня в одном сертификате почемуто идет перечисление целых товарных групп.
+ есть разделение по цветам и размера
Back to top
View user's profile Send private message Send e-mail Visit poster's website
Марина



Joined: 27 Aug 2002
Posts: 501
Location: Кондрина Марина Александровна
Occupation: ОАО БКО программист
Interests: Боровичи Новгородской обл

PostPosted: 23 Oct 2007 10:28    Post subject: Reply with quote

nordk wrote:
Марина посовещавшись с Дмитрием Шлыоквым.
Я так понял что другого пути как через мемо-поле
у нас действительно нет к сожалению.
Значит вопрос возвращается к созданию временного
файла с мемо-полем, как Вы и просили.
Попробую разобраться.


Константин, файлы наверное я могу не создавать из программы, а взять готовые. Вы подскажите пожалуйста, как в мемо-поле затолкать файл с картинкой (наименование функции, параметры).
Back to top
View user's profile Send private message
Марина



Joined: 27 Aug 2002
Posts: 501
Location: Кондрина Марина Александровна
Occupation: ОАО БКО программист
Interests: Боровичи Новгородской обл

PostPosted: 23 Oct 2007 11:22    Post subject: Reply with quote

Из memo-поля картинка тоже что-то не вытаскивается в Дизайнер. Картинка вроде подключается, но получаются пустые страницы вместо рисунков (пробовала bmp и jpg из spartimg.dbf програмы mlimage)
Back to top
View user's profile Send private message
nordk



Joined: 27 Jun 2005
Posts: 1000
Location: Горбунов Константин
Occupation: БЭСТ-Партнер
Interests: СПб

PostPosted: 23 Oct 2007 11:49    Post subject: Reply with quote

Марина 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)
Back to top
View user's profile Send private message Send e-mail
Марина



Joined: 27 Aug 2002
Posts: 501
Location: Кондрина Марина Александровна
Occupation: ОАО БКО программист
Interests: Боровичи Новгородской обл

PostPosted: 24 Oct 2007 11:30    Post subject: Reply with quote

B blob.ch вызов BlobImport транслируется в DBFilePut, но на DBFilePut БЭСТ ругается как на неизвестную функцию. hbextern.ch подключена. (SP37)

Что делать дальш
Back to top
View user's profile Send private message
Марина



Joined: 27 Aug 2002
Posts: 501
Location: Кондрина Марина Александровна
Occupation: ОАО БКО программист
Interests: Боровичи Новгородской обл

PostPosted: 25 Oct 2007 10:55    Post subject: Reply with quote

Константин! Надежда еще есть?
Back to top
View user's profile Send private message
nordk



Joined: 27 Jun 2005
Posts: 1000
Location: Горбунов Константин
Occupation: БЭСТ-Партнер
Interests: СПб

PostPosted: 25 Oct 2007 13:53    Post subject: Reply with quote

Марина потерпите несколько дней пожалуйста.
Я напишу
Back to top
View user's profile Send private message Send e-mail
Марина



Joined: 27 Aug 2002
Posts: 501
Location: Кондрина Марина Александровна
Occupation: ОАО БКО программист
Interests: Боровичи Новгородской обл

PostPosted: 30 Oct 2007 16:52    Post subject: Reply with quote

Для тех программистов, кто еще тупее, чем я. (если такие вообще есть)
Для вызова pdf стоит использовать RunShell
RunShell("X:\trcenter\kartinki\obraz1.pdf")
Back to top
View user's profile Send private message
Zwezda



Joined: 04 Oct 2007
Posts: 3
Location: Светлана
Occupation: IT-специалист
Interests: Владивосток

PostPosted: 09 Nov 2007 06:01    Post subject: Reply with quote

Марина,
возникла похожая ситуация: необходимо выводить на печать сертификаты\лицензии на товары. Причем пользователь может выбрать что печатать, а что нет.
Я еще только начала реализовывать идею и задумка следующая: создать таблицу для хранения номеров лицензий с привязкой к номенклатурному номеру товара и группе. Файлы с изображениями хранить в отдельной папке, имя файла - это и будет номер лицензии+'.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-номер лицензии.
Если Вы продвинулись далеко в этом вопросе, пожалуйста, поделитесь размышлениями.
Back to top
View user's profile Send private message Send e-mail
Марина



Joined: 27 Aug 2002
Posts: 501
Location: Кондрина Марина Александровна
Occupation: ОАО БКО программист
Interests: Боровичи Новгородской обл

PostPosted: 09 Nov 2007 09:51    Post subject: Reply with quote

Да, это здорово. У меня пожалуй получилось немного сложно.

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

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

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

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

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

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

Остальные идеи касаются возможной путаницы с партиями идатами розлива в автоматизированных и неавтоматизированных магазинах, но у вас похоже другая задача
Back to top
View user's profile Send private message
Марина



Joined: 27 Aug 2002
Posts: 501
Location: Кондрина Марина Александровна
Occupation: ОАО БКО программист
Interests: Боровичи Новгородской обл

PostPosted: 15 Nov 2007 10:57    Post subject: Reply with quote

Марина wrote:
B blob.ch вызов BlobImport транслируется в DBFilePut, но на DBFilePut БЭСТ ругается как на неизвестную функцию. hbextern.ch подключена. (SP37)

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


Все-таки хотелось бы получить разъяснения по этому поводу
Back to top
View user's profile Send private message
Марина



Joined: 27 Aug 2002
Posts: 501
Location: Кондрина Марина Александровна
Occupation: ОАО БКО программист
Interests: Боровичи Новгородской обл

PostPosted: 15 Nov 2007 11:02    Post subject: Reply with quote

Вот сейчас потребовалась функция adir, пришлось подключить hbextern.ch и опять ничего не получается. Почему такое происходи
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic   printer-friendly view     Forum Index -> Программирование в БЭСТ-4 All times are GMT + 4 Hours
Goto page Previous  1, 2, 3  Next
Page 2 of 3

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


Powered by phpBB © phpBB Group

Rambler
Rambler's Top100 Рейтинг@Mail.ru