Boa tarde tenho um codigo MVC que usa tabela temporaria buscando informações da sys_company, mas esta apresentando erro ao clicar no botão incluir
argumento #2 , parâmetro lForce erro, previsto L->C on FWFORMGRIDMODEL:SETVALUE(FWFORMGRIDMODEL.PRX) 27/06/2024 17:13:40 line : 2272
o trecho do codigo do setvalue é
If Len(aEmpresas) > 0
// Cria um modelo de dados temporário
oDataModel := oModel:GetModel(‘SBMDETAIL’)
If oDataModel != Nil
For nI := 1 To Len(aEmpresas)
oDataModel:SetValue( ‘SBMDETAIL’,‘M0_CODFIL’, aEmpresas[nI][1])
//oDataModel:SetValue( ‘SBMDETAIL’,‘M0_NOMECOM’, aEmpresas[nI][2])
//oDataModel:SetValue( ‘SBMDETAIL’,‘M0_ENDENT’, aEmpresas[nI][3])
Next
EndIf
EndIf
@tiagocarvalho882 o erro é porque você já está no submodelo, então o método é direto sem passar o modelo como parâmetro:
oDataModel:SetValue('M0_CODFIL’, aEmpresas[nI][1])
Outra coisa o laço deve precisar adicionar novas linhas, do jeito que está montado está apenas sobrescrevendo o mesmo registro com as diferentes empresas. Usa o método AddLine() para adicionar uma nova linha para depois disso preenchê-la.
1 curtida
@cirilorocha , obrigado pela ajuda , mas já tentei passar sem o submodelo , mas apresenta o erro seuinte:
erro no parâmetroFWFormModel: Ative a classe (Activate) antes de utilizar este método on FWFORMMODEL:SETVALUE(FWFORMMODEL. PRX)
Você precisa ativar um modelo MVC antes de realizar alterações nos dados, para isso, você deve especificar o tipo de operação que está fazendo (inclusão - MODEL_OPERATION_INSERT, alteração - MODEL_OPERATION_UPDATE ou exclusão - MODEL_OPERATION_DELETE) e chamar o método Activate.
Exemplo:
oModel:SetOperation(MODEL_OPERATION_UPDATE) // alteração
If(oModel:Activate()) // Ativa o modelo
If Len(aEmpresas) > 0
// Cria um modelo de dados temporário
oDataModel := oModel:GetModel(‘SBMDETAIL’)
If oDataModel != Nil
For nI := 1 To Len(aEmpresas)
oDataModel:SetValue(‘M0_CODFIL’, aEmpresas[nI][1])
Next nI
EndIf
EndIf
EndIf