|
|
|
|
#pragma once
|
|
|
|
|
|
|
|
|
|
#include "iModelInfoBase.h"
|
|
|
|
|
|
|
|
|
|
/// @brief 参数所属类型区分,默认为2(double)
|
|
|
|
|
enum ParaInfoType
|
|
|
|
|
{
|
|
|
|
|
PIT_Str = 0, //0:字符串(文本) Text属性
|
|
|
|
|
PIT_Int, //1:整形
|
|
|
|
|
PIT_Double, //2:Double数值
|
|
|
|
|
PIT_Img, //3:图像 Text属性 存放路径
|
|
|
|
|
PIT_Ba, //4:二进制 TODO
|
|
|
|
|
PIT_DateTime, //5:时间类型 "Text"存放时间
|
|
|
|
|
PIT_Cbx, //6:下拉Cmb 具有"ItemOptions"属性
|
|
|
|
|
PIT_Seg, //7:Seg流动段模式 具有"SubItems"属性
|
|
|
|
|
PIT_SegEx, //8:Seg流动段模式,扩展模式 具有"SubItems"属性,
|
|
|
|
|
// 并且以More按钮形式弹出可视化窗口
|
|
|
|
|
PIT_CbxClasp, //9:双下拉(扣型+公母),派生自 PIT_Cbx,
|
|
|
|
|
// 具有"ItemOptions"+"ItemOptionExs"属性
|
|
|
|
|
|
|
|
|
|
PIT_UNKNOWN
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
/// @brief 增加新的边界类型
|
|
|
|
|
enum BdyInfoType
|
|
|
|
|
{
|
|
|
|
|
BDY_Normal = 0, //0:常规边界参数,包括数值、以及类型(封闭、定压、无限大)
|
|
|
|
|
BDY_PureType, //1:单纯的类型,底水、等,无数字
|
|
|
|
|
BDY_Not, //2:并非边界
|
|
|
|
|
BDY_UNKNOWN
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
/// @brief 参数描述
|
|
|
|
|
class I_XMLMANAGER_EXPORT iParameter : public iModelInfoBase
|
|
|
|
|
{
|
|
|
|
|
public:
|
|
|
|
|
|
|
|
|
|
iParameter();
|
|
|
|
|
~iParameter();
|
|
|
|
|
|
|
|
|
|
// 把List分配到成员变量
|
|
|
|
|
// 输入开始的m_listValues中index,并且返回下一个index
|
|
|
|
|
virtual int allocateInfo(int nIndex);
|
|
|
|
|
|
|
|
|
|
// 写入xml
|
|
|
|
|
virtual void writeInfo(QDomElement& e, QDomDocument &doc);
|
|
|
|
|
|
|
|
|
|
// 判断是否sPara
|
|
|
|
|
// sPara 参数名称,可以是 英文也可以是中文,软件会自动判断
|
|
|
|
|
virtual bool isParaOf(QString sPara);
|
|
|
|
|
|
|
|
|
|
// 备份恢复
|
|
|
|
|
virtual bool saveBk();
|
|
|
|
|
virtual bool restoreBk();
|
|
|
|
|
|
|
|
|
|
// 序列化
|
|
|
|
|
virtual void onSerialize(ZxSerializer* ser);
|
|
|
|
|
virtual void onDeserialize(ZxSerializer* ser);
|
|
|
|
|
|
|
|
|
|
// 默认值显示
|
|
|
|
|
virtual QString getDefaultShow();
|
|
|
|
|
|
|
|
|
|
protected:
|
|
|
|
|
|
|
|
|
|
virtual void initXmlTags();
|
|
|
|
|
|
|
|
|
|
public:
|
|
|
|
|
|
|
|
|
|
// xml解析的数据项
|
|
|
|
|
QString m_sName; //英文名称(简称)
|
|
|
|
|
QString m_sDesc; //英文描述
|
|
|
|
|
QString m_sUnit; //单位
|
|
|
|
|
double m_fDefault; //默认值
|
|
|
|
|
double m_fMax; //最大值
|
|
|
|
|
double m_fMin; //最小值
|
|
|
|
|
int m_nDigit; //小数位数,如果为0,则为整数
|
|
|
|
|
|
|
|
|
|
// 参数所属类型区分,默认为(double)
|
|
|
|
|
ParaInfoType m_oParaType;
|
|
|
|
|
|
|
|
|
|
// 增加新的边界类型,默认为(BDY_Not)
|
|
|
|
|
BdyInfoType m_oBdyType;
|
|
|
|
|
|
|
|
|
|
// 非xml解析
|
|
|
|
|
QString m_sAliasP; //父一级类别(别称),从外界传入
|
|
|
|
|
double m_fValue; //当前值,在对话框中调用时应用
|
|
|
|
|
|
|
|
|
|
// 只读20180409
|
|
|
|
|
bool m_bReadonly;
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
typedef QVector<iParameter*> vecParametersPtr;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/// @brief 参数描述,特殊的扩展,此处仅仅是为了在构造时初始化成员变量
|
|
|
|
|
class I_XMLMANAGER_EXPORT iParameterSp : public iParameter
|
|
|
|
|
{
|
|
|
|
|
public:
|
|
|
|
|
|
|
|
|
|
iParameterSp();
|
|
|
|
|
~iParameterSp();
|
|
|
|
|
|
|
|
|
|
virtual void parseInfo(const QDomElement& e);
|
|
|
|
|
|
|
|
|
|
void adjustPara(iParameter* p);
|
|
|
|
|
|
|
|
|
|
// 序列化
|
|
|
|
|
virtual void onSerialize(ZxSerializer* ser);
|
|
|
|
|
virtual void onDeserialize(ZxSerializer* ser);
|
|
|
|
|
|
|
|
|
|
private:
|
|
|
|
|
|
|
|
|
|
QString m_sSubItems;
|
|
|
|
|
QString m_sSubItemsBk;//备份
|
|
|
|
|
};
|