mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-06-01 11:32:30 +02:00

------------------------------------------------------- Addfunction / frFuncStr - Fixed string functions - accounted for UTF8 strings DialogControls - Fixed reports generation with built-in query mode, MDI (multiple reports open for viewing at the same time) - Fixed UNDO in editor - Added property HINT for dialog controls - A new component - TlrRadioGroup lrOfficeImport - New tool reports designer to import data from a spreadsheet as a report template source - The object TfrMemoView added new handlers - OnClick - Event when you click on TfrMemoView in playback mode built reports - OnMouseEnter - Event at the Enter of the mouse over TfrMemoView in playback mode built reports - OnMouseLeave - Event at the Leave of the mouse TfrMemoView in playback mode built reports - The object TfrMemoView added new properties - Cursor - the mouse cursor when moving over TfrMemoView in playback mode built reports - DetailReport - a reference to the detail-report - called when the user clicks the mouse on TfrMemoView in playback mode built reports - A mechanism to detail-report - call a detailed report of the current report - In ineterpretatore added new features (for compatibility with FastReport 2.5): - FINALPASS - CURY - PAGEHEIGH - PAGEWIDTH - In the reports, the editor started saving paramerov editor (the location of the Object Inspector, fonts) - In the reports, the editor corrected the addition of new tools (implemented a new tool - Import report template from excel/OpenOffice) - Editor of reports finalized Inspector data - now you can also insert variables - For export to txt implemented request form export options images - Made in the resources icon tool insert fields in a report from the editor Demo included (detail_reports) And new extensions: - import report template from calc/excel - send email from report preview (for sending used local mail app, installed on user PC - in windows its TheBat! and Mozilla Thunderbird). In future I'm plan make direct send. git-svn-id: trunk@46079 -
139 lines
6.1 KiB
ObjectPascal
139 lines
6.1 KiB
ObjectPascal
unit lrEmailAppTheBat;
|
||
|
||
{$mode objfpc}{$H+}
|
||
|
||
interface
|
||
|
||
uses
|
||
Classes, SysUtils, lrEmailExportFilter;
|
||
|
||
type
|
||
|
||
{ TEmailAppTheBat }
|
||
|
||
TEmailAppTheBat = class(TEmailApp)
|
||
protected
|
||
class function AppFileName:string;override;
|
||
function MakeParams:string;override;
|
||
public
|
||
class function AppName:string;override;
|
||
end;
|
||
|
||
implementation
|
||
uses registry, LCLProc, LazUTF8;
|
||
|
||
{ TEmailAppTheBat }
|
||
|
||
class function TEmailAppTheBat.AppFileName: string;
|
||
{$IFDEF WINDOWS}
|
||
var
|
||
R:TRegistry;
|
||
{$ENDIF}
|
||
begin
|
||
{$IFDEF WINDOWS}
|
||
R:=TRegistry.Create;
|
||
R.Access := KEY_READ;
|
||
R.RootKey := HKEY_CURRENT_USER;
|
||
Result:='';
|
||
try
|
||
if R.OpenKeyReadOnly('Software\RIT\The Bat!') then
|
||
Result:=R.ReadString('EXE path');
|
||
R.CloseKey;
|
||
finally
|
||
R.Free;
|
||
end;
|
||
{$ELSE}
|
||
..
|
||
{$ENDIF}
|
||
end;
|
||
|
||
function TEmailAppTheBat.MakeParams: string;
|
||
var
|
||
FBodyTxt, S:string;
|
||
F:TFileStream;
|
||
begin
|
||
{
|
||
Result:='"mailto:' + FFilter.Email +
|
||
'?subject='+FFilter.MessageSubject;
|
||
if Trim(FFilter.MessageBody.Text)<>'' then
|
||
Result:=Result + '&body='+Trim(FFilter.MessageBody.Text);
|
||
Result:=Result + '&attach='+FFilter.EmailAttachFileName+'"';
|
||
}
|
||
|
||
{
|
||
Автоматизированное создание сообщения - команда /MAIL
|
||
|
||
Команда /MAIL используется для автоматизированного создания сообщения из шаблона, текстового файла и/или набора присоединенных файлов на определенный адрес. Эта команда чрезвычайно полезна для приложений, которые требуют посылки сообщений электронной почты без вмешательства пользователя, в соответствии со стандартами сети Интернет.
|
||
|
||
Синтаксис команды /MAIL:
|
||
|
||
/MAIL:[parameter1[;parameter2[;parameter3 [...]]]
|
||
|
||
Возможные параметры:
|
||
|
||
USER=значение или U=значение.
|
||
Значение - название ящика, из которого должно быть отправлено сообщение.
|
||
Если параметр FOLDER не определен, будет отправлено сообщение из папки Inbox данного ящика.
|
||
PASSWORD=значение или P=значение.
|
||
Значение - пароль. Используется в том случае, если ящик защищен паролем.
|
||
FOLDER=значение или F=значение.
|
||
Значение - путь к папке в ящике, из которой следует оправить сообщение. Если путь не включает имя ящика,
|
||
The Bat! будет просматривать все ящики в поисках папки с таким именем;
|
||
использоваться будет первая найденная папка.
|
||
Если заданная папка не найдена, будет использоваться папка Inbox указанного ящика.
|
||
TEMPLATE=значение или T=значение.
|
||
Значение - путь к файлу, содержащему шаблон, который должен использоваться для создания сообщения.
|
||
По умолчанию это - шаблон используемой папки или ящика.
|
||
|
||
TO=значение.
|
||
Значение определяет первичного адресата сообщения. Вы можете добавлять дополнительных адресатов с помощью макрокоманд шаблона %TO, %CC, %BCC.
|
||
SUBJECT=значение или S=значение.
|
||
Значение определяет тему сообщения. Также возможно определить тему сообщения в шаблоне, используя макрос %SUBJECT.
|
||
TEXT=значение или CONTENTS=значение или C=значение.
|
||
Значение - путь к текстовому файлу, который содержит текст сообщения.
|
||
Также возможно включить текстовый файл в сообщение, используя в шаблоне макрос %PUT.
|
||
ATTACH=значение или FILE=значение или A=значение.
|
||
Значение - путь к файлу, который должен быть присоединен к сообщению. Также возможно использовать макрос %ATTACHFILE в шаблоне.
|
||
|
||
ПРИМЕЧАНИЯ:
|
||
Для разделения параметров используйте точку с запятой (символ ";"). Не используйте пробелы между параметрами,
|
||
когда используете команду /MAIL в командной строке, потому что отделенный пробелом параметр будет обрабатываться
|
||
как следующая команда и не будет понят программой должным образом.
|
||
|
||
Если значение содержит пробелы, поместите его в кавычки. Если значение содержит кавычки,
|
||
Вы должны использовать апострофы (символ " ' ").
|
||
}
|
||
|
||
if Trim(FFilter.MessageBody.Text)<>'' then
|
||
begin
|
||
FBodyTxt:=GetTempDir(false)+'tmp_EmailAppTheBat_body.txt';
|
||
F:=TFileStream.Create(FBodyTxt, fmCreate);
|
||
try
|
||
S:=UTF8ToSys(FFilter.MessageBody.Text);
|
||
F.Write(S[1], Length(S));
|
||
finally
|
||
F.Free;
|
||
end;
|
||
end
|
||
else
|
||
FBodyTxt:='';
|
||
|
||
Result:= '/MAIL:'+ //[parameter1[;parameter2[;parameter3 [...]]]
|
||
'TO='+FFilter.Email+';'+
|
||
'SUBJECT='''+FFilter.MessageSubject+''';';
|
||
if FBodyTxt<>'' then
|
||
Result:=Result+'CONTENTS='''+SysToUTF8(FBodyTxt)+''';';
|
||
Result:=Result+'ATTACH='+FFilter.EmailAttachFileName;
|
||
|
||
end;
|
||
|
||
class function TEmailAppTheBat.AppName: string;
|
||
begin
|
||
Result:='The Bat!';
|
||
end;
|
||
|
||
initialization
|
||
RegisterEmailApp(TEmailAppTheBat);
|
||
end.
|
||
|