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 code estiver 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.');

'showMessage alerta'

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()

'showMessage alerta'

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");

Util

Util.isEmptyObject(valor)

Util.isEmptyOrBlank(valor)

Util.isUndefinedOrNull(valor: any)