powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / Генерация отчета в Excel и отправка его на почту!!!!
18 сообщений из 18, страница 1 из 1
Генерация отчета в Excel и отправка его на почту!!!!
    #33961785
jigan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Встала следующая проблема, необходимо создать интерфейс, который бы брал бы данные из бд и формировал бы файл Excel или Word по созданному шаблону, сохранял бы его в архиве на локальной машине и отправлял бы его по списку адресов. Предполагаю писать на C++ Builder6. Со связкой с бд проблем не возникнет, а вот опыта работы с отчетами практически нет. Может кто нибудь предложить варианты создания, какие компоненты лучше использовать и вообще есть ли какая нить литература на эту тему.
...
Рейтинг: 0 / 0
Генерация отчета в Excel и отправка его на почту!!!!
    #33962093
HeliX696
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Попробуй FastReport .
...
Рейтинг: 0 / 0
Генерация отчета в Excel и отправка его на почту!!!!
    #33962139
Фотография JibSkeart
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну или в поиск , много раз опсуждалось ...
...
Рейтинг: 0 / 0
Генерация отчета в Excel и отправка его на почту!!!!
    #33962148
jigan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Плиз, дайте че нить почитать по FastReport, может у кого завалялась какая ссылочка.
...
Рейтинг: 0 / 0
Генерация отчета в Excel и отправка его на почту!!!!
    #33962188
jigan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А может, кто нибудь сказать вообще какие альтернативы есть у FastReports и привести их положительные и отрицательные стороны. Я подумывал о написании отчетов c использованием rtf.
...
Рейтинг: 0 / 0
Генерация отчета в Excel и отправка его на почту!!!!
    #33962245
сикока
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
фастрепорт и прочее по сравнению с генераторами отчетов на основе экселя говно полное!
про эксель смотри поиском.

ценность фастрепорта и т.п. - независимость - ставишь программу и она работает и не надо ставить эксель, но в данном случае эксель уже есть.
...
Рейтинг: 0 / 0
Генерация отчета в Excel и отправка его на почту!!!!
    #33962614
jigan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ок, а может кто нить дать пример как и с помощью каких компонент можно работать с smtp сервером.
...
Рейтинг: 0 / 0
Генерация отчета в Excel и отправка его на почту!!!!
    #33963018
vanoman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
jiganОк, а может кто нить дать пример как и с помощью каких компонент можно работать с smtp сервером.

При помощи этих файликов (см. вложение) процесс отправки у меня выглядит примерно так:


//Информация о свойствах MAIL-соединения
struct EMailAttr
{
CString m_Smtp; //SMTP-сервер
CString m_FromAdres; //EMAIL-отправителя
CString m_FromName; //ИМЯ-отправителя
CString m_Subject; //Тема отправления
CString m_Body; //Тело письма
bool m_SendByMAPI; //Каким механизмом отправлять сообщение(MAPI,встроенный SMTP-сервер)
}m_EMail;
//Отправка сообщения при помощи встроенного SMTP сервера
bool CNotifyManager::SendInternalSmtp(CString *pToAdres,CString *pFilePath)
{
CSMTPPaper smtp;
smtp.SetSmtpServer(&m_EMail.m_Smtp);
smtp.SetFromName(&m_EMail.m_FromName);
smtp.SetFromAdres(&m_EMail.m_FromAdres);

{//Преобразование для Верного отображения Темы письма
CString strOEM;
strOEM=m_EMail.m_Subject;
//strOEM.OemToAnsi();
smtp.SetSubject(&strOEM);
}
smtp.SetBody(&m_EMail.m_Body);
smtp.SetToName(pToAdres);
smtp.SetToAdres(pToAdres);
smtp.Attach(pFilePath);

if (!smtp.SendMessage())
{ CString Err;
smtp.GetErrorString(&Err);
std::cerr <<"[Ошибка отправки файла]\nОшибка:"<<Err<<std::endl;
smtp.GetSmtpServer(&Err);
std::cerr <<"\nSMTP сервер:"<<Err<<std::endl;
smtp.GetToAdres(&Err);
std::cerr <<"\nАдрес получателя:"<<Err<<std::endl;
smtp.GetFromAdres(&Err);
std::cerr <<"\nАдрес отправителя:"<<Err<<std::endl;
return false;
}
return true;
}



