Desk, formularios e scripts cliente

O Desk é a principal interface administrativa do NEO. Muita coisa vem pronta dos metadados, mas a experiência pode ser enriquecida com JavaScript, pages, listas customizadas e diálogos.

O que o Desk entrega por padrão

Um DocType bem definido normalmente já oferece:

  • formulário;

  • lista;

  • filtros;

  • navegação para registros relacionados;

  • ações contextuais;

  • impressão e exportação, conforme permissões.

Form Scripts

Os scripts de formulário usam neo.ui.form.on.

neo.ui.form.on("Task", {
    refresh(frm) {
        if (frm.doc.status === "Open") {
            frm.add_custom_button("Concluir", () => {
                frm.set_value("status", "Closed");
                frm.save();
            }, "Ações");
        }
    },

    validate(frm) {
        if (frm.doc.from_date && frm.doc.from_date < neo.datetime.get_today()) {
            neo.msgprint("A data inicial não pode estar no passado.");
        }
    }
});

Eventos frequentes

  • setup

  • onload

  • refresh

  • validate

  • eventos por campo

  • before_save

  • after_save

Objeto frm

Método
Uso

frm.set_value

Atualiza campo

frm.toggle_display

Mostra/oculta campo

frm.toggle_reqd

Torna campo obrigatório ou não

frm.set_df_property

Altera propriedade visual

frm.add_custom_button

Cria botão

frm.call

Chama servidor

frm.reload_doc

Recarrega documento

Busca e preenchimento automático

set_query

Controla a busca de campos Link.

Botões customizados

ListView

A lista pode ser adaptada com:

  • indicadores;

  • filtros padrão;

  • ações rápidas;

  • colunas mais úteis.

Em fluxos operacionais, a lista muitas vezes é mais importante que o formulário.

Dialogs

Diálogos são úteis para:

  • confirmação;

  • coleta rápida de parâmetros;

  • ações administrativas;

  • geração de documentos derivados.

Limite do Client Script

Client Script é excelente para ergonomia e automação visual, mas não deve substituir segurança, autorização ou integridade de negócio no backend.

Quando sair do formulário padrão

Se o fluxo exige:

  • dashboard operacional;

  • múltiplas ações em lote;

  • interface orientada a processo;

  • wizard;

  • visão analítica mais rica;

então uma Page customizada pode ser melhor do que sobrecarregar um formulário.

Atualizado