当前位置: 首页>>代码示例>>Java>>正文


Java JRExpression.getChunks方法代码示例

本文整理汇总了Java中net.sf.jasperreports.engine.JRExpression.getChunks方法的典型用法代码示例。如果您正苦于以下问题:Java JRExpression.getChunks方法的具体用法?Java JRExpression.getChunks怎么用?Java JRExpression.getChunks使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在net.sf.jasperreports.engine.JRExpression的用法示例。


在下文中一共展示了JRExpression.getChunks方法的9个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: getSimpleExpressionText

import net.sf.jasperreports.engine.JRExpression; //导入方法依赖的package包/类
/**
 *
 */
public static String getSimpleExpressionText(JRExpression expression)
{
	String value = null;
	if (expression != null)
	{
		JRExpressionChunk[] chunks = expression.getChunks();
		if (
			chunks != null 
			&& chunks.length == 1 
			&& chunks[0].getType() == JRExpressionChunk.TYPE_TEXT
			)
		{
			String chunk = chunks[0].getText();
			Matcher matcher = SIMPLE_EXPRESSION_PATTERN.matcher(chunk);
			if (matcher.matches())
			{
				String text = matcher.group(SIMPLE_EXPRESSION_TEXT_GROUP);
				value = TEXT_QUOTE_PATTERN.matcher(text).replaceAll(
						TEXT_QUOTE_REPLACEMENT);
			}
		}
	}
	return value;
}
 
开发者ID:TIBCOSoftware,项目名称:jasperreports,代码行数:28,代码来源:JRExpressionUtil.java

示例2: evaluateExpression

import net.sf.jasperreports.engine.JRExpression; //导入方法依赖的package包/类
public static String evaluateExpression(JRExpression expression, ExpressionValues values)
{
	if (expression.getType() != ExpressionTypeEnum.SIMPLE_TEXT)
	{
		throw new IllegalArgumentException("Simple text expression expected");
	}
	
	JRExpressionChunk[] chunks = expression.getChunks();
	if (chunks == null || chunks.length == 0)
	{
		return EMPTY_RESULT;
	}

	ResultCollector result = new ResultCollector(values);
	result.collectChunks(chunks);
	return result.getResult();
}
 
开发者ID:TIBCOSoftware,项目名称:jasperreports,代码行数:18,代码来源:SimpleTextExpressionEvaluator.java

示例3: hasSingleChunkExpression

import net.sf.jasperreports.engine.JRExpression; //导入方法依赖的package包/类
public static boolean hasSingleChunkExpression(JRTextField textField) 
{
	if (textField != null)
	{
		JRExpression textExpression = textField.getExpression();
		JRExpressionChunk[] chunks = textExpression == null ? null : textExpression.getChunks();
		if (chunks == null || chunks.length != 1
				|| (chunks[0].getType() != JRExpressionChunk.TYPE_FIELD
				&& chunks[0].getType() != JRExpressionChunk.TYPE_VARIABLE))
		{
			return false;
		}
		
		return true;
	}
	
	return false;
}
 
开发者ID:TIBCOSoftware,项目名称:jasperreports,代码行数:19,代码来源:TableUtil.java

示例4: JRBaseExpression

import net.sf.jasperreports.engine.JRExpression; //导入方法依赖的package包/类
/**
 * Creates a copy of an expression.
 * 
 * @param expression the original expression
 * @param factory the base object factory
 * @param expressionId if not null, the created expression will use it as ID
 * instead of the original expressions's ID 
 */
protected JRBaseExpression(JRExpression expression, JRBaseObjectFactory factory, Integer expressionId)
{
	factory.put(expression, this);
	
	if (expressionId == null)
	{
		id = expression.getId();
	}
	else
	{
		id = expressionId.intValue();
	}
	
	type = expression.getType();
	
	/*   */
	JRExpressionChunk[] jrChunks = expression.getChunks();
	if (jrChunks != null && jrChunks.length > 0)
	{
		chunks = new JRExpressionChunk[jrChunks.length];
		for(int i = 0; i < chunks.length; i++)
		{
			chunks[i] = factory.getExpressionChunk(jrChunks[i]);
		}
	}
}
 
开发者ID:TIBCOSoftware,项目名称:jasperreports,代码行数:35,代码来源:JRBaseExpression.java

示例5: visitChunks

import net.sf.jasperreports.engine.JRExpression; //导入方法依赖的package包/类
public static void visitChunks(JRExpression expression, ExpressionChunkVisitor visitor)
{
	JRExpressionChunk[] chunks = expression.getChunks();
	if (chunks != null)
	{
		for (JRExpressionChunk chunk : chunks)
		{
			switch (chunk.getType())
			{
			case JRExpressionChunk.TYPE_TEXT:
				visitor.visitTextChunk(chunk);
				break;
			case JRExpressionChunk.TYPE_PARAMETER:
				visitor.visitParameterChunk(chunk);
				break;
			case JRExpressionChunk.TYPE_FIELD:
				visitor.visitFieldChunk(chunk);
				break;
			case JRExpressionChunk.TYPE_VARIABLE:
				visitor.visitVariableChunk(chunk);
				break;
			case JRExpressionChunk.TYPE_RESOURCE:
				visitor.visitResourceChunk(chunk);
				break;
			default:
				throw 
					new JRRuntimeException(
						EXCEPTION_MESSAGE_KEY_UNKNOWN_EXPRESSION_CHUNK_TYPE,
						new Object[]{chunk.getType()});
			}
		}
	}
}
 
