javaMysql

Sistema de venta en Java y Mysql desde cero

Sistemaventa
Compartir en:

Descargar Imágenes del proyecto

Descargar por Drive
Descargar por Mediafire

Librerias

Descargar por Drive
Descargar por Mediafire

Jar Java – Access

Descargar por Mediafire

Código para generar reportes de productos en excel

package Reportes;
import java.awt.Desktop;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.JOptionPane;
import Modelo.Conexion;
import org.apache.poi.ss.usermodel.BorderStyle;
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.CellStyle;
import org.apache.poi.ss.usermodel.ClientAnchor;
import org.apache.poi.ss.usermodel.CreationHelper;
import org.apache.poi.ss.usermodel.Drawing;
import org.apache.poi.ss.usermodel.FillPatternType;
import org.apache.poi.ss.usermodel.Font;
import org.apache.poi.ss.usermodel.HorizontalAlignment;
import org.apache.poi.ss.usermodel.IndexedColors;
import org.apache.poi.ss.usermodel.Picture;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.ss.usermodel.VerticalAlignment;
import org.apache.poi.ss.usermodel.Workbook;
import org.apache.poi.ss.util.CellRangeAddress;
import org.apache.poi.util.IOUtils;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
public class Excel {
public static void reporte() {
Workbook book = new XSSFWorkbook();
Sheet sheet = book.createSheet("Productos");
try {
InputStream is = new FileInputStream("src/img/logo.png");
byte[] bytes = IOUtils.toByteArray(is);
int imgIndex = book.addPicture(bytes, Workbook.PICTURE_TYPE_PNG);
is.close();
CreationHelper help = book.getCreationHelper();
Drawing draw = sheet.createDrawingPatriarch();
ClientAnchor anchor = help.createClientAnchor();
anchor.setCol1(0);
anchor.setRow1(1);
Picture pict = draw.createPicture(anchor, imgIndex);
pict.resize(1, 3);
CellStyle tituloEstilo = book.createCellStyle();
tituloEstilo.setAlignment(HorizontalAlignment.CENTER);
tituloEstilo.setVerticalAlignment(VerticalAlignment.CENTER);
Font fuenteTitulo = book.createFont();
fuenteTitulo.setFontName("Arial");
fuenteTitulo.setBold(true);
fuenteTitulo.setFontHeightInPoints((short) 14);
tituloEstilo.setFont(fuenteTitulo);
Row filaTitulo = sheet.createRow(1);
Cell celdaTitulo = filaTitulo.createCell(1);
celdaTitulo.setCellStyle(tituloEstilo);
celdaTitulo.setCellValue("Reporte de Productos");
sheet.addMergedRegion(new CellRangeAddress(1, 2, 1, 3));
String[] cabecera = new String[]{"Código", "Nombre", "Precio", "Existencia"};
CellStyle headerStyle = book.createCellStyle();
headerStyle.setFillForegroundColor(IndexedColors.LIGHT_BLUE.getIndex());
headerStyle.setFillPattern(FillPatternType.SOLID_FOREGROUND);
headerStyle.setBorderBottom(BorderStyle.THIN);
headerStyle.setBorderLeft(BorderStyle.THIN);
headerStyle.setBorderRight(BorderStyle.THIN);
headerStyle.setBorderBottom(BorderStyle.THIN);
Font font = book.createFont();
font.setFontName("Arial");
font.setBold(true);
font.setColor(IndexedColors.WHITE.getIndex());
font.setFontHeightInPoints((short) 12);
headerStyle.setFont(font);
Row filaEncabezados = sheet.createRow(4);
for (int i = 0; i < cabecera.length; i++) {
Cell celdaEnzabezado = filaEncabezados.createCell(i);
celdaEnzabezado.setCellStyle(headerStyle);
celdaEnzabezado.setCellValue(cabecera[i]);
}
Conexion con = new Conexion();
PreparedStatement ps;
ResultSet rs;
Connection conn = con.getConnection();
int numFilaDatos = 5;
CellStyle datosEstilo = book.createCellStyle();
datosEstilo.setBorderBottom(BorderStyle.THIN);
datosEstilo.setBorderLeft(BorderStyle.THIN);
datosEstilo.setBorderRight(BorderStyle.THIN);
datosEstilo.setBorderBottom(BorderStyle.THIN);
ps = conn.prepareStatement("SELECT codigo, nombre, precio, stock FROM productos");
rs = ps.executeQuery();
int numCol = rs.getMetaData().getColumnCount();
while (rs.next()) {
Row filaDatos = sheet.createRow(numFilaDatos);
for (int a = 0; a < numCol; a++) {
Cell CeldaDatos = filaDatos.createCell(a);
CeldaDatos.setCellStyle(datosEstilo);
CeldaDatos.setCellValue(rs.getString(a + 1));
}
numFilaDatos++;
}
sheet.autoSizeColumn(0);
sheet.autoSizeColumn(1);
sheet.autoSizeColumn(2);
sheet.autoSizeColumn(3);
sheet.autoSizeColumn(4);
sheet.setZoom(150);
String fileName = "productos";
String home = System.getProperty("user.home");
File file = new File(home + "/Downloads/" + fileName + ".xlsx");
FileOutputStream fileOut = new FileOutputStream(file);
book.write(fileOut);
fileOut.close();
Desktop.getDesktop().open(file);
JOptionPane.showMessageDialog(null, "Reporte Generado");
} catch (FileNotFoundException ex) {
Logger.getLogger(Excel.class.getName()).log(Level.SEVERE, null, ex);
} catch (IOException | SQLException ex) {
Logger.getLogger(Excel.class.getName()).log(Level.SEVERE, null, ex);
}
}
}

