Autor Tema: Sistema de Nómina En VB 6.0 y Sistema de Venta de Productos En PHP con Mysql  (Leído 17618 veces)

Jigsaw_MGO

  • Intermedio
  • ***
  • APR2.COM
  • Mensajes: 113
    • Ver Perfil
Buenas tardes chicos, días sin escribir por aquí pero es que quería hacer las cosas por mi cuenta y sin ayuda y he aprendido bastante pero todos tenemos una barrera y ha llegado la mía (Los reportes en VB 6.0, para hacer el recibo de pago de empleado)

Adjunto el proyecto abajo, espero lo revisen y me ayuden como puedo mostrar los datos de las 3 tablas distintas que tengo en la base de datos (empleados,asignaciones,deducciones).

Por último, me pidieron que hiciera un sistema de venta de productos en php (uso dreamweaver 8) ¿alguien me da ideas pues desconozco que tiene un sistema de este tipo y no se por donde empezar?


¿No me permite adjuntar el archivo del proyecto en vb 6.0 es muy grande, como hago?

dongo

  • Intermedio
  • ***
  • Mensajes: 177
    • Ver Perfil
Sobre VB 6 no te puedo ayudar mucho, pero hablas de reportes y mostrar datos de varias tablas, bueno, todo lenguaje de programación provee de mecanismo para el acceso a bases de datos, si quieres mostrar datos de varias tablas pues lo que debes hacer es o una consulta sql con los datos que necesitas de las tres tablas si estas están relacionadas entre si, o una consulta por cada tabla. Pero como te comento sobre VB no tengo mucha idea.

Sobre tu segunda duda, bueno dices de un sistema de venta de productos, pues en mi opinión, lo mínimo que necesitaras será: 

  • Un catalogo --> Para mostrar los productos. Esto dependerá de si son muchos productos, o es solo un producto concreto.
  • Un mecanismo para agregar y eliminar productos fácilmente. Esto es si existe un catálogo
  • Un carro de la compra --> Para almacenar los productos que desea comprar el usuario
  • Un mecanismo para registrar los pedidos
  • Un mecanismo para realizar el pago
  • Algún mecanismo para encriptar las transferencias de datos para realizar el pago seguro(Normalmente algún certificado de alguna entidad oficial)
  • Y sobre todo un manual de como realizar un pedido, como se realizara el envio, costes, etc

En mi opinión, creo que eso es lo mínimo que debe tener un sistema de venta por internet ya depende también mucho del producto o productos que se vendan, sistemas de envíos, formas de pago, etc etc, la verdad que es un tema bastante extenso, jeje

Yo te recomendaría que cogieras algún gestor de contenidos como drupal o joomla y le pusieras un modulo de venta por internet o alguno mas especifico como el CMS prestashop, y les echaras un ojo a como funcionan, que características tienen, etc

No siempre se trata de coger un documento en blanco y liarse a picar código, también hay que aprender de cosas que ya están echas, sumergirse en el código de otra persona  y analizar como lo ha echo, por eso te recomiendo lo de investigar algún CMS.

Y nada un saludo.

Jigsaw_MGO

  • Intermedio
  • ***
  • APR2.COM
  • Mensajes: 113
    • Ver Perfil
Gracias por tu respuesta compañero, la valoro, voy a tratar de tomar tu consejo.

Para los reportes estoy usando dataenvironment asi creo que se llama, ¿pero deberia relacionar los datos por la cedula de los empleados, ya que en todas las consultas los datos de los empleados se reciben mediante la cedula?

dongo

  • Intermedio
  • ***
  • Mensajes: 177
    • Ver Perfil
Sobre lo VB, la verdad que ya te digo que no he trabajado apenas por no decir nada, XDD, me lo intente instalar anoche, pero no se porque el que me descargue, me petaba.

Por lo que he visto en videos, no debe ser complicado, quizá algún video de youtube te pueda iluminar en tu camino, también es cuestión de esperar a ver si alguien sabe y responde.

Bueno un saludo y espero que lo puedas solucionar.

