Programación , Domótica y microcontroladores.

Archivo para la Categoría "Programación"

Disculpas por no contestar a tiempo.

Estimad@s amigos,

Se compartirá el código de todos los aplicativos a finales del mes de junio.

Actualmente me he encontrado trabajando en un proyecto enorme que no he tenido tiempo de publicar pero tengo buenas noticias para todos. He decidido comenzar a publicar en las nuevas tecnologías que he estado trabajando, entre ellas las siguientes:

  1. Angularjs
  2. Nodejs
  3. RethinkDB
  4. Material Desing
  5. JSF – Primefaces

 

Si estas interesado en asesoría puedes escribir al siguiente correo: logica_razon@hotmail.com

Sistema de Odontología

Quiero compartir con todos ustedes un nuevo sistema que he realizado hace 9 meses atrás.Para iniciar debo decir que el sistema esta realizado en .jsp ,mysql , ireports (lado del servidor) y del lado del cliente tenemos jquery , jquery UI , CSS.

¿De que versa la aplicación?

La aplicación consiste en registrar los problemas dentales que tenga los chic@s del colegio , escuela ,etc con el objetivo de tener historiales del estudiante ya sea de forma gráfica para que ayuden al odontólogo en su trabajo y tomar decisiones en base a la información.Así cuando cada niño se acerca al departamento de odontología el doctor ya sabe que dientes debe de sanar y también el niñ@ puede separar citas en la agenda.

¿Qué incorpora la aplicación?

La aplicación incorpora configuración principal que consiste en registrar al doctor , secretaria , permisos al sistema , tipos de caríe , registrar alumnos y los símbolos que se usarán en el sistema.

La otra parte consiste en la agenda , odontograma , historial clínico.

Y finalmente la parte de reportes que puedes visualizar en la misma pantalla o puedes imprimir en pdf de una forma detallada.

¿Que tecnologías utilizas?

El sistema que ustedes pueden visualizar esta netamente orientado a objetos usa servlets con ajax lo cuál reducen increíblemente el tráfico.Así mismo , las tablas conocidas como datatables incorporan filtrados , lo cuál son eficientes y más aun para los usuarios finales.

Uno de los principales probelmas que tuve al realizar esta aplicación a parte del tiempo fue la utilización de canvas , para dibujar los circulos y volver a limpiar , prácticamente tuve que crear un plugin personalizado pero no tan complejo que realice eso , pero fue una experiencia enriquecedora de la cuál no estoy arrepentido.

Casi me olvide de hablar de los reportes .pdf que la aplicación muestra , pues si , tal como lo leen , la aplicación tiene la opción de obtener reportes de

Si deseas la aplicación puede contactarme….

Muy pronto publicaré una aplicación en android que permite enviar fotos fotos a un servidor remote entre otras cosas más en las que he trabajo últimamente.

Los números de 2012

Los duendes de las estadísticas de WordPress.com prepararon un informe sobre el año 2012 de este blog.

Aquí hay un extracto:

4,329 films were submitted to the 2012 Cannes Film Festival. This blog had 31.000 views in 2012. If each view were a film, this blog would power 7 Film Festivals

Haz click para ver el reporte completo.

Se brinda soporte en sistemas informático

Me he tomado la molestia de escribir esta entrada porque algunos amigos me han mencionado que si brindo soporte en sistemas informáticos o mobiles como android, pues si.Brindo soporte en aplicaciones o desarrollo de aplicaciones de cualquier índole.

Comparto mis experiencias sobre GIS.
Actualmente estoy desarrollando una aplicación en GIS en conjunto con android para realizar lo que se llama MAp party, que consiste básicamente en tomar una foto con android , escribir breve descripción de la foto y se graba todo eso en una servidor externo donde esta el gestor.

Muy pronto publicare para cargar dinamicamente sobre GIS puntos y sacar información en cada uno de ellos.

Autocompletado con Jquery +Mysql +Json

Hola amigos , esta vez a pedido del público comparto con todos ustedes un código chevre de autocompletado. Para eso usaremos las librerías de jquery y estilos.En mi caso , solo hago referencia a los links.

Nuestro proyecto se divide en dos archivos como se muestra a continuación:


Código del archivo index.php


Código del archivo json.php


Ahora , veremos el resultado del autocompletado.


Ahora , otra demostración..

 
   

 

 

 
   
Enlace de descarga aquí
 

 

Espero que les haya servido la demostración.

No se olviden de comentar amigos.

SISTEMA DE MATRICULACIÓN BÁSICO CON MYSQL+PHP+JQUERY+JSON+DATATABLE

Estimados lectores y amantes del desarrollo esta vez quiero compartir con todos ustedes un sistema básico de matriculación hecho con las tecnologías:
Php 5.3 + Mysql + Php (PDO+MVC) + JSON + WIDGETS ricos en interfaces con agradable vistas para el usuario.

