Показать сообщение отдельно
Старый 15.05.2009, 22:06   #1  
Blog bot is offline
Blog bot
Участник
 
25,644 / 848 (80) +++++++
Регистрация: 28.10.2006
daxsol: Работа с классом xSysLastValue
Источник: http://daxsol.blogspot.com/2009/04/xsyslastvalue.html
==============

Иногда возникает необходимость генерации диалога без использования классов-наследников RunBase.Но при этом возникает желание запоминать и восстанавливать последние введенные значения в диалоге.
В этом случае воспользуемся функционалом класса xSysLastValue.




X++:
//  adi  30.04.2009  TSK0827
boolean prompt()
{
    boolean         ret;
    Dialog          dlg;
    DialogField     dfFromDate, dfToDate;
    DialogField     dfRContractType;
    DialogField     dfRContractCode;
    DialogField     dfRContractWayOfDeploymentId;
    container       lastValues;
    ;

    lastValues = xSysLastValue::getValue(curExt(), curUserId(), UtilElementType::Class, classStr(TemplateExcel_SameNameBalance));
    [fromDate, toDate, RContractType, RContractCode, RContractWayOfDeploymentId] = lastValues;
    RContractCode = RContractCode == "0" ? "" : RContractCode;
    RContractWayOfDeploymentId = RContractWayOfDeploymentId == "0" ? "" : RContractWayOfDeploymentId;

    dlg                             = new Dialog("Настройка отчета");

    dfFromDate                      = dlg.addFieldValue(typeid(TransDate), fromDate, 'Дата С');
    dfToDate                        = dlg.addFieldValue(typeid(TransDate), toDate, 'Дата По');
    dfRContractType                 = dlg.addFieldValue(typeId(RContractType), RContractType, "");
    dfRContractCode                 = dlg.addFieldValue(typeId(RContractCode), RContractCode, "");
    dfRContractWayOfDeploymentId    = dlg.addFieldValue(typeId(RContractWayOfDeploymentId), RContractWayOfDeploymentId, "");

    if (dlg.run())
    {
        ret = true;
        fromDate                    = dfFromDate.value();
        toDate                      = dfToDate.value();
        RContractType               = dfRContractType.value();
        RContractCode               = dfRContractCode.value();
        RContractWayOfDeploymentId  = dfRContractWayOfDeploymentId.value();
        lastValues = [fromDate, toDate, RContractType, RContractCode, RContractWayOfDeploymentId];
        xSysLastValue::putValue(lastValues, curExt(), curUserId(), UtilElementType::Class, classStr(TemplateExcel_SameNameBalance));
    }
    else
        ret = false;

    return ret;
}

Источник: http://daxsol.blogspot.com/2009/04/xsyslastvalue.html
__________________
Расскажите о новых и интересных блогах по Microsoft Dynamics, напишите личное сообщение администратору.