Galera blz, estou apanhando novamente para colorir as linhas de um browser. alguém pode me dar uma ajuda para o exemplo abaixo? Código: DEFINE VARIABLE linha AS ROWID. DEF VAR loop AS INT. /*definindo tabela temporária */ DEFINE TEMP-TABLE customer FIELD cust-num AS INT FIELD NAME AS CHAR FIELD phone AS CHAR FIELD city AS CHAR FIELD country AS CHAR. /* defino a query para armazenar os campos*/ DEFINE QUERY campos FOR customer . /*definindo o layout do browser*/ DEFINE BROWSE grid QUERY campos DISPLAY customer.cust-num customer.name customer.city customer.country customer.phone WITH SEPARATORS 20 DOWN row 20 centered OVERLAY size 60 by 20. /*povoando a tabela*/ do loop = 1 to 50. create customer. assign customer.cust-num = loop customer.NAME = "Fulano-" + string(loop) customer.city = "cidade-" + string(loop) customer.country = "Pais-" + string(loop) customer.phone = "22630" + string(loop) + "0" + string(loop). END. DEF FRAME f-dados grid SKIP WITH NO-LABELS. /* procedure para colorir o browse */ PROCEDURE p-zebrar: OPEN QUERY campos PRESELECT EACH customer. DISPLAY grid WITH FRAME f-dados. /*3FOR EACH customer NO-LOCK:*/ linha = ROWID(customer). REPOSITION campos TO ROWID (linha). IF customer.cust-num MOD 2 = 0 THEN DO: ASSIGN /******************** fundo da linha *************************/ customer.cust-num :BGCOLOR IN BROWSE grid = 12 customer.NAME :BGCOLOR IN BROWSE grid = 12 customer.city :BGCOLOR IN BROWSE grid = 12 /******************** fonte da linha *************************/ customer.cust-num :FGCOLOR IN BROWSE grid = 11 customer.NAME :FGCOLOR IN BROWSE grid = 11 customer.city :FGCOLOR IN BROWSE grid = 11. end. ELSE DO: ASSIGN /******************** fundo da linha *************************/ customer.cust-num :BGCOLOR IN BROWSE grid = 10 customer.NAME :BGCOLOR IN BROWSE grid = 10 customer.city :BGCOLOR IN BROWSE grid = 10 customer.country :BGCOLOR IN BROWSE grid = 10 customer.phone :BGCOLOR IN BROWSE grid = 10. END. END. OPEN QUERY campos PRESELECT EACH customer. RUN p-zebrar. ENABLE ALL WITH FRAME f-dados. WAIT-FOR WINDOW-CLOSE OF CURRENT-WINDOW. ao rolar a barra do browser queria que ele fosse colorindo os outros registros e ele só está colorindo a primeira linha.
Amigo, Você precisa utilizar o evento de "ROW-DISPLAY" do browse, conforme exemplo abaixo: Código: DEFINE VARIABLE linha AS ROWID. DEF VAR loop AS INT. /*definindo tabela temporária */ DEFINE TEMP-TABLE customer FIELD cust-num AS INT FIELD NAME AS CHAR FIELD phone AS CHAR FIELD city AS CHAR FIELD country AS CHAR. /* defino a query para armazenar os campos*/ DEFINE QUERY campos FOR customer . /*definindo o layout do browser*/ DEFINE BROWSE grid QUERY campos DISPLAY customer.cust-num customer.name customer.city customer.country customer.phone WITH SEPARATORS 20 DOWN row 20 centered OVERLAY size 60 by 20. /*povoando a tabela*/ do loop = 1 to 50. create customer. assign customer.cust-num = loop customer.NAME = "Fulano-" + string(loop) customer.city = "cidade-" + string(loop) customer.country = "Pais-" + string(loop) customer.phone = "22630" + string(loop) + "0" + string(loop). END. DEF FRAME f-dados grid SKIP WITH NO-LABELS. ON 'row-display':U OF grid DO: IF customer.cust-num MOD 2 = 0 THEN DO: ASSIGN /******************** fundo da linha *************************/ customer.cust-num :BGCOLOR IN BROWSE grid = 12 customer.NAME :BGCOLOR IN BROWSE grid = 12 customer.city :BGCOLOR IN BROWSE grid = 12 /******************** fonte da linha *************************/ customer.cust-num :FGCOLOR IN BROWSE grid = 11 customer.NAME :FGCOLOR IN BROWSE grid = 11 customer.city :FGCOLOR IN BROWSE grid = 11. end. ELSE DO: ASSIGN /******************** fundo da linha *************************/ customer.cust-num :BGCOLOR IN BROWSE grid = 10 customer.NAME :BGCOLOR IN BROWSE grid = 10 customer.city :BGCOLOR IN BROWSE grid = 10 customer.country :BGCOLOR IN BROWSE grid = 10 customer.phone :BGCOLOR IN BROWSE grid = 10. END. END. OPEN QUERY campos PRESELECT EACH customer. ENABLE ALL WITH FRAME f-dados. WAIT-FOR WINDOW-CLOSE OF CURRENT-WINDOW. Abraços.