You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
nmWATI/Include/iData/iXmlManager/Models/iParameter.h

116 lines
3.1 KiB
C++

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

#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;//备份
};