|
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 - arielb
Páginas: 1 ... 8 9 [10] 11 12 ... 37
226
« en: Jueves 4 de Marzo de 2010, 17:44 »
Hola espero estén bien, yo estuve de vacaciones y descansé bastante, gracias a Dios, y bueno regresando a mi faena. Entrando en el tema, para añadir lo que tienes en los text y el spinner, debes agregar los valores a la tabla que el grid está apuntando. select tablagrid append blank in tablagrid replace campo with valor in tablagrid
y luego vuelves hacer la referencia a la tabla thisform.grid1.RECORDSOURCE="MITABLA" thisform.grid1.refresh()
mi segunda duda es sobre almacenar todo lo que se visualiza en el grid en la tabla ventas donde se registran todas las ventas de un dia determinado generalmente se usa append blank y gather memvar para grabar un registro cualquiera no pienses en el grid acuerdate que el grid apunta a una tabla o cursor solo apunta a la tabla y usas gather como ya sabes usarlo.
227
« en: Viernes 5 de Febrero de 2010, 17:10 »
si es así, vas bien como lo pones, solo que al crear el reporte y al agregarle los text deben tener el mismo nombre del campo del cursor que tiene el valor que mostrará.
228
« en: Lunes 1 de Febrero de 2010, 20:59 »
Bueno, ahorita estoy empezando de vacaciones por lo que no estarè entrando acá muy seguido. Pero te sugiero que busques un manual de como hacer reportes y ese reporte le asignas el cursor que estás creando si mal no recuerdo en este post hay ejemplos de reportes http://foros.solocodigo.com/viewtopic.php?f=43&t=27266
230
« en: Jueves 28 de Enero de 2010, 21:19 »
231
« en: Jueves 28 de Enero de 2010, 16:40 »
Bueno lo más sencillo y rápido sería que crearas un reporte y que lo invoques desde código. Como ya tienes un cursor abierto solo haces que el reporte apunte a ese cursor y te trae los datos que fueron encontrados según el filtro de la fecha. Me parece que podrías poner un botón no visible, que diga Imprimir, debajo del que dice "Mostrar resultado", y si el reccount() es mayor a cero lo pones visible. Para obtener resultados en un rango de fecha puedes usar la función between() que puede ser algo así SELECT SUM(IMPORTE) FROM VENTAS WHERE BETWEEN(FECHA,CTOD('01/07/2009'),CTOD('30/07/2009'))
Me parece que si usas un combo limitas al usuario que las consultas sean del mes en específico, y no por periodos, al menos que le pongas las dos opciones, existe por ahí una clase para vfp de un datepicker. Lo digo porque a los encargados de ver resultados y esas cosas les gusta generar reportes por periodos y no solo de un mes. Es decir pueden tomar un trimestre o un semestre para realizar comparaciones con años anteriores, o comparaciones con el primer trimestre con el actual, cosas así. Saludos
232
« en: Jueves 28 de Enero de 2010, 05:31 »
Bueno estuve viendo el código con un poco más de calma y encontré ciertas cosas en la misma pantalla estás creando un indice y a la ves lo aplicas para hacer un seek y después haces una consulta. En temas de rendimiento no es lo más óptimo dado que a medida que tús datos vallan creciendo y que la aplicación tenga que hacer todo eso la hará más lenta, pues son imnecesarios hacerlos todos. Siguiendo con el tema de renimiento es bueno crear índices, aunque no vallas a usar seek, para búsquedas aunque sea por sql, pero no en el mismo proceso. Otro punto es que estabas usando una variable que se confundía con el nombre del campo de la tabla, dado a que visual fox no te obliga a declarar las variables daba cabida a ese error. Lo otro es que la consulta estaba mal elaborada, de la forma que estaba siempre te iba a traer todos los registros y no iba hacer el filtro de la fecha en especifico. Se le agregó algunas instrucciones, que bueno tú verás en que formato te conviene más trabajar las fecha con set date Te dejo el código que te puede funcionar Close Databases All Use ventas Exclusive txtfecha=Thisform.text1.Value SET DATE BRITISH SET EXACT ON SET SAFETY ON If !Empty(txtfecha) Then Select fecha,codigo,articulo,importe From ventas Where fecha=txtfecha Order By fecha Into Cursor xx Select xx If Reccount() == 0 Then Messagebox(eMessageText2, nDialogType2, eMessageTitle2) ENDIF thisform.list1.rowsource="xx" thisform.list1.Refresh Else Messagebox("Debe colocar una fecha válida") Endif
233
« en: Miércoles 27 de Enero de 2010, 22:46 »
Creo que sería más eficiente, un procedimiento almacenado que verifique una variable de entrada que si es postulante haga el insert en postulantes y si es contratados haga el insert en contratados y de lo contrario en una variable de salida retornas retornas el proceso que hizo o no hizo
234
« en: Miércoles 27 de Enero de 2010, 22:39 »
Hola, bueno no conozco mucho sql server, pero puedes intentar con las funciones ISNULL() y COALESCE()
235
« en: Miércoles 27 de Enero de 2010, 21:10 »
Y es correcto que puedan escribir número decimales con coma para el programa que haces? Si no lo es puedes restringuirlo con esta función pero sería a nivel del browser solamente //Esta función permite escribir números decimales y que el punto no se repita function decimalDosPuntos(evento,campo){ var tecla ; if ( navigator.appName.toUpperCase() != "NETSCAPE"){ tecla = evento.keyCode; }else{ tecla = evento.which; } if (tecla <= 13 ){ return false; }else if ( tecla >=48 && tecla <=57){ return true; }else if ( tecla == 46){ var cadena = document.getElementById(campo).value; if ( cadena.indexOf(".") != -1 ){ return false; }else{ return true; } }else{ return false; } }
y por si acaso debieras validar también del lado del servidor(esto es una buena práctica), utilizando la clase numberFormat y Locale ya que el error es de asignar un valor String que contiene coma a un double
236
« en: Miércoles 27 de Enero de 2010, 15:30 »
Hay otras maneras pero para no realizar tantos cambios en el código intenta con esto. IF FOUND() thisform.list1.rowsource ="" select fecha,codigo,articulo,importe from ventas where thisform.text1.value=fecha ORDER BY fecha into cursor xx thisform.list1.rowsource="xx" thisform.list1.Refresh ELSE thisform.list1.rowsource="" thisform.list1.Refresh MESSAGEBOX(eMessageText2, nDialogType2, eMessageTitle2) ENDIF
237
« en: Martes 26 de Enero de 2010, 22:25 »
Hola bienvenido, te manda algún error?, cual es el problema exactamente?
238
« en: Martes 26 de Enero de 2010, 20:59 »
Hola bienvenido al foro. Bueno por el error "cannot access the selected table en el cursor del select", quiere decir que no existe el cursor al que está apuntando IF FOUND() thisform.list1.rowsource ="" select fecha,codigo,articulo,importe from ventas where thisform.text1.value=fecha ORDER BY fecha into cursor xx thisform.list1.rowsource="xx" thisform.list1.Refresh ELSE MESSAGEBOX(eMessageText2, nDialogType2, eMessageTitle2) ENDIF
Observando el código el cursor que le estás asignando al list lo estás haciendo si la condición se cumple cuando no se cumple ya no existe porque lo estás cerrando con el close table all, y ya las propiedades del list le asignaste los valores y sigue haciendo referencia.
239
« en: Martes 26 de Enero de 2010, 17:08 »
Para poder mantener los valores debes tenerlos dentro de una forma y así redireccionar <script type="text/javascript"> function redireccionar() { document.forma1.funcion.value='' document.forma1.action = 'NombreServlet'; document.forma1.submit(); } </script>
<html> <head> <head> <body> <form id="forma1" name="forma1" action="" method="post"> <input type="text" id="text1" name="text1"> </form> <input type="submit" id="btn" name="btn" value="Aceptar" onclick="redireccionar()"> </body> </html>
240
« en: Viernes 22 de Enero de 2010, 15:48 »
Bueno yo solucioné el comportamiento que mencionas así, pero era con frames <script type="text/javascript" language="Javascript"> parent.location.href='principal.jsp'; </script>
y así <script type="text/javascript" language="Javascript"> parent.frames[2].location.href ='ingreso.jsp'; </script>
No te aseguro que es la solución para tí, porque como comenté no eran pestañas, pero tal ves te sirva para una guía o para realizar una búsqueda diferente. Si encuentras la solución te agradecemos que la publiques así la tenemos presente para cuando nos toque .
241
« en: Martes 12 de Enero de 2010, 15:27 »
Bueno pareciera que es el orden de los parametros que recibe el procedimiento según el error que muestras, la variable de tipo out la estás pasando como 1 y lo que está en esa posición es idusuario
242
« en: Viernes 8 de Enero de 2010, 21:16 »
bueno puedes usar la opción 1 ó la opción 2 que te comenté, entonces desde servlet cuando terminas lo que quieres hacer lo que haces es que vuelves a redireccionar la página utilizando el argumento de tipo HttpServletResponse que se encuentra en el método dopost res.sendRedirect("pagina.jsp"); return;
con esto llevas quedas nuevamente en la página que estabas. P.D si la página se queda en blanco totalmente si ningún informe de error, quiere decir que si está llegando al servlet pero como no hay nada en el servlet que le diga a donde ir después que termina de hacer lo que tiene que hacer, es entonces donde te muestra la página en blanco. Y si al llamar el servlet te sale una página que dice que no se encontra la página quiere decir que el nombre que estás poniendo en el action no está igual al alias que tiene el servlet al momento de crearse en el web.xml
243
« en: Viernes 8 de Enero de 2010, 17:00 »
Bueno tienes 3 formas para hacerlo. 1- Usar un botón submit que esté dentro de una forma y en el action le pones que te direccione al servlet 2- crear una función javascript y ponerla en el evento onclick que direccione al servlet. 3- y si lo que quieres es realizar una función especifica en la misma pantalla pero no requiere cargar toda la página, podrías implementar ajax, puedes investigar sobre Fajax() opción 2 function redireccionar() { document.form1.action="NombreDelServlet" document.form1.submit(); } <input type="submit" id="btnguardar" name="btnguardar" onclick="javascript:redireccionar();">
opción 3 function redireccionarAjax(){ FAjax('NombreDelServlet','nombredeldiv','parametro='+document.getElementById('campo'),'POST'); } <input type="submit" id="btnguardar" name="btnguardar" onclick="javascript:redireccionarAjax();">
Bueno espero te sirva
244
« en: Lunes 21 de Diciembre de 2009, 20:24 »
Hola a todos, bueno una navidad más que llega y quiero desearle a todos una feliz navidad, que Dios les bendiga y les siga dando salud a ustedes y su familia. Por si no llego a entrar al foro antes de año nuevo, ya que estoy solicitando unas pequeñas vacaciones, también les deseo un feliz año nuevo lleno de bendición, mucho trabajo( es muy importante este punto ) y cosas buenas. También esperando que el próximo año podamos seguir participando de este foro, todos lo que están actualmente y se agreguen nuevos usuarios que aporten o por lo menos que hagan un uso correcto del foro y sin atacar a los que aportan una respuesta solo por el hecho que no le entienden, como le pasó al compañero Eternal Idol, aunque la intención no es traer malos recuerdos si no anecdotas que molestan al momento pero después uno las ve graciosa. Para no alejarme mucho del tema principal saludos a todos y les deseo lo mejor
245
« en: Lunes 14 de Diciembre de 2009, 16:50 »
hola, no sería correcto que te hagan la tarea, pero solo te podré recomendar que investigues sobre el uso de los métodos de la clase ServerSocket. Ya que estás usando un ide podrías crearte una instanacia de esa clase y revisar la lista que te despliega con todos los métodos que tienen y revisar cual es su uso.
246
« en: Jueves 22 de Octubre de 2009, 06:40 »
247
« en: Lunes 24 de Agosto de 2009, 21:15 »
has intentado separarlo?. ... int i = 1; //Ciclo de lectura del resultset while(rs.next()) { dato = rs.getString("Mensaje") ; solucion = solucion + "<TR>"; solucion = solucion + "<TD width="20%"><i><input type="button" style="font-size:small" name="sms" + i + "" value="SMS" onclick ="abrir(" + dato + ");"/></i></TD>"; solucion = solucion + "</TR>"; i++; } ...
248
« en: Domingo 23 de Agosto de 2009, 03:05 »
si estoy compilando con jre no estás compilando con jre, ya que como te comentó shadow_rev, jre es solo para ejecutar programas ya compilados, el jre si realiza una compilación pero es la compilación JIT no la que tú quieres hacer. entra a al página http://java.sun.com/ y buscate el jdk de acuerdo a tú sistema operativo.
249
« en: Jueves 20 de Agosto de 2009, 18:44 »
Debes crear una clase con nombre CorrerPrograma, si el editor te crea el nombre de la clase, lo que debes hacer es borrarle el nombre y todo el cuerpo que te agregó y solo dejarle el package y pegarle esto. import java.awt.Toolkit; import java.util.Timer; import java.util.TimerTask; public class CorrerPrograma { public void iniciarPrograma() { toolkit = Toolkit. getDefaultToolkit(); timer.schedule(new ClaseTimerTask(), 0, 1 * 1000); } int n = 0; int estado = 0; public void run() { if (estadoPrograma() != 20) { System. out. println("Corriendo...." + n ); toolkit.beep(); } else { System. out. println("Saliento del programa"); } n++; } public int estadoPrograma() { //obtienes el resultado con la consulta a la bd return this.estado++; } } public static void main (String arg []) { CorrerPrograma probar = new CorrerPrograma(); probar.iniciarPrograma(); } }
Luego le das botón derecho y le das run file CorrerPrograma.java la salida es esta Corriendo....0 Corriendo....1 Corriendo....2 Corriendo....3 Corriendo....4 Corriendo....5 Corriendo....6 Corriendo....7 Corriendo....8 Corriendo....9 Corriendo....10 Corriendo....11 Corriendo....12 Corriendo....13 Corriendo....14 Corriendo....15 Corriendo....16 Corriendo....17 Corriendo....18 Corriendo....19 Saliento del programa
250
« en: Jueves 20 de Agosto de 2009, 06:03 »
Los números solo son para muestra, ahí se puede modificar que sea uno o cero, si tomas el código lo pegas en una clase y le das run te das cuenta el comportamiento y verás mejor lo que hace la clase # public void run() { # # if (estadoPrograma() == 1) { # System. out. println("iniciando programa...." + n );# toolkit.beep(); # } else { # System. out. println("Saliento del programa");# } # n++; # # } #
Páginas: 1 ... 8 9 [10] 11 12 ... 37
|
|
|