Changeset 559


Ignore:
Timestamp:
06/14/14 07:17:12 (5 years ago)
Author:
jls17
Message:
  • added some missing currency support to qualifications
Location:
branches/work_311/core
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • branches/work_311/core/ARQualification.cpp

    r558 r559  
    139139                tmpFormId = secondaryFormId; 
    140140 
    141                 qText << primaryFormDelimiter << arIn->LinkToField(secondaryFormId, operand->u.fieldId, rootLevel) << primaryFormDelimiter; 
     141                qText << secondaryFormDelimiter << arIn->LinkToField(secondaryFormId, operand->u.fieldId, rootLevel) << secondaryFormDelimiter; 
    142142 
    143143                if(!arIn->FieldreferenceExists(secondaryFormId, operand->u.fieldId, refItem)) 
     
    355355        case AR_CURRENCY_FLD_DB: 
    356356        case AR_CURRENCY_FLD_TRAN: 
    357                 { 
    358                         CDocCurrencyField docCurrency(primaryFormId, *operand->u.currencyField); 
     357        case AR_CURRENCY_FLD_CURRENT: 
     358                { 
     359                        int formId; 
     360                        char delimiter; 
     361                        getFormIdAndDelimiter(operand, formId, delimiter); 
     362 
     363                        CDocCurrencyField docCurrency(formId, *operand->u.currencyField); 
    359364                        char *prefix = getFieldPrefix(operand); 
    360365                         
    361                         qText << primaryFormDelimiter; 
     366                        qText << delimiter; 
    362367                        if (prefix != NULL) qText << prefix; 
    363368                        docCurrency.GetResolvedAndLinkedField(qText, refItem, rootLevel); 
    364                         qText << primaryFormDelimiter; 
     369                        qText << delimiter; 
    365370                } 
    366371                break; 
     
    424429        return NULL; 
    425430} 
     431 
     432bool CARQualification::getFormIdAndDelimiter(ARFieldValueOrArithStruct *operand, int &formId, char &delimiter) 
     433{ 
     434        if (operand == NULL) return false; 
     435        switch (operand->tag) 
     436        { 
     437        case AR_FIELD: 
     438        case AR_CURRENCY_FLD: 
     439                formId = secondaryFormId; 
     440                delimiter = secondaryFormDelimiter; 
     441                return true; 
     442        case AR_FIELD_TRAN: 
     443        case AR_FIELD_DB: 
     444        case AR_FIELD_CURRENT: 
     445        case AR_CURRENCY_FLD_DB: 
     446        case AR_CURRENCY_FLD_TRAN: 
     447        case AR_CURRENCY_FLD_CURRENT: 
     448                formId = primaryFormId; 
     449                delimiter = primaryFormDelimiter; 
     450                return true; 
     451        } 
     452        throw exception("NotImplementedException"); 
     453} 
     454 
  • branches/work_311/core/ARQualification.h

    r558 r559  
    4444        int FindCurrentEnumFieldId(); 
    4545        char* getFieldPrefix(ARFieldValueOrArithStruct *operand); 
     46        bool getFormIdAndDelimiter(ARFieldValueOrArithStruct *operand, int &formId, char &delimiter); 
    4647 
    4748        int tmpFormId; 
Note: See TracChangeset for help on using the changeset viewer.