aCpoEncS := {} // ARRAY DE CAMPOS DA ENCHOICE
aCpos := {} // ARRAY DE CAMPOS DA ENCHOICE NAO EDITAVEIS
// lista de campos não editáveis
cVS1nEdit := "VS1_NUMORC,"
// lista de campos que não serão mostrados
cVS1nMostra := "VS1_FILIAL,VS1_NOMFOR,VS1_CHAINT,VS1_PROVEI,VS1_LOJAPR,VS1_ENDPRO,VS1_CIDPRO,VS1_ESTPRO,VS1_NOMPRO,VS1_MVFASE,"
cVS1nMostra += "VS1_VTOTNF,VS1_VPERDI,VS1_NROAPR,VS1_RETPEC,VS1_AUTENV,VS1_ARMFAB,VS1_TITNCC,VS1_STATUS,VS1_CARTEI,VS1_MOTIVO,"
cVS1nMostra += "VS1_ENDCLI,VS1_CIDCLI,VS1_ESTCLI,VS1_DATORC,VS1_HORORC,VS1_FONCLI,VS1_NOMBCO,VS1_CENCUS,VS1_DESCCC,VS1_CODFRO,"
cVS1nMostra += "VS1_DESMAR,VS1_DESMOD,VS1_FABMOD,VS1_DESCOR,VS1_APOLIC,VS1_SINIST,VS1_CODMAR,VS1_VALDES,VS1_ICMCAL,VS1_DESCON,VS1_VALDUP,"
cVS1nMostra += "VS1_BRICMS,VS1_ICMRET,"
//
If ExistBlock("OX001NME")
ExecBlock("OX001NME",.f.,.f.)
EndIf
//
While !Eof().and.(x3_arquivo=="VS1")
// Monta o array com os campos que aparecerão na Enchoice
If X3USO(x3_usado).and.cNivel>=x3_nivel .and. !(Alltrim(x3_campo)+"," $ cVS1nMostra)
AADD(acpoEncS,x3_campo)
EndIf
// Monta as variáveis de memória de TODOS os campos
If Inclui .and. Alltrim(x3_campo)!= "VS1_NUMORC"
&("M->"+x3_campo):= CriaVar(x3_campo)
Else
If x3_context == "V"
&("M->"+x3_campo):= CriaVar(x3_campo)
Else
&("M->"+x3_campo):= &("VS1->"+x3_campo)
EndIf
EndIf
// Monta o array com os campos não editáveis
If ( (x3_context != "V" .OR. (x3_context == "V" .AND. X3_VISUAL == "A")) .or. x3_campo $ "VS1_GETKEY,VS1_OBSERV")
if !(Alltrim(x3_campo) $ cVS1nEdit) .and. !(Alltrim(x3_campo)+"," $ cVS1nMostra)
if FECHA .and. cVS1Status == "F"
if VS1->(FieldPos("VS1_MENNOT")) > 0 .and. Alltrim(x3_campo)+"," $ "VS1_MENNOT,VS1_MENPAD,VS1_KILOME,"
aAdd(aCpos,X3_CAMPO)
endif
else
aAdd(aCpos,X3_CAMPO)
endif
endif
endif
DbSkip()
Enddo