开发者ID:TIBCOSoftware,项目名称:jasperreports,代码行数:34,代码来源:JRExpressionUtil.java

示例6: PropertyStyleProvider

import net.sf.jasperreports.engine.JRExpression; //导入方法依赖的package包/类
public PropertyStyleProvider(
	StyleProviderContext context, 
	Map<String, JRPropertyExpression> stylePropertyExpressions
	)
{
	this.context = context;
	this.stylePropertyExpressions = stylePropertyExpressions;
	
	List<String> fieldsList = new ArrayList<String>();
	List<String> variablesList = new ArrayList<String>();
	
	if (stylePropertyExpressions != null)
	{
		for(JRPropertyExpression stylePropertyExpression : stylePropertyExpressions.values())
		{
			JRExpression expression = stylePropertyExpression.getValueExpression();
			if (expression != null)
			{
				JRExpressionChunk[] chunks = expression.getChunks();
				if (chunks != null)
				{
					for (int i = 0; i < chunks.length; i++)
					{
						JRExpressionChunk chunk = chunks[i];
						switch (chunk.getType())
						{
							case JRExpressionChunk.TYPE_FIELD:
							{
								fieldsList.add(chunk.getText());
								break;
							}
							case JRExpressionChunk.TYPE_VARIABLE:
							{
								variablesList.add(chunk.getText());
								break;
							}
						}
					}
				}
			}
		}
	}
	
	fields = fieldsList.size() > 0 ? (String[]) fieldsList.toArray(new String[fieldsList.size()]) : null;
	variables = variablesList.size() > 0 ? (String[]) variablesList.toArray(new String[variablesList.size()]) : null;

	JRElement element = context.getElement();
	JREvaluation evaluation = element instanceof JREvaluation ? (JREvaluation)element : null;
	lateEvaluated = evaluation != null && evaluation.getEvaluationTimeValue() != EvaluationTimeEnum.NOW;
}
 
开发者ID:TIBCOSoftware,项目名称:jasperreports,代码行数:51,代码来源:PropertyStyleProvider.java

示例7: verifyExpressions

import net.sf.jasperreports.engine.JRExpression; //导入方法依赖的package包/类
/**
 *
 */
private void verifyExpressions(
		List<JRExpression> expressions, 
		Map<String, ? extends JRParameter> parametersMap, 
		Map<String, JRField> fieldsMap, 
		Map<String, JRVariable> variablesMap
		)
{
	if (expressions != null && expressions.size() > 0)
	{
		for(Iterator<JRExpression> it = expressions.iterator(); it.hasNext();)
		{
			JRExpression expression = it.next();
			JRExpressionChunk[] chunks = expression.getChunks();
			if (chunks != null && chunks.length > 0)
			{
				for(int j = 0; j < chunks.length; j++)
				{
					JRExpressionChunk expressionChunk = chunks[j];
					switch (expressionChunk.getType())
					{
						case JRExpressionChunk.TYPE_VARIABLE :
						{
							if ( !variablesMap.containsKey(expressionChunk.getText()) )
							{
								addBrokenRule("Variable not found : " + expressionChunk.getText(), expression);
							}
							break;
						}
						case JRExpressionChunk.TYPE_FIELD :
						{
							if ( !fieldsMap.containsKey(expressionChunk.getText()) )
							{
								addBrokenRule("Field not found : " + expressionChunk.getText(), expression);
							}
							break;
						}
						case JRExpressionChunk.TYPE_PARAMETER :
						{
							if ( !parametersMap.containsKey(expressionChunk.getText()) )
							{
								addBrokenRule("Parameter not found : " + expressionChunk.getText(), expression);
							}
							break;
						}
						case JRExpressionChunk.TYPE_RESOURCE :
						case JRExpressionChunk.TYPE_TEXT :
						default :
						{
						}
					}
				}
			}
		}
	}
}
 
开发者ID:TIBCOSoftware,项目名称:jasperreports,代码行数:59,代码来源:JRVerifier.java

示例8: copyVariables

