Manuais
PHC GO Personalização de ecrãs e entidades (Casos Práticos)
 

Em primeiro lugar, devem criar um Add-on no Portfólio de add-ons chamado Workshop e com o plano mínimo Advanced. Depois,todas as peças da Framework que sejam desenvolvidas, devem ser adicionadas a esse add-on.
 



1. Textbox


Adicionar um campo de texto ao ecrã de Clientes, com o tamanho 100, para preencher Instrumento musical favorito:
 
  1. Criar uma  manage_search  Extensão de ecrã para a entidade Clientes.
     

  2. Criar um novo Painel chamado "Dados adicionais".


  3. Adicionar o objeto drive_file_rename_outline Textbox dentro do novo separador.
     

2. Rich text editor


Adicionar um campo no ecrã de Clientes com tamanho 0 (zero) para preencher com o histórico de visitas realizadas ao cliente.
 
  1. Adicionar o objeto text_format Rich text editor.
     

3. Datepicker


Adicionar um campo ao ecrã de Artigos a indicar a data em que o artigo foi bloqueado para saídas.
 
  1. Criar uma  manage_search  Extensão de ecrã para a entidade Artigos e Serviços.
     

  2. Criar um novo Painel chamado "Dados adicionais".
     

  3. Adicionar o objeto today Datepicker dentro do novo separador.


4. Checkbox


Adicionar um campo ao ecrã de Artigos a indicar que é um artigo musical.
 
  1. Adicionar o objeto check_box Checkbox.
     

 

1. Itens de lista dinâmica


Adicionar um campo ao ecrã de Clientes, com o tamanho 100, para preencher os Instrumentos Musicias Favoritos através dos Itens de lista dinâmica.
 
  1. Criar 3 read_more Itens de lista dinâmica.


  2. Adicionar o objeto read_more Item de lista dinâmica no separador Dados adicionais da Extensão de ecrã e entidade criada anteriormente ( "workshop_cl" ).
     

2. Grelha de edição com autocomplete


No ecrã Vendedores, permitir adicionar quais os Segmentos que o Vendedor dá resposta. Este segmento, deve ser um Autocomplete com a lista de Segmentos disponíveis de base no Software.
tips_and_updatesDicas

Utilizar o SQL Profiler para saber o query.

  1. Criar uma picture_in_picture Extensão de ecrã para a entidade Vendedores.


  2. Criar um novo Painel chamado "Dados adicionais".


  3. Adicionar o objeto calendar_view_month Grelha de edição.
     

    query.entityName = "dytable"
    query.filterItems.add(New FilterItem("entityname",Comparison.equal, "´a_segs´"))


  4. Adicionar o objeto manage_search Autocomplete às colunas da grelha
     

    query.entityName = "dytable"
    query.filterItems.add(New FilterItem("entityname",Comparison.equal, "´a_segs´"))


3. Tabela de consulta


Apresentar a lista de Faturas deste cliente.
 
  1. Adicionar o objeto table_rows Tabela de consulta no separador Dados adicionais da Extensão de ecrã e entidade criada anteriormente ( "workshop_cl" ).
     

    query.entityName = "FT"
    query.filterItems.add(New FilterItem("ft.no", Comparison.Equal, currentRecord.no))



1. Disponibilizar o campo unidade


Disponibilizar o campo unidade nas linhas das Faturas que seja do tipo autocomplete e que apresente as mesmas unidades que aparecem quando estamos posicionados na ficha do artigo.
 
  1. Criar uma picture_in_picture Extensão de ecrã para a entidade Faturação.
     

  2. Adicionar o objeto manage_search Autocomplete na grelha das linhas.
     


    query.entityName = "dytable" 
    query.filterItems.add(New FilterItem("entityname",Comparison.equal, "´st_unidade´"))


1. Ao marcar um Artigo como bloqueado para saída...


Ao marcar um Artigo como bloqueado para saída, obrigar a preencher a data de inativação.
 
  1. Na picture_in_picture Extensão de entidade ( "workshop_st" ), colocar o seguinte código na zona dos comportamentos:
     

    if (currentRecord.bloqueado) {
    sdk.setRequired(FIELDS.U4902_WORKSHOP_ST_BLOQSAIDA, true, TABLES.U4902_WORKSHOP_ST)
    } else {
    sdk.setRequired(FIELDS.U4902_WORKSHOP_ST_BLOQSAIDA, false, TABLES.U4902_WORKSHOP_ST)
    }

