我正在尝试在填写报告之前将英语数字转换为孟加拉语数字。我从MySQL获取的数据:
SELECT brand.id,brand.brand,model.model FROM brand INNER JOIN model ON brand.id=model.id AND model.id=$P{ID}
例如,如果model.model列返回数字322,则应首先将数字转换为孟加拉语版本(৩২২),然后它将填充报告。
一| 二| 三১ | ২| ৩
这是孟加拉的0-9:
২৩ ৮ ৮
我在考虑以下替换方法:
char[] en ={'0','1','2','3','4','5','6','7','8','9'};
char[] bn ={'০','১','২','৩','৪','৫','৬','৭','৮','৯'};
en.replace(bn)
也许行不通!
我只是不确定从哪里开始!但是这是我当前的应用代码:
Java代码:
@FXML
public TextField one;
public void click(ActionEvent event) throws JRException, SQLException, ClassNotFoundException, IllegalAccessException, UnsupportedLookAndFeelException, InstantiationException {
String reportSrcFile = "/home/sample/learn.jrxml";
JasperReport jasperReport1 = JasperCompileManager.compileReport(reportSrcFile);
Connection conn = SqliConnect.getMySQLConnection();
int two = Integer.parseInt(one.getText());
Map<String, Object> parameters = new HashMap<String, Object>();
parameters.put("ID",one.getText());
JasperPrint print = JasperFillManager.fillReport(jasperReport1,
parameters, conn);
JasperViewer jv = new JasperViewer(print);
jv.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
jv.setTitle("Test Report");
jv.setVisible(true);
}
报告的模板:
<subDataset name="Dataset1" uuid="2691431f-5c6f-403f-94cc-829c17ef1636">
<property name="com.jaspersoft.studio.data.sql.tables" value=""/>
<property name="com.jaspersoft.studio.data.defaultdataadapter" value="Learn"/>
<parameter name="ID" class="java.lang.Integer">
<parameterDescription><![CDATA[Get ID]]></parameterDescription>
<defaultValueExpression><![CDATA[$P{ID}]]></defaultValueExpression>
</parameter>
<queryString>
<![CDATA[SELECT brand.id,brand.brand,model.model FROM brand INNER JOIN model ON brand.id=model.id WHERE model.id=$P{ID}]]>
</queryString>
<field name="id" class="java.lang.Integer"/>
<field name="brand" class="java.lang.String"/>
<field name="model" class="java.lang.String"/>
</subDataset>
<parameter name="ID" class="java.lang.Integer" isForPrompting="false">
<parameterDescription><![CDATA[]]></parameterDescription>
<defaultValueExpression><![CDATA[$P{ID}]]></defaultValueExpression>
</parameter>
<queryString>
<![CDATA[SELECT brand.id,brand.brand,model.model FROM brand INNER JOIN model ON brand.id=model.id WHERE model.id=$P{ID}]]>
</queryString>
<field name="id" class="java.lang.Integer"/>
<field name="brand" class="java.lang.String"/>
<field name="model" class="java.lang.String"/>
<title>
<band height="79" splitType="Stretch">
<textField>
<reportElement x="11" y="16" width="100" height="30" uuid="d1485589-a4cf-4ab9-b896-0ef480beced4"/>
<textFieldExpression><![CDATA[$P{ID}]]></textFieldExpression>
</textField>
</band>
</title>
<detail>
<band height="250" splitType="Stretch">
<componentElement>
<reportElement x="0" y="0" width="555" height="250" uuid="e199bd58-8408-4711-85d5-ba76db9691b7">
<property name="com.jaspersoft.studio.layout" value="com.jaspersoft.studio.editor.layout.VerticalRowLayout"/>
<property name="com.jaspersoft.studio.table.style.table_header" value="Table_TH"/>
<property name="com.jaspersoft.studio.table.style.column_header" value="Table_CH"/>
<property name="com.jaspersoft.studio.table.style.detail" value="Table_TD"/>
<property name="com.jaspersoft.studio.components.autoresize.proportional" value="true"/>
</reportElement>
<jr:table xmlns:jr="http://jasperreports.sourceforge.net/jasperreports/components" xsi:schemaLocation="http://jasperreports.sourceforge.net/jasperreports/components http://jasperreports.sourceforge.net/xsd/components.xsd">
<datasetRun subDataset="Dataset1" uuid="fbb4dafa-4284-4118-9d2b-46d88c63a31b">
<datasetParameter name="ID">
<datasetParameterExpression><![CDATA[$P{ID}]]></datasetParameterExpression>
</datasetParameter>
<connectionExpression><![CDATA[$P{REPORT_CONNECTION}]]></connectionExpression>
</datasetRun>
<jr:column width="185" uuid="9a6b765f-b6d4-4753-909e-dd091b296654">
<jr:columnHeader style="Table_CH" height="30">
<staticText>
<reportElement x="0" y="0" width="185" height="30" uuid="7e644d1c-a893-49df-a18a-bf788eb6b92a"/>
<text><![CDATA[id]]></text>
</staticText>
</jr:columnHeader>
<jr:columnFooter style="Table_CH" height="30"/>
<jr:detailCell style="Table_TD" height="30">
<textField>
<reportElement x="0" y="0" width="185" height="30" uuid="848a53bf-2b2e-46df-a7aa-26fc0b897c85"/>
<textFieldExpression><![CDATA[$F{id}]]></textFieldExpression>
</textField>
</jr:detailCell>
</jr:column>
<jr:column width="185" uuid="514580a5-f09c-43d1-952e-d4769c2e4686">
<jr:columnHeader style="Table_CH" height="30">
<staticText>
<reportElement x="0" y="0" width="185" height="30" uuid="c01152e9-1547-472b-946e-92011c02bc94"/>
<text><![CDATA[brand]]></text>
</staticText>
</jr:columnHeader>
<jr:columnFooter style="Table_CH" height="30"/>
<jr:detailCell style="Table_TD" height="30">
<textField>
<reportElement x="0" y="0" width="185" height="30" uuid="98c84ae5-b289-459a-b34b-a9becf43b9ce"/>
<textFieldExpression><![CDATA[$F{brand}]]></textFieldExpression>
</textField>
</jr:detailCell>
</jr:column>
<jr:column width="185" uuid="5c1d2026-45bc-4ec8-8be4-c444e47d093d">
<jr:columnHeader style="Table_CH" height="30">
<staticText>
<reportElement x="0" y="0" width="185" height="30" uuid="81f76de4-a68b-41c3-a2e8-bbaa625b71be"/>
<text><![CDATA[model]]></text>
</staticText>
</jr:columnHeader>
<jr:columnFooter style="Table_CH" height="30"/>
<jr:detailCell style="Table_TD" height="30">
<textField>
<reportElement x="0" y="0" width="185" height="30" uuid="d69c690e-05a4-453a-93ea-9061523975ad"/>
<textFieldExpression><![CDATA[$F{model}]]></textFieldExpression>
</textField>
</jr:detailCell>
</jr:column>
</jr:table>
</componentElement>
</band>
</detail>
正确的做法是什么?
您还可以在Java代码中创建替换字符串,并在参数映射中使用它:
String replacedOne = one.getText().replaceAll("0","০").replaceAll("1","১").replaceAll("2","২").replaceAll("3","৩").replaceAll("4","৪").replaceAll("5","৫").replaceAll("6","৬").replaceAll("7","৭").replaceAll("8","৮").replaceAll("9","৯");
parameters.put("replacedID",replacedOne);
或者更好的是,可以使用此(很长)表达式而不是$ F {model}直接在jrxml文件中执行替换,而无需修改java文件:
$F{model}.replaceAll("0","০").replaceAll("1","১").replaceAll("2","২").replaceAll("3","৩").replaceAll("4","৪").replaceAll("5","৫").replaceAll("6","৬").replaceAll("7","৭").replaceAll("8","৮").replaceAll("9","৯");
我想知道为什么只有孟加拉语和马拉地语的数字是整形的(不是以拉丁文格式显示的),而我使用ibm.icu库尝试了各种其他语言,请参考下面的代码和它的结果- 代码- 结果- 用例- 我希望所有语言的数字仅以拉丁文格式显示。 查询- 如何解决此问题?
我在Swift中遇到了一个印地语数字集整数值的问题 这是关于我们如何将印地语转换成英语的任意数值。 想知道如何将一种语言的数字转换成另一种语言的数字吗 例如:试图将印地语数字转换为阿拉伯语 这是我在操场上试过的代码: 这是它仅以英文显示的输出 我已经搜索了这个问题,但没有找到这种具体的解决方案,所以发布了一个新的问题。 注意:不寻找任何静态转换扩展或此类函数。 编辑:我不想要这种解决方案 在Swi
如何在静态编程语言中将波斯语/阿拉伯语数字转换为英语?我在java中看到过类似的问题,但它不符合我的要求。当我在使用波斯本地化数字的设备中获得日期时,波斯和服务器不能将此字符串转换为日期时间。这里是我在波斯本地化设备中收到的日期: "۲۰۲۰/۰۸/۲۱" 这些是波斯/阿拉伯数字 (۰ - 我需要在科特林玩一玩来表演这个。
问题内容: 是否可以在MySQL查询中将文本转换为数字?我有一列带有标识符的列,该标识符由名称和数字组成,格式为“名称- 数字”。该列具有VARCHAR类型。我想根据数字(行名相同)对行进行排序,但是根据do字符顺序对列进行排序,即 如果我减少了数字,是否可以将“ varchar”数字转换为“真实”数字并用它对行进行排序?我想获得以下订单。 我无法将数字表示为单独的列。 编辑2011-05-11
我继承了一个需要进一步开发的web系统。该系统似乎是由阅读了PHP教程两章的人创建的,他认为自己可以编写代码。。。 所以网页本身是UTF8格式的,显示并输入其中的所有内容。数据库表是用UTF8字符集创建的。但是,在配置中,有“SET NAMES LATIN1”。换句话说,UTF8编码的字符串用强制拉丁1编码填充到数据库中。 有没有一种方法可以将这些乱七八糟的东西转换为实际存储在utf8中并摆脱la
问题内容: 直到今天,我才意识到我的PHP脚本中缺少此功能: 我所有的表都是InnoDB,归类为“ utf8_unicode_ci”,我所有的VARCHAR列也均为“ utf8_unicode_ci”。我有我的PHP脚本,和我所有的PHP文件编码为UTF-8。 因此,直到现在,每次我用变音符号“插入”某些东西时,例如: 在这种情况下,“名称”内容为:。 由于我固定了PHP和MySQL之间的字符集,