Private aStatusInc := {"Adicionar","Ignorar","Aberto","Remover"},;
aStatusExt := {"Extrair" ,"Ignorar"}
****************************************************************************
oCol:= oLbx:aCols[3]
oCol:bStrData := {|| CampoStatus("NOME") }
oCol:cHeader := "Status"
oCol:nWidth := 70
//-- Edição rápida através do browse
oCol:nEditType := EDIT_GET_LISTBOX
oCol:aEditListTxt := if(nRadBackup = 1, aStatusInc, aStatusExt)
oCol:bOnPostEdit := {|o,x| AlterarStatusGrid(x,oLbx:nRolSel()) }
oCol:aEditListBound := if(nRadBackup = 1, {"A","I","O","R"}, {"E","I"})
****************************************************************************
static procedure AlterarStatusGrid(cValor,nPos)
****************************************************************************
* Alterar status através do grid
* Parametros: cValor
****************************************************************************
local i := nPos
if lZipando
if cValor = "A" //-- Adicionar
AZIP[i,3] := cValor
elseif cValor = "I" //-- Ignorar
AZIP[i,3] := cValor
elseif cValor = "E" //-- Extrair
Msg("Valor não permitido")
elseif cValor = "O" .And. AZIP[i,4] //-- Aberto
AZIP[i,3] := cValor
elseif cValor = "R" .And. AZIP[i,4] //-- Remover
AZIP[i,3] := cValor
else //-- Etc...
Msg("Valor não permitido")
end
else
if cValor = "A" //-- Adicionar
Msg("Valor não permitido")
elseif cValor = "I" //-- Ignorar
AZIP[i,3] := cValor
elseif cValor = "E" //-- Extrair
AZIP[i,3] := cValor
elseif cValor = "O" .And. AZIP[i,4] //-- Aberto
Msg("Valor não permitido")
elseif cValor = "R" //-- Remover
Msg("Valor não permitido")
else //-- Etc...
Msg("Valor não permitido")
end
end
oLbx:Refresh()
Return Nil
/*------------------------------------------------------------------------*/
****************************************************************************
static function CampoStatus(cTipo)
****************************************************************************
* Definir o valor do campo STATUS
****************************************************************************
local Result
if Upper(cTipo) == "NOME"
if STATUS == "R"
Result := "Remover"
elseif STATUS == "A"
Result := "Adicionar"
elseif STATUS == "E"
Result := "Extrair"
elseif STATUS == "O"
Result := "Aberto"
else
Result := "Inalterado"
end
elseif Upper(cTipo) == "COR"
if STATUS == "R"
Result := nRgb(200,125,125) // Vermelho
elseif STATUS == "A"
Result := nRgb(125,200,125) // Verde
elseif STATUS == "E"
Result := nRgb(125,125,200) // Azul
elseif STATUS == "O"
Result := nRgb(150,100,200) // Roxo
else //-- "I"
Result := nRgb(200,200,200) // Cinza
end
end
Return Result
/*------------------------------------------------------------------------*/
Aqui estão os procedimentos que eu utilizo, pode se basear neles para fazer o seu
