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

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам
241
CString sid;
sid.Format (L"%lld,", (LONGLONG)var.dblVal);
idlist += sid;
}
idlist = idlist.Trim(L" ,");
idlist += L")";
CSQLFileResource used_words_format_sql (IDR_SQL_SE-
LECT_USED_WORDS_DEFS, g_Instance /*From CLocaleString*/);
CString sql;
if (used_words_format_sql.GetNextSQLCommand(sql))
{
CString set_sql;
set_sql.Format (sql, m_IDPublication, m_ID-
Publication);
sql.Format (L"SELECT w.word FROM ( %s ) t JOIN
Words w ON w.IDWord = t.IDWord WHERE t.IDWord IN %s ", set_sql, idlist);
CCommand<CDynamicAccessor> command;
HRESULT hr = command.Open (session, sql);
if (FAILED(hr))
throw hr;
hr = command.MoveFirst();
if (FAILED(hr))
throw hr;
CString dupl_words;
while( SUCCEEDED( hr ) && hr != DB_S_ENDOFROWSET
)
{
DBSTATUS dbstatus;
CString word;
//
// word field
//
command.GetStatus (L"word", &dbstatus);
if (dbstatus == DBSTATUS_S_OK)
{
word = (LPCTSTR) command.Get-
Value(L"word");
dupl_words += L"\"" + word +
L"\",";
}
hr = command.MoveNext( );
}
dupl_words = dupl_words.Trim (L" ,");
if (dupl_words.GetLength())
{
theApp.OutputInfo (-1, dupl_words);
throw E_PUTANSWERWORD;
}
}
//
// Read all words from crossword puzzle
//
//int size = xword.XWordWordsListSize ();
for (int i = 0; i < size; i++)
{
//
// Write new answer
242
//
entityCWAnswers->IDCWPublicationPageModel = en-
tityCWPublicationPageModels->IDCWPublicationPageModel;
entityCWAnswers->AnswerType = 1; // Word Type
if (!entityCWAnswers->Put ())
throw E_PUTANSWER;
entityCWAnswers->m_Table->m_dwIDCWAnswerStatus =
DBSTATUS_S_OK;
entityCWAnswers->m_Table->m_dwIDCWPublication-
PageModelStatus = DBSTATUS_S_IGNORE;
entityCWAnswers->m_Table->m_dwAnswerTypeStatus =
DBSTATUS_S_IGNORE;
if (!entityCWAnswers->Get ())
throw E_GETANSWER;
//
// Write to answers ID of the word and ID of the
definition
//
entityCWAnswerWord->IDCWAnswer = enti-
tyCWAnswers->IDCWAnswer;
CComVariant var;
xword.XWordGetWordData (i, wdtWordID, &var);
entityCWAnswerWord->IDWord = var.dblVal;
xword.XWordGetWordData (i, wdtDefID, &var);
entityCWAnswerWord->IDDef = var.dblVal;
// If word does not have a definition set ID of
empty dfefinition
if (entityCWAnswerWord->IDDef == 0)
{
CString sSQL;
sSQL.Format (L"SELECT IDDef FROM Defs
WHERE def = N'*'");
CCommand<CDynamicAccessor> command;
HRESULT hr = command.Open (theApp.m_Data-
Connection.m_session, sSQL);
if (FAILED(hr))
throw hr;
hr = command.MoveFirst();
if (FAILED(hr))
throw hr;
DB_NUMERIC num;
if(command.GetValue(L"IDDef", &num))
{
CXWDBVariant value = num;
entityCWAnswerWord->IDDef =
value.dblVal;
}
else
throw E_PUTANSWERWORD;
}
if (!entityCWAnswerWord->Put ())
throw E_PUTANSWERWORD;
//
// Write cells of the word
//
xword.XWordGetWordData (i, wdtCells, &var);
CComSafeArray<int> cells(var.parray);
ASSERT (cells.GetCount() != 0);
243
for (int i = 0; i < (int)cells.GetCount(); i++)
{
entityCWAnswerCells->IDCWAnswer = enti-
tyCWAnswers->IDCWAnswer;
entityCWAnswerCells->CellNumber =
cells[i];
if (!entityCWAnswerCells->Put ())
throw E_PUTANSWERCELL;
}
}
//
// Read all blocks
//
int blocks_number = xword.XWordGetNumberOfBlocks ();
for (int i = 0; i < blocks_number; i++)
{
//
// Write picture ID of the block
//
CComPtr <IXWordCell> pBlock;
pBlock.Attach (reinterpret_cast<IXWordCell*>
(xword.XWordGetBlock (i)));
ASSERT (pBlock);
LONGLONG pictureID;
pBlock->get_XCellPictureID (&pictureID);
if (pictureID)
{
entityCWPublicationPageModelPictures-
>IDCWPublicationPageModel = entityCWPublicationPageModels->IDCWPublicationPageModel;
entityCWPublicationPageModelPictures->IDI-
mage = (double)pictureID;
if (!entityCWPublicationPageModelPictures-
>Put ())
throw E_PUTMODELPICTURE;
}
}
}
}
}
}
catch(HRESULT hr)
{
return hr;
}
return S_OK;
}

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

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