import net.sf.jasperreports.engine.JRExpression; //导入方法依赖的package包/类
private void copyVariables(JRCrosstab crosstab, JRFillObjectFactory factory)
{
	JRVariable[] vars = crosstab.getVariables();
	variables = new JRFillVariable[vars.length];
	variablesMap = new HashMap<String,JRFillVariable>();
	for (int i = 0; i < variables.length; i++)
	{
		variables[i] = factory.getVariable(vars[i]);
		variablesMap.put(variables[i].getName(), variables[i]);
	}
	
	Map<String,int[]> totalVarPos = new HashMap<String,int[]>();
	totalVariables = new JRFillVariable[rowGroups.length + 1][columnGroups.length + 1][measures.length];
	for (int row = 0; row <= rowGroups.length; ++row)
	{
		JRCrosstabRowGroup rowGroup = row == rowGroups.length ? null : rowGroups[row];
		for (int col = 0; col <= columnGroups.length; ++col)
		{
			JRCrosstabColumnGroup colGroup = col == columnGroups.length ? null : columnGroups[col];
			
			if (row < rowGroups.length || col < columnGroups.length)
			{
				for (int m = 0; m < measures.length; m++)
				{
					String totalVariableName = JRDesignCrosstab.getTotalVariableName(measures[m], rowGroup, colGroup);
					totalVariables[row][col][m] = variablesMap.get(totalVariableName);
					totalVarPos.put(totalVariableName, new int[]{row, col});
				}
			}
		}
	}
	
	Set<String> measureVars = new HashSet<String>();
	for (JRFillCrosstabMeasure measure : measures)
	{
		measureVars.add(measure.getFillVariable().getName());
	}

	retrieveTotal = new boolean[rowGroups.length + 1][columnGroups.length + 1];
	
	//FIXME avoid this
	JRExpressionCollector collector = JRExpressionCollector.collector(filler.getJasperReportsContext(), filler.getJasperReport(), crosstab);
	List<JRExpression> expressions = collector.getExpressions(crosstab);
	for (Iterator<JRExpression> iter = expressions.iterator(); iter.hasNext();)
	{
		JRExpression expression = iter.next();
		Object expressionContext = collector.getExpressionContext(expression);
		boolean groupHeaderExpression = expressionContext instanceof JRCrosstabGroup;
		JRExpressionChunk[] chunks = expression.getChunks();
		if (chunks != null)
		{
			for (int i = 0; i < chunks.length; i++)
			{
				JRExpressionChunk chunk = chunks[i];
				if (chunk.getType() == JRExpressionChunk.TYPE_VARIABLE)
				{
					String varName = chunk.getText();
					int[] pos = totalVarPos.get(varName);
					if (pos != null)
					{
						retrieveTotal[pos[0]][pos[1]] = true;
					}
					
					// if a measure variable is used inside a group header, compute all totals.
					// in theory we could have a finer grained rule here, but it complicates
					// the logic without a singnificant gain.
					if (groupHeaderExpression && (pos != null || measureVars.contains(varName)))
					{
						retrieveTotal[0][0] = true;
					}
				}
			}
		}
	}
}
 
开发者ID:TIBCOSoftware,项目名称:jasperreports,代码行数:76,代码来源:JRFillCrosstab.java

示例9: execute

import net.sf.jasperreports.engine.JRExpression; //导入方法依赖的package包/类
@Override
public void execute() throws CommandException 
{
	SortOrderEnum sortOrder = HeaderToolbarElementUtils.getSortOrder(sortData.getSortOrder());//FIXMEJIVE use labels in JR enum, even if they are longer

	JRDesignSortField newSortField = 
		new JRDesignSortField(
			sortData.getSortColumnName(),
			SortFieldTypeEnum.getByName(sortData.getSortColumnType()),
			sortOrder
			);
	
	JRSortField oldSortField = null;
	List<JRSortField> sortFields = dataset.getSortFieldsList();
	if (
		JRPropertiesUtil.getInstance(jasperReportsContext).getBooleanProperty(dataset, PROPERTY_CREATE_SORT_FIELDS_FOR_GROUPS, false)
		&& (sortFields == null || sortFields.isEmpty())
		)
	{
		List<JRGroup> groups = dataset.getGroupsList();
		for (JRGroup group : groups)
		{
			JRExpression expression = group.getExpression();
			if (expression != null)
			{
				JRExpressionChunk[] chunks = expression.getChunks();
				if (chunks != null && chunks.length == 1)
				{
					JRExpressionChunk chunk = chunks[0];
					if (
						chunk.getType() == JRExpressionChunk.TYPE_FIELD
						|| chunk.getType() == JRExpressionChunk.TYPE_VARIABLE
						)
					{
						JRDesignSortField groupSortField = 
							new JRDesignSortField(
								chunk.getText(),
								chunk.getType() == JRExpressionChunk.TYPE_FIELD 
									? SortFieldTypeEnum.FIELD
									: SortFieldTypeEnum.VARIABLE,
								SortOrderEnum.ASCENDING
								);
						individualCommandStack.execute(new AddSortFieldCommand(dataset, groupSortField));
					}
				}
			}
		}
	}

	for (JRSortField crtSortField : sortFields)
	{
		if (
			newSortField.getName().equals(crtSortField.getName())
			&& newSortField.getType() == crtSortField.getType()
			)
		{
			oldSortField = crtSortField;
			break;
		}
	}

	if (oldSortField != null)
	{
		individualCommandStack.execute(new RemoveSortFieldCommand(dataset, oldSortField));
	}
	
	if (sortOrder != null)
	{
		individualCommandStack.execute(new AddSortFieldCommand(dataset, newSortField));
	}
}
 
开发者ID:TIBCOSoftware,项目名称:jasperreports,代码行数:72,代码来源:SortCommand.java


注:本文中的net.sf.jasperreports.engine.JRExpression.getChunks方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。