viernes, 4 de diciembre de 2015

Proyecto completo en Java netbeans - Tpv Free


Proyecto completo en Java netbeans - Tpv Free 2.016
Informes, Formularios, Base de datos y la librerías necesarias para utilizar y ejecutar el proyecto.

Este proyecto esta preparado para manejar las compras, ventas y las existencias de mercaderías, cuenta también con la opción de facturación del IVA del 5% y 10%.



martes, 1 de diciembre de 2015

7.- Tutorial Java Netbeans - Crear formulario Referencial para tablas de dos campos

Crear formulario Referencial para tablas de dos campos, es un formulario para poder Insertar datos, Modificar datos y eliminar datos de una tabla con dos campos.


Importaciones:
package Referenciales;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.JOptionPane;
import javax.swing.table.DefaultTableModel;
import Prgs.Conexion;
import javax.swing.ImageIcon;

Variables generales:
public class frmReferencial extends javax.swing.JDialog {
    String TituloG,TablaN,CampoId,CampoDes;
    Conexion nCon; //Conexion de la base de datos
    String sentencia; //sentencia que se va a ejecutar
    Statement ejecutar;//variable para ejecucion de sentencias
    ResultSet resultado;//variable para almacenar resultado de consultas
    DefaultTableModel mitabla = new DefaultTableModel();
    char operacion; 

Configuración inicial o principal

   public frmReferencial(java.awt.Frame parent, boolean modal, String TituloG, String TablaN, String CampoId, String CampoDes) {
        super(parent, modal);
        initComponents();
         this.setResizable(false);
                        this.setLocationRelativeTo(null);
                        this.setSize(700,480);
                        this.setTitle(" ..::"+TituloG+"::..");
                                    jLabel1.setText(TituloG);
                                    this.TablaN = TablaN;
                                    this.TituloG = TituloG;
                                    this.CampoId = CampoId;
                                    this.CampoDes = CampoDes;                
                        try {
                            ejecutar = Conexion.getConexion().createStatement();
                        } catch (SQLException ex) {
                            Logger.getLogger(frmReferencial.class.getName()).log(Level.SEVERE, null, ex);
                        }
                        //añadir columnas a la tabla abstracta
                        mitabla.addColumn("Codigo");
                        mitabla.addColumn("Descripcion");
                                 
                        modoEdicion(false);
                        mostrarDatos();
    }

Acciones y eventos en botones:

   private void txtDescripcionKeyReleased(java.awt.event.KeyEvent evt) {                                        
        String z;
        z = this.txtDescripcion.getText();
        this.txtDescripcion.setText(z.toUpperCase());
    }                                        
    private void tablaReferencialMouseClicked(java.awt.event.MouseEvent evt) {                                            
        cargarCuadros();
    }                                          
    private void btnAgregarActionPerformed(java.awt.event.ActionEvent evt) {                                        
        accionAgregar();
    }                                        
    private void btnGuardarActionPerformed(java.awt.event.ActionEvent evt) {                                        
        accionGuardar();
    }                                        
    private void btnCanelarActionPerformed(java.awt.event.ActionEvent evt) {                                        
        accionCancelar();
    }                                        
    private void btnModificarActionPerformed(java.awt.event.ActionEvent evt) {                                          
        accionModificar();
    }                                          
    private void btnEliminarActionPerformed(java.awt.event.ActionEvent evt) {                                          
        accionEliminar();
    }                                        
    private void btnCerrarActionPerformed(java.awt.event.ActionEvent evt) {                                        
        dispose();
    }  

 Acciones

