Files
MBS/PROYECTO/otrodir/buscarclientes.4gl
T

92 lines
4.6 KiB
Plaintext

FUNCTION buscacliente(pnombre,ptipo,secliente)
DEFINE idx,ptipo,secliente,cuenta,secvend INT,
selec,pnombre,rnombre,rdireccion,rciudad,vende STRING,
arrclientes DYNAMIC ARRAY OF RECORD
tipo_cliente,sec_cliente INT,
nombre,direccion,ciudad,vendedor STRING,
sec_vend INT
END RECORD,
bdata STRING
LET bdata = ptipo USING "<<" ,secliente USING "<<<<<<<<<<" ,pnombre
LET bdata = bdata.trimLeft()
LET selec = "SELECT COUNT(*) FROM vetb00004 a LEFT OUTER JOIN vetb00005 b ON
a.tipo_cliente= b.tipo_cliente and a.sec_cliente = b.sec_cliente
INNER JOIN vetb00028 d ON d.tipo_cliente = a.tipo_cliente AND d.sec_cliente = a.sec_cliente
INNER JOIN adtb00003 c ON c.num_emp = d.sec_vend
WHERE CAST(a.tipo_cliente AS CHAR(2))+
CAST(a.sec_cliente AS CHAR(10))+RTRIM(a.nombre) LIKE '%",bdata CLIPPED,"%' and a.tipo_cliente > 14"
PREPARE comando1 FROM selec
EXECUTE comando1 INTO cuenta
IF cuenta IS NULL OR cuenta = 0 THEN
LET rnombre ='NO EXISTEN CLIENTES CON ESA CONDICION'
LET ptipo=0
LET secliente=0
LET secvend =0
LET vende = NULL
RETURN rnombre,ptipo,secliente,rdireccion,rciudad,secvend,vende,false
END IF
IF cuenta > 1 THEN
LET selec = "SELECT a.tipo_cliente,a.sec_cliente,a.nombre,b.calle,b.urbanizacion,ISNULL(c.nom1_emp,' ')+' '+ISNULL(c.apell1_Emp,' '),d.sec_vend
FROM vetb00004 a LEFT OUTER JOIN vetb00005 b ON
a.tipo_cliente= b.tipo_cliente and a.sec_cliente = b.sec_cliente
INNER JOIN vetb00028 d ON d.tipo_cliente = a.tipo_cliente AND d.sec_cliente = a.sec_cliente
INNER JOIN adtb00003 c ON c.num_emp = d.sec_vend
WHERE CAST(a.tipo_cliente AS CHAR(2))+
CAST(a.sec_cliente AS CHAR(10))+RTRIM(a.nombre) LIKE '%",bdata CLIPPED,"%' and a.tipo_cliente > 14"
PREPARE comando2 FROM selec
DECLARE busca CURSOR FOR comando2
LET idx = 1
FOREACH busca INTO arrclientes[idx].*
LET idx = idx + 1
END FOREACH
IF idx = 1 THEN
LET rnombre = 'NO EXISTEN CLIENTES CON ESA CONDICION'
LET ptipo=0
LET secliente=0
LET secvend =0
LET vende = null
RETURN rnombre,ptipo,secliente,rdireccion,rciudad,secvend,vende,false
ELSE
OPEN WINDOW w1 WITH FORM "vefmwd002"
DISPLAY ARRAY arrclientes TO sclientes.*
AFTER DISPLAY
LET rnombre = arrclientes[arr_curr()].nombre
LET ptipo = arrclientes[arr_curr()].tipo_cliente
LET secliente = arrclientes[arr_curr()].sec_cliente
LET secvend = arrclientes[arr_curr()].sec_vend
LET vende = arrclientes[arr_curr()].vendedor
EXIT DISPLAY
END DISPLAY
END IF
END IF
IF cuenta = 1 THEN
DISPLAY "CUENTA ES UNO", bdata
LET selec = "SELECT a.tipo_cliente,a.sec_cliente,RTRIM(a.nombre),b.calle,b.urbanizacion,ISNULL(c.nom1_emp,' ')+' '+ISNULL(c.apell1_Emp,' '),d.sec_vend
FROM vetb00004 a LEFT OUTER JOIN vetb00005 b ON
a.tipo_cliente= b.tipo_cliente and a.sec_cliente = b.sec_cliente
INNER JOIN vetb00028 d ON d.tipo_cliente = a.tipo_cliente AND d.sec_cliente = a.sec_cliente
INNER JOIN adtb00003 c ON c.num_emp = d.sec_vend
WHERE CAST(a.tipo_cliente AS CHAR(2))+
CAST(a.sec_cliente AS CHAR(10))+RTRIM(a.nombre) LIKE '%",bdata CLIPPED,"%' and a.tipo_cliente > 14"
PREPARE comando3 FROM selec
EXECUTE comando3 INTO ptipo,secliente,rnombre,rdireccion,rciudad,vende,secvend
SELECT a.nombre INTO rnombre FROM vetb00004 a WHERE a.tipo_cliente = ptipo AND a.sec_cliente = secliente
END IF
IF cuenta > 1 THEN
CLOSE WINDOW w1
END IF
RETURN rnombre,ptipo,secliente,rdireccion,rciudad,secvend,vende, true
END FUNCTION