|
|
|
Генерация отчета в Excel и отправка его на почту!!!!
|
|||
|---|---|---|---|
|
#18+
Встала следующая проблема, необходимо создать интерфейс, который бы брал бы данные из бд и формировал бы файл Excel или Word по созданному шаблону, сохранял бы его в архиве на локальной машине и отправлял бы его по списку адресов. Предполагаю писать на C++ Builder6. Со связкой с бд проблем не возникнет, а вот опыта работы с отчетами практически нет. Может кто нибудь предложить варианты создания, какие компоненты лучше использовать и вообще есть ли какая нить литература на эту тему. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.09.2006, 12:36 |
|
||
|
Генерация отчета в Excel и отправка его на почту!!!!
|
|||
|---|---|---|---|
|
#18+
Попробуй FastReport . ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.09.2006, 14:00 |
|
||
|
Генерация отчета в Excel и отправка его на почту!!!!
|
|||
|---|---|---|---|
|
#18+
Ну или в поиск , много раз опсуждалось ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.09.2006, 14:08 |
|
||
|
Генерация отчета в Excel и отправка его на почту!!!!
|
|||
|---|---|---|---|
|
#18+
Плиз, дайте че нить почитать по FastReport, может у кого завалялась какая ссылочка. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.09.2006, 14:08 |
|
||
|
Генерация отчета в Excel и отправка его на почту!!!!
|
|||
|---|---|---|---|
|
#18+
А может, кто нибудь сказать вообще какие альтернативы есть у FastReports и привести их положительные и отрицательные стороны. Я подумывал о написании отчетов c использованием rtf. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.09.2006, 14:16 |
|
||
|
Генерация отчета в Excel и отправка его на почту!!!!
|
|||
|---|---|---|---|
|
#18+
фастрепорт и прочее по сравнению с генераторами отчетов на основе экселя говно полное! про эксель смотри поиском. ценность фастрепорта и т.п. - независимость - ставишь программу и она работает и не надо ставить эксель, но в данном случае эксель уже есть. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.09.2006, 14:26 |
|
||
|
Генерация отчета в Excel и отправка его на почту!!!!
|
|||
|---|---|---|---|
|
#18+
Ок, а может кто нить дать пример как и с помощью каких компонент можно работать с smtp сервером. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.09.2006, 15:37 |
|
||
|
Генерация отчета в Excel и отправка его на почту!!!!
|
|||
|---|---|---|---|
|
#18+
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; } ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.09.2006, 17:14 |
|
||
|
Генерация отчета в Excel и отправка его на почту!!!!
|
|||
|---|---|---|---|
|
#18+
Чё-та не вложилось ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.09.2006, 17:15 |
|
||
|
Генерация отчета в Excel и отправка его на почту!!!!
|
|||
|---|---|---|---|
|
#18+
jiganОк, а может кто нить дать пример как и с помощью каких компонент можно работать с smtp сервером. а может раз уже базар пошел, типа работа через оле, попробвать аутглюк использовать? или, на сколько автоматично это все должно работать? средствами экселя можно создать письмо с аттачем, а дальше, если это не полный автомат, отправить можно будет и ручками. еще можно как-то через вызов какой-то системной функции сформировать письмо, а может быть и отрпавить, не в курсе. или некоторые мэил программы поддерживают работу с командной строкой, если этим воспользоваться, то передача файла значительно упростится. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.09.2006, 17:37 |
|
||
|
Генерация отчета в Excel и отправка его на почту!!!!
|
|||
|---|---|---|---|
|
#18+
сикока jiganОк, а может кто нить дать пример как и с помощью каких компонент можно работать с smtp сервером. а может раз уже базар пошел, типа работа через оле, попробвать аутглюк использовать? или, на сколько автоматично это все должно работать? средствами экселя можно создать письмо с аттачем, а дальше, если это не полный автомат, отправить можно будет и ручками. еще можно как-то через вызов какой-то системной функции сформировать письмо, а может быть и отрпавить, не в курсе. или некоторые мэил программы поддерживают работу с командной строкой, если этим воспользоваться, то передача файла значительно упростится. Не удержался: Очень информативные замечания!!! Браво!!! Ыщо можнА пачтальона нанять чтоб стоял рядом и распечатки забирал Ыщо можнА отправлять по локатьной сети (но только если есть доступ к Internet) !!! Ыщо можна ... Ыщо можна вообще ничего ни куда не отправлять. О! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.09.2006, 17:42 |
|
||
|
Генерация отчета в Excel и отправка его на почту!!!!
|
|||
|---|---|---|---|
|
#18+
Конечно, решение зависит от того, что нужно. Если нужно отсылать множество писем, но в полуатоматическом режиме, то возможно, решение с использованием внешнего мэйлера будет значительно проще и надёжней. Если круглосуточно, то да, придётся писать полностью свою прогу, её отлаживать, обрабатывать все ошибки и т.д. хотя никогда этим не занимался, возможно, это просто. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.09.2006, 17:44 |
|
||
|
Генерация отчета в Excel и отправка его на почту!!!!
|
|||
|---|---|---|---|
|
#18+
vanoman Не удержался: Очень информативные замечания!!! Браво!!! Ыщо можнА пачтальона нанять чтоб стоял рядом и распечатки забирал Ыщо можнА отправлять по локатьной сети (но только если есть доступ к Internet) !!! Ыщо можна ... Ыщо можна вообще ничего ни куда не отправлять. О! чуда! ты исходишь из своих максималистских позиций:) но обычно, если кто-то что-то уже реализовал, и это подходит, лучше это и использовать. Делать самому всё от начала до конца не есть правильное решение. С таким же успехом можно отказаться от использование экселя, фастрепорта и рисовать отчет вручную. Задача должна быть решена. Если это коммерческий продукт для тиражирования, то это одно дело, если это программа, которая будет использовать многократно, но в одном месте, совершенно другое. Сервис по отправке писем как в аутглюке ты все равно не реализуешь, или потратишь времени значительно больше чем на остальную часть программы. хотя обычно комсомол идет своим путем, приятной прогулки! :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.09.2006, 17:50 |
|
||
|
Генерация отчета в Excel и отправка его на почту!!!!
|
|||
|---|---|---|---|
|
#18+
сикокаКонечно, решение зависит от того, что нужно. Если нужно отсылать множество писем, но в полуатоматическом режиме, то возможно, решение с использованием внешнего мэйлера будет значительно проще и надёжней. RTFM MAPI (реализация см. выше) сикока Если круглосуточно, то да, придётся писать полностью свою прогу, её отлаживать, обрабатывать все ошибки и т.д. хотя никогда этим не занимался, возможно, это просто. www.codeguru.com (реализация см. выше) MAPI Недостатки: Отправка происходить при явном согласии пользователя - требуется его присутствие. ПРИМЕР: MS Outlook запрашивает разрешение на отправку Достоинства: Все что отправлено пользователем хранится в одном месте - "Исходящие". Почтовая программа - это ещё и Оганайзер пользователя Самопальный сервер SMTP: Недостатки: Возможны проблемы с отправкой сообщений. Из опыта. Exchange сервер разрешал отправлять только адресатам членам домена. Достоинства: Программер-Царь и бог. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.09.2006, 17:58 |
|
||
|
Генерация отчета в Excel и отправка его на почту!!!!
|
|||
|---|---|---|---|
|
#18+
Порограммеру нужно задачу решить, что бы юзеры были довольны. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.09.2006, 18:09 |
|
||
|
Генерация отчета в Excel и отправка его на почту!!!!
|
|||
|---|---|---|---|
|
#18+
сикокаПорограммеру нужно задачу решить, что бы юзеры были довольны. даже немного не так: программеру нужно задачу решить, что она выполняла свои функции. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.09.2006, 18:10 |
|
||
|
Генерация отчета в Excel и отправка его на почту!!!!
|
|||
|---|---|---|---|
|
#18+
сикокаПорограммеру нужно задачу решить, что бы юзеры были довольны. Привет! меня просто потрясла информативность Твоего высказывания: еще можно как-то через вызов какой-то системной функции сформировать письмо, а может быть и отрпавить, не в курсе Хочется задать вопрос: Зачем вообще писал? Вот собственно и всё. Мир! :-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.09.2006, 18:13 |
|
||
|
Генерация отчета в Excel и отправка его на почту!!!!
|
|||
|---|---|---|---|
|
#18+
Могу объяснить содержание: Это не указание на конкретное решение, а указание на одно из направлений. Если человеку будет это нужно, он найдёт эту системную функцию, а если он не знает про то, что она существует, то и искать не будет. Лично я знаю, что этот АПИ есть, но с ним никогда не работал. Другой смысловой нагрузки эта фраза не несла:) Кстати, мы и не воевали:) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.09.2006, 18:24 |
|
||
|
|

start [/forum/topic.php?fid=57&fpage=337&tid=2030577]: |
0ms |
get settings: |
8ms |
get forum list: |
17ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
93ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
67ms |
get tp. blocked users: |
2ms |
| others: | 238ms |
| total: | 449ms |

| 0 / 0 |