Alex Rodríguez

  • Moderador Global
  • Experto
  • *******
  • Mensajes: 2050
    • Ver Perfil
Hola, dongo comentarte que vb6 es una versión que ya no tiene soporte de microsoft ya que ha sido reemplazada por nuevas versiones (Visual Studio con VB 2005, 2008, 2010, 2012, etc.), sin embargo fue vb6 tuvo tanta aceptación que aún sigue siendo utilizado por miles de personas y empresas. Se puede instalar siguiendo las instrucciones de: https://www.aprenderaprogramar.com/foros/index.php?topic=286

A Jigsaw comentarle que trate de dividir los temas de forma que no se mezclen cosas, por ejemplo abrir un tema sobre una cuestión concreta de visual basic y otro tema sobre una cuestión concreta de php, si no lo hacemos así es casi imposible localizar los temas dentro del foro. Este tema ya está abierto así y da igual, pero si en el futuro no divide los temas los moderadores podremos bloquearle  :(. También que explique con el mayor detalle posible cuál es el problema, ya que revisar un proyecto puede llevar muchas horas, tendría que especificar concretamente cuál es el problema, en qué archivo y en qué líneas está el problema, de otra forma imposible revisar... Espero se pueda comprender  ::)

Saludos

dongo

  • Intermedio
  • ***
  • Mensajes: 177
    • Ver Perfil
Gracias Alex, voy a instalarlo por curiosidad, aunque a mi todo lo que sea microsoft me echa para atrás....jajajaja

A jigsaw decirle bueno que estoy con Alex, es mejor separar los temas, así hay mas orden y es mas fácil hacer referencias a los temas ante alguna duda similar.

Y bueno lo de como compartir el proyecto tienes mil formas, desde google drive, pasando por dropbox, mega, etc etc,

Intenta ser mas claro en tus dudas, nos escribes:

Citar
Adjunto el proyecto abajo, espero lo revisen y me ayuden como puedo mostrar los datos de las 3 tablas distintas que tengo en la base de datos (empleados,asignaciones,deducciones).

¿pero a ver como se relacionan estas 3 tablas? ¿que SGBD estas usando? ¿ que columnas tienes esas tablas?..... y sobre todo como dice Alex, si vas a adjuntar un proyecto debes decir claramente en que punto se encuentra el problema.

Bueno un saludo y espero que nos aclares el tema para poder ayudarte mejor y mas rápidamente. Un saludo!

Jigsaw_MGO

  • Intermedio
  • ***
  • APR2.COM
  • Mensajes: 113
    • Ver Perfil
Vale, buenas tardes chicos gracias por sus respuestas, y disculpen el dolor de cabeza que les causé xD, vamos por orden.

Con respecto al sistema de Nómina en VB 6.0 que es el que más interesa, no tiene ningún error en código, prácticamente TODO lo hice yo por mi cuenta.