Generar Pdf

private void Pdf(){
try {
int idv = Vdao.IdVenta();
Date date = new Date();
FileOutputStream archivo;
File file = new File("src/pdf/venta" + idv + ".pdf");
archivo = new FileOutputStream(file);
Document doc = new Document();
PdfWriter.getInstance(doc, archivo);
doc.open();
Image img = Image.getInstance("src/img/logo_pdf.png");
//Fecha
Paragraph fecha = new Paragraph();
Font negrita = new Font(Font.FontFamily.TIMES_ROMAN, 12, Font.BOLD, BaseColor.BLUE);
fecha.add(Chunk.NEWLINE);
fecha.add("Fecha: " + new SimpleDateFormat("dd-MM-yyyy").format(date) + "\n\n");
PdfPTable Encabezado = new PdfPTable(4);
Encabezado.setWidthPercentage(100);
Encabezado.getDefaultCell().setBorder(0);
float[] columnWidthsEncabezado = new float[]{20f, 30f, 70f, 40f};
Encabezado.setWidths(columnWidthsEncabezado);
Encabezado.setHorizontalAlignment(Element.ALIGN_LEFT);
Encabezado.addCell(img);
//info empresa
String ruc = txtConfigRuc.getText();
String nom = txtNombreConfig.getText();
String tel = txtTelefonoConf.getText();
String dir = txtDireccionConf.getText();
String ra = txtRazonConf.getText();
Encabezado.addCell("");
Encabezado.addCell("RUC: " +ruc+ "\nNOMBRE: " + nom +"\nTeléfono: " +tel+ "\nDirección: " +dir+ "\nDirección: " +ra+ "\n\n");
Encabezado.addCell(fecha);
doc.add(Encabezado);
//cliente
Paragraph cli = new Paragraph();
cli.add(Chunk.NEWLINE);
cli.add("DATOS DEL CLIENTE" + "\n\n");
doc.add(cli);
PdfPTable Tablacliente = new PdfPTable(4);
Tablacliente.setWidthPercentage(100);
Tablacliente.getDefaultCell().setBorder(0);
float[] columnWidthsCliente = new float[]{20f, 50f, 30f, 40f};
Tablacliente.setWidths(columnWidthsCliente);
Tablacliente.setHorizontalAlignment(Element.ALIGN_LEFT);
PdfPCell cl1 = new PdfPCell(new Phrase("Dni/Ruc", negrita));
PdfPCell cl2 = new PdfPCell(new Phrase("Nombre", negrita));
PdfPCell cl3 = new PdfPCell(new Phrase("Teléfono", negrita));
PdfPCell cl4 = new PdfPCell(new Phrase("Dirección", negrita));
cl1.setBorder(Rectangle.NO_BORDER);
cl2.setBorder(Rectangle.NO_BORDER);
cl3.setBorder(Rectangle.NO_BORDER);
cl4.setBorder(Rectangle.NO_BORDER);
Tablacliente.addCell(cl1);
Tablacliente.addCell(cl2);
Tablacliente.addCell(cl3);
Tablacliente.addCell(cl4);
Tablacliente.addCell(txtRucVenta.getText());
Tablacliente.addCell(txtNombreClienteventa.getText());
Tablacliente.addCell(txtTelefonoCV.getText());
Tablacliente.addCell(txtDireccionCV.getText() + "\n\n");
doc.add(Tablacliente);
PdfPTable tabla = new PdfPTable(4);
tabla.setWidthPercentage(100);
tabla.getDefaultCell().setBorder(0);
float[] columnWidths = new float[]{10f, 50f, 15f, 15f};
tabla.setWidths(columnWidths);
tabla.setHorizontalAlignment(Element.ALIGN_LEFT);
PdfPCell c1 = new PdfPCell(new Phrase("Cant.", negrita));
PdfPCell c2 = new PdfPCell(new Phrase("Descripción.", negrita));
PdfPCell c3 = new PdfPCell(new Phrase("P. unt.", negrita));
PdfPCell c4 = new PdfPCell(new Phrase("P. Total", negrita));
c1.setBorder(Rectangle.NO_BORDER);
c2.setBorder(Rectangle.NO_BORDER);
c3.setBorder(Rectangle.NO_BORDER);
c4.setBorder(Rectangle.NO_BORDER);
c1.setBackgroundColor(BaseColor.LIGHT_GRAY);
c2.setBackgroundColor(BaseColor.LIGHT_GRAY);
c3.setBackgroundColor(BaseColor.LIGHT_GRAY);
c4.setBackgroundColor(BaseColor.LIGHT_GRAY);
tabla.addCell(c1);
tabla.addCell(c2);
tabla.addCell(c3);
tabla.addCell(c4);
for (int i = 0; i < TableVenta.getRowCount(); i++) {
String producto = TableVenta.getValueAt(i, 1).toString();
String cant = TableVenta.getValueAt(i, 2).toString();
String pre = TableVenta.getValueAt(i, 3).toString();
String tot = TableVenta.getValueAt(i, 4).toString();
tabla.addCell(cant);
tabla.addCell(producto);
tabla.addCell(pre);
tabla.addCell(tot);
}
doc.add(tabla);
Paragraph info = new Paragraph();
info.add(Chunk.NEWLINE);
info.add("Total S/: " + Totalpagar);
info.setAlignment(Element.ALIGN_RIGHT);
doc.add(info);
Paragraph firma = new Paragraph();
firma.add(Chunk.NEWLINE);
firma.add("Cancelacion \n\n");
firma.add("----------------------\n");
firma.add("Firma \n");
firma.setAlignment(Element.ALIGN_CENTER);
doc.add(firma);
Paragraph gr = new Paragraph();
gr.add(Chunk.NEWLINE);
gr.add("Gracias por su Compra");
gr.setAlignment(Element.ALIGN_CENTER);
doc.add(gr);
doc.close();
try {
archivo.close();
} catch (IOException ex) {
Logger.getLogger(Sistema.class.getName()).log(Level.SEVERE, null, ex);
}
Desktop.getDesktop().open(file);
} catch (DocumentException e) {
System.out.println(e.toString());
} catch (IOException ex) {
Logger.getLogger(Sistema.class.getName()).log(Level.SEVERE, null, ex);
}
}

