New functionality has been added to the report's variables

This commit is contained in:
Arin Alexander
2017-09-26 00:19:59 +03:00
parent 0ab92681b0
commit af589e31ba
11 changed files with 242 additions and 72 deletions

View File

@@ -122,16 +122,50 @@ bool VariablesHolder::containsVariable(const QString &name)
return m_varNames.contains(name);
}
int VariablesHolder::userVariablesCount()
int VariablesHolder::variablesCount()
{
return m_userVariables.count();
}
VarDesc *VariablesHolder::userVariableAt(int index)
VarDesc* VariablesHolder::variableByName(const QString& name)
{
if (m_varNames.contains(name))
return m_varNames.value(name);
else return 0;
}
VarDesc *VariablesHolder::variableAt(int index)
{
return m_userVariables.at(index);
}
bool VariablesHolder::variableIsMandatory(const QString& name)
{
if (m_varNames.contains(name))
return m_varNames.value(name)->isMandatory();
else return false;
}
void VariablesHolder::setVarableMandatory(const QString& name, bool value)
{
if (m_varNames.contains(name))
m_varNames.value(name)->setMandatory(value);
}
VariableDataType VariablesHolder::variableDataType(const QString& name)
{
if (m_varNames.contains(name))
return m_varNames.value(name)->dataType();
else return Enums::Undefined;
}
void VariablesHolder::setVariableDataType(const QString& name, VariableDataType value)
{
if (m_varNames.contains(name))
m_varNames.value(name)->setDataType(value);
}
QStringList VariablesHolder::variableNames()
{
QStringList result;
@@ -148,4 +182,40 @@ RenderPass VariablesHolder::variablePass(const QString &name)
else throw ReportError(tr("variable with name ")+name+tr(" does not exists!"));
}
bool VarDesc::isMandatory() const
{
return m_mandatory;
}
void VarDesc::setMandatory(bool mandatory)
{
m_mandatory = mandatory;
}
void VarDesc::initFrom(VarDesc* value)
{
m_mandatory = value->isMandatory();
m_dataType = value->dataType();
}
VariableDataType VarDesc::dataType() const
{
return m_dataType;
}
void VarDesc::setDataType(const VariableDataType& dataType)
{
m_dataType = dataType;
}
int VarDesc::readDataTypeProperty() const
{
return static_cast<int>(m_dataType);
}
void VarDesc::setDataTypeProperty(int value)
{
m_dataType = static_cast<VariableDataType>(value);
}
}// namespace LimeReport