Ahora, dicho sistema consiste de tres tablas en ((MYSQL (PHPMYADMIN)) de wampserver: una para los datos provenientes del formulario "Incluir" que sólo registra los datos personales del empleado (tabla: empleados), la segunda registra los bonos y asignaciones al salario de dicho empleado (tabla:asignaciones) y la tercera las deducciones a dicho salario (tabla:deducciones) todo eso debería dar y mostrar el neto a pagar del salario que es: (salario mensual + total asignaciones) - (total deducciones).

El mismo realiza todas las operaciones, agrega los datos correctamente a las tablas y realiza los cálculos pero el problema surge al emitir lo más importante un recibo de pago (Reporte) que debería tener lo siguiente de manera horizontal para ahorrar espacio y papel al imprimirlo:

1- De los datos personales: Cedula, Nombres, Apellidos
2- De las asignaciones: Sueldo Quincenal y Bonos y el total de las asignaciones
3-. De las deducciones : Todos los campos (Seguro Social, Paro Forzoso, Ley Habitacional, Total Deducciones)
4- El Neto a Pagar.

Me da muchos problemas además de no poder extraer estos datos de 3 tablas distintas para un solo reporte, pues la conexion no lo permite. El único campo clave que se repite y por el que se hacen las consultas es la Cédula.

Aquí un ejemplo de Recibo de Pago: http://www.disksoportes.com/manual%20nomina%20express/consultas/RecibosdePagosdeN%F3mina.htm

Aquí en enlace a mi Dropbox que contiene la Carpeta del Proyecto y un .rar por si lo quieren descargar: 1-. https://www.dropbox.com/s/6pivxql2omnbp5i/Proyecto%20Base%20de%20Datos%20en%20Mysql%20%28Nomina%29.rar

2-. https://www.dropbox.com/sh/xk543pn8wx4xmx1/AADB2sSOn9KG1VUAQ3OKrUhma

Si pueden revisenlo (ejecutenlo) please, ya que errores de código no tiene, solo me impide relacionar las 3 tablas en un solo reporte, que ahí si no tengo idea y necesitaria que me ayuden si no es mucha molestia, y si necesitan más información con gusto se las daré.

Postdata: Esos archivos.tmp no sé porque me aparecen, pero borrenlos no afectan en nada al proyecto, escaneenlo si quieren pues aunque no creo que sea virus es mejor prevenir.
« Última modificación: 03 de Agosto 2014, 19:28 por Jigsaw_MGO »

dongo

  • Intermedio
  • ***
  • Mensajes: 177
    • Ver Perfil
Hola buenas, he estado echandole un rato a esto y he conseguido instalar vb y abrir el proyecto, ahora claro.... el proyecto viene sin las tablas de la bbdd por lo cual sigo sin poder probarlo al 100 % aun asi te comento lo que creo que deberías hacer:

la clave esta en el dataEnviroment:

---
---
---

Si te fijas en la imagen, en lugar de elegir objeto de la base de datos, marca la casilla instrucción sql.
O también puedes ir al evento click del botón mostrar datos, dentro de ese evento te encuentras con la siguiente instrucción sql:

Código: [Seleccionar]
SQL = "select * from empleados where CEDULA =" & txtcedula & ""
Si te fijas solo coges datos de la tabla empleados, debes modificar esa consulta o generar una nueva con la información que a ti te interesa.

 Al no conocer el esquema de bbdd no se exactamente que consulta seria, pero si quieres extraer:

Citar
1- De los datos personales: Cedula, Nombres, Apellidos
2- De las asignaciones: Sueldo Quincenal y Bonos y el total de las asignaciones
3-. De las deducciones : Todos los campos (Seguro Social, Paro Forzoso, Ley Habitacional, Total Deducciones)
4- El Neto a Pagar.


La consulta vendría a ser algo así....:

Código: [Seleccionar]
SELECT empleados.cedula, empleados.nombre, empleados.apellidos, asignaciones.sueldo_quincenal, asignaciones.bonos, asignaciones.total_asignaciones, deducciones.seguro_social,  deducciones.paro, deducciones.total_deducciones
FROM empleados, asignaciones, deducciones
WHERE empleados.cedula=asignaciones.cedula and empleados.cedula=deducciones.cedula;

Creo que no te vendría nada mal algún tutorial de sql. Es que lo que nos presentas, mas que una duda o problema, parece que buscas que te terminemos el proyecto, sin tener ni idea del esquema relacional de la bbdd y encima a mi me coges que de economía, salarios y demás no tengo nidea....XDD

En mi opinión lo que te digo deberías buscarte un buen manual de sql y otro de conexion a bases de datos desde VB6, por lo que veo el data enviroment no es difícil de utilizar, pero claro si no tienes conocimientos de sql se te queda muy limitado.

Así que nada resumiendo, debes crear una instrucción sql que te extraiga lo que quieras de la bbdd y  después pues, en los campos del form, hacer referencia a estos campos que extraes, la verdad que en VB no se como, pero no debe ser nada difícil, seguro que si investigas un poco hay un millón de tutoriales.

Pero mi mejor consejo para esta respuesta, es: APRENDE SQL. Nunca esta demás y hoy en día no existe prácticamente ninguna aplicación que no haga uso de una base de datos.

Siento no poder acabar de resolvértelo, pero tampoco podemos dar las cosas mascadas, jeje aunque espero al menos haberte guiado un poco en la dirección correcta. Un saludo
« Última modificación: 07 de Agosto 2014, 22:44 por Alex Rodríguez »

Jigsaw_MGO

  • Intermedio
  • ***
  • APR2.COM
  • Mensajes: 113
    • Ver Perfil
Jajajaa gracias por tu respuesta, es lo único que me falta del proyecto, estuve una semana entera haciendolo y con el problema del Data Environment disculpa si pareció que quería que me hicieras el proyecto pues xD.

la base de datos te la adjunto si quieres para que veas, y además puedes utilizar el proyecto para luego, en algo te debe servir el codigo.

Gracias has sido de ayuda :D

dongo

  • Intermedio
  • ***
  • Mensajes: 177
    • Ver Perfil
Hola, bueno pues si me pasas las tablas quiza pueda guiarte un poco mas, jeje añademe el fichero sql de la BBDD y le echo un ojo, Un saludo!

Jigsaw_MGO

  • Intermedio
  • ***
  • APR2.COM
  • Mensajes: 113
    • Ver Perfil
Hola, bueno pues si me pasas las tablas quiza pueda guiarte un poco mas, jeje añademe el fichero sql de la BBDD y le echo un ojo, Un saludo!

Ahí arriba está la base de datos, lo que tienes que importarla desde phpmyadmin del wampserver, con usuario='root', pass="".

Pero aquí está :P

dongo

  • Intermedio
  • ***
  • Mensajes: 177
    • Ver Perfil
No sabía si ponerte un post, o un PDF.... XDDD

Tabla asignaciones:

cedula
sueldo_quincenal
sueldo_mensual
bonos
otros_bonos
   |________________________total_asignaciones-->supongo que esto sale
                                      de algun calculo con las
                                      otras columnas. No es
                                      necesario mantenerlo en la
                                      bbdd.
                                     
tabla deducciones:

cedula
seguro_social
paro_forzoso
politica_habitacional
   |_______________________total_deducciones-->Igual que en la tabla anterior,
                                    supongo que sale de alguna operacion
                                    con las otras columnas. Tampoco es
                                    necesario que se mantenga en la bbdd.
                                    
tabla empleados:

cedula
nombre
apellido
fecha_nacimiento
edad --> Sobra, porque si tienes la fecha de nacimiento, puedes calcular su edad.
fecha_ingreso
cargo
tipo_contrato
direccion
   |_______________________________________________total_deducciones
                                                  total_asignaciones
                                       sueldo_mensual
                                       neto_a_pagar
                                          |___________________Supongo que estas cuatro columnas salen del                                                          calculo entre las asignaciones y las deducciones, por lo tanto, te sobran totalmente. Ademas de que dos de las columnas son repetidas, lo que rompe con uno de los principios mas importantes en el mundo de la computación: DRY( dont repeat yourself)

                                                         
Tras este pequeño análisis del esquema relacional, te sigo recomendando lo mismo que en las respuestas anteriores,
estudia un poco de sql, no te vendría nada mal. Este esquema que te pongo aquí simplemente es una recomendación de como yo lo haría y los nombres que le podría a las columnas. Pero bueno solo sigue siendo una recomendación.

Bueno al margen de todo esto que te comento, y cuando tengas el esquema bien claro, solo tendrás que generar la consulta sql solicitando los datos que necesites. Basándome en las recomendaciones que te he dicho antes, y en lo que me pones en el post que necesitarías mostrar:

1- De los datos personales: Cedula, Nombres, Apellidos
2- De las asignaciones: Sueldo Quincenal y Bonos y el total de las asignaciones
3-. De las deducciones : Todos los campos (Seguro Social, Paro Forzoso, Ley Habitacional, Total Deducciones)
4- El Neto a Pagar.

La consulta sql que tu tendrías que realizar sería algo como la siguiente:

Consulta SQL:

SELECT empleados.cedula, empleados.nombres, empleados.apellidos,
asignaciones.SUELDOQUINCENAL, asignaciones.BONOS, (asignaciones.SUELDOQUINCENAL+asignaciones.BONOS+asignaciones.OTROSBONOS) as total_asignaciones,
deducciones.SEGUROSOCIAL, deducciones.PAROFORZOSO,deducciones.POLITICAHABITACIONAL,
(deducciones.SEGUROSOCIAL + deducciones.PAROFORZOSO + deducciones.POLITICAHABITACIONAL) as total_deducciones,
((asignaciones.SUELDOQUINCENAL+asignaciones.BONOS+asignaciones.OTROSBONOS+asignaciones.SUELDOMENSUAL)-(deducciones.SEGUROSOCIAL + deducciones.PAROFORZOSO + deducciones.POLITICAHABITACIONAL)) as neto_a_pagar
FROM empleados, asignaciones, deducciones
WHERE empleados.cedula=asignaciones.cedula and empleados.cedula=deducciones.cedula;

Nota: La verdad que el neto a pagar no se muy bien de donde sale, porque no me salen los totales que tu ya tienes en la tabla empleados, pero bueno sabiendo la operación a realizar no es difícil averiguarlo. Si ejecutas la consulta anterior en tu phpmyadmin, te darás cuenta que realmente los totales no están bien.

Bueno una vez que ya tienes la consulta sql con los datos que necesitas es hora de irse a la herramienta que nos provee
VB 6 para trabajar con bases de datos.

DATA ENVIROMENT

1.- Abriremos el VB con tu proyecto, una vez abierto, en la derecha en la jerarquía de los objetos del proyecto, pincharemos al dataEnviorment(RPTrecibo.dsr) que tu ya tienes creado.

2.- Haz un click con el botón derecho sobre la conexión que tu ya has creado y pincha sobre "agregar nuevo comando".

3.- Una vez el comando se ha añadido, pulsa con el botón derecho sobre el y dale a propiedades.

   Captura 1
   
4.- Una vez la tienes abierta, vas a pinchar donde pone "instrucción sql" con lo que se activara el cuadro de texto para poder escribir la sentencia sql que ya teníamos preparada anteriormente. Aplicas, Aceptas y ya tienes los datos que te interesan, ahora solo deberás arrastrar los datos al datareport con el formato que a ti te interese.
         
         Captura 2

Espero que este post te sirva para animarte a estudiar algo de sql, ya que sinceramente nos has sido capaz de hacerlo por esa cuestión, ademas en programación no va a ser ni la primera, ni la ultima vez que te des de frente contra una base de datos sql.

Bueno y sobre todo espero haberte resuelto la duda y que puedas seguir adelante con el proyecto. Sobre el proyecto, no te preocupes con el porque no tengo pensado usarlo, tengo muchos recursos propios de los que tirar, pero sobre todo.... MICROSOFT, noooooooooooooooooooooooooooooooo!! XDD

Bueno pos con el tocho hasta mañana chavales.
« Última modificación: 05 de Agosto 2014, 02:20 por dongo »

Jigsaw_MGO

  • Intermedio
  • ***
  • APR2.COM
  • Mensajes: 113
    • Ver Perfil
Explicación perfecta muchas gracias, estudiaré de verdad éstas vacaciones. Por cierto el programa lo entregué ayer y me pusieron 7 de 10, ahora voy a perfeccionarlo ya que tengo que normalizar la base de datos, simplificar la apariencia de los formularios, automatizarlo lo más posible.

Gracias compañero espero no haber sido un dolor de cabeza XD y cualquier avance lo adjunto aquí :D.
« Última modificación: 06 de Agosto 2014, 04:12 por Jigsaw_MGO »

dongo

  • Intermedio
  • ***
  • Mensajes: 177
    • Ver Perfil
way, tennos al día, está muy bien eso de que aunque hayas sido evaluado, intentes mejorarlo, una muy buena cualidad en un programador, sobre las bases de datos... Si tio estudio, porque aparte de tu esquema relacional era un poco inconsistente...XDD hoy en día las bases son prácticamente en necesarias en toda aplicación empresarial, y muy muy usada en aplicaciones dirigidas a otro ámbito.

Si por ejemplo un día te da por estudiar desarrollo web, Hoy por hoy no existe una pagina web que no tenga una base de datos detrás, ademas aprendiendo sql te habres mucho las puertas ya que es un lenguaje estandarizado y hay muchos RDBMS( relational database managent system) que usan sql: Mysql, oracle, postgre, access,...

Bueno un saludo y a seguir bien!

Jigsaw_MGO

  • Intermedio
  • ***
  • APR2.COM
  • Mensajes: 113
    • Ver Perfil
El profesor me dijo que estaba bien, pero que era muy tedioso estar escribiendo la cedula una y otra vez, por lo que me dijo que el me aconsejaba qué:

1- Cuando se registre el nuevo empleado y se pulse el botón "No quiero seguir registrando empleados" lo que nos envía a la pantalla asignaciones, quiero que los datos de dicha cedula aparezcan ya en los campos del formulario, sin necesidad de hacer una consulta mediante el botón "buscar registro", dicha operación debería realizarse automáticamente en la pantalla de deducciones también.

2-. En la pantalla de Pago a los empleados quisiera qué en el textbox cédula utilizado para buscar los registros, muestre una lista desplegable con todas las cédulas existentes en la base de datos.

¿Se puede hacer ésto, cómo lo podría hacer de manera que sea todo automatizado?

Gracias de antemano por la respuesta :P.

dongo

  • Intermedio
  • ***
  • Mensajes: 177
    • Ver Perfil
Y tu profesor tiene toda la razón. Bueno, te voy a guiar en el camino que debes seguir para conseguir lo que tu quieres, pero te vuelvo a repetir que yo de VBasic ni idea... así que solo te podré dar una respuesta teórica.

Primer paso

Aprende a manejar el control combobox, este control es la típica lista, equivalente al select de html. Bueno pues eso debes aprender a usar este control, a rellenarlo, a vaciarlo, etc.

Segundo paso

Una vez que controlas el combobox, debes hacer una consulta sql(Vuelve a aparecer el sql) que obtenga todas las cédulas de tu bbdd. Una vez que tienes las cédulas, simplemente tendrás que rellenar el combobox con esa lista de cédulas.

Tercer paso

Una vez que has conseguido tener las cédulas en la lista del combobox, tendrás que crear un evento change( no se si en VB se denominan eventos) al combobox. Este evento lo que deberá hacer, será obtener todos los datos del empleado cuya cédula sea la que esta seleccionada en el combobox mediante otra consulta sql y presentarlos por pantalla en los controles o celdas habilitadas para ello.


Principalmente esto son los pasos a seguir  para dar respuesta a tus dos preguntas, pero como te digo yo de VB no controlo como para guiarte mas halla de esto. Si quieres, puedes abrir un nuevo post y esperar a ver si alguien te guía mas allá, aunque mas de lo que te he contado yo creo que sería ya hacértelo....

Y nada tio, espero tambien que intentes buscarte un poco las papas por ti mismo(videos, manuales, libros, etc), ya que eso te ayudará a madurar en el mundo de la programación.

Bueno un saludo y a seguir bien!

Jigsaw_MGO

  • Intermedio
  • ***
  • APR2.COM
  • Mensajes: 113
    • Ver Perfil
Vale gracias, ya tengo una idea más amplia de lo que debo hacer, a estudiar y practicar!. Que estés bien tu también.

 

Sobre la educación, sólo puedo decir que es el tema más importante en el que nosotros, como pueblo, debemos involucrarnos.

Abraham Lincoln (1808-1865) Presidente estadounidense.

aprenderaprogramar.com: Desde 2006 comprometidos con la didáctica y divulgación de la programación

Preguntas y respuestas

¿Cómo establecer o cambiar la imagen asociada (avatar) de usuario?
  1. Inicia sesión con tu nombre de usuario y contraseña.
  2. Pulsa en perfil --> perfil del foro
  3. Elige la imagen personalizada que quieras usar. Puedes escogerla de una galería de imágenes o subirla desde tu ordenador.
  4. En la parte final de la página pulsa el botón "cambiar perfil".