You are on page 1of 7

Erro na Orientação de um Relatório Impre

Ir para o final dos metadados


Ir para o início dos metadados
Colapse ALL
Expand ALL
Dicas para sanar este problema:

1 - Atualizar o sistema com o ultimo patch


2 - Verificar se o relatório utiliza a função generica Cabec, ou envia o retorno da função
Readriver() corretamente, semelhante a maneira que a função "Cabec" faz.
3 - Verificar se os programas utilizão a funcão MS_FLUSH() após o término do relatório.

FUNCÄO GENERICA - MULTSTR

Função .....: MULTSTR( cValor1 , cValor2 )

Parâmetros .: cValor1 / cValor2 : String's numéricas a serem multiplicadas

Retorno ....: String numérica correspondente à multiplicação das strings

passadas como parâmetro uma pela outra.

Exemplo ....:

...

cString1 := "10254001425"

cString2 := "52102555410"

cResult := MULTSTR(cString1,cString2) // "534259677420281459250"

...

FUNCAO GENERICA - SOMASTR


Ir para o final dos metadados

Função .....: SOMASTR( cValor1 , cValor2 )


Parâmetros .: cValor1 / cValor2 : String's numéricas inteiras a serem somadas
Retorno ....: String numérica correspondente à soma das strings passadas como parâmetro.
Exemplo ....:
...
cString1 := "102540"
cString2 := "521478"
cSoma := SOMASTR(cString1,cString2) // "624018"
...

FUNCAO GETNEWPAR
Ir para o final dos metadados
Colapse ALL
Expand ALL
304 O objetivo da função GetNewPar() é ler um parâmetro (identica a GetMv()), porém tratando
um possível default no caso de o mesmo não existir. É muito utilizada quando da necessidade
de se criar algum parâmetro específico para um usuário ou quando for criando algum
parâmetro no meio de uma versão.

Funcionalidade Nettest
Ir para o final dos metadados
Ir para o início dos metadados
Colapse ALL
Expand ALL
Ao executar o Nettest, o sistema produz arquivos de log que permitem avaliar as característivas da rede utilizada na conexão entre o
Server e o SmartClient.
Esta funcionalidade é útil quando é necessário realizar a análise e o estudo de ocorrências que podem estar relacionadas a
comportamento de perda de performance ou problemas de infra-estrutura de redes.

Para utilizar o Nettest, basta seguir os passos abaixo:

1. Inicie o Smartclient;
2. No programa inicial, informe "U_NETTEST";
3. Informe o ambiente e a comunicação no cliente e clicar em Ok;
4. Clique sobre o botão Iniciar para começar o teste;
5. Clique sobre o botão Parar para concluir o teste.

Durante a execução do Nettest, são criados 2 arquivos dentro do diretório Nettest no diretório informado no RootPath do ambiente
utilizado. Sendo eles:

 'IP_Server' +'Porta_Server' +'Hostname_Remote'+_nettest.log


 Neste arquivo são apresentados os tempos de transferência de um pacote (com tamanho
aproximado de 2048 bytes ) entre o Server e o Smartclient.
 'IP_Server'+'Porta_Server'+'HostName_Remote' +_nettest_100ms.log
 Neste arquivo são apresentadas as ocorrências onde foi verificada latência (tempo de
atraso) igual ou superior a 100ms.
Abrangência

Protheus 10 , Microsiga Protheus 11


Nível Acesso

Nível 1 (Acesso Clientes)

GravaData
Ir para o final dos metadados
Ir para o início dos metadados
Colapse ALL
Expand ALL

Retorno de um campo data com formatos diferentes conforme parametrização desejada.

Importante: O terceiro parâmetro da função (formato do retorno) somente é respeitado, caso o 2º parametro (tipo de data) seja falso

(.F.)

Observações

Exemplo:
GravaData(ExpD1,ExpL1,ExpN1)

Parâmetros:

ExpD1 (Date)
Data a ser convertida
ExpL1 (Boolean)
Tipo (Se .T., apresenta data utilizando barra, se .F., não apresenta a barra)

ExpN1 (Integeger)
Formato do retorno

Sendo:
1 = ddmmaa
2 = mmddaa
3 = aaddmm
4 = aammdd
5 = ddmmaaaa
6 = mmddaaaa
7 = aaaaddmm
8 = aaaammdd

Exemplos

dData := GravaData(ExpD1,ExpL1,ExpN1)

Abrangência

Microsiga Protheus 8.11 , Protheus 10 , Microsiga Protheus 11 , TOTVS Application Server 10

Identificação Filial Origem em una Tabela


Ir para o final dos metadados
Ir para o início dos metadados
Colapse ALL
Expand ALL
Para que seja possivel identificar a filial original em uma tabela compartilhada basta criar um
campo chamado (Alias + "_MSFIL") onde se acusado a existencia deste campo o SIGA irah
gravar a filial corrente neste campo.

Exemplo : Cadastro de Produtos Compartilhado teremos :

B1_FILIAL igual a brancos " "


B1_MSFIL (se criado) com as filiais originais gravadas.

A filial original eh o conteudo da variavel cFilAnt

Obs : Excelente recurso para permitir tratamento de filiais em arquivos compartilhados.

A gravacao deste campo eh AUTOMATICA - feita na funcao RECLOCK()