El sistema esta en venta  y el  precios es  asequibles.Se puede personalizar de acuerdo a las necesidades de nuevos requerimientos. Bueno todo es de ponerse de acuerdo entre ambas partes.
Un poco acerca del sistema básico de matriculación.El sistema se divide en tres módulos generales y ellos son:

Configuración

* Institución
*Grado
*Paralelo
* Asignatura
*Turno
*Colaborador
*Ocupación
*Disciplina
*Docente
* Trimestre
*Estudiante
*Permiso

Gestión

*Periodo
*Malla
*Distributivo
* Nota
*Asignatura Periodo
*Docente Periodo
* Docente Asistencia
*Alumno Asistencia
*Matricula

Reportes

*Reporte de Matricula
*Reporte de Alumnos
*Reporte de Alumnos de Asistencia
*Reporte de Docente Asistencia
 

Contacta me:

correo: wilfolightfire18@hotmail.com

correo 2: logica_Razon@hotmail.com

celular: 0982502692

País :Ecuador





Pantalla de Login



Si la clave es incorrecta muestra un mensaje de error.


Pantalla de Grado



Pantalla de Grado la cual permite exportar a pdf , la búsqueda


Pantalla de Grado, Mensaje que nos indica si deseas eliminar el grado seleccionado.




Pantalla de Asignatura


Pantalla de Colaborador



Pantalla de Ocupación



Pantalla de Docente



Pantalla de Estudiante


Pantalla de Estudiante,Actualización


Pantalla de Permisos de Usuarios


Gestión











Reportes



Espero sus comentarios y si alguién le interesa comprar el sistema me avisa que gustoso le atenderé.

Defaultmutable Jtree con Jcheckbox

A pedido de algunos amigos, se realizó este ejemplo básico pero muy útil. Seguro , te estarás preguntando en estos instantes ¿Para qué podría servir?Pues, podrías utilizarlo como un árbol de permisos para usuarios (En realidad, yo lo uso de esa forma , para un nuevo sistema para pymes que estoy desarrollando) ,etc.
Un poco de cómo funciona esto, explico a continuación.
Un Jtree puede ser fácilmente modificable utilizando sus propias funciones que a la vez son configurables tales como: setCellRenderer y setCellEditor.
setCellRenderer : Con esta función se puede modificar la forma del árbol , es decir, colocando nuevos elementos , tales como :Checkbox,Jtextfield,Jcombobox,icon,etc.
setCellEditor: Con esta función hacemos que el árbol reaccione a los eventos , y muestre valores que el usuario ha ingresado en ese instante. Sin este método un árbol no tendría vida.
Desarrollo:
Se han realizado tres clases llamadas: Render , Editor y Plantilla.
Render: Encargada de dibujar los componentes.
Editor: Encargada de dar le vida al árbol.
Plantilla: Contiene información del nodo.
Ejecución:
Para visualizar los resultados se arrastra un Jtree y se le agrega nodos. Veamos el código.
DefaultMutableTreeNode root=new DefaultMutableTreeNode(new Plantilla(“1”, “Permisos”, true, “Modulo inicial”));
DefaultMutableTreeNode hijo=new DefaultMutableTreeNode(new Plantilla(“2”, “Recursos Humanos”, false, ” Modulo de RRHH”));
hijo.add(new DefaultMutableTreeNode(new Plantilla(“3”, “Nuevo”, false, “”)));
hijo.add(new DefaultMutableTreeNode(new Plantilla(“4”, “Modificar”, false, “”)));
hijo.add(new DefaultMutableTreeNode(new Plantilla(“5”, “Eliminar”, false, “”)));
root.add(hijo);
modelo=new DefaultTreeModel(root);
jTree1.setModel(modelo);
jTree1.setEditable(true);
jTree1.setCellRenderer(new Render());
jTree1.setCellEditor(new Editor());

Imágenes:

Ahora , pongo las clases.

Render.java

