![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы
![]() |
Поиск в этой теме
![]() |
![]() |
#1 |
Новичок
Джуниор
Регистрация: 21.05.2013
Сообщений: 2
|
![]()
Встал на одном месте, не получается в среде с++ создать диагностический отчёт html и сделать его отправку на сервер. Так что прошу в этом вашей помощи.
|
![]() |
![]() |
![]() |
#2 |
Форумчанин
Регистрация: 08.06.2011
Сообщений: 693
|
![]()
В чем проблема? Где наработки?
|
![]() |
![]() |
![]() |
#3 |
Новичок
Джуниор
Регистрация: 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; } |
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Работа с 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 |