 private void modoEdicion(boolean vL) {
        txtCodigo.setEnabled(vL);
    txtDescripcion.setEnabled(vL);
 
    tablaReferencial.setEnabled(!vL);
 
    btnAgregar.setEnabled(!vL);
    btnGuardar.setEnabled(vL);
    btnCanelar.setEnabled(vL);
    btnModificar.setEnabled(!vL);
    btnEliminar.setEnabled(!vL);
    btnCerrar.setEnabled(!vL);
    }
    private void mostrarDatos() {
        mitabla.setRowCount(0);
sentencia = "SELECT * FROM "+TablaN +"  ORDER BY "+CampoId+" ";
        try {
            resultado = ejecutar.executeQuery(sentencia);
         
            while(resultado.next()){
                Object[] fila=new Object[2]; //definimos un arreglo de 3
                fila[0] = resultado.getObject(1);
                fila[1] = resultado.getObject(2);
                             
                //asignar a tabla abstracta
                mitabla.addRow(fila);
            }
         
                //asignar modelo a tabla(objeto)
                tablaReferencial.setModel(mitabla);
        } catch (SQLException ex) {
            Logger.getLogger(frmReferencial.class.getName()).log(Level.SEVERE, null, ex);
         
        }
    }
    private void accionAgregar() {
                 //Obtener valor maximo
        sentencia = ("SELECT MAX(" + CampoId + ") FROM " + TablaN);
        //sentencia = "SELECT MAX(idbarrios) FROM barrios";
        try {
            //ejecuta la consulta
            resultado = ejecutar.executeQuery(sentencia);
            //posicionamos al primer registro
            resultado.next();
            //obtenemos el valor entero del resultado
            int xid = resultado.getInt(1);
            //aumentar en 1
            xid++;
            //Asignar al cuadro codigo
            txtCodigo.setText(Integer.toString(xid));
            //Activar modo edicion (v)
            modoEdicion(true);
            //Enviar enfoque a Descripcion
            txtDescripcion.grabFocus();
            operacion = 'A';//Indica que estamos agregando registro
         
        } catch (SQLException ex) {
            Logger.getLogger(frmReferencial.class.getName()).log(Level.SEVERE, null, ex);
        }
    }
    private void accionGuardar() {
          //Obtener valores de cuadros en variables
        String v1 = txtCodigo.getText();
        String v2 = txtDescripcion.getText();
        //validar los datos
         if(txtDescripcion.getText().isEmpty()){
            JOptionPane.showMessageDialog(this,"No se puede dejar en blanco");
            txtDescripcion.grabFocus();
         }
        else{
        //sentencia de almacenamiento
        if(operacion=='A'){
             sentencia = "INSERT INTO  " + TablaN + "  VALUES('"+v1+"','"+v2+"')";
        }else{
            sentencia = "UPDATE " + TablaN + "  SET  " + CampoDes +"='"+v2+"' WHERE  " + CampoId + "='"+v1+"'";
        }
     
        try {
            ejecutar.executeUpdate(sentencia);
     
     
        } catch (SQLException ex) {
            JOptionPane.showMessageDialog(this,"Error al almacenar\n"+ex);
            //Logger.getLogger(frmCargos.class.getName()).log(Level.SEVERE, null, ex);
        }
        //limpiar cuadros y modo edicion a falso
        limpiarCuadros();
        modoEdicion(false);
        mostrarDatos();
    }
    }
    private void accionCancelar() {
            limpiarCuadros();
        modoEdicion(false);
    }
    private void accionModificar() {
      if(!txtDescripcion.getText().isEmpty()){
            modoEdicion(true);
            operacion = 'M';//indicamos la modificacion de registros
            txtDescripcion.grabFocus();
         
        }else{
            JOptionPane.showMessageDialog(this,"Haga clic en el registro que desee modificar",
                    "Seleccione un estado",JOptionPane.WARNING_MESSAGE);
        }
    }
    private void accionEliminar() {
                if(!txtDescripcion.getText().isEmpty()){
            //obtenemos el id del barrio
            String xid = txtCodigo.getText();
            sentencia = "DELETE FROM " + TablaN + " WHERE " + CampoId + "='"+xid+"'";
            //  sentencia = "DELETE FROM barrios WHERE idbarrios='"+xid+"'";
            int resp = JOptionPane.showConfirmDialog(this,"Confirma la eliminacion del registro?",
                    "Confirme",JOptionPane.YES_NO_OPTION);
            if(resp==JOptionPane.YES_OPTION){
                try {
                    ejecutar.executeUpdate(sentencia);
                } catch (SQLException ex) {
                    Logger.getLogger(frmReferencial.class.getName()).log(Level.SEVERE, null, ex);
                }
            }
         
        }else{
            JOptionPane.showMessageDialog(this,"Haga clic en el registro que desee Eliminar",
                    "Seleccione un estado",JOptionPane.WARNING_MESSAGE);
        }
        mostrarDatos();
        limpiarCuadros();
    }
    private void limpiarCuadros() {
        txtCodigo.setText(null);
        txtDescripcion.setText(null);
    }
    private void cargarCuadros() {
             int nroFila;
        nroFila = tablaReferencial.getSelectedRow();
        if (nroFila>=0){
            //asignamos los valores a los cuadros
            txtCodigo.setText(tablaReferencial.getValueAt(nroFila, 0).toString());
            txtDescripcion.setText(tablaReferencial.getValueAt(nroFila,1).toString());
        }
    }

Insetar imagenes en Jframe y JDialog NetBeans

La forma mas fácil de insertar una imagen en formulario y botones en NetBeans con jLabel.


6.- Tutorial Java Netbeans - Crear formulario de Acceso al sistema

Crear un formulario para acceder al sistema, este es un formulario del tipo Jframe donde solicitamos un usuario y la contraseña que se verifica en la base de datos para acceder al sistema.


Importaciones:


package Prgs;
import java.sql.SQLException;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.JOptionPane;
import java.sql.ResultSet;
import java.sql.Statement;
import Formularios.Principal;
import java.awt.event.KeyEvent;
import javax.swing.ImageIcon;

Varios en el principal:


public class frmInicio extends javax.swing.JFrame {
    Conexion nCon; //Conexion de la base de datos
    public static String idusers; //varialbe para id userario en fomularios
    private static String ClaveUsuario;
    private static int intento;
    String sentencia,ClaveUsuarios;
    Statement ejecutar;//variable para ejecucion de sentencias
    ResultSet resultado;//variable para almacenar resultado de consultas


Configuraciones iniciales:


 public frmInicio() {
        try {
            initComponents();
            ejecutar = Conexion.getConexion().createStatement();
         
            this.setLocationRelativeTo(null);
            this.setResizable(false);
        } catch (SQLException ex) {
            Logger.getLogger(frmInicio.class.getName()).log(Level.SEVERE, null, ex);
        }
    }

Botones y cuadros de texto:
    private void btnSalirActionPerformed(java.awt.event.ActionEvent evt) {                                      
        dispose();
    }                                      
    private void btnAceptarActionPerformed(java.awt.event.ActionEvent evt) {                                        
        accionAceptar();
    }                                        
    private void txtNombreKeyPressed(java.awt.event.KeyEvent evt) {                                  
        if (evt.getKeyCode()==KeyEvent.VK_ENTER)
        traeruser();
    }   
 private void txtClaveKeyPressed(java.awt.event.KeyEvent evt) {                                  
       if (evt.getKeyCode() == KeyEvent.VK_ENTER) {
  accionAceptar();
       }
    }    

Acciones o eventos: 


    private void traeruser() {
            String xAlias = txtNombre.getText();
             resultado=null;
            String consulta = "SELECT * FROM usuarios WHERE nombre='"+xAlias+"'";
        try {
            resultado = ejecutar.executeQuery(consulta);
            resultado.next();
            String xidU = resultado.getObject(1).toString();
            String xnoU = resultado.getObject(3).toString();
            ClaveUsuarios = resultado.getObject(4).toString();
            ClaveUsuarios = ClaveUsuarios.trim();
            txtNombre.setText(xnoU);
            txtClave.grabFocus();
            idusers= resultado.getObject(1).toString();
            } catch (SQLException e) {
          JOptionPane.showMessageDialog(null, "Error en la consulta"+e);
        }
    }
    private void accionAceptar() {
          if (intento<3 br="">                String clave = txtClave.getText();
          if (clave.equals(ClaveUsuarios)) {
                Principal Principal = new Principal();
                Principal.txtusuario.setText(idusers);
                Principal.txtnombreuse.setText(txtNombre.getText());
                Principal.setVisible(true);
                dispose();
            } else {
                    JOptionPane.showMessageDialog(null, "La Clave ingresada no coincide con el registro del Usuario",
                "Error de Clave",JOptionPane.ERROR_MESSAGE);
            intento++;
            txtClave.setText(null);
            txtClave.grabFocus();
            //frmPermiso.txtusers.setText(idusers);
}
} else {
        JOptionPane.showMessageDialog(null, "Ha llegado al límite de intentos (3)","Sin acceso",JOptionPane.ERROR_MESSAGE);
        System.exit(0);
}
    }

jueves, 1 de octubre de 2015

Traducir archivos PDF online...el mejor, sin limitaciones

Hasta ahora los métodos que me había encontrado para traducir un archivo PDF tenían sus inconvenientes, sin embargo hay que reconocer que se ha avanzado mucho en este sentido.
El metodo que yo les propongo parece ser que apunta en mucho a eliminar esos inconvenientes que se presentaban.

Por ejemplo: el metodo de convertir el archivo de PDF a HTML, representa una perdida de formato.

Veamos que importante es conservar el formato en un texto, por ejemplo si lo que estas manejando es un manual de cualquier programa, en el que los graficos son determinantes para poder aprender el uso de este de manera efectiva.

Bien sin mas rollo vayamos a la parte interesante.

1.-primero debemos verificar que nuestro archivo no este protegido. esto se consigue abriendo nuestro archivo, realizando cualquier cambio y presionando las teclas de guardar. si nos envia un mensaje de only read entonces si esta protegido. Para desprotegerlo, lo recomendable sera meter el archivo a una impresora virtual como "DoPdf", que la tratara como archivo nuevo y lo guardara sin restricciones.
Luego podemos continuar con nuestro tutorial.

ahora les voy a recomendar dos sitios.

el primero es http://www.fileminx.com

este sitio convierte casi toda clase de archivos a otro de formato compatible, es decir, archivos de sonido con los propios de su genero, asi como los de texto.
Asi que lo primero que haremos sera
1.-entrar al sitio e indicarle el archivo pdf que deseamos convertir a doc.
2.-continuar, e indicarle el formato que deseamos.
3.-la pagina nos indica un link con el archivo para que lo bajemos

al terminar ustedes tendran un documento tan parecido al original que sera dificil reconocer las diferencias entre ambos aun para los mas observadores.

hasta aquí no hay cambios que guardar, nuestro archivo sigue en el idioma original.

4.-vamos a nuestro segundo sitio. http://www.onlinedoctranslator.com/ .


la primera vez que lo utilicemos nos enviara un mensaje sobre la instalacion de applets, acepten. Aclaro son totalmente confiables.

5.-al terminar sigan los pasos en pantalla.

ventajas del servicio.

es gratuito
tiene mas de 250 idiomas
traduce archivos de office
no hay limites en el tamaño del archivo
y una mas de sus grandes cualidades: conserva el formato original!!!!

Post original en taringa
taringa.net

jueves, 24 de septiembre de 2015

5.- Tutorial Java Netbeans - Crear formulario Principal con imagen de fondo

Crear un formulario principal con una imagen de fondo, para ello vamos a utilizar un formulario MDI de los componentes swing.



package formularios;
import Prg.fondoP;
public class Principal extends javax.swing.JFrame {
    /**
     * Creates new form Principal
     */
    public Principal() {
        initComponents();
        this.setExtendedState(MAXIMIZED_BOTH);
     
        this.setTitle("..::Terminal de Punto de Ventas - Free::.. Versión 2015.1");
        jfondo.setBorder(new fondoP());
    }
      

4.- Tutorial Java Netbeans - Crear clase Fondo

Para insertar imagenes en formulario en Netbeans, necesitamos crear una clase para poder definir donde se encuentra nuestra imagen de fondo, para el formulario principal.

Clase fondoP;
package Prgs;
import java.awt.Component;
import java.awt.Graphics;
import java.awt.Insets;
import java.awt.image.BufferedImage;
import java.io.IOException;
import java.net.URL;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.imageio.ImageIO;
import javax.swing.border.Border;
/**
 *
 * @author wily
 */
public class fondoP implements Border {
    BufferedImage fondo;
      public fondoP(){
         try  {
        URL url = new URL(getClass().getResource("/Imagenes/fondos.jpg").toString());
        fondo = ImageIO.read(url);
    }catch (IOException ex){
    Logger.getLogger(fondoP.class.getName()).log(Level.SEVERE,null, ex);
    }    }
    public void paintBorder(Component c, Graphics g, int x, int y, int width, int height){
    g.drawImage(fondo,(x+(width - fondo.getWidth())/2),(y+(height - fondo.getHeight())/2),null);  
    }
       public Insets getBorderInsets(Component c){
        return new Insets (0,0,0,0);
    }
        public boolean isBorderOpaque(){
        return true;
    }    
 }

3.- Tutorial Java Netbeans - Clase conexión con Base de Datos Mysql

Para la transacción de de datos con el proyecto desarrollado en Netbeans, re quiere una conexión a un motor de base de datos, en este caso usaremos Mysql.

1. Necesitamos crear una clase en el Paquete > Prgs.
2. importar las librerías necesarias para la conexión y el manejo de error de conexión.
3. usuario y contraseña del gestor de base de datos.

Clase en Netbeans:
package Prgs;
import java.sql.Connection;
import java.sql.DriverManager;
import javax.swing.JOptionPane;

/**
 *
 * @author wily
 */
public class Conexion {
     static Connection conexion;
    public static Connection getConexion() {
        try{
//            Se crea una instancia de la clase manejadora de mySQL
            Class.forName("com.mysql.jdbc.Driver");
//            Se crea la conexion con la base de datos deseada
            conexion = (Connection) DriverManager.getConnection(
                    "jdbc:mysql://127.0.0.1:3306/TpvFull",
                    "root", "123456");
        } catch(Exception e) {
//            Si ocurrio un error se muestra el mensaje
            JOptionPane.showMessageDialog(null, "Error al conectarse","Conexion",
                    JOptionPane.ERROR_MESSAGE);
        }
        return conexion;
    }
}


2.- Agregar Librerías Proyecto en Netbeans 8.02

Agregar Librerías Proyecto en Netbeans 8.02 




Para descargar las librerías completas.
Librerias 2015


Agregar librerías a los nuestros proyectos Netbeans, las librerias son la siguientes;
bcmail-jdk14-136.jar -- Libreria para encriptar - http://www.java2s.com/Code/Jar/b/Downloadbcmailjdk14136jar.htm

bcprov-jdk14-136.jar -- Libreria pra encriptar - http://www.java2s.com/Code/Jar/b/Downloadbcprovjdk14136jar.htm

commons-beanutils-1.8.2.jar -- http://commons.apache.org/proper/commons-beanutils/

commons-collections-3.2.1.jar -- https://commons.apache.org/proper/commons-collections/download_collections.cgi

commons-digester-1.7.jar -- http://www.java2s.com/Code/Jar/c/Downloadcommonsdigester17jar.htm

commons-logging-1.1.jar -- http://commons.apache.org/proper/commons-logging/download_logging.cgi

DateChooser.jar -- Liberia para selecion de fechas - http://plugins.netbeans.org/plugin/658/jdatechooser-1-2

groovy-all-2.3.7.jar -- http://mvnrepository.com/artifact/org.codehaus.groovy/groovy-all/2.3.7

iText-2.1.7.jar -- Libria para PDF - http://www.findjar.com/jar/com/lowagie/itext/2.1.7/itext-2.1.7.jar.html

jasperreports-5.5.2.jar -- Liberia par cargar Reportes - http://sourceforge.net/projects/jasperreports/files/jasperreports/JasperReports%205.5.2/

jcalendar-1.4.jar -- Liberia para fechas - http://www.java2s.com/Code/Jar/j/Downloadjcalendar14jar.htm

jcommon-1.0.15.jar -- http://www.java2s.com/Code/Jar/j/Downloadjcommon1015jar.htm

jdtcore-3.1.0.jar -- http://mvnrepository.com/artifact/eclipse/jdtcore/3.1.0

jfreechart-1.0.12.jar -- http://www.java2s.com/Code/Jar/j/Downloadjfreechart1012jar.htm

jxl.jar -- http://www.java2s.com/Code/Jar/j/Downloadjxljar.htm

log4j-1.2.17.jar -- https://logging.apache.org/log4j/1.2/download.html

mysql-connector-java-5.1.35-bin.jar -- Libreria para conexion con Mysql - http://dev.mysql.com/downloads/connector/j/

poi-3.7.jar -- http://grepcode.com/snapshot/repo1.maven.org/maven2/org.apache.poi/poi/3.7

substance-4.3.jar -- http://www.java2s.com/Code/Jar/s/Downloadsubstance43jar.htm

xml-apis.jar -- http://mvnrepository.com/artifact/xml-apis/xml-apis/2.0.


1.- Creación Proyecto en Netbeans 8.02

Tutorial de creación de una aplicación de escritorio con  Netbeans 8.02.

Para descargar Netbeans. 
      Ingles: https://netbeans.org/downloads/
      Español: https://netbeans.org/downloads/8.0.1/


jueves, 18 de junio de 2015

Sumar totales en reportes Ireport 5, en NetBeans


Después de indagar mucho por la red encontré  un método de como realizar totales en ireport desde Netbeans, así que aquí les dejo el vídeo de como se realiza..