Cuidar para deixar o código com uma boa estética facilita a leitura e interpretação do mesmo. Dessa forma economiza o tempo gasto em manuteção do código.

 

Para isso há três dicas básicas:

  • Manter um leiaute consistente, com padrões que o leitor consiga entender facilmente;
  • deixar código similares com aparência similar;
  • agrupar linhas relacionadas em blocos de código.

 

Para simplificar a leitura alinhe as colunas de chamadas à funções ou de arrays sempre que isso facilitar a futura leitura do código.

 

Exemplo:

AAdd(aPosicoes,{"ACE_GRADE"        ,GdFieldPos("ACE_GRADE" )})

AAdd(aPosicoes,{"ACE_TEMA"   ,GdFieldPos("ACE_TEMA"  )})

AAdd(aPosicoes,{"ACE_HRINI"        ,GdFieldPos("ACE_HRINI" )})

AAdd(aPosicoes,{"ACE_HRFIM"        ,GdFieldPos("ACE_HRFIM" )})

AAdd(aPosicoes,{"ACE_DATA"   ,GdFieldPos("ACE_DATA"  )})

AAdd(aPosicoes,{"ACE_SALA"   ,GdFieldPos("ACE_SALA"  )})

AAdd(aPosicoes,{"ACE_PALEST" ,GdFieldPos("ACE_PALEST")})

AAdd(aPosicoes,{"ACE_EMP"    ,GdFieldPos("ACE_EMP "  )})

AAdd(aPosicoes,{"ACE_OCUPAC"       ,GdFieldPos("ACE_OCUPAC")})

 

 

Organize o fluxo do código (e das declarações de variáveis) em blocos de acordo com o contexto.

 

Exemplo:

 

Local aArea       := GetArea()                       // Posicionamento atual

Local aAreaSU0    := SU0->(GetArea())                // Posicionamento da tabela SU0

Local aAreaTMP    := {}                              // Posicionamento da tabela SU0

Local aGrupos     := {}                              // Grupos selecionados

Local aFiliais    := {}                              // Filiais com grupos compartilhados

 

Local cPesq       := Space(TamSX3("U0_NOME")[1])     // Pesquisa do grupo de atendimento

Local cFilter     := SU0->(DbFilter())               // Filtro da SU0

Local cFilSU0     := XFilial("SU0")                  // Filial da tabela SU0

Local cGrpAtu     := ""                              // Codigo do grupo atual

 

Local lGrava      := .F.                             // Indica se prossegue com a gravacao

Local lGrpComp    := SU0->(FieldPos("U0_FILORI")) > 0 // Compartilhamento de grupos

Local lSU0Exc     := SX2MODO("SU0") == "E"           // Indica se o SU0 esta exclusivo

 

Local oLBox       := Nil                             // Objeto da listbox

Local oPesq       := Nil                             // Objeto da caixa de pesquisa

Local oOk         := LoadBitmap( GetResources(), "LBOK")   // Desenho do Checked

Local oNo         := LoadBitmap( GetResources(), "LBNO")   // Desenho do NotChecked

Local oDlg                                           // Objeto da tela

 

Local nX          := 0                               // Auxiliar de loop

Local nFil        := 0                               // Auxiliar de loop

 

Private cChave    := ""                              // Chave unica

  • Sem rótulos