<br>package jtreecheckbox;<br><br>import java.awt.Component;<br>import javax.swing.JCheckBox;<br>import javax.swing.JLabel;<br>import javax.swing.JPanel;<br>import javax.swing.JTree;<br>import javax.swing.UIManager;<br>import javax.swing.tree.DefaultMutableTreeNode;<br>import javax.swing.tree.TreeCellRenderer;<br><br>/**<br> *<br> * @author Wilfo<br> */<br>public class Render implements TreeCellRenderer {<br><br>    JCheckBox check;<br>    JLabel label;<br>    JPanel panel;<br><br>    //constructor por deecto<br>    public Render() {<br>        check = new JCheckBox();<br>        check.setBackground(UIManager.getColor("Tree.background"));<br>        check.setBorder(null);<br>        label = new JLabel();<br>        label.setFont(UIManager.getFont("Tree.font"));<br>        panel = new JPanel();<br>        panel.setOpaque(false);<br>        panel.add(check);<br>        panel.add(label);<br>    }<br><br>    public Component getTreeCellRendererComponent(JTree tree, Object value, boolean selected, boolean expanded, boolean leaf, int row, boolean hasFocus) {<br>        //el objecto se transforma DefaultMutableTreeNode<br>        DefaultMutableTreeNode nodo=(DefaultMutableTreeNode)value;<br>        //accedo a los atributos de la clase plantilla<br>        //Esta parte es chevre por que puedes meter una clase en cada nodo del árbol<br>        //y cuando se selecciona se puede obtener todo lo referente a este nodo.<br>       //Observar la clase Plantilla y mira lo que contiene<br>        Plantilla clsPlantilla=(Plantilla)nodo.getUserObject();<br>        check.setSelected(clsPlantilla.getValor());<br>        label.setText(clsPlantilla.getNombre());<br>        label.setIcon(UIManager.getIcon("Tree.closedIcon"));<br>        return panel;<br>    }<br><br>}<br><br>

Editor.java

<br>package jtreecheckbox;<br><br>import java.awt.Component;<br>import java.awt.event.ActionEvent;<br>import java.awt.event.ActionListener;<br>import javax.swing.AbstractCellEditor;<br>import javax.swing.JCheckBox;<br>import javax.swing.JComponent;<br>import javax.swing.JLabel;<br>import javax.swing.JPanel;<br>import javax.swing.JTextField;<br>import javax.swing.JTree;<br>import javax.swing.UIManager;<br>import javax.swing.tree.DefaultMutableTreeNode;<br>import javax.swing.tree.TreeCellEditor;<br><br>/**<br> *<br> * @author Wilfo<br> */<br>public class Editor extends AbstractCellEditor<br>                      implements TreeCellEditor, ActionListener{<br><br>    JCheckBox check;<br>    JLabel label;<br>    JTextField textField;<br>    Plantilla clsPlantilla;<br>    JComponent editedComponent;<br>    JPanel panel;  <br><br>    public Editor(){<br>        check = new JCheckBox();<br>        check.addActionListener(this);<br>        check.setBackground(UIManager.getColor("Tree.background"));<br>        check.setBorder(null);<br>        label = new JLabel();<br>        label.setFont(UIManager.getFont("Tree.font"));<br>        textField = new JTextField();<br>        textField.addActionListener(this);<br>        textField.setBackground(UIManager.getColor("Tree.background"));<br>        textField.setBorder(null);<br>        panel = new JPanel();<br>        panel.setOpaque(false);<br>        panel.add(check);<br>        panel.add(label);<br>        panel.add(textField);<br>    }<br><br>    @Override<br>    public Object getCellEditorValue() {<br>        if(editedComponent == textField)<br>            clsPlantilla.setNombre(textField.getText());<br>        else<br>            clsPlantilla.setValor(check.isSelected());<br>        return clsPlantilla;<br>    }<br><br>    @Override<br>    public Component getTreeCellEditorComponent(JTree tree, Object value, boolean isSelected, boolean expanded, boolean leaf, int row) {<br>        DefaultMutableTreeNode node = (DefaultMutableTreeNode)value;<br>        clsPlantilla = (Plantilla)node.getUserObject();<br>        check.setSelected(clsPlantilla.getValor());<br>        label.setIcon(UIManager.getIcon("Tree.openedIcon"));<br>        textField.setText(clsPlantilla.getNombre());<br>        return panel;<br>    }<br><br>    @Override<br>    public void actionPerformed(ActionEvent e) {<br>        editedComponent = (JComponent)e.getSource();<br>        super.stopCellEditing();<br>    }<br><br>}<br><br>
<br>package jtreecheckbox;<br><br>/**<br> *<br> * @author Wilfo<br> */<br>public class Plantilla {<br><br>  public  String id;<br>  public String nombre;<br>  public boolean valor;<br>  public String descripcion;<br><br>    public Plantilla(String id, String nombre, boolean valor, String descripcion) {<br>        this.id = id;<br>        this.nombre = nombre;<br>        this.valor = valor;<br>        this.descripcion = descripcion;<br>    }<br><br>    public String getDescripcion() {<br>        return descripcion;<br>    }<br><br>    public String getNombre() {<br>        return nombre;<br>    }<br><br>    public String getId() {<br>        return id;<br>    }<br><br>    public boolean getValor() {<br>        return valor;<br>    }<br><br>    public void setDescripcion(String descripcion) {<br>        this.descripcion = descripcion;<br>    }<br><br>    public void setId(String id) {<br>        this.id = id;<br>    }<br><br>    public void setNombre(String nombre) {<br>        this.nombre = nombre;<br>    }<br><br>    public void setValor(boolean valor) {<br>        this.valor = valor;<br>    }<br><br>    @Override<br>    public String toString(){<br>     return nombre;<br>    }<br><br>}<br><br>

Link de descarga aquí.

<a href=”http://www.4shared.com/rar/ndXm6QRz/JtreeCheckbox.html”>Descargar
</a>