sql >> Database teknologi >  >> RDS >> Oracle

Konvertering af Oracle-rapporter (.rdf) til BIRT-rapporter

En fuldautomatisk løsning er sandsynligvis ikke mulig. Du kan delvist automatisere konverteringsprocessen som følger:

  1. Konverter RDF-filerne til XML.
  2. Udtræk rapportforespørgslen.
  3. Konverter XML til BIRT (eller JRXML) ved hjælp af XSLT.

XML-konvertering

Det første trin er ret simpelt ved at bruge Cygwin:

cd /path/to/reports/
mkdir xml
for i in *.rdf; do
  rwconverter.exe batch=yes source="$i" dest=xml/"$i".xml dtype=xmlfile \
    userid=scott/[email protected]
done

Udtrækning

Det andet trin er også relativt nemt ved at bruge starlet (omdøb xml.exe til starlet.exe for at undgå konflikter med Oracles xml.exe ):

starlet.exe sel -t -v "/report/data/dataSource/select" filename.rdf.xml

Du kan også bruge xmllint, men det inkluderer select og CDATA elementer, som du skal parse separat:

xmllint --xpath /report/data/dataSource/select filename.rdf.xml

Formatkonvertering

Det tredje trin er udfordrende. Opret en XSL-skabelon, der læser RDF-layouterne (f.eks. <displayInfo x="0.74377" y="0.97913" width="1.29626" height="1.62695" /> ). Konverter derefter disse layouts til det tilsvarende format, der bruges af destinationsrapportmotoren (såsom BIRT eller JasperReports).

Du ville ikke få en 100 % løsning, men en 80 % løsning kunne betydeligt reducere mængden af ​​monotont, fejlbehæftet arbejde, der kræves for at konvertere rapporterne.



  1. MySql-doktrin:find ud af, om den givne variabel er IN array-egenskab

  2. Hvordan ignorerer man pladsholderudtryk for Flyway?

  3. Indstilling af application_name på Postgres/SQLAlchemy

  4. Sådan undertrykkes INFO-meddelelser, når du kører psql-scripts