Bom dia.
É possível filtrar uma Grid do tipo Filho em MVC?
Bom dia.
É possível filtrar uma Grid do tipo Filho em MVC?
Bom dia Eduardo, no modeldef existe a opção abaixo. Espero que ajude.
Segue Exemplo
Local oModel := FWMODELACTIVE()
Local oView := FWViewActive()
Local oModelSD3 := oModel:GetModel("SD3DETAIL")
Local oModelSD1 := oModel:GetModel("SD1DETAIL")
Local oModelSD2 := oModel:GetModel("SD2DETAIL")
Local oModelSC1 := oModel:GetModel("SC1DETAIL")
Local oModelSC7 := oModel:GetModel("SC7DETAIL")
Local oModelSC6 := oModel:GetModel("SC6DETAIL")
//SD3
//Desativa o modelo
oModel:DeActivate()
//Seta o filtro no modelo
oModelSD3:SetLoadFilter( , " D3_FILIAL = '" + xFilial("SD3") + "' AND D3_EMISSAO BETWEEN '" + DtoS(dDataIni) + "' AND '" + DtoS(dDataFim) + "' " )
oModelSD1:SetLoadFilter( , " D1_FILIAL = '" + xFilial("SD1") + "' AND D1_EMISSAO BETWEEN '" + DtoS(dDataIni) + "' AND '" + DtoS(dDataFim) + "' " )
oModelSD2:SetLoadFilter( , " D2_FILIAL = '" + xFilial("SD2") + "' AND D2_EMISSAO BETWEEN '" + DtoS(dDataIni) + "' AND '" + DtoS(dDataFim) + "' " )
oModelSC1:SetLoadFilter( , " C1_FILIAL = '" + xFilial("SC1") + "' AND C1_EMISSAO BETWEEN '" + DtoS(dDataIni) + "' AND '" + DtoS(dDataFim) + "' " )
oModelSC7:SetLoadFilter( , " C7_FILIAL = '" + xFilial("SC7") + "' AND C7_EMISSAO BETWEEN '" + DtoS(dDataIni) + "' AND '" + DtoS(dDataFim) + "' " )
oModelSC6:SetLoadFilter( , " C6_FILIAL = '" + xFilial("SC6") + "' AND C6_ENTREG BETWEEN '" + DtoS(dDataIni) + "' AND '" + DtoS(dDataFim) + "' " )
//Ativa o modelo
oModel:Activate()
//Posiciona na Primeira Linha
oModelSD3:GoLine(1)
oModelSD1:GoLine(1)
oModelSD2:GoLine(1)
oModelSC1:GoLine(1)
oModelSC7:GoLine(1)
oModelSC6:GoLine(1)
//Refresh no view
oView:Refresh("SD3DETAIL")
oView:Refresh("SD1DETAIL")
oView:Refresh("SD2DETAIL")
oView:Refresh("SC1DETAIL")
oView:Refresh("SC7DETAIL")
oView:Refresh("SC6DETAIL")
Espero que ajude.
Felipe, funcionou perfeitamente. Obrigado!
— Eduardo Porte 22 de Jan de 2019Maravilha Eduardo. Abraço,
— FELIPE CAIADO ALMEIDA 22 de Jan de 2019Bom dia Felipe.
Tentei utilizar o método 'AddUserButton' da classe FWFormView() para filtrar alguns itens em uma grid do tipo filho com o código abaixo e foi apresentado o error log (vide anexo).
Local oModel := FWModelActive()
oModel:GetModel("SZCDETAIL"):SetLoadFilter( , " ZC_FILIAL = '" + xFilial("SZC") + "' AND ZC_STATUS NOT IN ('02','03') " )
O que estou fazendo de errado?
Eduardo, alterei minha resposta acima para te ajudar. Faltou dar um refresh na tela e desativar e ativar o modelo. o Exemplo está acima.
— FELIPE CAIADO ALMEIDA 22 de Jan de 2019Além da opção SetLoadFilter() você também pode utilizar o método SetViewProperty() para adicionar um filtro dinâmico na grid:
oView:SetViewProperty("VIEW_ZA2", "GRIDFILTER", {.T.})