|
Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.
Mensajes - martin campos quintero
26
« en: Sábado 31 de Diciembre de 2005, 01:40 »
Hola amigo, está bueno tu código. Una sugerencia nomás, hazle como en yahoo, que los cuadritos donde se puede poner la ficha aparezcan solo cuando el ratón les pase por encima, pienso que sería más atractivo así, y además manda un mensaje de que el juego quedó cerrado cuando ya no se pueda continuar más. Saludos. Me gustó el dominó Podrias modificarlo para que se pudiera jugar en red
27
« en: Jueves 29 de Diciembre de 2005, 22:47 »
Hola a todos, espero me puedan ayudar con esto.
Estoy buscando código para controlar la impresora, es decir, cuando se mande a imprimir que la aplicación detecte eso y que detenga la impresión, y cheque parámetros por ejemplo, si el usuario tiene saldo entonces que continúe la impresión del trabajo o lo acepte en la cola de impresión, en caso contrario que deseche el trabajo.
Yo ya pude hacer que aborte, pause y continúe el trabajo actual de la impresora, pero quiero poder abortar un trabajo en específico, por ejemplo uno que esté en la cola de impresión.
Espero que alguien sepa. Gracias de antemano
28
« en: Martes 20 de Diciembre de 2005, 02:12 »
Hola, tengo un problemita y necesito me ayuden.
El problema es que me pidieron que mi aplicación pase datos a excel a un archivo que ya existe (tiene una estructura definida).
Los datos a las celdas de excel ya los mando desde mi aplicación, pero el problema es que ese archivo tiene un cuadro de texto "Cuadro de texto 265" Y no se como mandar o modificar los datos que tiene ese cuadro de texto.
Si pueden ayudarme se los agradeceria bastante.
De antemano gracias
29
« en: Viernes 16 de Diciembre de 2005, 10:34 »
Muchas gracias por tu respuesta, me fue de mucha utilidad
30
« en: Viernes 16 de Diciembre de 2005, 10:33 »
Muchisimas gracias amigo, necesitaba ese dato urgentemente. Muchas gracias por contestar tan rápido
31
« en: Viernes 16 de Diciembre de 2005, 03:17 »
Hola, quisiera me pudieran ayudar en un problemita, espero y puedan. El problema es que extraigo datos de una base de datos, es decir tabla: motivo_adeudo Campo: adeudo (tipo cadena) Supongamos que tenemos tres registros adeudo: 100 adeudo: 200 adeudo: 300 En la consulta los almaceno en la variable suma de tipo entero suma=600 y hago otra consulta a tabla: abonos Campo: abono (tipo cadena) abono: 100 abono: 150 y almaceno la suma en la variable suma2 de tipo entero suma2=150 y después hago la operación de resta y almaceno el resultado en resultado resultado=450 Estoy trabajando en modo gráfico SWING y no puedo almacenar una variable int en un JTextField. O sea que no puedo mostrar el resultado en modo gráfico sino que lo muestro en la pantalla tipo ms-dos. Espero me puedan ayudar a realizar esto o que me digan como convertir de int a String. De antemano gracias
32
« en: Jueves 15 de Diciembre de 2005, 20:16 »
Gracias por sus respuestas, me fueron de mucha ayuda
33
« en: Martes 13 de Diciembre de 2005, 13:02 »
Hola, el problema que tengo es que no funciona un código que según yo, debería funcionar, obtengo de la tabla historia_clinica los datos del paciente, y si el dato "4" es igual a "SI", entonces el cb1 (checkbox) se activa a TRUE en caso contrario a FALSE, el problema es que no me reconoce la condición donde verifico si es igual a "SI", tal vez tengo mal la condición, espero que me puedan ayudar try { ResultSet rs = st.executeQuery("SELECT * from historia_clinica where clave_pac = ('"+clave_a_buscar+"')"); System.out.println("Entró"); ResultSetMetaData md = rs.getMetaData(); if(rs.next()) { System.out.println(clave_a_buscar); historia_clinica hc2 = new historia_clinica(); hc2.texto11.setText(rs.getString(3)); if(rs.getString(4)=="SI") { System.out.println(rs.getString(4)); hc2.cb1.setState(true); } else { System.out.println(rs.getString(4)); hc2.cb1.setState(false); } rs.close(); } else{ rs.close(); } }catch(SQLException e){}
34
« en: Sábado 10 de Diciembre de 2005, 22:37 »
Hola amigos, espero me puedan ayudar con este problema. Resulta que tengo que exportar datos desde mi programa hacia excel. Esto es un archivo de excel que tiene el encabezado ya definido para que se imprima con los datos que le mande. pienso mandar de 20 registros por impresión pero lo que me interesa saber es como puedo hacer para mandar los datos a cierto archivo, ejemplo: archivo imprime y como puedo cambiar el tipo de letra a " negrita" de x celda y si me pueden ayudar también como imprimir el archivo después de que ya he pasado los datos. No estoy pidiendo que me hagan la tarea, sino que si me pueden dar información de donde encontrar código como ese, para yo adaptarlo a mi aplicación. De antemano gracias
35
« en: Viernes 9 de Diciembre de 2005, 06:16 »
SELECCIONA EL TEXTBOX Y VE A LA PROPIEDAD MAXLENGTH Y PONLE 10
CON ESO TE BASTA PARA HACER LO QUE PLANTEAS.
SALUDOS.
36
« en: Martes 22 de Noviembre de 2005, 00:10 »
Disculpa pero no estoy pidiendo que me hagan la tarea, estoy pidiendo ayuda sobre una parte de un sistema que estamos desarrollando de administración de docentes, pero gracias de cualquier modo. Ya pensé en un algoritmo que me puede ser de ayuda.
37
« en: Lunes 21 de Noviembre de 2005, 07:07 »
Hola a todos, quisiera que me ayudaran a solucionar un problema que tengo. El problema es que tengo un rango de horas en dos msflexgrid Asignatura Lunes Martes...
FENÓMENOS DE TRANSPORTE 12-14 DISEÑO DE PROCESOS 10-12
ACTIVIDADES Lunes Martes...
ACTIVIDAD 1 09-10 ACTIVIDAD 2 17-20
De esos dos flexgrid tengo que obtener el rango de horas, es decir en un label debe aparecer LUNES: 09-14 y 17-20 Espero me puedan ayudar a solucionar este problema. De antemano gracias.
38
« en: Jueves 17 de Noviembre de 2005, 23:41 »
Hola gracias por su ayuda, ya comprobé que si funciona así como me lo plantearon, bueno funciona hasta cierto punto. El problema que nos surgió es que como la conexión con la base de datos la creamos dentro de conectar_a_bd y la asignamos a la variable "con", como podemos hacer para que las otras clases obtengan el valor de "con", bueno en este caso las otras funciones que están en la clase gestion_de_bd. Modificamos el código y nos surgieron varios errores. Como ya se habran dado cuenta jeje, somos primerizos en java :S. Les pido un favor, si no seria mucha molestia. Que me ayudaran a corregir lo de este archivo, directorio_pacientes. Lo que pasa es que tenemos que hacer un sistema para dentistas y pues si no sabemos como hacer esto pues estamos fritos jeje. O si es mucha molestia lo de corregir el archivo pues siquiera me den un ejemplo en código fuente donde aparezca esto que necesitamos. Código modificado y con varios errores :s import javax.swing.*; import java.awt.event.*; import java.awt.*; import javax.swing.table.*; //DataBase Packages import java.net.*; import java.io.*; import java.sql.*; //Main Class class directorio_pacientes extends JFrame implements ActionListener { private Statement st; private Connection con; //List of Labels private JLabel lblclave_anterior; private JLabel lblclave_paciente; private JLabel lblsexo; private JLabel lbledad; private JLabel lblnombre; private JLabel lbldireccion; private JLabel lbltelefono; //List of TextFields private JTextField txtclave_anterior; private JTextField txtclave_paciente; private JTextField txtsexo; private JTextField txtedad; private JTextField txtnombre; private JTextField txtdireccion; private JTextField txttelefono; //List of Buttons private JButton btnSaveAdd; private JButton btnSaveEdit; private JButton btnSaveDelete; private JButton btnAdd; private JButton btnEdit; private JButton btnDelete; private JButton btnExit; private JButton btnRefresh; private JButton btnCancel; //List of Panel private JPanel btnpanel; private JPanel panel; private JTable table; //Table private DefaultTableModel tmodel; //Container private Container cpane; directorio_pacientes(int choice) { switch(choice) { case 1: //Initial Window setTitle("DIRECTORIO DE PACIENTES"); setBounds(1, 200, 800, 230); setResizable(false); //cotainer cpane = getContentPane(); //components tmodel = new DefaultTableModel(); table = new JTable(tmodel); SetColHeader(); btnpanel = new JPanel(new GridLayout(1, 5, 5, 0)); btnAdd = new JButton ("Agregar"); btnEdit = new JButton ("Modificar"); btnDelete = new JButton ("Eliminar"); btnRefresh = new JButton ("Actualizar"); btnExit = new JButton ("Salir"); btnAdd.addActionListener(this); btnEdit.addActionListener(this); btnDelete.addActionListener(this); btnRefresh.addActionListener(this); btnExit.addActionListener(this); btnpanel.add(btnAdd); btnpanel.add(btnEdit); btnpanel.add(btnDelete); btnpanel.add(btnRefresh); btnpanel.add(btnExit); cpane.add(new JScrollPane(table)); cpane.add(btnpanel, BorderLayout.SOUTH); break; case 2: //Appending Window setTitle("Agregado de datos..."); setBounds(200, 200, 500, 200); setResizable(false); //cotainer cpane = getContentPane(); cpane.setLayout(new FlowLayout()); //Components panel = new JPanel(new GridLayout(8, 1, 5, 0)); lblclave_paciente = new JLabel(" Clave del paciente "); lblnombre = new JLabel(" Nombre del paciente "); lbldireccion = new JLabel(" Dirección "); lbltelefono = new JLabel(" Teléfono "); lbledad = new JLabel(" Edad "); lblsexo = new JLabel(" Sexo "); txtclave_paciente = new JTextField(15); txtnombre = new JTextField(15); txtdireccion = new JTextField(15); txttelefono = new JTextField(15); txtedad = new JTextField(3); txtsexo = new JTextField(1); panel.add(lblclave_paciente); panel.add(txtclave_paciente); panel.add(lblnombre); panel.add(txtnombre); panel.add(txtnombre); panel.add(lbldireccion); panel.add(txtdireccion); panel.add(lbltelefono); panel.add(txttelefono); panel.add(lbledad); panel.add(txtedad); panel.add(lblsexo); panel.add(txtsexo); btnpanel = new JPanel(new GridLayout(2, 1, 10, 5)); btnSaveAdd = new JButton ("Guardar"); btnCancel = new JButton ("Cancelar"); btnSaveAdd.addActionListener(this); btnCancel.addActionListener(this); btnpanel.add(btnSaveAdd); btnpanel.add(btnCancel); cpane.add(panel); cpane.add(btnpanel, BorderLayout.EAST); break; case 3: //Editing window setTitle("Modificación de datos..."); setBounds(200, 200, 500, 250); setResizable(false); //cotainer cpane = getContentPane(); cpane.setLayout(new FlowLayout()); //Components panel = new JPanel(new GridLayout(10, 1, 5, 0)); lblclave_anterior = new JLabel(" Clave anterior del paciente "); txtclave_anterior = new JTextField(15); lblclave_paciente = new JLabel(" Nueva clave del paciente "); lblnombre = new JLabel(" Nombre del paciente "); lbldireccion = new JLabel(" Dirección "); lbltelefono = new JLabel(" Teléfono "); lbledad = new JLabel(" Edad "); lblsexo = new JLabel(" Sexo "); txtclave_paciente = new JTextField(15); txtnombre = new JTextField(15); txtdireccion = new JTextField(15); txttelefono = new JTextField(15); txtedad = new JTextField(3); txtsexo = new JTextField(1); panel.add(lblclave_anterior); panel.add(txtclave_anterior); panel.add(lblclave_paciente); panel.add(txtclave_paciente); panel.add(lblnombre); panel.add(txtnombre); panel.add(lbldireccion); panel.add(txtdireccion); panel.add(lbltelefono); panel.add(txttelefono); panel.add(lbledad); panel.add(txtedad); panel.add(lblsexo); panel.add(txtsexo); btnpanel = new JPanel(new GridLayout(2, 1, 10, 5)); btnSaveEdit = new JButton ("Guardar"); btnCancel = new JButton ("Cancelar"); btnSaveEdit.addActionListener(this); btnCancel.addActionListener(this); btnpanel.add(btnSaveEdit); btnpanel.add(btnCancel); cpane.add(panel); cpane.add(btnpanel, BorderLayout.EAST); break; case 4: //Deleting window setTitle("Eliminando datos..."); setBounds(200, 200, 300, 125); setResizable(false); //cotainer cpane = getContentPane(); cpane.setLayout(new FlowLayout()); //Components panel = new JPanel(new GridLayout(2, 1, 5, 0)); lblclave_paciente = new JLabel("Clave del paciente a eliminar "); txtclave_paciente = new JTextField(15); panel.add(lblclave_paciente); panel.add(txtclave_paciente); btnpanel = new JPanel(new GridLayout(2, 1, 10, 5)); btnSaveDelete = new JButton ("Eliminar"); btnCancel = new JButton ("Cancelar"); btnSaveDelete.addActionListener(this); btnCancel.addActionListener(this); btnpanel.add(btnSaveDelete); btnpanel.add(btnCancel); cpane.add(panel); cpane.add(btnpanel, BorderLayout.EAST); break; } //Window Properties setDefaultCloseOperation(HIDE_ON_CLOSE); setVisible(true); //conection to DataBase gestion_de_bd.conectar_a_bd(); } public void actionPerformed (ActionEvent ae) { if (ae.getSource() == btnAdd) { new directorio_pacientes(2); } else if (ae.getSource() == btnEdit) { new directorio_pacientes(3); } else if (ae.getSource() == btnDelete) { new directorio_pacientes(4); } else if (ae.getSource() == btnExit) { System.exit(0); } else if (ae.getSource() == btnCancel) { setVisible(false); } else if(ae.getSource() == btnSaveAdd) { gestion_de_bd.agregar_datos(txtclave_paciente.getText(), txtnombre.getText(), txtdireccion.getText(),txtsexo.getText(), txttelefono.getText(),txtedad.getText()); txtclave_paciente.setText(""); txtnombre.setText(""); txtdireccion.setText(""); txttelefono.setText(""); txtedad.setText(""); txtsexo.setText(""); } else if(ae.getSource() == btnSaveEdit) { gestion_de_bd.modificar_datos(txtclave_paciente.getText(), txtnombre.getText(), txtdireccion.getText(),txttelefono.getText(), txtclave_anterior.getText(),txtedad.getText(), txtsexo.getText()); txtclave_anterior.setText(""); txtclave_paciente.setText(""); txtnombre.setText(""); txtdireccion.setText(""); txttelefono.setText(""); } else if(ae.getSource() == btnSaveDelete) { gestion_de_bd.eliminar_datos(txtclave_paciente.getText()); txtclave_paciente.setText(""); } else if(ae.getSource() == btnRefresh) { gestion_de_bd.extraer_datos(); } } public static void main(String arg[]) { directorio_pacientes c = new directorio_pacientes(1); gestion_de_bd.extraer_datos(); //c.extraer_datos(); } private void SetColHeader() { tmodel.addColumn("Clave del paciente"); tmodel.addColumn("Nombre"); tmodel.addColumn("Dirección"); tmodel.addColumn("Sexo"); tmodel.addColumn("Teléfono"); tmodel.addColumn("Edad"); } /* private void conectar_a_bd () { try { String dsn = "Medi"; //load driver Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); //make connection con = DriverManager.getConnection("jdbc:odbc:" + dsn); //create statement st = con.createStatement(); } catch (Exception e) {System.out.println(e);} } */ } class gestion_de_bd { private Statement st; private Connection con; public static void conectar_a_bd () { try { String dsn = "Medi"; //load driver Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); //make connection con = DriverManager.getConnection("jdbc:odbc:" + dsn); //create statement st = con.createStatement(); } catch (Exception e) {System.out.println(e);} } public static void agregar_datos (String clave, String nombre, String direccion, String telefono, String edad, String sexo) { try { //prepare statement String qry = "Insert into directorio_paciente values (?, ?, ?, ?, ?, ?)"; System.out.println(clave + "\t"+nombre+ "\t"+direccion+ "\t"+telefono+ "\t"+edad+ "\t"+sexo); //System.out.println("Read only "+con.isReadOnly()); //System.out.println("Closed "+con.isClosed()); PreparedStatement ps = con.prepareStatement(qry); ps.setString(1, clave); ps.setString(2, nombre); ps.setString(3, direccion); ps.setString(4,telefono); ps.setString(5,edad); ps.setString(6,sexo); ps.executeUpdate(); } catch(Exception e) {System.out.println(e + "\t" + e.getMessage()); } } public static void modificar_datos (String clave, String nombre, String direccion, String telefono, String clave_anterior, String edad, String sexo) { try { //prepare statement String qry = "Update directorio_paciente set clave = ?, nombre = ?, direccion = ?, sexo = ?, telefono = ?, edad = ? where clave = ?"; PreparedStatement ps = con.prepareStatement(qry); ps.setString(1, clave); ps.setString(2, nombre); ps.setString(3, direccion); ps.setString(4, sexo); ps.setString(5, telefono); ps.setString(6, edad); ps.setString(7, clave_anterior); ps.executeUpdate(); } catch(Exception e) {System.out.println(e); } } public static void eliminar_datos (String cond) { try { //prepare statement String qry = "Delete from directorio_paciente where clave = ?"; PreparedStatement ps = con.prepareStatement(qry); ps.setString(1, cond); ps.executeUpdate(); } catch(Exception e) {System.out.println(e); } } public static void extraer_datos () { try { int row = tmodel.getRowCount(); while(row > 0) { row--; tmodel.removeRow(row); } //execute query ResultSet rs = st.executeQuery("Select * from directorio_paciente"); //get metadata ResultSetMetaData md = rs.getMetaData(); int colcount = md.getColumnCount(); Object[] data = new Object[colcount]; //extracting data while (rs.next()) { for (int i=1; i<=colcount; i++) { data[i-1] = rs.getString(i); } tmodel.addRow(data); } } catch(Exception e) {System.out.println(e); } } }
Espero me puedan ayudar, porque ya estuvimos varias horas tratando de hacerlo y no pudimos :S Les adjunto la Base de datos cuyo nombre en "odbc" es medi y también les adjunto el código que hicimos
39
« en: Miércoles 16 de Noviembre de 2005, 09:07 »
Hola amigos, tengo un problema, en la materia ing. de software nos pidieron un sistema para control dental. Nos lo pidieron por versiones y en la primera versión entregamos el directorio de pacientes y el directorio de dentistas. El caso es que la profesora nos dijo que habiamos hecho la clase muy grande. Que sacaramos varias funciones de la clase y los metieramos como otra clase, el problema es que no sabemos como hacerlo. Les pongo el código de la clase directorio pacientes. import javax.swing.*; import java.awt.event.*; import java.awt.*; import javax.swing.table.*; //DataBase Packages import java.net.*; import java.io.*; import java.sql.*; //Main Class class directorio_pacientes extends JFrame implements ActionListener { private Statement st; private Connection con; //List of Labels private JLabel lblclave_anterior; private JLabel lblclave_paciente; private JLabel lblsexo; private JLabel lbledad; private JLabel lblnombre; private JLabel lbldireccion; private JLabel lbltelefono; //List of TextFields private JTextField txtclave_anterior; private JTextField txtclave_paciente; private JTextField txtsexo; private JTextField txtedad; private JTextField txtnombre; private JTextField txtdireccion; private JTextField txttelefono; //List of Buttons private JButton btnSaveAdd; private JButton btnSaveEdit; private JButton btnSaveDelete; private JButton btnAdd; private JButton btnEdit; private JButton btnDelete; private JButton btnExit; private JButton btnRefresh; private JButton btnCancel; //List of Panel private JPanel btnpanel; private JPanel panel; private JTable table; //Table private DefaultTableModel tmodel; //Container private Container cpane; directorio_pacientes(int choice) { switch(choice) { case 1: //Initial Window setTitle("DIRECTORIO DE PACIENTES"); setBounds(1, 200, 800, 230); setResizable(false); //cotainer cpane = getContentPane(); //components tmodel = new DefaultTableModel(); table = new JTable(tmodel); SetColHeader(); btnpanel = new JPanel(new GridLayout(1, 5, 5, 0)); btnAdd = new JButton ("Agregar"); btnEdit = new JButton ("Modificar"); btnDelete = new JButton ("Eliminar"); btnRefresh = new JButton ("Actualizar"); btnExit = new JButton ("Salir"); btnAdd.addActionListener(this); btnEdit.addActionListener(this); btnDelete.addActionListener(this); btnRefresh.addActionListener(this); btnExit.addActionListener(this); btnpanel.add(btnAdd); btnpanel.add(btnEdit); btnpanel.add(btnDelete); btnpanel.add(btnRefresh); btnpanel.add(btnExit); cpane.add(new JScrollPane(table)); cpane.add(btnpanel, BorderLayout.SOUTH); break; case 2: //Appending Window setTitle("Agregado de datos..."); setBounds(200, 200, 500, 200); setResizable(false); //cotainer cpane = getContentPane(); cpane.setLayout(new FlowLayout()); //Components panel = new JPanel(new GridLayout(8, 1, 5, 0)); lblclave_paciente = new JLabel(" Clave del paciente "); lblnombre = new JLabel(" Nombre del paciente "); lbldireccion = new JLabel(" Dirección "); lbltelefono = new JLabel(" Teléfono "); lbledad = new JLabel(" Edad "); lblsexo = new JLabel(" Sexo "); txtclave_paciente = new JTextField(15); txtnombre = new JTextField(15); txtdireccion = new JTextField(15); txttelefono = new JTextField(15); txtedad = new JTextField(3); txtsexo = new JTextField(1); panel.add(lblclave_paciente); panel.add(txtclave_paciente); panel.add(lblnombre); panel.add(txtnombre); panel.add(txtnombre); panel.add(lbldireccion); panel.add(txtdireccion); panel.add(lbltelefono); panel.add(txttelefono); panel.add(lbledad); panel.add(txtedad); panel.add(lblsexo); panel.add(txtsexo); btnpanel = new JPanel(new GridLayout(2, 1, 10, 5)); btnSaveAdd = new JButton ("Guardar"); btnCancel = new JButton ("Cancelar"); btnSaveAdd.addActionListener(this); btnCancel.addActionListener(this); btnpanel.add(btnSaveAdd); btnpanel.add(btnCancel); cpane.add(panel); cpane.add(btnpanel, BorderLayout.EAST); break; case 3: //Editing window setTitle("Modificación de datos..."); setBounds(200, 200, 500, 250); setResizable(false); //cotainer cpane = getContentPane(); cpane.setLayout(new FlowLayout()); //Components panel = new JPanel(new GridLayout(10, 1, 5, 0)); lblclave_anterior = new JLabel(" Clave anterior del paciente "); txtclave_anterior = new JTextField(15); lblclave_paciente = new JLabel(" Nueva clave del paciente "); lblnombre = new JLabel(" Nombre del paciente "); lbldireccion = new JLabel(" Dirección "); lbltelefono = new JLabel(" Teléfono "); lbledad = new JLabel(" Edad "); lblsexo = new JLabel(" Sexo "); txtclave_paciente = new JTextField(15); txtnombre = new JTextField(15); txtdireccion = new JTextField(15); txttelefono = new JTextField(15); txtedad = new JTextField(3); txtsexo = new JTextField(1); panel.add(lblclave_anterior); panel.add(txtclave_anterior); panel.add(lblclave_paciente); panel.add(txtclave_paciente); panel.add(lblnombre); panel.add(txtnombre); panel.add(lbldireccion); panel.add(txtdireccion); panel.add(lbltelefono); panel.add(txttelefono); panel.add(lbledad); panel.add(txtedad); panel.add(lblsexo); panel.add(txtsexo); btnpanel = new JPanel(new GridLayout(2, 1, 10, 5)); btnSaveEdit = new JButton ("Guardar"); btnCancel = new JButton ("Cancelar"); btnSaveEdit.addActionListener(this); btnCancel.addActionListener(this); btnpanel.add(btnSaveEdit); btnpanel.add(btnCancel); cpane.add(panel); cpane.add(btnpanel, BorderLayout.EAST); break; case 4: //Deleting window setTitle("Eliminando datos..."); setBounds(200, 200, 300, 125); setResizable(false); //cotainer cpane = getContentPane(); cpane.setLayout(new FlowLayout()); //Components panel = new JPanel(new GridLayout(2, 1, 5, 0)); lblclave_paciente = new JLabel("Clave del paciente a eliminar "); txtclave_paciente = new JTextField(15); panel.add(lblclave_paciente); panel.add(txtclave_paciente); btnpanel = new JPanel(new GridLayout(2, 1, 10, 5)); btnSaveDelete = new JButton ("Eliminar"); btnCancel = new JButton ("Cancelar"); btnSaveDelete.addActionListener(this); btnCancel.addActionListener(this); btnpanel.add(btnSaveDelete); btnpanel.add(btnCancel); cpane.add(panel); cpane.add(btnpanel, BorderLayout.EAST); break; } //Window Properties setDefaultCloseOperation(HIDE_ON_CLOSE); setVisible(true); //conection to DataBase conectar_a_bd(); } public void actionPerformed (ActionEvent ae) { if (ae.getSource() == btnAdd) { new directorio_pacientes(2); } else if (ae.getSource() == btnEdit) { new directorio_pacientes(3); } else if (ae.getSource() == btnDelete) { new directorio_pacientes(4); } else if (ae.getSource() == btnExit) { System.exit(0); } else if (ae.getSource() == btnCancel) { setVisible(false); } else if(ae.getSource() == btnSaveAdd) { agregar_datos(txtclave_paciente.getText(), txtnombre.getText(), txtdireccion.getText(),txtsexo.getText(), txttelefono.getText(),txtedad.getText()); txtclave_paciente.setText(""); txtnombre.setText(""); txtdireccion.setText(""); txttelefono.setText(""); txtedad.setText(""); txtsexo.setText(""); } else if(ae.getSource() == btnSaveEdit) { modificar_datos(txtclave_paciente.getText(), txtnombre.getText(), txtdireccion.getText(),txttelefono.getText(), txtclave_anterior.getText(),txtedad.getText(), txtsexo.getText()); txtclave_anterior.setText(""); txtclave_paciente.setText(""); txtnombre.setText(""); txtdireccion.setText(""); txttelefono.setText(""); } else if(ae.getSource() == btnSaveDelete) { eliminar_datos(txtclave_paciente.getText()); txtclave_paciente.setText(""); } else if(ae.getSource() == btnRefresh) { extraer_datos(); } } public static void main(String arg[]) { directorio_pacientes c = new directorio_pacientes(1); c.extraer_datos(); } private void SetColHeader() { tmodel.addColumn("Clave del paciente"); tmodel.addColumn("Nombre"); tmodel.addColumn("Dirección"); tmodel.addColumn("Sexo"); tmodel.addColumn("Teléfono"); tmodel.addColumn("Edad"); } private void conectar_a_bd () { try { String dsn = "Medi"; //load driver Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); //make connection con = DriverManager.getConnection("jdbc:odbc:" + dsn); //create statement st = con.createStatement(); } catch (Exception e) {System.out.println(e);} } private void agregar_datos (String clave, String nombre, String direccion, String telefono, String edad, String sexo) { try { //prepare statement String qry = "Insert into directorio_paciente values (?, ?, ?, ?, ?, ?)"; System.out.println(clave + "\t"+nombre+ "\t"+direccion+ "\t"+telefono+ "\t"+edad+ "\t"+sexo); //System.out.println("Read only "+con.isReadOnly()); //System.out.println("Closed "+con.isClosed()); PreparedStatement ps = con.prepareStatement(qry); ps.setString(1, clave); ps.setString(2, nombre); ps.setString(3, direccion); ps.setString(4,telefono); ps.setString(5,edad); ps.setString(6,sexo); ps.executeUpdate(); } catch(Exception e) {System.out.println(e + "\t" + e.getMessage()); } } private void modificar_datos (String clave, String nombre, String direccion, String telefono, String clave_anterior, String edad, String sexo) { try { //prepare statement String qry = "Update directorio_paciente set clave = ?, nombre = ?, direccion = ?, sexo = ?, telefono = ?, edad = ? where clave = ?"; PreparedStatement ps = con.prepareStatement(qry); ps.setString(1, clave); ps.setString(2, nombre); ps.setString(3, direccion); ps.setString(4, sexo); ps.setString(5, telefono); ps.setString(6, edad); ps.setString(7, clave_anterior); ps.executeUpdate(); } catch(Exception e) {System.out.println(e); } } private void eliminar_datos (String cond) { try { //prepare statement String qry = "Delete from directorio_paciente where clave = ?"; PreparedStatement ps = con.prepareStatement(qry); ps.setString(1, cond); ps.executeUpdate(); } catch(Exception e) {System.out.println(e); } } private void extraer_datos () { try { int row = tmodel.getRowCount(); while(row > 0) { row--; tmodel.removeRow(row); } //execute query ResultSet rs = st.executeQuery("Select * from directorio_paciente"); //get metadata ResultSetMetaData md = rs.getMetaData(); int colcount = md.getColumnCount(); Object[] data = new Object[colcount]; //extracting data while (rs.next()) { for (int i=1; i<=colcount; i++) { data[i-1] = rs.getString(i); } tmodel.addRow(data); } } catch(Exception e) {System.out.println(e); } } }
Nos dijo que sacaramos de la clase la función conectar_a_bd, agregar_datos, eliminar_datos, modificar_datos. Y que los metieramos a otra clase llamada gestion_de_bd. Y que también las instrucciones que se encuentran entre los cases(o sea las pantallas) las llevemos a otra clase. El problema es que no sabemos como vamos a llamar a las otras clases desde la clase directorio de pacientes. Si pudieran ayudarnos se los agradeceriamos mucho.
40
« en: Viernes 11 de Noviembre de 2005, 08:05 »
Si puedes poner la instrucción sql solcito que yo también ando buscando eso, guardo los datos en una bd de access.
Saludos.
41
« en: Viernes 11 de Noviembre de 2005, 07:57 »
Hola José, ya descubrí el error que tienes.
El error está en la función
Private Sub cmdTodosJuntos_Click() Call cmdConnect_Click Call cmdSend_Click Call cmdClose_Click End Sub
esa función por alguna razón falla al hacer las llamadas con "Call", así que para que no falle debes ponerlo de la siguiente manera:
Private Sub cmdTodosJuntos_Click() cmdConnect_Click cmdSend_Click cmdClose_Click End Sub
Tu código en la primera ejecución no falla, pero después que lo ejecutas de nuevo, es donde viene el fallo. Así que si se bloquea y ya no quiere trabajar, entonces crea un nuevo formulario y ahí pásale todo el código con los controles. Entonces haz la modificación que te dije.
Espero te funcione. Saludos.
42
« en: Miércoles 2 de Noviembre de 2005, 05:58 »
Muchisimas gracias cpmario, me funcionó de maravilla el código. Ahora podré continuar con la aplicación. Saludos.
43
« en: Miércoles 2 de Noviembre de 2005, 01:50 »
Hola, te contesto con lo que se, el exe debe estar en todas las terminales, puedes trabajar realizando la conexión con ODBC y con esto trabajaras tu base de datos como si fuese local, y todos los equipos podrán acceder a ella.
Lo de colocar un link del .exe que está en el servidor estaría bien, siempre y cuando tengas todos los controladores que trae visual basic en cada PC.
44
« en: Miércoles 2 de Noviembre de 2005, 01:40 »
Hola a todos, tengo un pequeño problema, espero me ayuden a resolverlo. Resulta que tengo un programa en el cual elimino mediante sql un registro, supongamos que tengo la orden: elimina * from registro where clave=13 eso funciona de maravilla, pero el problema es cuando quiero poner dos condiciones en where, por ejemplo clave y carrera. eso no sé como hacerlo. Les pongo el código para que lo puedan apreciar: Dim fun Dim cn As rdoConnection Dim en As rdoEnvironment Dim SQL As String Dim qy As New rdoQuery Set en = rdoEnvironments(0) Set cn = en.OpenConnection(dsname:="conexion", _ Prompt:=rdDriverCompleteRequired) With qy .Name = "BD" .SQL = "Select * from docente Where no_tarjeta = ? " .RowsetSize = 1 Set .ActiveConnection = cn End With SQL = "Delete * From registro Where clave='" & Text1.Text & "' " cn.Execute SQL cn.Close en.Close MsgBox "El registro ha sido eliminado con éxito", vbOKOnly, "SAD"
Como hago para añadir en where que elimine el registro solo si clave=text1.text y carrera=text2.text ? De antemano muchas gracias
45
« en: Sábado 29 de Octubre de 2005, 23:07 »
Hola amigos, tengo un pequeño problemota. Les cuento. Hice un programa de administración de laboratorios del centro de cómputo de mi escuela. El cual está compuesto por: - Servidor: Registra automáticamente todos los accesos a cada computadora. - Cliente para administrador: Manda órdenes al servidor de que apague, desbloquee/bloquee, mande mensajes a todas las pcs por laboratorio. - Cliente: Bloquea cada computadora para que no pueda ser usada sin registrarse un alumno. Bueno, el problema está en la aplicación cliente para administradores, porque esa aplicación es la que me muestra los reportes. Es decir esta aplicación se conecta con la aplicación servidor y le pide que le mande todos los registros en determinada fecha. Cuando el servidor recibe esa orden, hace la búsqueda y guarda los datos en un MSflexgrid y después los manda linea por linea a la aplicación cliente para administradores, pero resulta que para que me los mande correctamente debo poner un tiempo de retardo muy grande. Les pongo algo de código: If Left(datos, 15) = "/dame_reporte1:" Then tabla.Clear z = Len(datos) - 15 aux = Right(datos, z) c = 1 While (Mid(aux, c, 1) <> ",") palabra = palabra & Mid(aux, c, 1) c = c + 1 Wend anio.Text = palabra palabra = "" c = c + 1 While (Mid(aux, c, 1) <> ",") palabra = palabra & Mid(aux, c, 1) c = c + 1 Wend If palabra = "ENERO - JULIO" Then semestre.Text = "1" End If If palabra = "AGOSTO - DICIEMBRE" Then semestre.Text = "2" End If palabra = "" c = c + 1 While (Mid(aux, c, 1) <> ",") palabra = palabra & Mid(aux, c, 1) c = c + 1 Wend laboratorio.Text = palabra palabra = "" c = c + 1 While (Mid(aux, c, 1) <> ";") palabra = palabra & Mid(aux, c, 1) c = c + 1 Wend carreras.Refresh enc = 0 While Not (carreras.Recordset.EOF) And enc = 0 If carreras.Recordset.nombre_materia = palabra Then enc = 1 carrera.Text = carreras.Recordset.clave_materia End If carreras.Recordset.MoveNext Wend ' For c = 1 To 30 ' tabla.TextMatrix(c, 2) = "" ' tabla.TextMatrix(c, 3) = "" ' Next Command2_Click ' guarda los datos en el MSflexgrid llamado tabla If Winsock1(Index).State = 7 Then c = 0 While c < tabla.Rows Winsock1(Index).SendData "/envio_reporte1:" & c & "," & tabla.TextMatrix(c, 0) & "," & tabla.TextMatrix(c, 1) & "," & tabla.TextMatrix(c, 2) & "," & tabla.TextMatrix(c, 3) & ";" Delay (2) c = c + 1 Wend End If End If
Como se habrán dado cuenta utilizo el control winsock. En este código tiene un tiempo (delay) de 2, funciona cuando corro el cliente para administradores en la misma máquina donde está el servidor, pero si lo hago desde otra tengo que poner un tiempo (delay) de 20, el cual tarda una eternidad en mandarme cerca 30 lineas, si no lo hago así, me llegan los datos desordenados. Espero pudieran decirme como hacer para que en menos tiempo me mande los datos. De antemano gracias por responderme.
46
« en: Jueves 20 de Octubre de 2005, 02:03 »
Hola, en la sección de código fuente coloqué un fuente que hice sobre árboles binarios, para la búsqueda, puedes utilizar el algoritmo con que recorro todo el árbol, el recorrido que hago es desde el último nodo de la izquierda, hasta la raiz y de ahí hasta el último nodo de la derecha. Utiliza esa parte del código. Hago notar que no lo hice recursivo, ya que no me daba eso de la recursividad jeje. Pero funciona igual que si fuera recursivo. Saludos
47
« en: Viernes 14 de Octubre de 2005, 00:00 »
O sea que ya ni llorar es bueno? :s
Y no habria una forma de emular que estoy en windows 98 para poder ejecutar mis programas???
Que sabes al respecto sobre la emulación de un sistema operativo?
48
« en: Lunes 10 de Octubre de 2005, 21:16 »
Hola Black_Spidey yo hice un programa procesador de texto en c++ en modo gráfico. Y me sucedia lo mismo que a ti, al querer utilizar una tecla como ALT + F4 para cerrar mi programa me daba que el código ascii era igual a otra tecla y tenía problemas con eso ya que se escribia en pantalla la letra con dicho código ascii.
Me puse a investigar eso y descubrí que cuando presionas una tecla de control como puede ser CTRL o ALT o F1 a F12 o INSERT, INICIO, ETC... siempre antes del código ascii me mandaba un "1", lo que yo hacia era interceptar ese "1" que me mandaba y lo guardaba en una variable que tenia el valor de "0" y siempre comparaba si el código ascii es (por ejemplo) = 80 y variable=1 entonces avanzo una linea sino es igual a 1 pues escribia en pantalla la letra con código ascii "80", espero me hayas entendido, checalo. Me imagino que utilizas la función kbhit()
Saludos.
49
« en: Sábado 8 de Octubre de 2005, 17:57 »
Hola amigos, pues el problema que ahora tengo es el siguiente:
Antes cuando tenia en mi pc windows 98 hice programas en modo gráfico, los cuales publiqué en la sección código fuente, es el de "Combo en c" y "Árboles binarios a la N en c"
Pero resulta que ahora que tengo windows XP SP2, no puedo ejecutar ningún programa en graficos ni aún los que trae borlandc 3.1 de ejemplos. Si pudieran orientarme que debo hacer?
De antemano gracias por su ayuda
50
« en: Sábado 17 de Septiembre de 2005, 23:04 »
Hola pues este código me sirvió de mucho para impresionar a quien yo creia era el mejor profesor de programación en mi escuela. Se trata de un combo en C++, está en modo gráfico y funciona al darle click con el botón izquierdo del ratón. Lo pueden utilizar para darle una hermosa presentación a sus aplicaciones. Espero sus comentarios Autor: Martín Campos Quintero http://www.sisadmic.tk
|
|
|