Inclusão de informações do USERLGIUSERLGA no browse


Ir para o final dos metadados
Ir para o início dos metadados
Colapse ALL
Expand ALL
Na função FWLeUserlg() é possível disponibilizar no browse as informações contidas dentro
dos campos USERLGI\USERLGA. C

onforme o exemplo abaixo:

1. Incluir o campo reservado USERLGI na tabela SA1, por exemplo.


2. Criar os campos para apresentação no browse conforme abaixo:
Campo: A1_USERI
Tipo: Caracter
Tamanho: 30
Contexto: Virtual
Propriedade: Visualizar
Título: Usuario Inc
Inic.Browse: FWLeUserlg("A1_USERLGI", 1)
Browse: Sim

Campo: A1_DATAI
Tipo: Caracter
Tamanho: 10
Contexto: Virtual
Propriedade: Visualizar
Título: Data Inc
Inic.Browse: FWLeUserlg("A1_USERLGI", 2)
Browse: Sim

1. Quando o browse do cadastro de clientes é acessado, os campos criados anteriormente


são apresentados, mostrando as informações contidas no campo A1_USERLGI.

Para maiores informações, consulte a documentação da função FWLeUserlg no TDN.

UTILIZANDO FILTROS SQL


Ir para o final dos metadados
Ir para o início dos metadados
Colapse ALL
Expand ALL

Na Versão TopConnect é possível utilizar filtros SQL que são resolvidos única e tão somente pelo DBMS.Para essa utilização

, basta que o primeiro caracter do filtro seja @ (arroba)

Observações

A função dbFilter() não retorna nada quando o filtro utilizado for um Filtro SQL.

Exemplos
Function Teste()

Local cFiltrocFiltro := "@X5_DESCRI LIKE '% DA %'"

dbSelectArea("SX5")

Set Filter to &cFilterdbgotop()


Outro Exemplo :

dbSelectArea("SX5")
Set Filter to &("@X5_DESCRI LIKE '% DA %'")
dbGotop()

Enchoices no Hypersite - Campo X3_CHECK


Ir para o final dos metadados
Ir para o início dos metadados
Colapse ALL
Expand ALL
Quando utilizamos WebBrowses padrão hypersite , podemos definir as propriedades de edição dos campos através do campo
X3_CHECK , no SX3 :


O = Obrigatório Um campo obrigatório pode ser alterado na inclusão e alteração , mas
sempre deve ter conteúdo

C = Chave Este campo é obrigatório, mas apenas pode ser alterado durante a inclusão, não
podendo ser alterado posteriormente.

N = Não alterável Este campo não é alterado de modo algum, nem durante a inclusão. Seu
conteúdo inicial deve ser especificado no inicializador padrão ( X3_RELACAO )

U = Campo usado : Campo de uso normal: pode ser alterado e ter seu conteúdo em branco.

X = Não Usado Este campo é ignorado para qualquer operação de Enchoice.

Definição de Static Function SchedDef para o novo Schedule


Ir para o final dos metadados

Ir para o início dos metadados

SCHEDDEF()

No novo Schedule existe uma forma para a definição dos Perguntes para o botão Parâmetros,
além do cadastro das funções no SXD.

Ao definir em sua rotina a static function SchedDef(), no cadastro da rotina no Agendamento do


Schedule será verificado se existe esta static function e irá executá-la habilitando o botão
Parâmetros com as informações do retorno da SchedDef(), deixando de verificar assim as
informações na SXD. O retorno da SchedDef deverá ser um array com o seguinte padrão:

aReturn[1] - Tipo: "P" - para Processo, "R" - para Relatórios

aReturn[2] - Nome do Pergunte

aReturn[3] - Alias (para Relatório)

aReturn[4] - Array de ordem (para Relatório)


aReturn[5] - Título (para Relatório)

Observações:
 Válido para Function e User Function, lembrando que uma vez definido a SchedDef, ao chamar
a rotina o ambiente já está inicializado.
 Uma vez definido a Static Function SchedDef(), a rotina deixa de ser uma execução como
processo especial, ou seja, não se deve cadastrá-la no Agendamento passando parâmetros de
linha. Ex: Funcao("A","B") ou U_Funcao("A","B").
 O nome da função principal deve ter o mesmo nome do fonte. No exemplo abaixo, o nome do
fonte seria TSTSCHD.prw.
 Para maiores informações sobre o novo Schedule, acesse o Help do Protheus.

Exemplo de definição da SchedDef:

User function TSTSCHD()

Pergunte("ACA070", .F.)

If IsBlind()

BatchProcess("Teste","Teste",,{ || TSTExec() })

EndIf

Return

Static Function TSTExec()

conout("MV_PAR01 " + MV_PAR01)

conout("MV_PAR02 " + MV_PAR02)

conout("MV_PAR03 " + MV_PAR03)

Return

Static Function Scheddef()

Local aParam

Local aOrd := {OemToAnsi(" Por Codigo "),OemToAnsi(" Alfabetica ")}

aParam := { "P",; //Tipo R para relatorio P para processo

"ACA070",;// Pergunte do relatorio, caso nao use passar ParamDef


"SA1",; // Alias

aOrd,; //Array de ordens

"Teste SchedDef"}

Return aParam