Страница 1 из 1

Вывод картинки в RTF-отчет в зависимости от значения внешнег

Добавлено: 15 дек 2004, 17:48
Savich
Всем доброго времени суток!
У нас возникла необходимость в RTF-отчете выводить рисунок размером 1см Х 1см, но выводить его следует только для определенных групп партий продукции.

Есть идея:
создать внешний атрибут группы партий и в зависимости от его значения для конкретной группы партий выводить в отчет этот рисунок.

Только вот как это реализовать, пока не знаю.

Может быть у кого-либо есть подобный опыт?

Буду благодарен за любую информацию.

Re: Вывод картинки в RTF-отчет в зависимости от значения вне

Добавлено: 15 дек 2004, 18:05
Maverick
//вывод картинки в rtf документ: путь к rtf файлу, имя rtf файла, высота картинки, два параметра положение на листе
procedure InsFoto(string, string, longInt, longInt, longInt); external 'InsFoto.dll';

/*по умолчанию используется в кадрах для вывода фотки в Т2*/

Вот исходник на дельфах:
library InsFoto;

{ Important note about DLL memory management: ShareMem must be the
first unit in your library's USES clause AND your project's (select
View-Project Source) USES clause if your DLL exports any procedures or
functions that pass strings as parameters or function results. This
applies to all strings passed to and from your DLL--even those that
are nested in records and classes. ShareMem is the interface unit to
the DELPHIMM.DLL shared memory manager, which must be deployed along
with your DLL. To avoid using DELPHIMM.DLL, pass string information
using PChar or ShortString parameters. }

uses
ComObj;

procedure Report1(Path : string; Name : string; H : integer; T : integer ; L : integer); export;
var
MsWord : OleVariant;
MyRange : Variant;
K : Integer;
begin
try
MsWord:= GetActiveOleObject('Word.Application');
except
MsWord := CreateOleObject('Word.Application');
end;
if H > 5 then H := 5;
if T > 20 then T := 20;
if L > 15 then L := 15;
try
MSWord.Application.documents.Open(Path + Name);
try
MSWord.ActiveDocument.Shapes.SelectAll;
K:= MSWord.ActiveDocument.Shapes.Count;
MyRange := MSWord.ActiveDocument.Goto(3, -1);
MyRange.EndOf(1, 1);
MSWord.ActiveDocument.Shapes.AddPicture(Path+'Tmp.bmp', false, true, MyRange);
MSWord.ActiveDocument.Shapes.Item(K+1).Select;
MSWord.Selection.ShapeRange.Height:= H*(28.35);
MSWord.Selection.ShapeRange.Top := T*(28.35);
MSWord.Selection.ShapeRange.Left := L*(28.35);
MSWord.Selection.ShapeRange.WrapFormat.Type:= 3;
MsWord.Visible:= true;
except
MsWord.Visible:= true;
end;
except
MSWord.Quit;
end;
end;

exports
Report1 name 'INSFOTO';
begin
end.

Re: Вывод картинки в RTF-отчет в зависимости от значения вне

Добавлено: 23 дек 2004, 15:47
Optimist
А в обычный отчет можно засунуть картинку?

Re: Вывод картинки в RTF-отчет в зависимости от значения вне

Добавлено: 24 дек 2004, 12:06
edward_K
запихать постоянную можно без проблем
единственно что нужно ее ограничивать по размеру(скажем суммарная не более 100 кб).
но вот вывод по условию не пробовал - хотя наверное особых проблем не будет.
вариант подрисовать шрифт и вывести буковкой.

Re: Вывод картинки в RTF-отчет в зависимости от значения вне

Добавлено: 30 дек 2004, 15:54
Savich
В документации к Гал-ке (vipprogr.pdf) описано, как компилировать в res-файл иконки.
Проверил - работает. 8)
Но в той же документации я не нашел, как потом обратиться к обекту bitmap ИмяКартинки, чтобы вытянуть ее прямо в отчет.
Кто-нибудь пробывал ЭТО сделать? ???