![Dialog](https://i.stack.imgur.com/2hAG2.png)
У меня есть сетка, как прикрепленное изображение.
Это приложение MFC, в котором у меня есть диалог с ID, Desc и Grid.Сетка имеет три поля.И все эти поля хранятся в одной и той же таблице.
Моя логика работает для ADD, а в случае EDIT - с трудностями при обновлении и удалении строки сетки.
bool CEditCCBTemplateDlg::UpdateObject()
{
CString strMessage = ValidateUccs();
if (strMessage.GetLength() > 0) {
return false;
}
if ( m_dlgType != display ) {
CString sRuleID = _T("");
CString sPayLoad = _T("");
DBRaw rawRuleID, rawPayLoad;
bool delExistingObj = CCBTemplate::Mgr().DeleteAll((DBlong)m_TempRuleKey);
int numRows= m_pRulesInfoGrid->GetRowCount();
/*during edit, m_pObject will have edited temp key and description but i need to consider the grid also so
i am deleteing all the db entries with that temp key and recreating object
*/
/*
if(!m_pObject)
m_pObject = new CCBTemplate();
else
m_pObject->SetState(CDBObject::altered);
If i use it like this , t works with only one row.
*/
for( int nRowIndex = 1; nRowIndex <= m_pRulesInfoGrid->GetRowCount(); nRowIndex++) {
m_pObject = new CCBTemplate();
CCBTemplate* lpDBObject = static_cast< CCBTemplate* >( m_pObject ) ;
lpDBObject->SetTempRuleKeyUCCS(m_TempRuleKey);
lpDBObject->SetDescription(m_UIDescr);
sRuleID = m_pRulesInfoGrid->GetValueRowCol(nRowIndex,RULE_ID_COL);
lpDBObject->SetUCCSRuleID(rawRuleID);
sPayLoad = m_pRulesInfoGrid->GetValueRowCol(nRowIndex,PAYLOAD_COL);
lpDBObject->SetUCCSPayLoad(rawPayLoad);
lpDBObject->SetUCCSSequenceNum(_ttol(m_pRulesInfoGrid->GetValueRowCol(nRowIndex,SEQ_ID_COL)));
CCBTemplate::Mgr().Add(lpDBObject,NULL );
}
}
return true;
}
Предположим, что при редактировании, если я изменю объект диалога, я получу один объект, и у меня не будет контроля над сеткой.Поэтому я игнорирую существующий m_pObject
(dialogObjetct) и создаю новый объект для каждой строки сетки.
Однако из метода setdata () он получает старый объект и не отображает правки.
Есть ли какой-нибудь способ, которым я могу обработать детали Temprulekey и Grid в Edit.
Я действительно ценю ваши предложения.спасибо