Validación del JTextField Java

import java.awt.event.KeyEvent;
import javax.swing.JTextField;
public class Eventos {
public void textKeyPress(KeyEvent evt){
// declaramos una variable y le asignamos un evento
char car = evt.getKeyChar();
if ((car < 'a' || car > 'z') && (car < 'A' || car > 'Z')
&& (car != (char) KeyEvent.VK_BACK_SPACE) && (car != (char) KeyEvent.VK_SPACE)) {
evt.consume();
}
}
public void numberKeyPress(KeyEvent evt){
// declaramos una variable y le asignamos un evento
char car = evt.getKeyChar();
if ((car < '0' || car > '9') && (car != (char) KeyEvent.VK_BACK_SPACE)) {
evt.consume();
}
}
public void numberDecimalKeyPress(KeyEvent evt, JTextField textField){
// declaramos una variable y le asignamos un evento
char car = evt.getKeyChar();
if ((car < '0' || car > '9') && textField.getText().contains(".") && (car != (char) KeyEvent.VK_BACK_SPACE)) {
evt.consume();
}else if ((car < '0' || car > '9') && (car !=  '.') && (car != (char) KeyEvent.VK_BACK_SPACE)) {
evt.consume();
}
}
}

2 comentarios en “Sistema de venta en Java y Mysql desde cero

  1. Amigo, quisiera empezar con el videotutorial del sistema de ventas con java y mysql, pero en la parte para descargar laas imagenes y las librerias no me descarga de mediafire no abre la pagina, puedes mandar a mi correo.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *