Uso PB 6.5 Tengo una SLE_buscar y una dw_matias Quiero que al ir digitando en la SLE_ me vayan apareciendo los registros más parecidos en la DTW, igual que la ayuda de PB Gracias
1 respuesta
Respuesta de hpmx
1
1
hpmx, Horacio. MX. Sybase ASE 12.5, ASA 8 y PB 9 principalmente. Ahora...
Verifica que la linea: ls_busca = "Mid (" + ls_columna + ",1," + string(li_largo)+ " ) = '" + ls_busca + "'" Este correcta en el uso de comillas, normalmente yo trabajo con PB v9, pero acabo de crear esta solución en PB v6.5 y corre perfectamente, es más copié el código sin ninguna modificación y se ejecuto sin ningún problema. Espero que esto ayude a resolver tu pregunta y si no hay más dudas al respecto te pido de favor cerrar la pregunta
Al correr la ventana sale un messagebox de titulo Dtawindows con el mensaje: Expecting String Expression
Usted dice (ES CLARO QUE TIENES QUE HACER UN dw_matias.retireve() ANTES DE HACER LA BÚSQUEDA. ) Donde hago eso, y todavia me sale- Expecting String Expression
No estoy tan seguro de que la respuesta a esta pregunta se haya enviado correctamente porque la página no me lo notifico, pero por si las moscas te comento brevemente lo que te decía. LA SOLUCION FUNCIONA IGUAL EN PB 6.5 SOLO TIENES QUE CREAR EL NUEVO EVENTO ASI: SELECCIONAS EL OBJETO EN ESTE CASO EL Sle_buscar ; OPCION DEL MENU: Declare; SUBOPCION User Events . . . en Event Name = ue_buscar en Event ID: pbm_keyup Y DESPUES ESCRIBES EL SCRIPT QUE TE REENVIO., ES CLARO QUE TIENES QUE HACER UN dw_matias.retireve() ANTES DE HACER LA BUSQUEDA. POR FAVOR, AL FINAL CIERRA LAS PREGUNTAS RELACIONADAS CON ESTE TEMA. /* En el objeto SingleLineEdit "sle_buscar" crea un nuevo evento, por ejemplo/* en el objeto SingleLineEdit "sle_buscar" crea un nuevo evento, por ejemplo ue_buscar, y lo relacionas con el Event ID "pbm_keyup", este evento se ejecuta cada vez que el usuario digite una tecla.. el evento ue_buscar hara la busqueda.. mediante el siguiente script... */ string ls_busca, ls_columna integer li_fila, li_largo ls_busca = trim(sle_buscar.text) li_largo=len(ls_busca) //en este ejemplo la busqueda se hace sobre la columna 2 ls_columna = dw_rosa.Describe("#2.Name") //se arma todo el argumento de busqueda ls_busca = "Mid (" + ls_columna + ",1," + string(li_largo)+ " ) = '" + ls_busca + "'" li_fila = dw_rosa.Find (ls_busca, 1, dw_rosa.rowcount()) IF li_fila > 0 THEN //si encontro algo con ese argumento.. se va al renglon correspondiente dw_rosa.setrow ( li_fila ) dw_rosa.ScrollToRow ( li_fila ) else //si no se va al renglon 1 dw_rosa.setrow ( 1 ) dw_rosa.ScrollToRow ( 1 ) END IF Espero que esto te sirva y si no hay más dudas al respecto te pido de favor cerrar la pregunta Un Saludo, Horacio PB. V9