Montei esta rotina, estou tentando editar uma coluna, mais as colunas não ficam editáveis, ja fiz de tudo, mais nao funciona, onde estou errando:
FUNCTION teste()
LOCAL oLabel1, oGroup1, oDatepicker2, oButton1, oLabel2, oDatepicker1, oButton2, oButton3
LOCAL oButton4, oButton5
PRIVATE xPESQ02, xPESQ10, xPESQ18, ThisMSD
PRIVATE oDlgMSD, dDatepicker2:=date(), dDatepicker1:=date(), oBrowse2, MATA:={}
INIT DIALOG oDlgMSD TITLE "Relação " AT 0, 0 SIZE 1092,630 ;
FONT HFont():Add( 'Verdana',0,-14,400,,,) CLIPPER NOEXIT ;
STYLE WS_POPUP+WS_CAPTION+WS_SYSMENU+WS_SIZEBOX+DS_CENTER
ThisMSD := oDlgMSD
@ 12,7 GROUPBOX oGroup1 CAPTION "Entre periodo para a procura das vendas MSD" SIZE 457,83 STYLE BS_LEFT
@ 19,47 SAY oLabel1 CAPTION "Periodo" SIZE 61,21
@ 92,44 GET DATEPICKER oDatepicker1 VAR dDatepicker1 SIZE 108,24
@ 210,47 SAY oLabel2 CAPTION "a" SIZE 10,21
@ 225,44 GET DATEPICKER oDatepicker2 VAR dDatepicker2 SIZE 108,24
@ 341,44 BUTTON oButton1 CAPTION "Pes&quisar" SIZE 90,26 STYLE BS_CENTER +WS_TABSTOP ;
ON CLICK {|| Pesquisar_MSD(), oBrowse2:Refresh(), oBrowse2:SetFocus(), thismsd:refresh() }
@ 12,103 BROWSE oBrowse2 ARRAY SIZE 1060,427 AUTOEDIT STYLE WS_TABSTOP+WS_HSCROLL ;
ON UPDATE {|| oBrowse2:Refresh(), oBrowse2:SetFocus(), thismsd:refresh() }
if len(mata) > 0
oBrowse2:aColumns[01]:heading := [Nº NFe]
oBrowse2:aColumns[02]:heading := [Razao Social]
oBrowse2:aColumns[03]:heading := [CodPro]
oBrowse2:aColumns[04]:heading := [Descricao do Produto]
oBrowse2:aColumns[05]:heading := [Emissao]
oBrowse2:aColumns[06]:heading := [Qtde]
oBrowse2:aColumns[07]:heading := [Vlr Unitario]
oBrowse2:aColumns[08]:heading := [Vlr Total]
oBrowse2:aColumns[09]:heading := [EAN]
oBrowse2:aColumns[10]:heading := [CNPJ]
oBrowse2:aColumns[11]:heading := [S_PEDIDO]
oBrowse2:aColumns[12]:heading := [Cidade]
oBrowse2:aColumns[13]:heading := [UF]
oBrowse2:aColumns[14]:heading := [Laboratorio]
oBrowse2:aColumns[15]:heading := [EMAIL]
oBrowse2:aColumns[16]:heading := [Preco Fab]
oBrowse2:aColumns[17]:heading := [Pedido]
oBrowse2:aColumns[18]:heading := [Conve]
oBrowse2:aColumns[01]:nJusHead := DT_LEFT
oBrowse2:aColumns[02]:nJusHead := DT_LEFT
oBrowse2:aColumns[03]:nJusHead := DT_LEFT
oBrowse2:aColumns[04]:nJusHead := DT_LEFT
oBrowse2:aColumns[05]:nJusHead := DT_LEFT
oBrowse2:aColumns[06]:nJusHead := DT_LEFT
oBrowse2:aColumns[07]:nJusHead := DT_LEFT
oBrowse2:aColumns[08]:nJusHead := DT_LEFT
oBrowse2:aColumns[09]:nJusHead := DT_LEFT
oBrowse2:aColumns[10]:nJusHead := DT_LEFT
oBrowse2:aColumns[11]:nJusHead := DT_LEFT
oBrowse2:aColumns[01]:nJusLin := DT_LEFT
oBrowse2:aColumns[02]:nJusLin := DT_LEFT
oBrowse2:aColumns[03]:nJusLin := DT_LEFT
oBrowse2:aColumns[04]:nJusLin := DT_LEFT
oBrowse2:aColumns[05]:nJusLin := DT_LEFT
oBrowse2:aColumns[06]:nJusLin := DT_LEFT
oBrowse2:aColumns[07]:nJusLin := DT_RIGHT
oBrowse2:aColumns[08]:nJusLin := DT_RIGHT
oBrowse2:aColumns[09]:nJusLin := DT_RIGHT
oBrowse2:aColumns[10]:nJusLin := DT_RIGHT
oBrowse2:aColumns[11]:nJusLin := DT_RIGHT
oBrowse2:aColumns[02]:headColor:= 255
oBrowse2:aColumns[04]:headColor:= 255
oBrowse2:aColumns[10]:headColor:= 255
oBrowse2:aColumns[18]:headColor:= 255
oBrowse2:aColumns[02]:lEditable := .t.
oBrowse2:aColumns[02]:Picture := [@!]
oBrowse2:aColumns[10]:lEditable := .t.
oBrowse2:aColumns[18]:lEditable := .t.
oBrowse2:aColumns[02]:Length := 50
oBrowse2:aColumns[02]:bHeadClick := {|| MSD_oBrw2_2_onHeadClick() }
oBrowse2:aColumns[04]:bHeadClick := {|| MSD_oBrw2_4_onHeadClick() }
oBrowse2:Refresh()
oBrowse2:SetFocus()
CLOSE DATA
endif
@ 980,579 BUTTON oButton2 CAPTION "&Sair" SIZE 90,30 STYLE BS_CENTER+WS_TABSTOP ;
ON CLICK {|| oDlgMSD:CLOSE() }
ACTIVATE DIALOG oDlgMSD
RETURN NIL
FUNCTION PESQUISAR_MSD()
LOCAL xCODCLI:=0, xCIDADE, xUF
LOCAL DTINI:=dDatepicker1, DTFIM:=dDatepicker2
LOCAL BB:=94
CLOSE DATA
USE xFORNECE NEW SHARED
SET INDEX TO xFORCOD, xFORNCH
DBSEEK ( BB, .F.)
IF FOUND()
BB:=COD ; FORNE:=NCHAVE
ELSE
CLOSE DATA
RETURN NIL
ENDIF
CLOSE DATA
SELECT(1)
USE xESTOQUE NEW SHARED
SET INDEX TO xESTCOD
SELECT(2)
USE xENDAS NEW SHARED
SET INDEX TO xENDADAT
SELECT(3)
USE xCLIENTE NEW SHARED
SET INDEX TO xRCLICOD
SELECT(4)
USE xMITI NEW SHARED
SET INDEX TO xMINNF
SELECT(2)
GO BOTTOM
DBSEEK(DTINI , .T.)
MATA:={} ; B:=0 ; CONTA:=0
oBar:=HProgressBar():NewBox( "Lendo, "+ str(CONTA,6)+" de "+xENDAS->(str(LASTREC(),6))+" Registro(s)",,,350,,LASTREC())
DO WHILE DATANF >= DTINI .AND. DATANF <= DTFIM
IF ( CODPROD = 24 .OR. CODPROD = 25 .OR. CODPROD = 26 .OR. CODPROD = 27 .OR. CODPROD = 570 .OR.;
CODPROD = 98 .OR. CODPROD = 3850 )
SELECT(2)
xCODCLI:=CODCLI ; xCodigoDoProduto:=CODPROD ; xNOTA:=NOTA
SELECT(3)
DBSEEK(xCODCLI, .F.)
IF FOUND()
xCIDADE:=CIDADE ; xUF:=ESTA ; xCNPJ:=CGC ; xEMAIL:=EMAIL ; xPORTO:=PORTOSEG ; xRAZ:=RAZAO
ELSE
xCIDADE:=SPAC(22) ; xUF:=SPAC(02) ; xCNPJ:=SPAC(18) ; xEMAIL:=[] ; xPORTO:=0 ; xRAZ:=[]
ENDIF
IF xPORTO > 0
DBSEEK(xPORTO, .F.)
IF FOUND()
xCNPJ:=CGC ; xRAZ:=RAZAO
ENDIF
ENDIF
SELECT(4)
DBSEEK(xNOTA, .F.)
IF FOUND()
xSPEDIDO:=SPEDIDO
ELSE
xSPEDIDO:=SPAC(15)
ENDIF
SELECT(1)
DBSETORDER(1)
DBSEEK(xCodigodoProduto, .f.)
IF FOUND()
xCodigodoFornecedor:=codfornece ; xFORNE:=FORNECEDOR ; xEAN:=RETIRAPONTO(EAN) ; xPF:=TABELA01
ELSE
xCodigodoFornecedor:=0 ; xFORNE:=SPAC(50) ; xEAN:=SPAC(13) ; xPF:=0
ENDIF
SELECT(2)
IF DATANF >= DTINI .AND. DATANF <= DTFIM .AND. TIPO = 1
LINHA:={ STRZERO(NOTA,9), xRAZ, STRZERO(CODPROD,6), DESCRICAO, DTOC(DATANF), STR(QTDE,8), STR(VALOR,9,2), ;
STR(ROUND((QTDE*VALOR),2),10,2), xEAN, xCNPJ, xSPEDIDO, xCIDADE, xUF, xFORNE, xEMAIL, STR(xPF,12,2), ;
STRZERO(PEDIDO,7), xPORTO }
AADD(MATA, LINHA) ; B++
ENDIF
ELSE
SELECT(2)
xCODCLI:=CODCLI ; xCodigoDoProduto:=CODPROD ; xNOTA:=NOTA
SELECT(3)
DBSEEK(xCODCLI, .F.)
IF FOUND()
xCIDADE:=CIDADE ; xUF:=ESTA ; xCNPJ:=CGC ; xEMAIL:=EMAIL ; xPORTO:=PORTOSEG ; xRAZ:=RAZAO
ELSE
xCIDADE:=SPAC(22) ; xUF:=SPAC(02) ; xCNPJ:=SPAC(18) ; xEMAIL:=[] ; xPORTO:=0 ; xRAZ:=[]
ENDIF
IF xPORTO > 0
DBSEEK(xPORTO, .F.)
IF FOUND()
xCNPJ:=CGC ; xRAZ:=RAZAO
ENDIF
ENDIF
SELECT(4)
DBSEEK(xNOTA, .F.)
IF FOUND()
xSPEDIDO:=SPEDIDO
ELSE
xSPEDIDO:=SPAC(15)
ENDIF
SELECT(1)
DBSETORDER(1)
DBSEEK(xCodigodoProduto, .f.)
IF FOUND()
xCodigodoFornecedor:=codfornece ; xFORNE:=FORNECEDOR ; xEAN:=RETIRAPONTO(EAN) ; xPF:=TABELA01
ELSE
xCodigodoFornecedor:=0 ; xFORNE:=SPAC(50) ; xEAN:=SPAC(13) ; xPF:=0
ENDIF
SELECT(2)
IF SUBSTR(xFORNE,1,8) = [SCHERING]
IF DATANF >= DTINI .AND. DATANF <= DTFIM .AND. TIPO = 1
LINHA:={ STRZERO(NOTA,9), xRAZ, STRZERO(CODPROD,6), DESCRICAO, DTOC(DATANF), STR(QTDE,8), STR(VALOR,9,2),;
STR(ROUND((QTDE*VALOR),2),10,2), xEAN, xCNPJ, xSPEDIDO, xCIDADE, xUF, xFORNE, xEMAIL, STR(xPF,12,2), ;
STRZERO(PEDIDO,7), xPORTO }
AADD(MATA, LINHA) ; B++
ENDIF
ENDIF
ENDIF
DBSKIP()
CONTA++
oBar:Step("Lendo, "+str(CONTA,6)+" de "+xENDAS->(Str(LASTREC(),6))+" Registro(s)")
IF EOF()
EXIT
ELSEIF DATANF > DTFIM
EXIT
ENDIF
ENDDO
oBAR:CLOSE()
CLOSE DATA
IF LEN(MATA) = 0
HWG_MSGINFO([Dados nâo localizados])
CLOSE DATA
ELSE
Hwg_CREATEARLIST( oBrowse2, Mata )
oBrowse2:lAutoEdit := .T.
oBrowse2:tColorSel := 16777215 // cor do texto na linha branco
oBrowse2:bcolorSel := 8421504 //16711680 // cor da linha azul
oBrowse2:lDispHead := .T.
oBrowse2:lSep3d := .T.
oBrowse2:lAdjRight := .T.
oBrowse2:aColumns[01]:heading := [Nº NFe]
oBrowse2:aColumns[02]:heading := [Razao Social]
oBrowse2:aColumns[03]:heading := [CodPro]
oBrowse2:aColumns[04]:heading := [Descricao do Produto]
oBrowse2:aColumns[05]:heading := [Emissao]
oBrowse2:aColumns[06]:heading := [Qtde]
oBrowse2:aColumns[07]:heading := [Vlr Unitario]
oBrowse2:aColumns[08]:heading := [Vlr Total]
oBrowse2:aColumns[09]:heading := [EAN]
oBrowse2:aColumns[10]:heading := [CNPJ]
oBrowse2:aColumns[11]:heading := [S_PEDIDO]
oBrowse2:aColumns[12]:heading := [Cidade]
oBrowse2:aColumns[13]:heading := [UF]
oBrowse2:aColumns[14]:heading := [Laboratorio]
oBrowse2:aColumns[15]:heading := [EMAIL]
oBrowse2:aColumns[16]:heading := [Preco Fab]
oBrowse2:aColumns[17]:heading := [Pedido]
oBrowse2:aColumns[18]:heading := [Conve]
oBrowse2:aColumns[01]:nJusHead := DT_LEFT
oBrowse2:aColumns[02]:nJusHead := DT_LEFT
oBrowse2:aColumns[03]:nJusHead := DT_LEFT
oBrowse2:aColumns[04]:nJusHead := DT_LEFT
oBrowse2:aColumns[05]:nJusHead := DT_LEFT
oBrowse2:aColumns[06]:nJusHead := DT_LEFT
oBrowse2:aColumns[07]:nJusHead := DT_LEFT
oBrowse2:aColumns[08]:nJusHead := DT_LEFT
oBrowse2:aColumns[09]:nJusHead := DT_LEFT
oBrowse2:aColumns[10]:nJusHead := DT_LEFT
oBrowse2:aColumns[11]:nJusHead := DT_LEFT
oBrowse2:aColumns[01]:nJusLin := DT_LEFT
oBrowse2:aColumns[02]:nJusLin := DT_LEFT
oBrowse2:aColumns[03]:nJusLin := DT_LEFT
oBrowse2:aColumns[04]:nJusLin := DT_LEFT
oBrowse2:aColumns[05]:nJusLin := DT_LEFT
oBrowse2:aColumns[06]:nJusLin := DT_LEFT
oBrowse2:aColumns[07]:nJusLin := DT_RIGHT
oBrowse2:aColumns[08]:nJusLin := DT_RIGHT
oBrowse2:aColumns[09]:nJusLin := DT_RIGHT
oBrowse2:aColumns[10]:nJusLin := DT_RIGHT
oBrowse2:aColumns[11]:nJusLin := DT_RIGHT
oBrowse2:aColumns[02]:headColor:= 255
oBrowse2:aColumns[04]:headColor:= 255
oBrowse2:aColumns[10]:headColor:= 255
oBrowse2:aColumns[18]:headColor:= 255
oBrowse2:aColumns[02]:lEditable := .t.
oBrowse2:aColumns[02]:Picture := [@!]
oBrowse2:aColumns[10]:lEditable := .t.
oBrowse2:aColumns[18]:lEditable := .t.
oBrowse2:aColumns[02]:Length := 50
oBrowse2:aColumns[02]:bHeadClick := {|| MSD_oBrw2_2_onHeadClick() }
oBrowse2:aColumns[04]:bHeadClick := {|| MSD_oBrw2_4_onHeadClick() }
oBrowse2:Refresh()
oBrowse2:SetFocus()
CLOSE DATA
ENDIF
RETURN NIL
Grato.