|
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 - jarvizu
Páginas: [1]
1
« en: Lunes 25 de Febrero de 2008, 23:42 »
Hola por aquí por este foro de Bd nuevamente
No les da rabia cuando se hace algo y luego viene el que le dio inicio y marcha al proyecto y luego de que esté todo hecho (y más cuando algunas cosas costaron hacerlas) venir a decidir que los datos mejor sean X y no Y ????
Tenía un programa que trabajaba con numeros, me costó que aceptara decimales puesto que redondeaban las sumas, etc, igual en Crystal. Pero listo, resuelto.
Ahora viene el muy... que es mejor (prefiere) que en vez de indicar las horas AM y PM de horas de Trabajo de un Empleado, que mejor se ingrese la "Hora de Entrada" y la "Hora de Salida" y automaticamente el programa determina las horas entre hora y hora. Ya por aquí por el foro me han ayudado a cómo hacer eso posible.
Increible que esa decisión de cambio de datos, haya cambiado todo, la ventana que lo maneja (form), su codigo (obviamnente), la tabla que lo relaciona, y desde luego, de eso no escapa el reporte, sentecias SQL nuevas, etc. Todo lo anterior hecho a esto, directo a la papelera del escritorio (por asi decirlo).
El cambio de datos ni siquiera se le ocurrio viendo el progreso del programita, sino de un archivo Excel del cual parte todo esto, es ahí cuando uno se pregunta ¿y porqué no dedujo estos cambios antes de yo haber hecho las cosas? (antes de darme el archivo), simplemente otro más que cree que todo se soluciona con un click, boton derecho y propiedades.
Perdon por lo escrito, es que es la segunda vez que me pasa algo así y ha sido con el mismo individuo, no critico los cambios, digo de que al menos los haga antes y así no hacer que lo ya hecho (en dias y/o horas) no haya valido nada. Todo esto porque la cuestion no fue agregar sino reemplazar/sustituir cosas ya hechas. Sólo sé que de volver a pasar, me voy a sentar con este señor y le voy a explicar mejor las cosas, para que no esté a diestra y siniestra cambiando las cosas a su antojo/gusto luego del trabajo ya hecho.
Bueno a lo que venía a preguntar: Por favor ¿Sabe alguien como sumar Horas en una sentencia SQL? He estado intentado algo con CONVERT(DateTime, campo), DATEDIFF() y SUM(DATEPART()) pero error seguido de otro, no he logrado formar algo concreto que funcione.
Como estos datos son el todo y el protagonista del programita, tengo que preguntar, dónde lo subo (cuando esté listo) para que se lo bajen porque al ayudarme a resolver estos problemas, practicamente es como si el programa fuese de todos, aun saliendo del paso de algunos problemitas antes presentados sin consultarlo por aquí, ya un par de cosas, me han ayudado a resovlerlo por aquí. Lo guardan de recuerdo Nadamas pase a criticar... con buenas intenciones aclaro. Usercode, en ocasiones el usuario o quien te contrata tiene la idea conceptual de lo que necesita, es funcion del desarrollador tener la vision de lo que en realidad necesita el cliente, esta vision debe enfocarse a la idea central del requerimiento, adentrandonse a los detalles del negocio, no se si me explico, pero es basicamente lo que debe hacer el analista. He conocido a programadores que me sorprende la capacidad para codificar aplicaciones, pero solamente saben codificar lo que se les pide, "crea una ventana que sume dos mas dos", pero nunca proponen "que te parece si te hago una ventana con una calculadora"... Es un consejo que puedo compartirte, analisis, primero conceptual despues detallado, esto te evitara mil dolores de cabeza, siento no haber sido de ayuda en el punto central del post. (tengo 20 años como analista y desarrollador de aplicaciones).
2
« en: Jueves 21 de Septiembre de 2006, 08:52 »
Carlos...
Hace unos meses me paso lo mismo de PB8 a PB9, la verdad lo hice al estilo cavernicola, tuve que exportar uno a uno los objetos, ventanas, datawindow, controles, funciones, etc.... y creeme que fueron un chorro, el problema que al importarlos a PB8 me daba un error encontre que PB le pone una cabecera a los archivos de exportacion, en la que indica la version de la que viene el codigo, lo unico que tuve que hacer fue cambiar el numero de version de la cabecera y uno que otro dato html y xml que me enviaba el PB9, esto debido a que PB8 no soportaba los datos XML en el codigo exportado.
Si encontraste algo mas facil por favor comparte, me interesa mucho no quiero volver ha hacer lo que ya te platique, (espero que no me vean en la necesidad nuevamente).
Saludos!!!
Tijuana, B.C. Mexico.
3
« en: Jueves 21 de Septiembre de 2006, 08:47 »
pierpiter!!!!!!!
Se soluciono el problema?, platicanos....
Saludos!!!
Tijuana, B.C. Mexico.
4
« en: Jueves 21 de Septiembre de 2006, 08:44 »
girl18...
Efectivamente como te dice el buen amigo pierpiter, puedes hacer la actualizacion de manera asincrona, es decir primero en una tabla y despues en otra, aunque puedes hacerlo tambien con una datawindow compuesta, pero seria mas dificil si estas empezando con PB, ahora por que no pones el esquema de tu BD y la PBL, para ver que podemos hacer, creo que el problema no es de programacion mas bien es de implementacion de las herramientas.
Bueno espero que te animes a poner la pbl y el esquema con el de las dos tablas que mencionas es suficiente no es necesario toda la BD.
Saludos!!!!
TIJUANA, B.C. Mexico
5
« en: Jueves 21 de Septiembre de 2006, 08:34 »
Amigos...
Por favor retroalimenten cuando un problema se haya resuelto con las ideas, consejos, o en el ultimo de los casos tonterias que otros les digamos (sin afan de ofender), ya que he visto que algunos hilos se quedan muertos, no se si es por que ya se soluciono el problema o por que el que pregunto se desespero y se fue a otro foro, etc.... creo que si damos una respuesta de que nuestro problema ya se resolvio es bueno para la comunidad asi los proximos en preguntar ahi encontrara respuestas mas atinadas.
Sr. webmaster, no intento meterme en sus terrenos de moderador, solo es una sugerencia para el foro.
Saludos!!!
Tijuana, B.C. Mexico
6
« en: Jueves 21 de Septiembre de 2006, 08:28 »
NEooo???
Se arreglo??
Saludos!!!
7
« en: Jueves 21 de Septiembre de 2006, 08:26 »
A ver si entendi..
Deseas modificar los totales del crostabsum... ok es sencillo selecciona el computedfile, en la parte de las propiedades te vas al recuadro descriptivo de la operacion que efectua el computedfile, tiene un boton de adicionales (...), te abrirar undialogo paraque edites la formula que compone el computedfile, te dira algo asi como crosstabssum(1,2,3,4,5,@algo), los numeros con los numeros de los computedfile que componene a este mismo computedfile.
Espero te sirva.
Saludos!!!.
Tijuana, B.C. Mexico.
8
« en: Jueves 21 de Septiembre de 2006, 08:21 »
Que tal Amigo... Sabes hace tiempo hice algo parecido a lo que mencionas, mejor dicho implemente algo parecido, pero creo que lo que necesitas hacer es un objeto no visual de usuario el cual reciba los datos los analize, este objeto se lo heredas a el objeto que vas a crear es decir creas un nvo del tipo window, cuando crees una window nueva instancias la variable nvowindow del tipo window, para que herede las propiedades del nvo, la funcion que mencionas estara en el nvo, asi la herencia permitira leer el contenido de la ventana a la cual se heredo. No se si me explique creo que no... mmm pero sabes existe un ejemplo en una aplicacion para poner skines a las ventanas, en este momento no recuerdo si esta en www.powerbuilder.org, buscala como skinchange o algo asi, en esa app, viene claramente lo que trate de explicar. Saludos!!!! Tijuana, B.C.
9
« en: Jueves 21 de Septiembre de 2006, 07:59 »
Mi chavo dale una leida al help, algo que ningun otro IDE a superado a PB es la ayuda, aqui te dejo un ejemplo extraido del help en las funciones de fecha. This statement returns 4: DaysAfter(1996-12-20, 1996-12-24) This statement returns -4: DaysAfter(1996-12-24, 1996-12-20) This statement returns 0: DaysAfter(1996-12-24, 1996-12-24) This statement returns 5: DaysAfter(1994-12-29, 1995-01-03) If you declare date1 and date2 date variables and assign February 16, 1996, to date1 and April 28, 1996, to date2 as follows: date date1, date2 date1 = 1996-02-16 date2 = 1996-04-28 then each of the following statements returns 71: DaysAfter(date1, date2) DaysAfter(1996-02-16, date2) DaysAfter(date1, 1996-04-28) DaysAfter(1996-02-16, 1996-04-28)
10
« en: Jueves 21 de Septiembre de 2006, 07:53 »
Que tal evmun... Primero, te comento que lo siguiente es usando power 8.0.4, el build 10923, he usado poco el 10.5 creoque todavia no tiene el evento keypress implicito en el control singlelineedit, por lo cual lo tienes que crear tu mismo. Paso 1, en el listbox de los eventos del control selecciona new event, solo rellena el textbox con el nombre el evento de preferencia identificalo con el prefijo ue_, de tal manera que quedaria algo asi ue_mievento, los demas datos losdejas tal y comoestan. Paso 2, ahora tienes que indicar que al llamar a tu evento se disparara un evento propio del control, en tu caso el que queremos es el de keypress (bueno asi dice VB), en el caso de PB es pbm_keyDown si lo que quieres es evaluar una tecla especifica, si lo que deseas es lo que se va tecleando sin importar cual es el evento es pbm_keyUp. Tercero ahora si pones el codigo que quieres que actue cuando se de el evento de la tecla y listo. Te doy un ejemplo de una busqueda recursiva en una dw desde un sle. type sle_buscar from singlelineedit within w_art_lista event ue_digitando pbm_keyup integer x = 50 integer y = 104 integer width = 814 integer height = 92 integer taborder = 10 integer textsize = -10 integer weight = 400 fontcharset fontcharset = ansi! fontpitch fontpitch = variable! fontfamily fontfamily = swiss! string facename = "Arial" long textcolor = 33554432 textcase textcase = upper! borderstyle borderstyle = stylelowered! end type event ue_digitando;string ls_busca, ls_columna integer li_fila,li_largo //tomamos el valor... ls_busca = trim(sle_buscar.text) li_largo=len(ls_busca) /* Tomamos la segunda columna como la de busqueda o el campo donde se desea buscar lo que se digita... */ ls_columna = dw_arlis.Describe("#1.Name") /* Aqui agregaremos a un string todo el argumento de busqueda con los parametros... */ ls_busca = "Mid (" + ls_columna + ",1," + string(li_largo)+ " ) = '" + ls_busca + "'" li_fila = dw_arlis.Find (ls_busca, 1, dw_arlis.rowcount()) IF li_fila > 0 THEN //si encontro algo con ese argumento.. lo lleva a esa fila... dw_arlis.setrow ( li_fila ) dw_arlis.ScrollToRow ( li_fila ) else //sino encontro nada con ese argumento nos lleva a la fila 1 dw_arlis.setrow (1) dw_arlis.ScrollToRow (1) END IF end event
11
« en: Jueves 21 de Septiembre de 2006, 07:30 »
admins del sitio envie una respuesta a un hilo y no se por que se fue a otro por fa si puedesd mover el mensaje adonde corresponde, es el mensaje de la variables de acceso.
gracias
12
« en: Jueves 21 de Septiembre de 2006, 07:28 »
Tu Codigo quedaria algo asi:
/ declarmos variables string nom,cla
// nuevas variables string ls_clvnva, ls_pswnva
ls_clvnva = trim(sle_nombre.text) ls_pswnva = trim(sle_pass.text)
//selecionamos el nombre y la clave paa comparar si son iguales
select Usuario,Password into :nom,:cla from Registro where Usuario =:ls_clvnva and Password=:ld_pswnva;
//verifica si existe la clave
if blio.sqlcode=100 then contador=contador+1 messagebox('Advertencia','Nombre Incorrecto o Contraseña Errada',exclamation!) if contador = 3 then messagebox('Aviso','Intentos Fallidos, El Sistema se Cerrará',exclamation!) else sle_nombre.text="" sle_pass.text="" sle_nombre.setfocus() end if else open(w_administrador) end if
13
« en: Lunes 29 de Marzo de 2004, 21:33 »
Que onda Puppet... Lo que necesitas es sencillo te recomiendo que leas la documentacion que incluye en help en la seccion de dwreport del power builder... si necesitas algo mas especifico no dudes en preguntarme.. Saludos
14
« en: Lunes 29 de Marzo de 2004, 21:29 »
Que tal Harol.. No me queda muy claro deseas agregar los campos o los registros de una bd al ddlb?... Si lo que deseas es enviar los registros a un ddlb, te recomiendo que uses un ciclo do whilw o un do loop o un for next combinado con la lectura de una datawindow, basicamente lo que harias es leer el contenido de cada registro de la dw ponerlo en una variable temporal y depositarlo en la ddlb con la funcion additem. Mira yo utilizo esto para cargar una tabla de ciudades en un ddlb, pero como necesito la informacion de varios campos, lo que hago es poner la informacion que desplegare al incio de la cadena e inserto espacios suficientes para que el resto de la info no aparezca para el usuario, le doy un formato especifico a la cadena que contiene le resto de la info y ais es como la puedo leer y sacar los diferentes datos que necesito. Ejemplo. // poblar combo con las plazas ll_rows = w_boletines.tab_1.tabpage_ivr.dw_plazas_stp.RowCount() m = 0 for l = 1 to ll_rows m++ ls_cod_plz = w_boletines.tab_1.tabpage_ivr.dw_plazas_stp.getitemstring(m,"descripcion")+" "+& w_boletines.tab_1.tabpage_ivr.dw_plazas_stp.getitemstring(m,"location")+& w_boletines.tab_1.tabpage_ivr.dw_plazas_stp.getitemstring(m,"plaza")+& w_boletines.tab_1.tabpage_ivr.dw_plazas_stp.getitemstring(m,"mtx") ddplb_plazas.additem(ls_cod_plz) next // poblar combo con los modelos //********************************** ll_rows = dw_modelos.RowCount() m = 0 for l = 1 to ll_rows m++ ls_modelo = trim(dw_modelos.getitemstring(m,"marcas_marca_des"))+" "+& trim(dw_modelos.getitemstring(m,"mode_des"))+" "+& dw_modelos.getitemstring(m,"mode_id") ddplb_modelo.additem(ls_modelo) next espero te sirva de algo Saludos
15
« en: Lunes 29 de Marzo de 2004, 21:19 »
Que tal armando... Para poder leer el sql embedido a una datawindow utiliza la funcion GetSQLPreview(). algo asi como esto en una multiline edit despliegas el sql actual en la datawindow status. mle_sql.Text = dw_status.GetSQLPreview() Si quieres cambiar el query embedido a la datawindow puedes utilizar la funcion SetSQLPreview() Ejemplo: dw_1.SetSQLPreview("INSERT INTO billings VALUES(100, " +StringCurrent_balance) + ")") Con la combinacion de estas dos funciones puedes reconstruir el query actual de una dw o bien puedes adicionarle cosas ya es cuestion de tu imaginacion y necesidades. Saludos
16
« en: Lunes 29 de Marzo de 2004, 21:09 »
Hola AMigo No logro entender que es lo que te sucede en la datawindow, veras yo tengo una aplicacion que tiene reportes combinados y nunca he tenido algun problema de impresion como el que describes, si pudieras dar mas datos para tratar de encontrar la falla. Saludos.
18
« en: Miércoles 28 de Enero de 2004, 21:30 »
Oye Amigo, leiste las reglas del foro?, no hagas preguntas de tu tarea, o al menos despistala, no escribas literalmente lo que te pidieron, usa un poco el cerebro... Esa tarea es de las mas faciles que te van a dejar en programacion. Si no la puedes resolver olvidate de la programacion Bye.....
19
« en: Miércoles 1 de Octubre de 2003, 21:14 »
Que tal... Encontre este codigo por ahi en la red.. si necesitas el pbl enviame tu email y te envio para que lo pruebes.... mi emial es jarvizu@mail.telcel.comQu estes bien.. ********************************* string ls int li , li_cur boolean lb_paso_numer,lb_paso_letra //INICIALIZO LAS VARIABLES lb_paso_numer = false lb_paso_letra = false //ACEPTO EL BUFFER this.accepttext( ) // PREGUNTO SI ES CAMPO if dwo.name='appaterno' or dwo.name='apmaterno' or dwo.name='nombre' then // SI NO SE APRETO BACKSPACE if not KeyDown(KeyBack!) then for li = 1 to len(data) /* aqui se ve si son letras mayusculas o espacion o si son letras minusculas */ if (mid(data, li, 1) >= 'A' and mid(data, li, 1) <= 'Z' ) or mid(data, li, 1) = ' ' or (mid(data, li, 1) >= 'a' and mid(data, li, 1)<= 'z' ) then ls += mid(data, li, 1) if not lb_paso_numer then // SE COMPARA LA DATA ANTIGUA CON LA NUEVA if mid(is_anterior,li,1) = mid(data,li ,1) and not lb_paso_letra then li_cur = LEN(DATA) + 1 elseif not lb_paso_letra then li_cur = li +1 lb_paso_letra = true end if end if elseif mid(data, li, 1) >= '0' and mid(data, li, 1) <= '9' then lb_paso_numer = true li_cur = li end if settext(ls) next //SE ASIGNA LA NUEVA DATA A UNA VARIABLE DE INSTANCIA PARA COMPARAR DATA is_anterior = ls selecttext(li_cur,0) end if end if ******************************* DECALARAR EN Instance Varibles STRING is_anterior
Páginas: [1]
|
|
|