| Ultima Edição: 25/Nov/25 |
Funções e coisas que eu uso normalmente porém nunca lembro qual.
Widget
widget.getField()
Acessa um campo da tela e os conteúdos, recebe o “name” da widget definido na tela do JSON.
Javascript:
this.acessaCampo = function(widget) {
var campo = widget.getField('NOMEDOCAMPO');
}
Tela JSON:
{
"name": "NOMEDOCAMPO"
}
widget.activate()
widget.clearCheckedRows()
widget.getAction()
Serve pra acessar uma das actions (ações) de uma tela. Vejo utilidade principalmente pra mostrar uma ação dinamicamente.
widget.getAction('save');
widget.getCheckedRows()
widget.list()
widget.unselectAll()
widget.redraw()
Literalmente redesenha o widget, se você alterou algo na tela como colunas, datasource, ou sei lá o que mais, você chama ele para registrar as mudanças.
self.test = function(widget){
fazerAlgoComOWidget();
//dizer para o framework redesenhar o widget com as alterações
widget.redraw();
}
widget.removeCheckedRows()
widget.view()
Field
field.setValue()
Altera o valor de um campo.
Javascript:
this.alteraCampo = function(widget) {
var campo = widget.getField('NOMEDOCAMPO');
campo.setValue("novo_valor"); // o valor do campo será novo_valor
}
field.reload()
Dá um refresh no campo.
Javascript:
this.reload = function(widget) {
var campo = widget.getField('NOMEDOCAMPO');
campo.readOnly = false; // Desbloqueia o campo
campo.reload(); // dá um refresh no campo
}
General
General.callRestEngine()
Chamar rota backend do PHP.
General.callRestEngine("modulo#/nomeDaRota", "Row", widget.currentRow).then(function(sucess) {
fazerAlgo();
}, function(error){
ScreenService.showMessage(error.data.error);
})
General.openReport()
Abrir relatório gerado por rota backend com reportService->createRemoteReport($type, REPORT_CODE, $reportMapping), a função define uma Promise que quando resolvida, abre o relatório em PDF utilizando os parâmetros de ambiente local. O Tipo de relatório (BIRT ou QR2) é definido pelo reportService
General.openReport('modulo#/rotaQueGeraRelatorio', CODIGO0020, [arguments]);
metaDataFactory
metaDataFactory.fieldFactory(field, widget, widget);
O método fieldFactory é literalmente uma fábrica de campos, como o nome indica. Você usa ele pra adicionar na tela um campo/coluna construído dinâmicamente em um widget. Um exemplo é nas telas de Perfil Cliente e Perfil Fornecedor, onde o resultado de uma query SQL com pivot retorna um número não-fixo de colunas.
Dá pra ver nesse arquivo Controller, na linha 100: Fis97000_PerfilCliente_Controller.js
function teste(widget){
//crie um field normalmente como se fosse no template json
var field = {
"id": "",
"name": "nome",
"label": "Nome",
"template": "field/text-edit.html"
};
//chame a função e passe como parâmetro o field, e o widget 2x (por quê? nunca saberemos!")
metaDataFactory.fieldFactory(field, widget, widget);
}
lembrando que é necessário chamar widget.redraw(), pra dar re-render no widget com a(s) nova(s) coluna(s).
metaDataFactory.widgetFactory(widget, widget.container);
Pela nomenclatura, isso vai dinamicamente criar uma nova widget, porém não sei nem como testar esse troço.

ScreenService
ScreenService.showCustomDialog()
Mostra um dialog com botões customizados.
Javascript:
ScreenService.showCustomDialog('Título do Dialog', 'icon', 'icon', [
{
label: 'Padrão',
code: self.funcao1
},
{
label: 'Outro',
code: self.funcao2
},
{
label: 'Cancelar',
code: ''
}
]);
Se o
codeestiver vazio no botão, ele vai apenas fechar o modal ao ser clicado.
ScreenService.showMessage(“”)
Mostra um alerta simples com uma mensagem.
ScreenService.showMessage('Data final não pode ser menor do que a data inicial.');

ScreenService.openSwipe()
Abre o swipe na widget especificada como parâmetro do método.
ScreenService.openSwipe(widget);
ScreenService.closeSwipe()
Fecha o swipe na widget.
ScreenService.openSwipe();
ScreenService.openPopup()

Dinâmicamente abrir um popup/modal/form que sobrepõe o layout da tela.
var formAgrupamento = templateManager.container.getWidget('formAgrupamento');
ScreenService.openPopup(formAgrupamento);
ScreenService.closePopup()
ScreenService.closePopup();
ScreenService.hideLoader()
????
ScreenService.hideLoader();
ScreenService.showLoader()
????
ScreenService.showLoader();
ScreenService.isSideMenuOpen()
????
ScreenService.isSideMenuOpen();
ScreenService.toggleSideMenu()
????
ScreenService.toggleSideMenu();
templateManager
templateManager.updateTemplate()
templateManager.container.getWidget()
Acessar um widget (Como um grid) pelo template manager, sem depender de parâmetros vindos do layout.
templateManager.container.getWidget("nome_do_widget");