Pessoal,
Estou precisando incluir um checkbox no início do Grid em MVC, como se fosse um MarkBrowse na tela em MVC, não achei nada para incluir esse markbrowse no fonte MVC (AddGrid).
Se alguma pergunta ou resposta lhe foi útil, não deixe de dar seu voto positivo!
Pessoal,
Estou precisando incluir um checkbox no início do Grid em MVC, como se fosse um MarkBrowse na tela em MVC, não achei nada para incluir esse markbrowse no fonte MVC (AddGrid).
No MVC é bem mais simples, basta criar um campo do tipo lógico e utilizá-la na grid que ele já terá o comportamento de um checkbox. Se não quiser criar o campo no dicionário de dados, pode ainda somente criar no programa usando o AddField.
Segue exemplo de markbrowse espero ajudar...
/*/{Protheus.doc} F0101001
@Author Lucas Graglia @Since 24/07/2017 @Sample F0101001()
@Obs Funcionalidade criada para aprovar ou rejeitar Strings de sugestões para traduções. @OBS FONTE EXEMPLO DE MARKBROWSE UTILIZADO PARA DIMINUIR O TEMPO DE DESENVOLVIMENTO. @Project Rússia
/*/ User Function F0101001()
Local oMark := Nil Local oCol := Nil Local aColunas := {} Local aStruct := {"ZA1_TEXT", "ZA1_NEWTEX", "ZA1_MANUAL"} //Array com campos que iram aparecer no Browse Local nX := 1
//aqui eu crio um array com as colunas que iram aparecer no markbrowse //Caso for usar a tabela inteira e não campos especificos não precisamos desta parte For nX := 1 To len(aStruct) oCol := FWBrwColumn():New() oCol:SetTitle(RetTitle(aStruct[nX])) oCol:SetType("C") oCol:SetSize(60) oCol:SetData(&("{|| ZA1->" + aStruct[nX] + "}")) aAdd(aColunas,oCol) Next
oMark := FWMarkBrowse():New() //crio o browse oMark:SetAlias("ZA1") // set alias utilizado oMark:SetDescription("Strings Approval") // coloco uma descrição para rotina oMark:SetFieldMark("ZA1_MARK") //campo utilizado para marcação do browse oMark:SetFilterDefault("ZA1->ZA1_STATUS == '3'")//filtro de acordo com o registro que deseja aparecer no browse oMark:SetOnlyFields({""})//OBS: PADRÃO ESTA COM BUG UTILIZAR ESSE COMANDO QUANDO DESEJAR MOSTRAR NO BROWSE APENAS CAMPOS ESPECIFICOS, PASSAR O COMANDO COM NENHUMA INFORMAÇÃO DO JEITINHO QUE ESTA oMark:SetColumns(aColunas)//aqui eu seto um array com as colunas que iram aparecer no browse oMark:Activate()// por fim temos que ativar o browse
Return
Static Function MenuDef()
Local aRotina := {}
ADD OPTION aRotina TITLE "Approve" ACTION "U_F0101002('APPROVED')" OPERATION OP_ALTERAR ACCESS 0 ADD OPTION aRotina TITLE "Reject" ACTION "U_F0101002('REJECTED')" OPERATION OP_ALTERAR ACCESS 0 ADD OPTION aRotina TITLE "View" ACTION "VIEWDEF.FlavorEdt" OPERATION OP_VISUALIZAR ACCESS 0
Return(aRotina)
User Function F0101002(cAcao)
Local cMsg := "" Local cMarca := oMark:Mark() //variavel utilizada para verificar os campos marcados no markbrowse Local cAlias := GetNextAlias()
If MsgYesNo("Confirm?")
BeginSQL Alias cAlias SELECT RE_C_N_O ZA1REC FROM %Table:ZA1% WHERE ZA1_STATUS = '3' AND %NotDel% EndSQL
While !(cAlias)->(EoF()) ZA1->(DbGoTo((cAlias)->ZA1REC)) //aqui eu verifico os campos que estão marcados no markbrowse If oMark:IsMark(cMarca) .AND. cAcao == 'APPROVED' RegisSug() ElseIf oMark:IsMark(cMarca) .AND. cAcao == 'REJECTED' LimpaSug() EndIf
(cAlias)->(DbSkip()) EndDo
If cAcao == 'APPROVED' cMsg := 'Approval suscessfully completed!' ElseIf cAcao == 'REJECTED' cMsg := 'Rejection suscessfully completed!' EndIf
MsgAlert(cMsg) (cAlias)->(DbCloseArea())
EndIf
Return
Static Function RegisSug()
RecLock("ZA1", .F.) ZA1->ZA1_STATUS := "4" ZA1->ZA1_HIST := U_ZA1Hist("Suggestion '" + ZA1->ZA1_MANUAL + "' approved. Original text: '" + ZA1->ZA1_NEWTEX + "'") ZA1->ZA1_NEWTEX := ZA1->ZA1_MANUAL ZA1->ZA1_MANUAL := "" ZA1->ZA1_ATUSX := "2" MsUnLock()
Return
Static Function LimpaSug()
RecLock("ZA1", .F.) ZA1->ZA1_ATUSX := "2"
If Empty(ZA1->ZA1_NEWTEX) ZA1->ZA1_STATUS := "1" Else ZA1->ZA1_STATUS := "4" EndIf
ZA1->ZA1_HIST := U_ZA1Hist("Suggestion '" + ZA1->ZA1_MANUAL + "' rejected.") ZA1->ZA1_MANUAL := "" MsUnLock()
Return