Skip to content

Commit

Permalink
Auto Cetak Antrean Loket (mas-elkhanza#135)
Browse files Browse the repository at this point in the history
  • Loading branch information
Rizky92 committed Apr 23, 2024
1 parent b375bf4 commit 063a16b
Show file tree
Hide file tree
Showing 6 changed files with 114 additions and 11 deletions.
11 changes: 9 additions & 2 deletions KhanzaCetakAntrianLoket/report/rptAntriLoket.jrxml
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- Created with Jaspersoft Studio version 6.17.0.final using JasperReports Library version 6.5.1 -->
<!-- Created with Jaspersoft Studio version 6.8.0.final using JasperReports Library version 6.8.0-2ed8dfabb690ff337a5797129f2cd92902b0c87b -->
<jasperReport xmlns="http://jasperreports.sourceforge.net/jasperreports" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://jasperreports.sourceforge.net/jasperreports http://jasperreports.sourceforge.net/xsd/jasperreport.xsd" name="null" pageWidth="157" pageHeight="200" columnWidth="149" leftMargin="4" rightMargin="4" topMargin="4" bottomMargin="4" uuid="57e2d076-92c4-4e23-9b3d-34775e15092c">
<property name="ireport.zoom" value="1.5"/>
<property name="ireport.x" value="0"/>
<property name="ireport.y" value="100"/>
<property name="com.jaspersoft.studio.data.defaultdataadapter" value="lokal"/>
<property name="com.jaspersoft.studio.data.defaultdataadapter" value="SIK LOCALHOST UPD"/>
<property name="com.jaspersoft.studio.data.sql.tables" value=""/>
<property name="com.jaspersoft.studio.unit." value="pixel"/>
<property name="com.jaspersoft.studio.unit.pageWidth" value="pixel"/>
Expand Down Expand Up @@ -128,6 +128,13 @@
</textElement>
<textFieldExpression><![CDATA[$F{nomor}]]></textFieldExpression>
</textField>
<staticText>
<reportElement x="0" y="170" width="148" height="22" uuid="15551a9d-c404-4db7-9420-0fd16bc28a28"/>
<textElement textAlignment="Center">
<font fontName="Tahoma" size="7" isItalic="false"/>
</textElement>
<text><![CDATA[Jika antrian terlewat 10 nomor, silahkan mengambil antrian ulang ke customer care]]></text>
</staticText>
</band>
</detail>
<summary>
Expand Down
6 changes: 6 additions & 0 deletions KhanzaCetakAntrianLoket/setting/cetakantrean.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd">
<properties>
<comment>KhanzaHMS</comment>
<entry key="PRINTERCETAKANTREAN"></entry>
</properties>
9 changes: 9 additions & 0 deletions KhanzaCetakAntrianLoket/src/fungsi/koneksiDB.java
Original file line number Diff line number Diff line change
Expand Up @@ -67,6 +67,15 @@ public static Connection condb(){
return connection;
}

public static String PRINTERCETAKANTREAN() {
try {
prop.loadFromXML(new FileInputStream("setting/cetakantrean.xml"));
return prop.getProperty("PRINTERCETAKANTREAN");
} catch (Exception e) {
return "";
}
}

public static String HOST(){
try{
prop.loadFromXML(new FileInputStream("setting/database.xml"));
Expand Down
73 changes: 71 additions & 2 deletions KhanzaCetakAntrianLoket/src/fungsi/validasi.java
Original file line number Diff line number Diff line change
Expand Up @@ -51,6 +51,16 @@
import widget.Tanggal;
import widget.TextArea;
import java.io.File;
import javax.print.PrintService;
import javax.print.PrintServiceLookup;
import javax.print.attribute.HashPrintRequestAttributeSet;
import javax.print.attribute.PrintRequestAttributeSet;
import javax.print.attribute.standard.Copies;
import net.sf.jasperreports.engine.JasperReport;
import net.sf.jasperreports.engine.export.JRPrintServiceExporter;
import net.sf.jasperreports.engine.util.JRLoader;
import net.sf.jasperreports.export.SimpleExporterInput;
import net.sf.jasperreports.export.SimplePrintServiceExporterConfiguration;
/**
*
* @author Owner
Expand Down Expand Up @@ -79,8 +89,67 @@ public validasi(){
super();
};

public void reportQuerySmc(String filename, String directory, String title, Map params, String sql, String... values)
{
public void printReportQuerySmc(String reportName, String reportDirName, String title, Map params, String namaPrinter, int jumlah, String sql, String... values) {
String currentDir = System.getProperties().getProperty("user.dir");
File dir = new File(currentDir);
File report = null;
if (dir.isDirectory()) {
for (String file: dir.list()) {
report = new File(currentDir + File.separatorChar + file + File.separatorChar + reportName);
if (report.isFile()) {
System.out.println("Found report file at: " + report.toString());
break;
}
}
}
if (report == null) {
JOptionPane.showMessageDialog(null, "File tidak ditemukan!");
return;
}

try (PreparedStatement ps = connect.prepareStatement(sql)) {
for (int i = 0; i < values.length; i++) {
ps.setString(i + 1, values[i]);
}
PrintService printService = null;
for (PrintService currentPrintService: PrintServiceLookup.lookupPrintServices(null, null)) {
if (currentPrintService.getName().equals(namaPrinter)) {
System.out.println("Printer ditemukan: " + currentPrintService.getName());
printService = currentPrintService;
break;
}
}
JasperPrint jp = JasperFillManager.fillReport((JasperReport) JRLoader.loadObject(report), params, new JRResultSetDataSource(ps.executeQuery()));
if (printService == null) {
JOptionPane.showMessageDialog(null, "Printer tidak ditemukan!");
JasperViewer jv = new JasperViewer(jp, false);
Dimension screen = Toolkit.getDefaultToolkit().getScreenSize();
jv.setTitle(title);
jv.setSize(screen.width - 50, screen.height - 50);
jv.setModalExclusionType(ModalExclusionType.TOOLKIT_EXCLUDE);
jv.setLocationRelativeTo(null);
jv.setVisible(true);
} else {
PrintRequestAttributeSet pra = new HashPrintRequestAttributeSet();
pra.add(new Copies(jumlah));
SimplePrintServiceExporterConfiguration config = new SimplePrintServiceExporterConfiguration();
config.setPrintService(printService);
config.setPrintRequestAttributeSet(pra);
config.setPrintServiceAttributeSet(printService.getAttributes());
config.setDisplayPageDialog(false);
config.setDisplayPrintDialog(false);
JRPrintServiceExporter exporter = new JRPrintServiceExporter();
exporter.setExporterInput(new SimpleExporterInput(jp));
exporter.setConfiguration(config);
exporter.exportReport();
}
} catch (Exception e) {
System.out.println("Notif : " + e);
JOptionPane.showMessageDialog(null, "Tidak dapat menemukan printer untuk mencetak!");
}
}

public void reportQuerySmc(String filename, String directory, String title, Map params, String sql, String... values) {
try {
ps = connect.prepareStatement(sql);
try {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,10 @@

package khanzacetakantrianloket;

import fungsi.koneksiDB;
import javax.print.PrintService;
import javax.print.PrintServiceLookup;

/**
*
* @author igos
Expand All @@ -16,8 +20,17 @@ public class KhanzaCetakAntrianLoket {
* @param args the command line arguments
*/
public static void main(String[] args) {
frmUtama antrian=new frmUtama();
antrian.setVisible(true);
String printerAntrean = null;
for (PrintService ps: PrintServiceLookup.lookupPrintServices(null, null)) {
System.out.println("Printer ditemukan: " + ps.getName());
if (ps.getName().equals(koneksiDB.PRINTERCETAKANTREAN())) {
printerAntrean = ps.getName();
}
}
if (printerAntrean != null) {
System.out.println("Setting PRINTERCETAKANTREAN menggunakan printer: " + printerAntrean);
}
frmUtama antrian=new frmUtama();
antrian.setVisible(true);
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,6 @@ public class frmUtama extends javax.swing.JFrame {
public frmUtama() {
initComponents();
this.setExtendedState(MAXIMIZED_BOTH);

jam();
}

Expand Down Expand Up @@ -106,7 +105,7 @@ private void BtnCetakActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRS
param.put("propinsirs",akses.getpropinsirs());
param.put("kontakrs",akses.getkontakrs());
param.put("emailrs",akses.getemailrs());
Valid.reportQuerySmc("rptAntriLoket.jasper", "report", "::[ Antrian Loket ]::", param,
Valid.printReportQuerySmc("rptAntriLoket.jasper", "report", "::[ Antrian Loket ]::", param, koneksiDB.PRINTERCETAKANTREAN(), 1,
"select date_format(tanggal, '%d-%m-%Y') as tanggal, lpad(nomor, greatest(length(nomor), 3), '0') as nomor, jam from antriloketcetak_smc where nomor = ? and tanggal = current_date()",
String.valueOf(Integer.parseInt(LabelNomor.getText()))
);
Expand All @@ -121,7 +120,7 @@ private void BtnCetakActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRS
param.put("propinsirs",akses.getpropinsirs());
param.put("kontakrs",akses.getkontakrs());
param.put("emailrs",akses.getemailrs());
Valid.reportQuerySmc("rptAntriLoket.jasper", "report", "::[ Antrian Loket ]::", param,
Valid.printReportQuerySmc("rptAntriLoket.jasper", "report", "::[ Antrian Loket ]::", param, koneksiDB.PRINTERCETAKANTREAN(), 1,
"select date_format(tanggal, '%d-%m-%Y') as tanggal, lpad(nomor, greatest(length(nomor), 3), '0') as nomor, jam from antriloketcetak_smc where nomor = ? and tanggal = current_date()",
String.valueOf(Integer.parseInt(LabelNomor.getText()))
);
Expand All @@ -136,7 +135,7 @@ private void BtnCetakActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRS
param.put("propinsirs",akses.getpropinsirs());
param.put("kontakrs",akses.getkontakrs());
param.put("emailrs",akses.getemailrs());
Valid.reportQuerySmc("rptAntriLoket.jasper", "report", "::[ Antrian Loket ]::", param,
Valid.printReportQuerySmc("rptAntriLoket.jasper", "report", "::[ Antrian Loket ]::", param, koneksiDB.PRINTERCETAKANTREAN(), 1,
"select date_format(tanggal, '%d-%m-%Y') as tanggal, lpad(nomor, greatest(length(nomor), 3), '0') as nomor, jam from antriloketcetak_smc where nomor = ? and tanggal = current_date()",
String.valueOf(Integer.parseInt(LabelNomor.getText()))
);
Expand Down

0 comments on commit 063a16b

Please sign in to comment.