void CTDLFindTaskExpressionListCtrl::PrepareControl(CWnd& ctrl, int nRow, int nCol) { UNREFERENCED_PARAMETER(ctrl); if (!GetRuleCount()) return; SEARCHPARAM& sp = m_aSearchParams[nRow]; switch (nCol) { case ATTRIB: { ASSERT (&ctrl == &m_cbAttributes); m_cbAttributes.SelectAttribute(sp); CDialogHelper::RefreshMaxDropWidth(m_cbAttributes); } break; case OPERATOR: { ASSERT (&ctrl == &m_cbOperators); m_cbOperators.ResetContent(); FIND_ATTRIBTYPE nType = sp.GetAttribType(); switch (nType) { case FT_STRING: AddOperatorToCombo(FOP_SET); AddOperatorToCombo(FOP_NOT_SET); AddOperatorToCombo(FOP_EQUALS); AddOperatorToCombo(FOP_NOT_EQUALS); AddOperatorToCombo(FOP_INCLUDES); AddOperatorToCombo(FOP_NOT_INCLUDES); break; case FT_INTEGER: case FT_DOUBLE: case FT_TIME: AddOperatorToCombo(FOP_SET); AddOperatorToCombo(FOP_NOT_SET); AddOperatorToCombo(FOP_EQUALS); AddOperatorToCombo(FOP_NOT_EQUALS); AddOperatorToCombo(FOP_GREATER); AddOperatorToCombo(FOP_GREATER_OR_EQUAL); AddOperatorToCombo(FOP_LESS); AddOperatorToCombo(FOP_LESS_OR_EQUAL); break; case FT_DATE: AddOperatorToCombo(FOP_SET); AddOperatorToCombo(FOP_NOT_SET); // fall thru case FT_DATE_REL: AddOperatorToCombo(FOP_EQUALS); AddOperatorToCombo(FOP_NOT_EQUALS); AddOperatorToCombo(FOP_AFTER); AddOperatorToCombo(FOP_ON_OR_AFTER); AddOperatorToCombo(FOP_BEFORE); AddOperatorToCombo(FOP_ON_OR_BEFORE); break; case FT_BOOL: AddOperatorToCombo(FOP_SET); AddOperatorToCombo(FOP_NOT_SET); break; } CDialogHelper::SelectItemByData(m_cbOperators, (DWORD)sp.GetOperator()); } break; case ANDOR: { ASSERT (&ctrl == &m_cbAndOr); if (sp.GetAnd()) m_cbAndOr.SelectString(-1, CEnString(IDS_FP_AND)); else m_cbAndOr.SelectString(-1, CEnString(IDS_FP_OR)); } break; case VALUE: if (&ctrl == &m_dtcDate) { // if the rule does not yet have a date then set it now to // the current date because that's whats the date ctrl will default to if (!CDateHelper::IsDateSet(sp.ValueAsDate())) { sp.SetValue(COleDateTime::GetCurrentTime()); SetItemText(nRow, nCol, sp.ValueAsDate().Format(VAR_DATEVALUEONLY)); } else { m_dtcDate.SetTime(sp.ValueAsDouble()); } } else if (&ctrl == &m_eTime) { m_eTime.SetTime(sp.ValueAsDouble(), (TCHAR)sp.GetFlags()); } else if (&ctrl == &m_cbListValues) { m_cbListValues.ResetContent(); TDCCUSTOMATTRIBUTEDEFINITION attribDef; if (CTDCCustomAttributeHelper::GetAttributeDef(sp.GetAttribute(), m_aAttribDefs, attribDef)) { if (attribDef.IsList()) { int nItem = attribDef.aDefaultListData.GetSize(); while (nItem--) m_cbListValues.AddString(attribDef.aDefaultListData[nItem]); nItem = attribDef.aAutoListData.GetSize(); while (nItem--) m_cbListValues.AddString(attribDef.aAutoListData[nItem]); } } else { switch (sp.GetAttribute()) { case TDCA_CATEGORY: CDialogHelper::SetComboBoxItems(m_cbListValues, m_tldListContents.aCategory); break; case TDCA_ALLOCTO: CDialogHelper::SetComboBoxItems(m_cbListValues, m_tldListContents.aAllocTo); break; case TDCA_ALLOCBY: CDialogHelper::SetComboBoxItems(m_cbListValues, m_tldListContents.aAllocBy); break; case TDCA_VERSION: CDialogHelper::SetComboBoxItems(m_cbListValues, m_tldListContents.aVersion); break; case TDCA_TAGS: CDialogHelper::SetComboBoxItems(m_cbListValues, m_tldListContents.aTags); break; case TDCA_STATUS: CDialogHelper::SetComboBoxItems(m_cbListValues, m_tldListContents.aStatus); break; } } m_cbListValues.SelectString(0, sp.ValueAsString()); } else if (&ctrl == &m_cbPriority) { m_cbPriority.SetSelectedPriority(sp.ValueAsInteger()); } else if (&ctrl == &m_cbRisk) { m_cbRisk.SetSelectedRisk(sp.ValueAsInteger()); } break; } }
void CTDLFindTaskExpressionListCtrl::PrepareControl(CWnd& ctrl, int nRow, int nCol) { UNREFERENCED_PARAMETER(ctrl); if (!GetRuleCount()) return; SEARCHPARAM& sp = m_aSearchParams[nRow]; switch (nCol) { case ATTRIB: { ASSERT (&ctrl == &m_cbAttributes); m_cbAttributes.SelectAttribute(sp); CDialogHelper::RefreshMaxDropWidth(m_cbAttributes); } break; case OPERATOR: { ASSERT (&ctrl == &m_cbOperators); m_cbOperators.ResetContent(); FIND_ATTRIBTYPE nType = sp.GetAttribType(); switch (nType) { case FT_STRING: AddOperatorToCombo(FO_SET); AddOperatorToCombo(FO_NOT_SET); AddOperatorToCombo(FO_EQUALS); AddOperatorToCombo(FO_NOT_EQUALS); AddOperatorToCombo(FO_INCLUDES); AddOperatorToCombo(FO_NOT_INCLUDES); break; case FT_INTEGER: case FT_DOUBLE: case FT_TIME: AddOperatorToCombo(FO_SET); AddOperatorToCombo(FO_NOT_SET); AddOperatorToCombo(FO_EQUALS); AddOperatorToCombo(FO_NOT_EQUALS); AddOperatorToCombo(FO_GREATER); AddOperatorToCombo(FO_GREATER_OR_EQUAL); AddOperatorToCombo(FO_LESS); AddOperatorToCombo(FO_LESS_OR_EQUAL); break; case FT_DATE: case FT_DATE_REL: AddOperatorToCombo(FO_SET); AddOperatorToCombo(FO_NOT_SET); AddOperatorToCombo(FO_EQUALS); AddOperatorToCombo(FO_NOT_EQUALS); AddOperatorToCombo(FO_AFTER); AddOperatorToCombo(FO_ON_OR_AFTER); AddOperatorToCombo(FO_BEFORE); AddOperatorToCombo(FO_ON_OR_BEFORE); break; case FT_BOOL: AddOperatorToCombo(FO_SET); AddOperatorToCombo(FO_NOT_SET); break; } CDialogHelper::SelectItemByData(m_cbOperators, (DWORD)sp.GetOperator()); } break; case ANDOR: { ASSERT (&ctrl == &m_cbAndOr); if (sp.GetAnd()) m_cbAndOr.SelectString(-1, CEnString(IDS_FP_AND)); else m_cbAndOr.SelectString(-1, CEnString(IDS_FP_OR)); } break; case VALUE: switch (sp.GetAttribType()) { case FT_DATE: ASSERT (&ctrl == &m_dtDate); // if the rule does not yet have a date then set it now to // the current date because that's whats the date ctrl will default to if (sp.ValueAsDate().m_dt <= 0) { sp.SetValue(COleDateTime::GetCurrentTime()); SetItemText(nRow, nCol, sp.ValueAsDate().Format(VAR_DATEVALUEONLY)); } else m_dtDate.SetTime(sp.ValueAsDouble()); break; case FT_TIME: ASSERT (&ctrl == &m_eTime); m_eTime.SetTime(sp.ValueAsDouble(), (TCHAR)sp.GetFlags()); break; } break; } }