А это при помощи MAPI
#include <mapi.h> //MAPI
//Отправка сообщения при помощи MAPI
bool CNotifyManager::SendMAPI(CString *pToAdres,CString *pFilePath/*Сюда только имя файла!!!*/)
{
bool retval(false);
//Грузим библиотеку
HINSTANCE m_hInstMail=::LoadLibraryA("MAPI32.DLL");

if (m_hInstMail == NULL)
{AfxMessageBox(AFX_IDP_FAILED_MAPI_LOAD);}
else
{//Получаем указатель на функцию отправки сообщений
ULONG (PASCAL *lpfnSendMail)(ULONG, ULONG_PTR, MapiMessage*, FLAGS, ULONG);
(FARPROC&)lpfnSendMail = GetProcAddress(m_hInstMail/*pMailState->m_hInstMail*/, "MAPISendMail");
if (lpfnSendMail == NULL)
{AfxMessageBox(AFX_IDP_INVALID_MAPI_DLL);}
else
{ //Готовим данные для отправки
ASSERT(lpfnSendMail != NULL);
// prepare the file description (for the attachment)
MapiFileDesc fileDesc;
memset(&fileDesc, 0, sizeof(fileDesc));
fileDesc.nPosition = (ULONG)-1;
char szTempPath[MAX_PATH];
char szBuffCurrDirr[MAX_PATH];//Для восстановления параметра меняемого MAPI
{
if (GetCurrentDirectory(MAX_PATH,szTempPath)==NULL)
{ std::cerr<<"[Ошибка отправки файла]\nНе удалось определить путь к текущей Папки программы"<<std::endl;}
strcpy(szBuffCurrDirr,szTempPath);//Для восстановления параметра меняемого MAPI
CString strTmp(szTempPath);
strTmp+="\\";
strTmp+=*pFilePath;
strcpy(szTempPath,strTmp);
}
char szTempName[MAX_PATH];
strcpy(szTempName,*pFilePath);
//Подготовка вложения
fileDesc.lpszPathName = szTempPath;
fileDesc.lpszFileName = szTempName;//szTitle;
//Формирование сообщения
MapiMessage message;
memset(&message, 0, sizeof(message));
message.nFileCount = 1;
message.lpFiles = &fileDesc; //Передали сформированный файл
//Формирвание Тела сообщения
message.lpszNoteText=m_EMail.m_Body.GetBuffer();
//Формирование Темы сообщения
message.lpszSubject=m_EMail.m_Subject.GetBuffer();
//Формирование получателя сообщения
MapiRecipDesc AdressTo;
AdressTo.ulRecipClass=MAPI_TO;
AdressTo.lpszAddress=pToAdres->GetBuffer();
AdressTo.lpszName=AdressTo.lpszAddress;
AdressTo.lpEntryID=0;
AdressTo.ulEIDSize=0;
message.nRecipCount=1;
message.lpRecips=&AdressTo;
//Попытка отправки сообщения
int nError = lpfnSendMail(0, NULL,&message, MAPI_LOGON_UI|MAPI_DIALOG, 0);
//Тварь по имени MAPI сбивает тек. директорию
::SetCurrentDirectory(szBuffCurrDirr);
//Анализ кода возврата
if (nError == SUCCESS_SUCCESS){retval=true;}
}
::FreeLibrary(m_hInstMail);
}
return retval;
}
...
Рейтинг: 0 / 0
Генерация отчета в Excel и отправка его на почту!!!!
    #33963032
vanoman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Чё-та не вложилось
...
Рейтинг: 0 / 0
Генерация отчета в Excel и отправка его на почту!!!!
    #33963128
сикока
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
jiganОк, а может кто нить дать пример как и с помощью каких компонент можно работать с smtp сервером.

а может раз уже базар пошел, типа работа через оле, попробвать аутглюк использовать?

или, на сколько автоматично это все должно работать?
средствами экселя можно создать письмо с аттачем, а дальше, если это не полный автомат, отправить можно будет и ручками.
еще можно как-то через вызов какой-то системной функции сформировать письмо, а может быть и отрпавить, не в курсе.

или

некоторые мэил программы поддерживают работу с командной строкой, если этим воспользоваться, то передача файла значительно упростится.
...
Рейтинг: 0 / 0
Генерация отчета в Excel и отправка его на почту!!!!
    #33963141
vanoman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
сикока jiganОк, а может кто нить дать пример как и с помощью каких компонент можно работать с smtp сервером.

а может раз уже базар пошел, типа работа через оле, попробвать аутглюк использовать?

или, на сколько автоматично это все должно работать?
средствами экселя можно создать письмо с аттачем, а дальше, если это не полный автомат, отправить можно будет и ручками.
еще можно как-то через вызов какой-то системной функции сформировать письмо, а может быть и отрпавить, не в курсе.

или

некоторые мэил программы поддерживают работу с командной строкой, если этим воспользоваться, то передача файла значительно упростится.

