JasperReports ile başlangıç yapıyorum (ilk denemede), Netbeans'ları kurarım ve veritabanından veri kullanmaya ilk denemem başarılı oldu. Ama şimdi sadece jöle verilerden, Netbeans'deki Jasper Raporlarını kullanarak raporumu oluşturmak istiyorum. Ve bence Veritabanından veri almak gibi değil.JasperReports kullanarak json raporları doldurma
benim xml dosyasını düzenlemek ve bu eklemeyi denedim arada:
<textField>
<reportElement x="0" y="31" width="555" height="20" uuid="9678a129-61e8-4034-ab8e-739ee5723c87"/>
<textElement textAlignment="Right">
<font size="12" isBold="true"/>
</textElement>
<textFieldExpression><![CDATA[$F{nom}]]></textFieldExpression>
</textField>
Ama raporda bana boş veriyor. GÜNCELLEME
Map parametersMap = new HashMap();
parametersMap.put("name", json.getString("Name"));
parametersMap.put("start", json.getString("Start"));
parametersMap.put("end", json.getString("end"));
String report = "C:\\My\\Path\\toReport\\report1.jrxml";
JasperReport Jasp = JasperCompileManager.compileReport(report);
JasperPrint JASP_PRINT = JasperFillManager.fillReport(Jasp,parametersMap);
JasperViewer.viewReport(JASP_PRINT);
: Burada
benim Java kodupublic void start(Future<Void> startFuture){
String fileJSON = "C:\\Users\\PathToMyFile\\data.txt";
String file = "/Test1/:name";
Router router = Router.router(vertx);
router.route(file).handler(routingContext -> {
HttpServerResponse response = routingContext.response();
response.setChunked(true);
routingContext.vertx().setTimer(1000, tid -> routingContext.response().end());
});
vertx.createHttpServer()
.requestHandler(router::accept)
.listen(8089, "localhost", res -> {
if (res.succeeded())
startFuture.complete();
else
startFuture.fail(res.cause());
});
vertx.fileSystem().readFile(fileJSON, (AsyncResult<Buffer> result) -> {
if (result.succeeded()) {
JsonObject json = result.result().toJsonObject();
try{
Map parametersMap = new HashMap();
parametersMap.put("name",json.getString("name"));
parametersMap.put("start",json.getString("start"));
parametersMap.put("end",json.getString("end"));
String report = "C:\\Users\\pathToMyPackage\\report1.jrxml";
JasperReport Jasp = JasperCompileManager.compileReport(report);
JasperPrint JASP_PRINT = JasperFillManager.fillReport(Jasp,parametersMap);
JasperViewer.viewReport(JASP_PRINT);
Ve JRXML dosyası için:
<property name="ireport.zoom" value="1.0"/>
<property name="ireport.x" value="0"/>
<property name="ireport.y" value="0"/>
<queryString language="json">
<![CDATA[]]>
</queryString>
<field name="nom" class="java.lang.String">
<fieldDescription><![CDATA[name]]></fieldDescription>
</field>
<field name="dateDebut" class="java.lang.String">
<fieldDescription><![CDATA[start]]></fieldDescription>
</field>
<background>
<band splitType="Stretch"/>
</background>
<detail>
<band height="125" splitType="Stretch">
<textField>
<reportElement x="100" y="0" width="100" height="30" uuid="02b279da-3795-4655-8571-5a36a3ef378c"/>
<textFieldExpression><![CDATA[$F{name}]]></textFieldExpression>
</textField>
<staticText>
<reportElement x="0" y="0" width="100" height="30" uuid="671e61ad-8d8f-48cb-969f-78c05a516398"/>
<text><![CDATA[name]]></text>
</staticText>
<textField>
<reportElement x="100" y="30" width="100" height="30" uuid="9d53f46f-a252-48b3-9213-8c3092c29f49"/>
<textFieldExpression><![CDATA[$F{start}]]></textFieldExpression>
</textField>
<staticText>
<reportElement x="0" y="30" width="100" height="30" uuid="3b49affb-685a-4df2-a872-c0e6fdcab94b"/>
<text><![CDATA[start]]></text>
</staticText>
</band>
</detail>
İşte
ben java tarafında yaptıklarını olduğunu
Ve benim JSON dosyam:
{
"Name": "Test",
"Start": "16-06-2015",
"End":"16-06-2019"
}
kullanmanın numune ile ilgili alanlar tanımlayabilirsiniz: [JSON Veri Kaynağı Bakış] (http: // JasperReports .sourceforge.net/sample.reference/jsondatasource/index.html # jsondatasource) –
Json veri kaynağının nasıl raporlanacağını gösteren bir kopyasını yayınladım, temel olarak datasource gibi parametreden geçiş yapmıyorsunuz. ve eğer çözdüyseniz çift olarak kabul edersiniz) –
th için teşekkür ederim Alex e örnek ama hala bazı problemler var – zackzulg