2. Ao preencher o Vendedor nos Clientes...


Ao preencher o Vendedor nos Clientes, desabilitar o campo do Segmento.
 
  1. Na  picture_in_picture  Extensão de ecrã ( da entidade "workshop_cl" ), colocar na zona dos comportamentos o seguinte código:
     

    if (currentRecord.vendnm != "" &&  currentRecord.vendnm != null && currentRecord.vendnm != undefined) {
    sdk.setDisabled(FIELDS.CL_SEGMENTO,true)
    } else {
    sdk.setDisabled(FIELDS.CL_SEGMENTO,false)
    }

3. Se nenhum artigo estiver configurado com unidade...


Se nenhum artigo estiver configurado com unidade, não deve aparecer a coluna de Unidade criada no caso prático anterior visivel.
 
  1. Na picture_in_picture Extensão de entidade ( "workshop_ft" ), colocar o seguinte código na zona dos comportamentos:
     

    var dados = currentRecord;
    var query = new QueryVO;
    query.entityName = "ST";
    var filtro = new FilterItem();
    filtro.filterItem = "ST.unidade";
    filtro.comparison = Comparison.NOTEQUAL
    filtro.valueItem = "´´";
    query.filterItems.push(filtro);
    sdk.runQuery(query).subscribe(value => {
    if (PHCResult.ok(value)){
    // if return records
    if (value.result.length) {
    sdk.setColumnHidden(TABLES.FI, FIELDS.U4902_WORKSHOP_FT_FI_UNIDADE, false, TABLES.U4902_WORKSHOP_FT_FI)
    }
    else {
    sdk.setColumnHidden(TABLES.FI, FIELDS.U4902_WORKSHOP_FT_FI_UNIDADE, true, TABLES.U4902_WORKSHOP_FT_FI)
    }
    }
    })


1. Criar um ecrã disponivel nas Definições


Criar um ecrã disponivel nas Definições chamado Instrumentos musicais favoritos.
 
  1. Criar um desktop_windows Ecrã e entidade novo.
     


 

2. Este ecrã deve ter um campo do tipo texto que seja um Autocomplete


Este ecrã deve ter um campo do tipo texto que seja um Autocomplete com as referências que tenham ativa a opção é um artigo musical criado anteriormente e tenha um checkbox para indicar se o registo está inativo.
 
  1. Criar o picture_in_picture Autocomplete.
     


    query.entityName = "ST"

    Dim join = New JoinEntity() ´Create the Join object
    Dim joinFilter = New FilterItem() ´Create the Join object filter
    join.TableName = "u4902_workshop_st"
    joinFilter.filterItem = "u4902_workshop_st.ststamp"
    joinFilter.comparison = Comparison.Equal
    joinFilter.valueItem = "<#var>st.ststamp"
    join.joinExp.Add(joinFilter)
    query.joinEntities.Add(join)

    query.filterItems.add(New FilterItem("u4902_workshop_st.artigomusical", comparison.equal, true))

  2. Adicionar o objeto check_box Checkbox.
     



3. Criar uma grid no ecrã de Clientes


Criar uma grid no ecrã de Clientes para poder inserir vários Instrumentos musicais favoritos com base na tabela do ecrã que acabamos de criar.
 
  1. Adicionar o objeto calendar_view_month Grelha de edição:
     

    query.entityName = "u4902_instmusicais"

  2. Adicionar o objeto picture_in_picture Autocomplete nas Colunas da grelha.
     

    query.entityName = "u4902_instmusicais"


1. Criar uma ação para inativar o Instrumento musical favorito.



 
  1. Criar uma rule Regra de negócio para a entidade Instrumentos musicais com o Tipo de Código "A Pedido", com o id "inativa" e com o seguinte código:
     
    itemVO.inativo = true
    save(itemVO)



  2. Adicionar uma nova ação no ecrã da entidade "instmusicais".