Страница 1 из 1
procedure InsFoto
Добавлено: 01 окт 2010, 19:21
cautur
Здравствуйте,
подскажите можно использоваться процедуру
procedure InsFoto(string, string, longInt, longInt, longInt); external 'InsFoto.dll';
в формах, если да то как?
пробывал и просто в форме вставить описание функции и через #include
Всё равно при компиляции формы ошибка нет такого метода INSFOTO
Компилятора интерфесов нет, поэтому пробую на компиляторе форм.
Re: procedure InsFoto
Добавлено: 01 окт 2010, 20:20
m0p3e
Собственно можно пробовать так:
Код:
Код: Выделить всё
Interface InsFotoEx;
Public Procedure InsFotoRtf ( RtfPath, RtfName : string; h, x, y : LongInt );
{
InsFoto ( RtfPath, RtfName, h, x, y );
};
END.
Использование
.var
f : InsFotoRtf;
.end
.begin
f.InsFotoRtf('','',1,1,1);
end.
На какой мыл выслать res?
Re: procedure InsFoto
Добавлено: 02 окт 2010, 01:26
edward_K
обычно хватает подключить extfun.res - проверте.
Re: procedure InsFoto
Добавлено: 04 окт 2010, 14:21
cautur
Заработала после подключения extfun.res
Проблема теперь такая что когда я пытаюсь выводить фото в тот файл куда выводятся данные сотрудника, то получаю сообщение что файл заблокирован для редактирования другим пользователем. Подскажите где я что делаю не правильно, осталось то совсем чуть чуть вроде до счастья
Кусок кода привожу
Код: Выделить всё
.{table tl_p
.begin
PathParam:=GetStringParameter(‘Files’, ‘OutputFilesDirectory’, 0);
ExportMemoToFile(appendix.contents, PathParam+‘Tmp.BMP’, false);
InsFoto(PathParam, ‘rep0.rtf’, 4, 0, 0);
end.
^
.}
Re: procedure InsFoto
Добавлено: 04 окт 2010, 15:52
edward_K
. В этом то и главная проблема. В оригинале идет показ отчета, потом Insfoto. В момент формирования отчета файл держится.
Решения 2
1. - переделаь на вывод в Excel (и там макросом подтянуть фото)
2. сделать докомпиляцию фейса, например так
Код: Выделить всё
//Z_STAFF::SPRMESR - картотека - печать- Справка с места работы
#component "Z_STAFF"
#DEFINE _NO_PHOTO_
#include TStMailSend.vih
alter interface SPRMESR
( '')
;
overload
end;
create view NSPRMESR
as select Appendix.Contents
from Appendix
Where
((
1 == Appendix.ObjBlock and
Persons.Nrec == Appendix.Person and
200 == Appendix.ObjType
))
;
var tFoto : comIMailSend;
var strTmp:string ;
var SprMesR_Type:string;
HandleEvent
cmInit:
{ //message('1')
SaveMyDsk('SprMesR_060_1','SprMesR_Type')
//'SprMesR_060_1' - для возможности переключения в форме координат вывода фото.
Inherited::HandleEvent(cmInit)
//message('2')
strTmp := GetStringParameter('Files', 'OutputFilesDirectory', 0) + 'tmp.bmp';
IF true // (not FrmSprMesR.error)
{ DeleteFile(strTmp);
if Not ReadMyDsk(SprMesR_Type,'SprMesR_Type',true) SprMesR_Type:='SprMesR_060_1'
if(GetFirst Appendix = tsOK)
{ ExportMemoToFile(Appendix.Contents, strTmp, false);
PutFileToClient(UserPathVip + 'tmp.bmp', false);
PutFileToClient(UserPathVip + 'SprMesR.rtf', false);
if true
{tFoto := comIMailSend(new(coMailSend));
case SprMesR_Type of
'SprMesR_060_1':tFoto.OLE_ADD_FOTO(ExDirectoryOut, 'SprMesR.rtf',3,3,15);
else tFoto.OLE_ADD_FOTO(ExDirectoryOut, 'SprMesR.rtf',3,4,17);
end;
}
else
{ INSFOTO(ExDirectoryOut, 'SprMesR.rtf',3,4,17);
}
// высота,положение по высоте, положение по горизонтали
}
}
abort ;
closeinterface(cmDone)
}
end;
end.
Re: procedure InsFoto
Добавлено: 04 окт 2010, 17:02
cautur
Блин во клёво, а счастье так было рядом((
Компилятора вип нету, только форм. Так что есть только в сторону Excel смотреть
Но как в него фото вставить? тем более макросом.
Re: procedure InsFoto
Добавлено: 04 окт 2010, 17:32
edward_K
Как в Excel(не slk) сделать - это просто. Ищите Exсel на ФОРУМЕ, где-то в опыте был кажется excel.doc - речь идет об xl функциях. Сначала делаете файл с картинкой как и раньше. Рисуете шаблон, в нем запускаете запись макроса, делаете вставку вашего файла, макрос переименуете в что-то осмысленное. Ну дальше либо повторяете формирование вашего макроса в коде(если без шаблона отчет делаете) и грузите его в excel (xlImportModule_, либо добавляете параметр в макрос и вызываете что то типа xlrunmacro('макрос1!"путь к файлу"')
Re: procedure InsFoto
Добавлено: 05 окт 2010, 13:56
LaaLaa
Коллеги забудьте про FCOM. Намного практичнее печатать фотографии с помощью
FastReport. Никаких ухищрений с промежуточной выгрузкой в файлы делать не нужно. Поле таблицы с фотографией можно выдать прямо в поток данных, а в FastReport есть специальный объект "Картинка".
Набросал небольшой пример того, как можно вывести на печать фотографии сотрудников из базы Галактики.
Подробности на минском форуме:
http://forum.galaktika.ru/viewtopic.php?p=3714#p3714