Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 21.05.2013, 15:28   #1
Major39
Новичок
Джуниор
 
Регистрация: 21.05.2013
Сообщений: 2
По умолчанию Сложность с HTML-отчётом

Встал на одном месте, не получается в среде с++ создать диагностический отчёт html и сделать его отправку на сервер. Так что прошу в этом вашей помощи.
Major39 вне форума Ответить с цитированием
Старый 21.05.2013, 17:52   #2
hon
Форумчанин
 
Регистрация: 08.06.2011
Сообщений: 693
По умолчанию

В чем проблема? Где наработки?
hon вне форума Ответить с цитированием
Старый 21.05.2013, 18:07   #3
Major39
Новичок
Джуниор
 
Регистрация: 21.05.2013
Сообщений: 2
По умолчанию

Вот наработка кода, концепция есть...но нет завершенности, мне нужно сделать чтобы отправлялись отчёты

/*
----------------------------------------------------------------------------------------------------------------
Function name : CSockCommanderDlg::OnConnect
Description :
Return type : void
----------------------------------------------------------------------------------------------------------------
*/
void CSockCommanderDlg::OnConnect()
{
int status = FALSE;

UpdateData(TRUE);

if(m_ip.IsEmpty()){
MessageBeep(MB_ICONQUESTION);
GetDlgItem(IDC_IP)->SetFocus();
return;
}

if(m_port.IsEmpty()){
MessageBeep(5000);
GetDlgItem(MB_ICONQUESTION)->SetFocus();
return;
}

m_ptrComSocket = new CCommandSocket(this);

if(!m_ptrComSocket->Create(PORT,SOCK_STREAM)){
status = FALSE;
AfxMessageBox(MSG_SOCKET_CREAT_FAIL );
}
else if(!m_ptrComSocket->Connect((LPCTSTR)m_ip, atoi(m_port))) {
status = FALSE;
AfxMessageBox(MSG_SOCKET_CONCT_FAIL );
}
else{
status = TRUE;
}
if(status == FALSE){
delete m_ptrComSocket;
m_ptrComSocket = NULL;
m_nConnected = FALSE;
GetDlgItem(IDC_TEXT)->SetWindowText("Connection to "+m_ip+" failed");
}
else{
m_nConnected = TRUE;
GetDlgItem(IDC_TEXT)->SetWindowText("Successfully connected to "+m_ip);
}

}

/*
----------------------------------------------------------------------------------------------------------------
Function name : CSockCommanderDlg::OnSend
Description :
Return type : void
----------------------------------------------------------------------------------------------------------------
*/
void CSockCommanderDlg::OnSend()
{
UpdateData(TRUE);
if(!m_nConnected) {
return;
}
if(m_msg.IsEmpty()){
MessageBeep(MB_ICONQUESTION);
GetDlgItem(IDC_MSG)->SetFocus();
return;
}
if(!m_ptrComSocket->Send((void *)m_msg.GetBuffer(m_msg.GetLength() ), m_msg.GetLength())){
AfxMessageBox(MSG_SOCKET_SEND_FAIL) ;
}

if(m_msg.Find("FILEGET:", 0) != -1) {
if(!ReceiveFile(m_msg, m_csFname)){
AfxMessageBox("Receive File Failed");
}
else{
AfxMessageBox("Succesfully received file " + m_csFname);
}
}
}

/*
----------------------------------------------------------------------------------------------------------------
Function name : CSockCommanderDlg::OnDisconnect
Description :
Return type : void
----------------------------------------------------------------------------------------------------------------
*/
void CSockCommanderDlg::OnDisconnect()
{
if(m_nConnected){
m_ptrComSocket->Close();
delete m_ptrComSocket;
m_nConnected = FALSE;
GetDlgItem(IDC_TEXT)->SetWindowText("Disconnected from "+m_ip);
}
}

void CSockCommanderDlg::OnCancel()
{
if(m_nConnected){
OnDisconnect();
}

CDialog::OnCancel();
}

/*
----------------------------------------------------------------------------------------------------------------
Function name : CSockCommanderDlg::ReceiveFile
Description :
Return type : BOOL
Argument : CString csMsg
Argument : CString csFileName
----------------------------------------------------------------------------------------------------------------
*/
BOOL CSockCommanderDlg::ReceiveFile(CStr ing csMsg, CString csFileName)
{

DWORD dwFlen = 0;

m_ptrComSocket->Receive(&dwFlen, 4);

if(dwFlen == -1) return FALSE;

gMem = GlobalAlloc(GHND, dwFlen);
if(!gMem) {
AfxMessageBox("Unable to alloc memory");
return(FALSE);
}
byte* data;
data = (byte*)GlobalLock(gMem);

m_ptrComSocket->Receive(data, dwFlen);

CFile cf;
try{
if(!cf.Open(csFileName, CFile::modeCreate | CFile::modeWrite | CFile::typeBinary)){
GlobalUnlock(gMem);
GlobalFree(gMem);
return FALSE;
}
}
catch(...){
return(FALSE);
}

cf.Write(data, dwFlen);

cf.Close();

GlobalUnlock(gMem);
GlobalFree(gMem);
return TRUE;
}
Major39 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Работа с Fast Report отчётом из Delphi. Leximus Общие вопросы Delphi 1 17.03.2012 00:25
Поиск по названию с отчётом. Jleksern Общие вопросы Delphi 13 29.01.2012 10:31
нужна помощь с отчётом KurtWagner Общие вопросы Delphi 8 01.02.2009 16:05
Помогите с отчётом Axelon Microsoft Office Access 2 31.05.2008 14:07