@jmeza, mira a ver, no lo he probado casi pero algo así debes hacer. Lo mismo tienes que ajustar algo:
Código COBOL:
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