{HTML-Datei für MB-Serie erstellen}
procedure THTMLExportForm.HTMLErzeugenMBSerie;
Var
slHTML : TStringList;
i : integer;
mrResult: Integer;
FileName :
String;
begin
try
try
slHTML := TStringList.Create;
slHTML.Add('
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"');
slHTML.Add('
<html>');
slHTML.Add('
<head>');
slHTML.Add('
<link rel="stylesheet" type="text/css" href="MB.css"');
slHTML.Add('
<Style type="text/css"></style>');
slHTML.Add('
<title>Protokolldatei</title>');
slHTML.Add('
</head>');
slHTML.Add('
<body>');
slHTML.Add('
<img src= ".\Kopf1.bmp" width= "900" height= "150" align= "rigth" alt= "Titel" >');
slHTML.Add('
<h1 style="color:#FFFFFF; background-color:#000080; align= "right">Firma hartmann & uebach Nachrichtentechnik GmbH</h1>');
slHTML.Add('
<h1 style="color:#000080;">Objekt: '
+QryVorgabe.FieldByName('
KUNDEOBJEKT').AsString+'
</h1>');
slHTML.Add('
<table border="0" style="border-collapse:separate;"'+
'
width="100%" style="'+
'
border-left:5px solid #000080;border-right:5px solid #000080;'+
'
border-top:5px solid #000080;border-bottom:5px solid #000080;>');
slHTML.Add('
<tr>');
slHTML.Add('
<th align="left">Protokolldatei vom '+DateTimeToStr(Now)+'
</th>');
slHTML.Add('
<th align="left">ID</th>');
slHTML.Add('
<th align="left">LfdNr</th>');
slHTML.Add('
<th align="left">Datum</th>');
slHTML.Add('
<th align="left">Uhrzeit</th>');
slHTML.Add('
<th align="left">Ereignis</th>');
slHTML.Add('
<th align="left">Teilnehmer</th>');
slHTML.Add('
<th align="left">Bereich</th>');
slHTML.Add('
<tr>');
for i := 0
to QryHTML.RecordCount -1
do
begin
slHTML.Add('
<tr class="' + QryHTML.FieldByName('
Ereignis').AsString + '
">');
slHTML.Add('
<td>');
slHTML.Add(IntToStr(QryHTML.FieldByName('
ID').AsInteger));
slHTML.Add('
</td>');
slHTML.Add('
<td>');
slHTML.Add(IntToStr(QryHTML.FieldByName('
LfdNr').AsInteger));
slHTML.Add('
</td>');
slHTML.Add('
<td>');
slHTML.Add(DateToStr(QryHTML.FieldByName('
Datum').AsDateTime));
slHTML.Add('
</td>');
slHTML.Add('
<td>');
slHTML.Add(TimeToStr(QryHTML.FieldByName('
Uhrzeit').AsDateTime));
slHTML.Add('
</td>');
slHTML.Add('
<td>');
slHTML.Add(QryHTML.FieldByName('
Ereignis').AsString);
slHTML.Add('
</td>');
slHTML.Add('
<td>');
slHTML.Add(QryHTML.FieldByName('
Teilnehmer').AsString);
slHTML.Add('
</td>');
slHTML.Add('
<td>');
slHTML.Add(QryHTML.FieldByName('
Bereich').AsString);
slHTML.Add('
</td>');
slHTML.Add('
</tr>');
QryHTML.Next;
end;
slHTML.Add('
</table>');
slHTML.Add('
</body>');
slHTML.Add('
</html>');
except
on e :
Exception do begin
TForm1.Servicememo.Lines.Add(e.
Message);
raise;
end;
end;
try
FileName := SaveHTML(slHTML);
except
on e :
Exception do begin
e.
Message := '
Datei konnte nicht gespeichert werden'#13#10+e.
Message;
raise;
end;
end;
try
if AnzeigenCheckBox.Checked
then
ShellExecute(Application.Handle, '
open', PAnsiChar(FileName),
nil,
nil, SW_ShowNormal);
except
on e :
Exception do begin
e.
Message := '
Datei konnte nicht geöffnet werden'#13#10+e.
Message;
raise;
end;
end;
try
if VersendenCheckBox.Checked
then
SendMail(FileName);
except
on e :
Exception do begin
e.
Message := '
Datei konnte nicht als E-Mail versendet werden'#13#10+e.
Message;
raise;
end;
end;
try
if DruckenCheckBox.Checked
then
ShellExecute(
handle, '
print', PAnsiChar(FileName), '
', '
', SW_HIDE);
except
on e :
Exception do begin
e.
Message := '
Datei konnte nicht gedruckt werden'#13#10+e.
Message;
raise;
end;
end;
finally
slHTML.Free;
end;
end;
{HTML in Datei speichern}
function THTMLExportForm.SaveHTML(HTMLFile : TStringlist):
string;
begin
if SaveDialog1.Execute
then
HTMLFile.SaveToFile(SaveDialog1.FileName);
Result := SaveDialog1.FileName;
end;
{HTML-Datei als E-Mail versenden}
procedure THTMLExportForm.SendMail(HTMLFileName :
String);
var
Attachment : TStringList;
i : integer;
begin
try
QryVorgabe.Close;
QryVorgabe.SQL.Text := '
SELECT * FROM VORGABE';
QryVorgabe.Open;
except
on e :
Exception do
begin
e.
Message := '
Datenbank konnte nicht geöffnet werden'#13#10+e.
Message;
raise;
end;
end;
try
Attachment := TStringList.Create;
Attachment.Add(HTMLFileName);
Attachment.Add('
.\Kopf1.bmp');
with mesgMessage
do begin
Clear;
From.Text := QryVorgabe.FieldByName('
EIGENE_E_MAIL').AsString;
Recipients.Add.Text := AnEMailEdit.Text;
Subject := BetreffEdit.Text;
Body.Assign(EMailMemo.Lines);
if FileExists(HTMLFileName)
then
begin
if assigned(Attachment)
then
for i := 0
to Attachment.Count - 1
do
TIdAttachmentFile.Create(MessageParts, Attachment.Strings[i]);
end
end;
with smtpSendMail
do begin
Username := QryVorgabe.FieldByName('
BENUTZERNAME_E_MAIL').AsString;
Password := QryVorgabe.FieldByName('
PASSWORT_E_MAIL').AsString;
Host := QryVorgabe.FieldByName('
SMTP_SERVER').AsString;
Connect;
try
Send(mesgMessage);
finally
Disconnect;
end;
end;
showmessage('
Mail wurde erfolgreich an folgende Adressen versendet.'+sLineBreak+sLineBreak+
'
An: '+AnEMailEdit.Text);
finally
Attachment.Free;
end;
QryVorgabe.Close;
end;