Диплом: Автоматизация допечатного процесса создания, радактирования и заполнения кроссвордов,сканвордов и других головоломок для ООО МЕГА-ПРЕСС ГРУП.

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам
231
дебют;"и защита Филидора, и испанская партия, и ферзевой гамбит";;;;;0;;Рус-
ский;Активная;
мильтон;" Английский поэт, публицист 17 века, автор памфлетов «Ареопаги-
тика», «Защита английского народа».";;;;;0;;Русский;Активная;
набойка;"защита каблука обуви; ткань с набитым вручную узором, а также
сам узор";;;;;0;;Русский;Активная;
набоков;"Владимир (1898-1977) рус. и англоязычный писатель, ром. ""Защита
Лужина"", ""Дар"", ""Приглашение на казнь"", ""Пнин"", ""Лолита""";;;;;0;;Рус-
ский;Активная;
набоков;" Русско-американский писатель, автор романов «Машенька», «Ко-
роль, дама, валет», «Защита Лужина».";;;;;0;;Русский;Активная;
палладиум;"защита, оплот";;;;;0;;Русский;Активная;
палладиум;" Защита, оплот.";;;;;0;;Русский;Активная;
похвала;" Политическая сатира хорватского писателя 20 в. Славко Колара
«Мигудац, или Защита и ... трусости».";;;;;0;;Русский;Активная;
пояс;Защита для верности.;;;;;0;;Русский;Активная;
адвокатство;"Бесплатная защита";"Бесплат-;ная;защита" ;;0;;Русский;Актив-
ная;
анестезия;"Наркотическая защита" организма от хирургических стрес-
сов.;;;;;0;;Русский;Активная;
дипломник;Ему предстоит защита;Ему ;предстоит;защита ;;0;;Русский;Актив-
ная;
оплот;Надежная защита;Надеж-;ная;защита;;1;Много кроссвордов 2014 4;Рус-
ский;Активная;
оплот;Защита;Защита ;;;;0;;Русский;Активная;
оплот;Защита наподобие цитадели;Защита ;наподобие;цитадели;;0;;Рус-
ский;Активная;
эфес;Защита для руки Смехова-Атоса;;;;;0;;Русский;Активная;
адвокатство;"2. (перен. разг.) Действия того, кто защищает кого-л., что-л.; за-
ступничество, защита";;;;;0;;Русский;Активная;
гидроизоляция;Защита от воды.;;;;;0;;Русский;Активная;
232
гидроизоляция;" Защита конструкций, зданий и сооружений от воздействия на
них воды и других жидкостей, предупреждение утечки технологических жидко-
стей, а также средства, применяемые для этих целей.";;;;;0;;Русский;Активная;
грибоедов;" Защита двух женщин-армянок, попавших в гарем к знатному пер-
сиянину стала одним из поводов расправы над этим дипломатом.";;;;;0;;Рус-
ский;Активная;
оборона;защита города от нападения;Защита;города ;от напа-;дения;1;Все о
ТВ 2015 13;Русский;Активная;
отопление;Защита жилья от холодов.;;;;;0;;Русский;Активная;
шлем;Защита мотоциклиста.;;;;;0;;Русский;Активная;
прищур;"Автозащита" глаз от пыли;;;;;0;;Русский;Активная;
амулет;Защита от дурного глаза.;Защита;от дур-;ного ;глаза. ;1;Сканворды
2014 9;Русский;Активная;
бампер;Передняя защита авто;Перед-;няя;защита ;авто ;0;;Русский;Активная;
отвод;Защита от удара молнии;Защита;от;удара;молнии;2;Сканворды 2015
3;Русский;Активная;
D-4 Листинг функции сохранения документа, событие пользователь-
ского интерфейса
///<function>
/// void CXWordView::OnSelectPublicate (void)
///</function>
///<summary>
/// Adding page to the last issued publication by publication ID
///</summary>
///<returns>
/// Returns nothing
///</returns>
void CXWordView::OnSelectPublicate (void)
{
CWaitCursor cur;
CXWordDoc *pDoc = GetDocument ();
ASSERT(pDoc);
try
{
//// Check if the page in the database
//// Block for session
//{
// CSession session;
// theApp.m_DataConnection.OpenNewSession (session);
// CString where_clause;
233
// where_clause.Format (L" WHERE IDCWPublicationPage = %lld)", pDoc-
>m_IDCWPublicationPage);
// CEntityHelper <CCWPublicationPage, CCWPublicationPageTable> enti-
tyPublicatioPage(session, where_clause);
//}
if (pDoc->m_IDCWPublicationPage)
{
if (AfxMessageBox (CLocaleString(IDS_QUERY_PAGE_UPDATE), MB_YESNO) !=
IDYES)
return;
if (pDoc->UpdateDocumentInPublication() == S_OK)
{
theApp.OutputInfo (IDS_MSG_PAGE_UPDATED);
return;
}
}
//else
{
if (AfxMessageBox (CLocaleString(IDS_QUERY_PUBLISH), MB_YESNO) !=
IDYES)
return;
//
// Open separate session for transaction
//
CSession session;
theApp.m_DataConnection.OpenNewSession (session);
//
// Open Page Tables
//
CString where_clause;
where_clause.Format (L" WHERE IDCWPublication IN (SELECT MAX(IDCW-
Publication) FROM CWPublication WHERE IDPublication = %lld)", pDoc->m_IDPublication);
CEntityHelper <CCWPublication, CCWPublicationTable> entityCWPublica-
tion (session, where_clause);
if (entityCWPublication->GetFirst ())
{
pDoc->UpdateAllViews (this);
if ( pDoc->StoreDocumentToPublication (&entityCWPublication)
== S_OK)
{
theApp.OutputInfo (IDS_MSG_PUBLISHED);
return;
}
}
else
theApp.OutputInfo (IDS_MSG_ERROR_PUBLICATION_ISNOT_ADDED);
}
}
catch (...)
{
}
theApp.OutputInfo (IDS_MSG_ERROR_PUBLISHING);
}
234
D-5 Листинг функции сохранения документа, функция сохранения
///<function>
/// HRESULT CXWordDoc::StoreDocumentToPublication(CCWPublication* pCWPublication)
///</function>
///<summary>
/// Storing the page in the publication.
///</summary>
///<param name=pCWPublication>Pointer to the CWPablication entity with current record of
the target publication.</param>
///<returns>
/// Returns S_OK if success, E_FAIL or other error.
///</returns>
HRESULT CXWordDoc::StoreDocumentToPublication(CCWPublication* pCWPublication)
{
//
// Check the page size compatibility
//
HRESULT hr = theApp.m_ClassifManager.CheckSheetSize (theApp.m_DataConnection, pCW-
Publication->IDSheetSize, m_SizeVertical, m_SizeHorizontal);
if (hr != S_OK)
{
//
// Warning user but allow save the page with any page size.
//
theApp.OutputInfo (IDS_SHEET_SIZE_ERROR);
//return E_FAIL;
}
//
// Check if all answers were generated
//
if (!IsAllObjectsFilled ())
{
theApp.OutputInfo (IDS_FILLS_ABSENT_ERROR);
return E_FAIL;
}
//
// Create stream
//
COleStreamFile file;
BOOL res = file.CreateMemoryStream ();
ASSERT (res);
//
// Create thumbnail image
//
HBITMAP hbmp = NULL;
WTS_ALPHATYPE at;
GetThumbnail (100, &hbmp, &at);
CPictureHolder pich;
pich.CreateFromBitmap (hbmp,0,TRUE);
//
// Open separate session for transaction
//
CSession session;
theApp.m_DataConnection.OpenNewSession (session);
try
{
235
CString publication_where_clause;
publication_where_clause.Format (L" WHERE IDCWPublication = %llu",
(ULONGLONG)pCWPublication->IDCWPublication);
//
// Open CWPublicasions Table
//
CEntityHelper <CCWPublication, CCWPublicationTable> entityCWPublication
(session, publication_where_clause);
//
// Open Page Tables
//
CEntityHelper <CCWPublicationPage, CCWPublicationPageTable> entityCWPubli-
cationPage (session);
CEntityHelper <CCWPublicationPageData, CCWPublicationPageDataTable> enti-
tyCWPublicationPageData(session);
//
// Start Transaction
//
CTransactionHelper transaction (session);
//
// Insert the page information
//
entityCWPublicationPage->IDCWPublication = pCWPublication->IDCWPublication;
entityCWPublicationPage->m_WhereClause = publication_where_clause; //.For-
mat (L"IDCWPublication = %g", pCWPublication->IDCWPublication);
entityCWPublicationPage->PageNumber = entityCWPublicationPage->GetSize() +
1;
entityCWPublicationPage->m_WhereClause = L"";
entityCWPublicationPage->PreviewPageImage = pich.GetPictureDispatch ();
if (!entityCWPublicationPage->Put ())
throw E_PUTPUBLICATIONPAGE;
//
// Obtaining the increased ID in IDCWPublicationPage
//
entityCWPublicationPage->m_Table->m_dwIDCWPublicationStatus = DBSTA-
TUS_S_IGNORE;
entityCWPublicationPage->m_Table->m_dwIDCWPublicationPageStatus = DBSTA-
TUS_S_OK; // !
entityCWPublicationPage->m_Table->m_dwPageNumberStatus = DBSTATUS_S_IGNORE;
entityCWPublicationPage->m_Table->m_dwPreviewPageImageLength = 0;
entityCWPublicationPage->m_Table->m_dwPreviewPageImageStatus = DBSTA-
TUS_S_IGNORE;
entityCWPublicationPage->m_Table->m_dwRowTimeStampStatus = DBSTATUS_S_IG-
NORE;
if (!entityCWPublicationPage->Get ())
throw E_GETPUBLICATIONPAGE;
//
// Set document data
//
m_IDCWPublicationPage = (LONGLONG)entityCWPublicationPage->IDCWPublication-
Page;
m_IDPublication = (ULONGLONG)pCWPublication->IDPublication;
{
// Save document to memory (stream)
CArchive ar (&file, CArchive::store);
ar.m_pDocument = this;
//
236
// Warning !!!
// Serialization with big images very Slow.
//
Serialize (ar);
}
//
// Set stream pointer to begin
//
file.SeekToBegin ();
//
// Insert page data from memory stream
//
entityCWPublicationPageData->IDCWPublicationPage = entityCWPublicationPage-
>IDCWPublicationPage;
entityCWPublicationPageData->PageDocument = file.GetStream();
if (!entityCWPublicationPageData->Put())
throw E_PUTPUBLICATIONPAGEDATA;
HRESULT hr = StoreDocumentModels(session, entityCWPublicationPage->IDCWPublica-
tionPage);
if (FAILED(hr))
throw hr;
transaction.Commit ();
CString newTitle;
newTitle.Format (L"%s (%s Page-%d)", (LPCTSTR)GetName(), entityCWPublica-
tionPage->_valuePublicationName.m_Value.bstrVal, entityCWPublicationPage->PageNumber);
SetTitle (newTitle);
ClearPathName ();
}
catch (HRESULT hr)
{
int ids = -1;
switch (hr)
{
case E_PUTPUBLICATIONPAGE :
case E_GETPUBLICATIONPAGE :
case E_PUTPUBLICATIONPAGEDATA :
case E_PUTANSWERCELL : ids = IDS_PUTPUBLICATIONPAGE_ERROR;
break;
case E_PUTPUBLICATIONPAGEMODEL :
case E_GETTPUBLICATIONPAGEMODEL : ids = IDS_PUTPUBLICATIONPAGEMODEL_ERROR;
break;
case E_PUTANSWER :
case E_GETANSWER : ids = IDS_PUTPUBLICATION-
PAGEANSWER_ERROR; break;
case E_PUTANSWERWORD : ids = IDS_PUTPUBLICATIONANSWERWORD_ER-
ROR; break;
case E_PUTMODELPICTURE : ids = IDS_PUTPUBLICATIONPAGEPIC-
TURE_ERROR; break;
}
theApp.OutputInfo (ids);
return hr;
}
return S_OK;
}
237
D-6 Листинг функции сохранения документа, модификация документа
///<function>
/// HRESULT CXWordDoc::UpdateDocumentInPublication (void)
///</function>
///<summary>
/// Storing the page in the publication.
///</summary>
///<param name=pCWPublication>Pointer to the CWPablication entity with current record of
the target publication.</param>
///<returns>
/// Returns S_OK if success, E_FAIL or other error.
///</returns>
HRESULT CXWordDoc::UpdateDocumentInPublication (void)
{
//
// Check if all answers were generated
//
//if (!IsAllObjectsFilled ())
//{
// theApp.OutputInfo (IDS_FILLS_ABSENT_ERROR);
// return E_FAIL;
//}
//
// Create stream
//
COleStreamFile file;
BOOL res = file.CreateMemoryStream ();
ASSERT (res);
{
// Save document to memory (stream)
CArchive ar (&file, CArchive::store);
ar.m_pDocument = this;
//
// Warning !!!
// Serialization with big images very Slow.
//
Serialize (ar);
}
//
// Set stream pointer to begin
//
file.SeekToBegin ();
//
// Create thumbnail image
//
HBITMAP hbmp = NULL;
WTS_ALPHATYPE at;
GetThumbnail (100, &hbmp, &at);
CPictureHolder pich;
pich.CreateFromBitmap (hbmp,0,TRUE);
//
// Open separate session for transaction
//
CSession session;
theApp.m_DataConnection.OpenNewSession (session);
238
try
{
//
// Open Page Tables
//
CString publication_where_clause;
publication_where_clause.Format (L" WHERE IDCWPublicationPage = %llu",
m_IDCWPublicationPage);
CEntityHelper <CCWPublicationPage, CCWPublicationPageTable> entityCWPubli-
cationPage (session, publication_where_clause);
CEntityHelper <CCWPublicationPageData, CCWPublicationPageDataTable> enti-
tyCWPublicationPageData(session, publication_where_clause);
//
// Start Transaction
//
CTransactionHelper transaction (session);
//
// Insert the page information
//
entityCWPublicationPage->SetBegin ();
if (!entityCWPublicationPage->GetNext())
throw E_GETPUBLICATIONPAGE;
entityCWPublicationPage->PreviewPageImage = pich.GetPictureDispatch ();
if (!entityCWPublicationPage->Modify ())
throw E_PUTPUBLICATIONPAGE;
//
// Insert page data from memory stream
//
entityCWPublicationPageData->SetBegin ();
if (!entityCWPublicationPageData->GetNext())
throw E_PUTPUBLICATIONPAGEDATA;
entityCWPublicationPageData->PageDocument = file.GetStream();
if (!entityCWPublicationPageData->Modify())
throw E_PUTPUBLICATIONPAGEDATA;
// !!!!!!!!!!!!
// TODO: Modify answers
CCommand<> cmd;
CString str;
str.Format (L"DELETE FROM CWPublicationPageModels WHERE IDCWPublicationPage
= %llu", (LONGLONG)entityCWPublicationPage->IDCWPublicationPage);
HRESULT hr = cmd.Open (session, str);
if (FAILED(hr))
throw hr;
hr = StoreDocumentModels(session, entityCWPublicationPage->IDCWPublicationPage);
if (FAILED(hr))
throw hr;
transaction.Commit ();
}
catch (HRESULT hr)
{
int ids = -1;
switch (hr)
{
case E_PUTPUBLICATIONPAGE :
case E_GETPUBLICATIONPAGE :
239
case E_PUTPUBLICATIONPAGEDATA :
case E_PUTANSWERCELL : ids = IDS_PUTPUBLICATIONPAGE_ERROR;
break;
case E_PUTPUBLICATIONPAGEMODEL :
case E_GETTPUBLICATIONPAGEMODEL : ids = IDS_PUTPUBLICATIONPAGEMODEL_ERROR;
break;
case E_PUTANSWER :
case E_GETANSWER : ids = IDS_PUTPUBLICATION-
PAGEANSWER_ERROR; break;
case E_PUTANSWERWORD : ids = IDS_PUTPUBLICATIONANSWERWORD_ER-
ROR; break;
case E_PUTMODELPICTURE : ids = IDS_PUTPUBLICATIONPAGEPIC-
TURE_ERROR; break;
}
theApp.OutputInfo (ids);
return hr;
}
return S_OK;
}
D-7 Листинг функции сохранения документа, сохранение ответов
///<function>
/// HRESULT CXWordDoc::StoreDocumentModels(CSession& session, double publication_page_id)
///</function>
///<summary>
/// Storing the page data in the publication.
///</summary>
///<param name=session>Current session of the target publication.</param>
///<param name=publication_page_id>Current page id of the target publication.</param>
///<returns>
/// Returns S_OK if success, E_FAIL or other code if error.
///</returns>
HRESULT CXWordDoc::StoreDocumentModels(CSession& session, double publication_page_id)
{
try
{
//
// Open models table
//
//CEntityHelper <CCWPublicationPageModels, CCWPublicationPageModelsTable>
entityCWPublicationPageModels(session);
CEntityHelper <CCWPublicationPageModels0, CCWPublicationPageModelsTable0>
entityCWPublicationPageModels(session);
CEntityHelper <CCWPublicationPageModelPictures, CCWPublicationPageModel-
PicturesTable> entityCWPublicationPageModelPictures(session);
//
// Open answers tables
//
//CEntityHelper <CCWAnswers, CCWAnswersTable> entityCWAnswers(session);
CEntityHelper <CCWAnswers0, CCWAnswersTable0> entityCWAnswers(session);
CEntityHelper <CCWAnswerCells, CCWAnswerCellsTable> entityCWAnswer-
Cells(session);
CEntityHelper <CCWAnswerDigit, CCWAnswerDigitTable> enti-
tyCWAnswerDigit(session);
CEntityHelper <CCWAnswerPicture, CCWAnswerPictureTable> entityCWAnswerPic-
ture(session);
CEntityHelper <CCWAnswerSymbol, CCWAnswerSymbolTable> entityCWAnswerSym-
bol(session);
240
CEntityHelper <CCWAnswerWord, CCWAnswerWordTable> entityCWAnswerWord(ses-
sion);
POSITION pos = m_objects.GetHeadPosition();
while (pos != NULL)
{
CDrawObject* pObj = m_objects.GetNext(pos);
if (pObj->IsKindOf(RUNTIME_CLASS(CDrawOleObj)))
{
CDrawOleObj *pOleObj = dynamic_cast<CDrawOleObj*>(pObj);
ASSERT (pOleObj && pOleObj->m_pClientItem);
CLSID clsID;
pOleObj->m_pClientItem->GetClassID (&clsID);
if (clsID == CLSID_AxDrawXWord)
{
LPDISPATCH disp = pOleObj->m_pClientItem->GetIDispatch
();
ASSERT (disp);
CDAxDrawXWord xword;
xword.AttachDispatch (disp);
//
// Insert model identifier
//
entityCWPublicationPageModels->IDCWPublicationPage =
publication_page_id;
entityCWPublicationPageModels->IDCWModel = (dou-
ble)xword.GetXWordIDModel ();
if (!entityCWPublicationPageModels->Put())
throw E_PUTPUBLICATIONPAGEMODEL;
entityCWPublicationPageModels->m_Table->m_dwIDCWPubli-
cationPageModelStatus = DBSTATUS_S_OK;
entityCWPublicationPageModels->m_Table-
>m_dwIDCWModelStatus = DBSTATUS_S_IGNORE;
entityCWPublicationPageModels->m_Table->m_dwIDCWPubli-
cationPageStatus = DBSTATUS_S_IGNORE;
//entityCWPublicationPageModels->m_Table->m_dwGlobal-
NameStatus = DBSTATUS_S_IGNORE;
//entityCWPublicationPageModels->m_Table->m_dwPublica-
tionYearStatus = DBSTATUS_S_IGNORE;
//entityCWPublicationPageModels->m_Table->m_dwPublica-
tionNumberStatus = DBSTATUS_S_IGNORE;
//entityCWPublicationPageModels->m_Table->m_dwPage-
NumberStatus = DBSTATUS_S_IGNORE;
if (!entityCWPublicationPageModels->Get ())
throw E_GETTPUBLICATIONPAGEMODEL;
//
// Do not write answers for answer grid
//
if (xword.GetXWordIsAnswer())
continue;
//
// Checking words for duplication
//
int size = xword.XWordWordsListSize ();
CString idlist = L"(";
for (int i = 0; i < size; i++)
{
CComVariant var;
xword.XWordGetWordData (i, wdtWordID, &var);

Смотрите также:

"Автоматизация обработки заявок ООО "Проектно-Строительная Компания"
"Автоматизация процесса аттестации персонала для ООО "Нэт Бай Нэт Холдинг"
"Анализ интернет-активности конкурентов ( на примере конкурентов "Газпром нефть")
"Бухгалтерский учёт и аудит расчётов с подотчётними лицами в организации на примере ООО "ЛОЦ 10""
«Психологическое сопровождение персонала в организации на примере ООО «Крокус»
Cовершенствование деловой оценки персонала в организации (на примере ООО "Даймонд кейтеринг развитие")
IPO - инструмент финансирования деятельности организации. На примере ПАО «Нефтяная компания «Лукойл»
PR как средство продвижения организации (на примере ПАО "Тамбовский завод "Комсомолец им. Н.С. Артемова")
PR-коммуникации в сфере общественного питания (на примере кафе-кондитерской «Cream Cheese»)
SMM как средство повышения эффективности работы учреждений социокультурной сферы (на примере Малого театра)