void CTDLFindTaskAttributeComboBox::BuildCombo() { ResetContent(); CLocalizer::EnableTranslation(*this, FALSE); int nAttrib; for (nAttrib = 0; nAttrib < ATTRIB_COUNT; nAttrib++) { const TDCATTRIBUTE& ap = ATTRIBUTES[nAttrib]; if (ap.nAttribResID) { CEnString sAttrib(ap.nAttribResID); DWORD dwItemData = EncodeItemData(ap.attrib, FALSE); int nItem = AddString(sAttrib); SetItemData(nItem, dwItemData); // is it a date // then add relative version too if (AttributeIsDate(ap.attrib)) { dwItemData = EncodeItemData(ap.attrib, TRUE); sAttrib += ' '; sAttrib += CEnString(IDS_TDLBC_RELATIVEDATESUFFIX); nItem = AddString(sAttrib); SetItemData(nItem, dwItemData); } } } // custom attributes for (nAttrib = 0; nAttrib < m_aAttribDefs.GetSize(); nAttrib++) { const TDCCUSTOMATTRIBUTEDEFINITION& attribDef = m_aAttribDefs[nAttrib]; CEnString sAttrib(IDS_CUSTOMCOLUMN, attribDef.sLabel); TDC_ATTRIBUTE attrib = attribDef.GetAttributeID(); int nItem = AddString(sAttrib); DWORD dwItemData = EncodeItemData(attrib, FALSE); SetItemData(nItem, dwItemData); // is it a date if (AttributeIsDate(attrib)) { dwItemData = EncodeItemData(attrib, TRUE); sAttrib.Format(IDS_CUSTOMRELDATECOLUMN, attribDef.sLabel); nItem = AddString(sAttrib); SetItemData(nItem, dwItemData); } } // recalc combo drop width CDialogHelper::RefreshMaxDropWidth(*this); }
void ParseEncounterCriteria (const CString &sCriteria, SEncounterCriteria *retCriteria) { retCriteria->MustHave.RemoveAll(); retCriteria->MustNotHave.RemoveAll(); char *pPos = sCriteria.GetASCIIZPointer(); while (*pPos != '\0') { if (*pPos == '+' || *pPos == '-') { char chOp = *pPos; pPos++; char *pStart = pPos; while (*pPos != '\0' && *pPos != ';') pPos++; CString sAttrib(pStart, pPos - pStart); if (!sAttrib.IsBlank()) { if (chOp == '+') retCriteria->MustHave.AppendString(sAttrib); else retCriteria->MustNotHave.AppendString(sAttrib); } } else pPos++; } }