92 lines
4.6 KiB
Plaintext
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 |