Manuais
PHC GO Utilização do Monitor de Sistemas para analisar registos na base de dados
 

No ecrã SQL Studio do Monitor de Sistemas ( menu Menu > Pesquise por SQL Studio ), podemos executar queries de Select à base de dados para consultar, de forma rápida e direta, valores de registos das entidades do PHC GO.

Esta tarefa poderá ser efectuada com a linguagem Transact SQL e com a linguagem Visual Basic .NET. Neste artigo, vamos mostrar um exemplo de cada linguagem e quais as vantagens e desvantagens entre elas.
 

Disponível brevemente

sticky_note_2Notas
 
  • O resultado retornado pelo SQL Studio é carregado de forma progressiva, à medida que percorre a página, permitindo consultar tabelas extensas sem comprometer a performance.

  • As linhas do resultado retornado pelo SQL Studio são apresentadas com numeração e inclui-se também um total de registos no rodapé, tornando a consulta e análise da informação mais simples e rápida.

 


 

 


Para executar consultas à base de dados utilizando a linguagem Transact SQL, basta aceder ao ecrã SQL Studio e selecionar o Tipo de comando Transact SQL.

Com esta configuração, poderemos executar livremente comandos de Select na base de dados.

Exemplo:
select * from cl


O comando indicado acima retornará todos os registos da tabela de Clientes da aplicação.
tips_and_updatesDicas
 
Se não souber o nome da tabela de uma entidade na base de dados, poderá ter acesso a esta informação consultando o Dicionário de Dados. Carregue aqui para consultar mais informações relacionadas com esta funcionalidade.

A vantagem de utilizar esta forma de consulta está relacionada com a sua facilidade de implementação. Basta dominar as instruções da linguagem Transact SQL e executar o comando desejado direto na base de dados.

No entanto, muitas entidades da aplicação possuem os chamados campos virtuais. Os valores dos campos virtuais não ficam gravados fisicamente na base de dados e por este motivo, não conseguimos consultar o valor de um campo virtual ou efetuar filtros com valores destes campos com a linguagem Transact SQL.

. Os campos virtuais podem no entanto ser utilizados na consulta de dados via linguagem Visual Basic .NET.
 

Para executar consultas à base de dados utilizando a linguagem Visual Basic .NET, basta aceder ao ecrã SQL Studio e selecionar o Tipo de comando Visual Basic .NET.

Com esta configuração, será necessário criar um código VB.NET para efectuar a consulta desejada. Para isso, podemos utilizar as funções da classe SDK Query.

Exemplo:
 return SDK.Query.getEntityData(of CLVO)


O comando indicado acima retornará todos os registos da tabela de Clientes da aplicação. Esta instrução utiliza a função SDK getEntityData (of T).
sticky_note_2Notas
 
Neste artigo poderá consultar informações detalhadas relacionadas com as funções da classe Query.

Uma vantagem de utilizar esta forma de consulta está relacionada com o acesso à valores de campos virtuais das entidades do PHC GO.

Como podemos ver no Dicionário de Dados da aplicação, muitas entidades possuem os chamados campos virtuais. Os valores dos campos virtuais não ficam gravados fisicamente na base de dados. No entanto, uma vez que funções SDK que utilizam o objeto QueryVO retornam o registo completo das entidades da aplicação (e não apenas os valores guardados na base de dados), podemos consultar ou utilizar valores dos campos virtuais nas consultas à BD efetuadas através da linguagem Visual Basic .NET.

Por exemplo, podemos construir um comando VB.NET responsável por retornar os documentos de faturação da série ndoc igual a 1 que não estão anulados, não estão em rascunho e ainda não foram totalmente regularizados. O comando Visual Basic .NET mostrado abaixo efetua o pretendido:

´Vamos criar um QueryVO

Dim query As QueryVO = New QueryVO()



´Vamos indicar a tabela que queremos efectuar o Select

query.entityName = Ft.getTableName



´Vamos indicar que queremos retornar todos os campos

query.SelectItems.Add("*")



´Vamos implementar o filtro dos dados



´Queremos os documentos de faturação apenas da série nº 1

query.filterItems.Add(New FilterItem(Ft.ndoc, Comparison.Equal, 1))



´Queremos os documentos de faturação que não estão anulados e não estão em rascunho

query.filterItems.Add(New FilterItem(Ft.anulada, Comparison.Equal, 0))

query.filterItems.Add(New FilterItem(Ft.draftRecord, Comparison.Equal, 0))



´Queremos apenas os documentos de faturação que não estão totalmente regularizados. Aqui fazemos uso do campo virtual enreg

´Apesar do valor deste campo não estar fisicamente guardado na base de dados, conseguimos utilizá-lo no QueryVO

query.filterItems.Add(New FilterItem(Ft.enreg, Comparison.NotEqual, Ft.etotal))



´Vamos ordenar por ano e número do documento

query.OrderByItems.Add(New OrderByItem(ft.ftano, OrderTypes.Descending))

query.OrderByItems.Add(New OrderByItem(ft.fno, OrderTypes.Descending))



return SDK.Query.GetEntityData(Of FtVO)(query)


Neste comando, criamos um QueryVO responsável por executar a instrução de Select desejada com um filtro que utiliza o campo virtual ft.enreg responsável por retornar apenas os documentos de faturação que ainda não estão regularizados.

As queries no PHC GO feitas através do objeto QueryVO garantem também uma maior segurança nas consultas à base de dados impedindo consultas excessivas ao servidor que possam bloquear o acesso às instalações.
sticky_note_2Notas
 
Para mais informações a respeito do objeto QueryVO, carregue aqui .