Не удержался: Очень информативные замечания!!! Браво!!!

Ыщо можнА пачтальона нанять чтоб стоял рядом и распечатки забирал
Ыщо можнА отправлять по локатьной сети (но только если есть доступ к Internet) !!!
Ыщо можна ...
Ыщо можна вообще ничего ни куда не отправлять. О!
...
Рейтинг: 0 / 0
Генерация отчета в Excel и отправка его на почту!!!!
    #33963146
сикока
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Конечно, решение зависит от того, что нужно.

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

Если круглосуточно, то да, придётся писать полностью свою прогу, её отлаживать, обрабатывать все ошибки и т.д. хотя никогда этим не занимался, возможно, это просто.
...
Рейтинг: 0 / 0
Генерация отчета в Excel и отправка его на почту!!!!
    #33963178
сикока
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
vanoman

Не удержался: Очень информативные замечания!!! Браво!!!

Ыщо можнА пачтальона нанять чтоб стоял рядом и распечатки забирал
Ыщо можнА отправлять по локатьной сети (но только если есть доступ к Internet) !!!
Ыщо можна ...
Ыщо можна вообще ничего ни куда не отправлять. О!

чуда! ты исходишь из своих максималистских позиций:)

но обычно, если кто-то что-то уже реализовал, и это подходит, лучше это и использовать. Делать самому всё от начала до конца не есть правильное решение.
С таким же успехом можно отказаться от использование экселя, фастрепорта и рисовать отчет вручную.

Задача должна быть решена. Если это коммерческий продукт для тиражирования, то это одно дело, если это программа, которая будет использовать многократно, но в одном месте, совершенно другое.
Сервис по отправке писем как в аутглюке ты все равно не реализуешь, или потратишь времени значительно больше чем на остальную часть программы.
хотя обычно комсомол идет своим путем, приятной прогулки!
:)
...
Рейтинг: 0 / 0
Генерация отчета в Excel и отправка его на почту!!!!
    #33963216
vanoman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
сикокаКонечно, решение зависит от того, что нужно.

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

RTFM MAPI (реализация см. выше)
сикока
Если круглосуточно, то да, придётся писать полностью свою прогу, её отлаживать, обрабатывать все ошибки и т.д. хотя никогда этим не занимался, возможно, это просто.
www.codeguru.com (реализация см. выше)

MAPI
Недостатки:
Отправка происходить при явном согласии пользователя - требуется его присутствие. ПРИМЕР: MS Outlook запрашивает разрешение на отправку
Достоинства:
Все что отправлено пользователем хранится в одном месте - "Исходящие". Почтовая программа - это ещё и Оганайзер пользователя

Самопальный сервер SMTP:
Недостатки:
Возможны проблемы с отправкой сообщений.
Из опыта. Exchange сервер разрешал отправлять только адресатам членам домена.
Достоинства:
Программер-Царь и бог.
...
Рейтинг: 0 / 0
Генерация отчета в Excel и отправка его на почту!!!!
    #33963257
сикока
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Порограммеру нужно задачу решить, что бы юзеры были довольны.
...
Рейтинг: 0 / 0
Генерация отчета в Excel и отправка его на почту!!!!
    #33963268
сикока
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
сикокаПорограммеру нужно задачу решить, что бы юзеры были довольны.

даже немного не так:
программеру нужно задачу решить, что она выполняла свои функции.
...
Рейтинг: 0 / 0
Генерация отчета в Excel и отправка его на почту!!!!
    #33963282
vanoman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
сикокаПорограммеру нужно задачу решить, что бы юзеры были довольны.

Привет!
меня просто потрясла информативность Твоего высказывания:

еще можно как-то через вызов какой-то системной функции сформировать письмо, а может быть и отрпавить, не в курсе

Хочется задать вопрос: Зачем вообще писал?
Вот собственно и всё.
Мир! :-)
...
Рейтинг: 0 / 0
Генерация отчета в Excel и отправка его на почту!!!!
    #33963315
сикока
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Могу объяснить содержание:
Это не указание на конкретное решение, а указание на одно из направлений.
Если человеку будет это нужно, он найдёт эту системную функцию, а если он не знает про то, что она существует, то и искать не будет. Лично я знаю, что этот АПИ есть, но с ним никогда не работал.
Другой смысловой нагрузки эта фраза не несла:)

Кстати, мы и не воевали:)
...
Рейтинг: 0 / 0
18 сообщений из 18, страница 1 из 1
Форумы / C++ [игнор отключен] [закрыт для гостей] / Генерация отчета в Excel и отправка его на почту!!!!
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]