void RichPara::Cat(Id field, const String& param, const RichPara::CharFormat& f) { cacheid = 0; Part& p = part.Add(); p.field = field; p.fieldparam = param; p.format = f; VectorMap<String, Value> dummy; FieldType *ft = fieldtype().Get(field, NULL); if(ft) p.fieldpart ^= ft->Evaluate(param, dummy, f); }
bool RichPara::EvaluateFields(VectorMap<String, Value>& vars) { bool b = false; for(int i = 0; i < GetCount(); i++) { Part& p = part[i]; if(p.field) { FieldType *f = fieldtype().Get(p.field, NULL); if(f) { p.fieldpart ^= f->Evaluate(p.fieldparam, vars, p.format); b = true; } } } return b; }