Ver la Versión Completa : [Sintaxis] Busqueda Combobox
jmeza
5 de diciembre de 2023, 00:14
Hola, consulta en un combobox de pawercobov9 como podría programar la búsqueda que coincida con una parte del nombre que este en cualquier posición a lo largo de la escritura Ej: nombre de clientes.
Si alguien me puede ayudar con la rutina como hacerlo
Se lo agradezco
Saludos
Kuk
5 de diciembre de 2023, 21:31
@jmeza, mira a ver, no lo he probado casi pero algo así debes hacer. Lo mismo tienes que ajustar algo:
ENVIRONMENT DIVISION.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 idx-1 pic 9(4).
01 idx-2 pic 9(4) comp-5.
01 max pic 9(4) comp-5.
01 sw-enontr pic x.
88 sw-enontr-si value 's'.
88 sw-enontr-no value 'n'.
01 lineaCombo pic x(20).
01 buscar pic x(20).
01 buscLength pic 9(4) comp-5 value 0.
01 msg pic x(100).
PROCEDURE DIVISION.
move 'de5' to buscar
compute buscLength = function stored-char-length(buscar)
move 1 to idx-1
move "ListCount" OF CmCombo1 to max
set sw-enontr-no to true
perform until idx-1 > max or sw-enontr-si
move "ListString"(idx-1) OF CmCombo1 to lineaCombo
move 1 to idx-2
perform until idx-2 + buscLength > length of buscar or sw-enontr-si
if lineaCombo(idx-2:buscLength) = buscar(1:buscLength)
set sw-enontr-si to true
end-if
add 1 to idx-2
end-perform
if sw-enontr-no
add 1 to idx-1
end-if
end-perform
if sw-enontr-si
move idx-1 to "ListIndex" OF CmCombo1
string "Encontrado en la línea " idx-1 " del combo."
delimited by size into msg
INVOKE pow-self "DisplayMessage" USING msg 64
else
INVOKE pow-self "DisplayMessage" USING "No encontrado." 64
end-if
Fito
6 de diciembre de 2023, 11:05
Hola.
Acá te paso un ejemplo simple para buscar un string dentro de otro. Podés correrlo, está funcional...
Saludos
Fito...
jmeza
23 de junio de 2024, 01:23
Hola.
Acá te paso un ejemplo simple para buscar un string dentro de otro. Podés correrlo, está funcional...
Saludos
Fito...
Hola Fito
El ejemplo enviado falta un archivo que esta en el call,
da error
comienzo.
call "prgbuscar" cancel "prgBuscar".
fastpho
23 de junio de 2024, 18:46
@jmeza , en el ejemplo que subio @Fito , esta el prgbuscar como un script
ENVIRONMENT DIVISION.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 palabra pic x(20).
01 linea pic x(100).
01 wlen pic s9(5) comp-5.
01 i pic 9(8).
01 h pic 9(8).
01 si pic 9(8).
PROCEDURE DIVISION.
comienzo.
move "Text" of txtPalabra to palabra.
compute wlen = function stored-char-length(palabra).
move "ListCount" of cmbDatos to h.
move zeros to "ListIndex" of cmbDatos.
move zeros to si.
perform varying i from 1 by 1 until i > h
move "ListString"(i) of cmbDatos to linea
move function upper-case(linea) to linea
inspect linea tallying si for all palabra(1:wlen)
if si not = zeros
move i to "ListIndex" of cmbDatos
exit perform
end-if
end-perform.
exit program.
Saludos...
vBulletin v3.8.7, Derechos ©2000-2026, Jelsoft Enterprises Ltd.