Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.

01. 

...

DATOS GENERALES

Linha ProdutoPortuguêsFunção

Línea de

producto:

Microsiga Protheus®

Segmento:

Backoffice

Módulo:

Financeiro

Financiero

Idiomas:

Portugués

Función

Portal

do Cliente

del cliente

02. 

...

DESCRIPCIÓN PCBROWSE

Aviso
titleFuncionalidade em desenvolvimentoFuncionalidad en desarrollo

El punto O ponto de entrada PCBROWSE está em fase de desenvolvimento em breve entrará em testes com clientes piloto, portanto ainda não está liberada em nenhum release do Protheus!

Será liberado através de pacote de expedição acumulado do módulo financeiro após Outubro.

...

en etapa de desarrollo y muy pronto entrará en prueba con clientes piloto, por lo tanto, aún no está liberado en ningún release del Protheus.

Se liberará por medio de un paquete de expedición acumulado del módulo financiero después del mes de Octubre.


El punto de entrada PCBROWSE permite incluir

...

opciones de

...

menú para

...

el listado de ítems personalizados en elPortal del cliente - SIGAFIN.

...

El punto de entrada

...

debe devolver un array con el json de

...

configuración de cada

...

menú que

...

desea agregar.

03.

...

CONFIGURACIÓN

Parámetros puestos a disposición en el punto de entrada:


Descrição PosiçãoUsuário do do

PARAMIXB

Tipo

Descripción

Posición

Character

Usuario de login

del Portal

del cliente.


Configuração necessário Configuración necesaria para que seja carregada a opção de menu no portal do cliente. Caso alguma informação obrigatória, função de usuário informada não compilada ou erro de execução ocorra o menu não será carregadose cargue la opción de menú en el portal del cliente. Si alguna información obligatoria, función de usuario informada no compilada o error de ejecución ocurriera, no se cargará el menú.

PropriedadeObrigatoriedadeDescrição

Propiedad

Obligatoriedad

Descripción

tituloMenu

Obrigatório

Obligatorio

Título mostrado en el menúTitulo apresentado no menu.

iconeMenu

Opcional

Ícone

Ícono para

o menu

el menú. Lista de

ícones

íconos PO UI que

podem ser usados nesta propriedade

pueden utilizarse en esta propiedad. https://po-ui.io/guides/icons

tituloPagina

Obrigatório

Obligatorio

Titulo apresentado na paginamostrado en la página.

funcaoQuery

Obrigatório

Obligatorio

Nome da Nombre de la user function que vai retornar a devolverá la query para buscar os dadoslos datos.

orderQuery

Opcional

Campo no qual a ordenação da tabela vai se basear.

tabelaObrigatório

Alias da tabela utilizada para tratamento interno.

en el cual se basará el orden de la tabla.

tabla

Obligatorio

Alias de la tabla utilizada para tratamiento interno.

columnas

Es obligatorio si no se envían

colunasObrigatório se não enviar

fields

Array de campos do del browse, o sistema vai utilizar o titulo da SX3. Se informar fields essa propriedade é ignoradael sistema utilizará el título de la SX3. Si se informan fields, se ignorará esta propiedad.

fields

Opcional

Array de json com os con los campos do del browse. Cada campo deve ter as propriedades debe tener las propiedades property, type e y label (PoTableColumn):

  • property: string contendo o nome do con el nombre del campo.
  • type: string contendo o con el tipo do del campo (Tipos aceitosaceptados: currency, date, number, string).
  • label: string que contém o contiene el título do del campo.
legendas

leyeendas

Opcional

Configuração das legendas

Configuración de las leyendas. Array de json

com as propriedades 

con las propiedades  value, color

e

y label. (labels

do

del PoTableColumnLabel)

Image Removed

campoLegendas

Opcional

Campo utilizado para legendaleyenda.

tituloLegendas

Opcional

Titulo da legendaTítulo de la leyenda.

detalhes

detalles

Opcional

Json com as propriedades para ser exibido na tela de detalhes do con las propiedades para que se muestre en la pantalla de  detalles del registro. Consulte o item el ítem 03.02 Configuração Configuración de detalhesdetalles.


03.01.

...

CONFIGURACIÓN DE

...

BÚSQUEDA

É possível configurar a pesquisa simples e avançada através da configuração:

Es posible configurar la búsqueda simple y avanzada por medio de la configuración:

Descrição

Propiedad

Obligatoriedad

Descripción

PropriedadeObrigatoriedade

campoBusca

Opcional

Campo para busca búsqueda rápida.

camposBuscaAvancada

Opcional

Lista de campos para busca avançadabúsqueda avanzada, o sistema vai utilizar o titulo da SX3. Se informar fieldsBuscaAvancada essa propriedade é ignoradael sistema utilizará el título de la SX3. Si se informa fieldsBuscaAvancada , se ignorará esta propiedad.

fieldsBuscaAvancada

Opcional

Array de json com os con los campos do para utilizar na busca avançadaen la búsqueda avanzada. Cada campo deve ter as propriedades debe tener las propiedades property, type e y label (PoDynamicFormField):

  • property: string contendo o nome do con el nombre del campo.
  • type: string contendo o con el tipo do de campo (Tipos aceitosaceptados: currency, date, number, string).
  • label: string que contém o contiene el título do del campo.

03.02.

...

CONFIGURACIÓN DE

...

DETALLES

Si se configuran los detalles, se muestra en el ítem la opción "visualizar" para

...

la exhibición de las informacionesy el listado de ítems.

PropriedadeObrigatoriedadeDescrição

Propiedad

Obligatoriedad

Descripción

tituloPagina

Obrigatório

Obligatorio

Título que se muestra en la página de detalles

Titulo apresentado na pagina de detalhes

.

tituloAbaPrincipal

Obrigatório

Obligatorio

Título que se muestra en la solapa

Titulo apresentado na aba

principal.

camposDetalhes

Obrigatório

Obligatorio

Lista de campos que

serão apresentados

se mostrarán,

o sistema vai utilizar o titulo da SX3. Se informar fieldsDetalhes essa propriedade é ignorada

el sistema utilizará el título de la SX3. Si se informa fieldsDetalhes , se ignorará esta propiedad.

fieldsDetalhes

Opcional

Array de json

com os

con los campos

do

del browse. Cada campo

deve ter as propriedades

debe tener las propiedades property, type

e

y label (PoTableColumn):

  • property: string contendo o nome do con el nombre del campo.
  • type: string contendo o con el tipo do de campo (Tipos aceitosaceptadoss: date, number, string).
  • label: string que contém o contiene el título do del campo.
  • divider: string contendo o con el título para definição da seção (Os campos adicionados após este farão parte desta divisão/seçãola definición de la sección (Los campos agregados después de este, formarán parte de esta división/sección).

orderQueryItens

Opcional

Campo

no qual a ordenação da tabela vai se basear

en el cual se basará el orden de la tabla.

tituloAbaItens

Opcional

Titulo
apresentado na aba itens

Título que se muestra en la solapa Ítems.

funcaoQueryItens

Obrigatório

Es obligatorio si se

informado

informa tituloAbaItens

User funcion que

vai retornar a query dos itens

devolverá la query de los ítems.

tabelaItens

Obrigatório

Es obligatorio si se

informado

informa tituloAbaItens

Alias dos itens.

colunas

columnas

Obrigatório

Es obligatorio si se

informado

informa tituloAbaItens

Lista de campos do del browse, o sistema vai utilizar o titulo da SX3. Se informar fields essa propriedade é ignoradael sistema utilizará el título de la SX3. Si se informa fields , se ignorará esta propiedad.

fields

Obrigatório

Es obligatorio si se

informado

informa tituloAbaItens

Array de json com os con los campos do del browse. Cada campo deve ter as propriedades debe tener las propiedades property, type e y label (PoTableColumn):

  • property: string contendo o nome do con el nombre del campo.
  • type: string contendo o con el tipo do campo (Tipos aceitosaceptados: date, number, string).
  • label: string que contém o contiene el título do del campo.

04. USER FUNCTION QUERY

...

La función pasada en la propiedad 'funcaoQuery'

...

y 'funcaoQueryItens'

...

se llamará por el Portal del cliente para que devuelva la query personalizada que se utilizará en la búsqueda de los ítems

funcaoQuery

...

recibe los parámetros: 

Descrição PosiçãoContém um Array com as chaves (FILIAL+CODIGO+LOJA) dos clientes selecionados no posição do Array contém um objeto Json com as propriedades: filial, codigo e loja PosiçãoCaracterUsuário do do

PARAMIXB

Tipo

Descripción

Posición

Array

Contiene un Array con las claves (SUCURSAL+CÓDIGO+TIENDA) de los clientes seleccionados en el portal. 

Cada

posición del Array contiene un objeto Json con las propiedades: sucursal, código y tienda.

Posición

Carácter

Usuario de login

del Portal

del cliente

funcaoQueryItens

...

recibe los parámetros: 

Descrição PosiçãoContém um Array com as chaves (FILIAL, CODIGO, LOJA) dos clientes selecionados no posição do Array contém um objeto Json com as propriedades: filial, codigo e loja PosiçãoCaracterUsuário do do Posição da linha selecionada no Ex

PARAMIXB

Tipo

Descripción

Posición

Array

Contiene un Array con las claves (SUCURSAL, CÓDIGO, TIENDA) de los clientes seleccionados en el portal. 

Cada

posición del Array contiene un objeto Json con las propiedades: sucursal, código y tienda.

Posición

Carácter

Usuario de login

del Portal

del cliente

Posición

Json

json

de la línea seleccionada en el formato "{ Campo: Valor} "

Ej.: "{E1_FILIAL: '01', E1_NUM: '000001'}"

...

Devolución del punto de entrada:

A função deve retornar a La función debe devolver la query personalizada:

Deverão ser utilizados os Id'sDeben utilizarse los Id:

#QueryFields# Campos

...

del SELECT, existe

...

tratamiento para

...

el FIELDS

...

en el QueryParam
#QueryWhere#

...

Condiciones del WHERE, existe

...

tratamiento para FILTER

...

en el QueryParam


ObrigatoriedadeDescrição

Tipo

Obligatoriedad

Descripción

Caractere

Carácter

Obrigatório

Obligatorio

Query personalizada para

listagem dos registros do menu customizado

listado de los registros del menú personalizado.

05.

...

EJEMPLO DE

...

UTILIZACIÓN

Bloco de código
languagejava
themeMidnight
firstline1
titlePCBROWSE
linenumberstrue
collapsetrue
#Include 'Protheus.ch'
 
/*/{Protheus.doc} PCBROWSE
    PontoPunto de entrada para adicionaragregar opcoesopciones de menú menuen noel OortalPortal dodel cliente
    @type function
    @return array, array de configuracaoconfiguración
/*/
user Function PCBROWSE()
    Local cUser := PARAMIXB[1] as Character // CodigoCódigo dodel usuario logadoconectado noal portal.
    Local aMenu := {} as Array

    aAdd(aMenu, MENU1()) // exemploejemplo utilizando colunascolumnas SX3
    aAdd(aMenu, MENU2()) // exemploejemplo configurando fields
Return aMenu
 
/*/{Protheus.doc} MENU1
    ConfiguracaoConfiguración dodel menumenú
    @type function
    @return json, configuracaoconfiguración dodel browse
/*/
Static Function MENU1()
    Local jMenu     := JsonObject():new() as Json
    Local jDetalhes := JsonObject():new() as Json
    //titulotítulo presentado apresentadoen noel menumenú
    jMenu['tituloMenu'] := 'Pedidos1'
    //icone para o menu, lista de icones https://po-ui.io/guides/icons
    jMenu['iconeMenu']  := 'po-icon po-icon-manufacture'
    //titulotítulo presentado apresentadoen nala paginapágina
    jMenu['tituloPagina'] := 'MeusMis Pedidos1pedidos1'
    //user funcion que vai retornardevolverá ala query de buscabúsqueda
    jMenu['funcaoQuery'] := 'PCQRY01'
    //campo que vaise ser ordenadoordenará
    jMenu['orderQuery']  := 'C5_EMISSAO DESC'

    //alias de dala tabelatabla utilizada para tratamentostratamientos internos
    jMenu['tabela'] := 'SC5'
    //lista de campos dodel browse, oel sistema vaiutilizará utilizarel otítulo titulode dala SX3. SeSi se informarinforma fields essase propriedadeignorará éesta ignoradapropiedad
    jMenu['colunas'] := {'c5_filial', 'c5_condpag', 'c5_num', 'c5_vend1', 'c5_nota', 'c5_emissao'}
     
    //configuracaoconfiguración de legendasleyendas, array comcon value, color ey label
    jMenu['legendas'] := {}
    aAdd(jMenu['legendas'], prepareStatus("N", "color-01", "Normal"))
    aAdd(jMenu['legendas'], prepareStatus("C", "color-02", "Compl.PrecIo/Cantidad"))
    aAdd(jMenu['legendas'], prepareStatus("I", "color-03", "Compl.ICMS"))
    aAdd(jMenu['legendas'], prepareStatus("P", "color-04", "Compl.IPI"))
    aAdd(jMenu['legendas'], prepareStatus("D", "color-05", "Dev.Compras"))
    aAdd(jMenu['legendas'], prepareStatus("B", "color-06", "Utiliza proveedor"))
    jMenu['campoLegendas']  := 'c5_tipo'
    jMenu['tituloLegendas'] := 'Tipo'
 
    //campo para buscabúsquea rapidarápida, SeSi se informarinforma fieldBusca, essase propriedadeignorará éesta ignoradapropiedad
    jMenu['campoBusca'] := 'c5_num'
    //lista de campos aprapara buscabúsqueda avancadaavanzada, oel sistema vaiutilizará utilizarel otítulo titulode dala SX3. SeSi se informarinforma fieldsBuscaAvancada, essase propriedadeignorará éesta ignoradapropiedad
    jMenu['camposBuscaAvancada'] := {'c5_filial', 'c5_vend1', 'c5_nota', 'c5_emissao', 'c5_transp'}
     
    //exemploejemplo de configuracaoconfiguración de detalhesdetalles
    //titulotítulo presentado apresentadoen nala paginapágina de detalhesdetalles
    jDetalhes['tituloPagina'] := 'DetalhesDetalles dodel pedido'
    //titulotítulo presentado apresentadoen nala abasolapa principal
    jDetalhes['tituloAbaPrincipal'] := 'DadosDatos geraisgenerales'
    //lista de campos que seraose apresentadospresentarán, oel sistema vaiutilizará utilizarel otítulo titulode dala SX3. Si Sese informarinforma fieldsDetalhes, essase propriedadeignorará éesta ignoradapropiedad
    jDetalhes['camposDetalhes'] := {'c5_num','c5_tipo', 'c5_nota', 'c5_emissao', 'c5_vend1', 'c5_tabela', 'c5_cliente', 'c5_lojacli', 'c5_transp', 'c5_frete', 'c5_seguro',}
 
    //titulotítulo presentado apresentadoen nala abasolapa itensítems
    jDetalhes['tituloAbaItens'] := 'Produtos'
    //user funcion que vaidevolverá retornarla aquery queryde doslos itensítems
    jDetalhes['funcaoQueryItens'] := 'PCITEM'
    //campo que vaiserá ser ordenado
    jDetalhes['orderQueryItens'] := 'c6_item desc'

    //alias de doslos itensítems
    jDetalhes['tabelaItens'] := 'SC6'
    //lista de campos dodel browse, oel sistema vaiutilizará utilizarel otítulo titulode dala SX3. Si Sese informarinforma fields, essase propriedadeignorará éesta ignoradapropiedad
    jDetalhes['colunas'] := {'c6_item', 'c6_produto', 'c6_descri', 'c6_qtdven', 'c6_prcven', 'c6_valor'}
     
    jMenu['detalhes'] := jDetalhes
 
return jMenu
 
/*/{Protheus.doc} MENU2
    ConfiguracaoConfiguración dodel menumenú utilizando aslas propriedadespropiedades fields
    @type function
    @return json, configuracaoconfiguración dodel browse
/*/
Static Function MENU2()
    Local jMenu     := JsonObject():new() as Json //Json comcon aslas propriedadespropiedades esperadas.
    Local jDetalhes := JsonObject():new() as Json
 
    jMenu['tituloMenu']   := 'Pedidos2'
    jMenu['iconeMenu']    := 'po-icon po-icon-manufacture'
    jMenu['tituloPagina'] := 'Meus Pedidos2'
    jMenu['funcaoQuery']  := 'PCQRY01'
    jMenu['orderQuery']  := 'C5_DATA1 ASC'
    jMenu['tabela']       := 'SC5'
 
    //lista de campos dodel browse, utilizado cuando no quandose naoquiere querutilizar pegardatos dadosde dala SX3.
    //devedebe ser umun array de json comcon aslas propriedadespropiedades property, type ey label
    jMenu['fields'] := {}
    aAdd(jMenu['fields'], prepareField("c5_filial" , "string", "FilialSucursal dodel pedido"))
    aAdd(jMenu['fields'], prepareField("c5_num"    , "string", "Pedido"))
    aAdd(jMenu['fields'], prepareField("c5_vend1"  , "string", "Vendedor"))
    aAdd(jMenu['fields'], prepareField("c5_condpag", "string", "Forma de pagamentopago"))
    aAdd(jMenu['fields'], prepareField("c5_nota"   , "string", "NFFact"))
 
    //campo para buscabúsqueda rapidarápida, utilizado cuando no quandose naoquiere querutilizar pegardatos dadosde dala SX3.
    //devedebe ser umun array de json comcon aslas propriedadespropiedades property, type ey label
    jMenu['fieldBusca'] := prepareField("c5_num", "string", "PesquisaBúsqueda por pedido")
 
    //lista de campos aprapara buscabúsqueda avancadaavanzada, oel sistema vaiutilizará utilizarel otítulo titulode dala SX3. Si Sese informarinforma fieldsBuscaAvancada, essase propriedadeignorará éesta ignoradapropiedad
    jMenu['fieldsBuscaAvancada'] := {}
    aAdd(jMenu['fieldsBuscaAvancada'], prepareField("c5_emissao", "date"  , "DataFecha"))
    aAdd(jMenu['fieldsBuscaAvancada'], prepareField("c5_filial" , "string", "FilialSucursal"))
    aAdd(jMenu['fieldsBuscaAvancada'], prepareField("c5_nota"   , "string", "NFFact"))
    aAdd(jMenu['fieldsBuscaAvancada'], prepareField("c5_num"    , "string", "Pedido"))
 
    //exemploejemplo de configuracaoconfiguración de detalhesdetalles
    //titulotítulo presentado apresentadoen nala paginapágina de detalhesdetalles
    jDetalhes['tituloPagina'] := 'DetalhesDetalles dodel pedido'
    //titulotítulo presentado apresentadoen nala abasolapa principal
    jDetalhes['tituloAbaPrincipal'] := 'DadosDatos geraisgenerales'
    //UtilizaSe utilizan aslas propriedadespropiedades PoDynamicViewField do po-dynamic-view poui. https://po-ui.io/documentation/po-dynamic-view
    jDetalhes['fieldsDetalhes'] := {}
    aAdd(jDetalhes['fieldsDetalhes'], prepareField('c5_num'    , 'string', 'Pedido'            , 'DadosDatos'     ))
    aAdd(jDetalhes['fieldsDetalhes'], prepareField('c5_tipo'   , 'string', 'Tipo dode pedido'                  ))
    aAdd(jDetalhes['fieldsDetalhes'], prepareField('c5_nota'   , 'string', 'NotaFactura'                            ))
    aAdd(jDetalhes['fieldsDetalhes'], prepareField('c5_emissao', 'date'  , 'DataFecha'                            ))
    aAdd(jDetalhes['fieldsDetalhes'], prepareField('c5_vend1'  , 'string', 'Vendedor'                        ))
    aAdd(jDetalhes['fieldsDetalhes'], prepareField('c5_tabela' , 'string', 'TabelaLista de preçosprecios'                ))
    aAdd(jDetalhes['fieldsDetalhes'], prepareField('c5_cliente', 'string', 'Código', 'Comprador'             ))
    aAdd(jDetalhes['fieldsDetalhes'], prepareField('c5_lojacli', 'string', 'LojaTienda'                            ))
    aAdd(jDetalhes['fieldsDetalhes'], prepareField('c5_transp' , 'string', 'Código transportadoraCód Emp de Transporte', 'Entrega'))
    aAdd(jDetalhes['fieldsDetalhes'], prepareField('c5_frete'  , 'string', 'Valor dode freteflete'                  ))
    aAdd(jDetalhes['fieldsDetalhes'], prepareField('c5_seguro' , 'string', 'Valor dode seguro'                 ))
 
    //titulotítulo presentado apresentadoen nala abasolapa itensítems
    jDetalhes['tituloAbaItens'] := 'ProdutosProductos'
    //user funcion que vaidevolverá retornarla aquery queryde doslos itensítems
    jDetalhes['funcaoQueryItens'] := 'PCITEM'
    //aliasalias de doslos itensítems
    jDetalhes['tabelaItens'] := 'SC6'
    //lista de campos dodel browse, devedebe ser umun array de json comcon aslas propriedadespropiedades property, type ey label
    jDetalhes['fields'] := {}
    aAdd(jDetalhes['fields'], prepareField('c6_item'   , 'string'  , 'ItemÍtem'))
    aAdd(jDetalhes['fields'], prepareField('c6_produto', 'string'  , 'Código'))
    aAdd(jDetalhes['fields'], prepareField('c6_qtdven' , 'string'  , 'QuantidadeCantidad'))
    aAdd(jDetalhes['fields'], prepareField('c6_prcven' , 'currency', 'PreçoPrecio'))
    aAdd(jDetalhes['fields'], prepareField('c6_valor'  , 'currency', 'Valor'))
 
    jMenu['detalhes'] := jDetalhes
return jMenu
 
/*/{Protheus.doc} prepareField
    funcaofunción auxiliar para preparar aslas propriedadespropiedades dodel field
    @type function
    @param cCampo, character, campo
    @param cTipo, character, tipo (string, date, number)
    @param cTitulo, character, titulo
    @param cDivisor, character, titulo do divisor (utilizado en noslos detalhesdetalles)
    @return json, json de field
/*/
Static Function prepareField(cCampo as Character, cTipo as Character, cTitulo as Character, cDivisor as Character)
    Local jField  := JsonObject():new() as Json
    jField["property"] := cCampo
    jField["type"]     := cTipo
    jField["label"]    := cTitulo
    if !Empty(cDivisor)
        jField["divider"] := cDivisor
    endIf
Return jField
 
/*/{Protheus.doc} prepareStatus
    funcaofunción auxiliar para preparar aslas propiedades propriedadesde dala legendaleyenda
    @type function
    @param cValor, character, valor
    @param cCor, character, cor
    @param cTitulo, character, label
    @return variant, rconfiguracao de legenda
/*/
Static Function prepareStatus(cValor as Character, cCor as Character, cTitulo as Character)
    Local jStatus  := JsonObject():new() as Json
    jStatus["value"] := cValor
    jStatus["color"] := cCor
    jStatus["label"] := cTitulo
Return jStatus
Bloco de código
languagecpp
themeMidnight
firstline1
titleFUNCTION QUERY
linenumberstrue
collapsetrue
#Include 'Protheus.ch'  

/*/{Protheus.doc} PCQRY01
	Query para listar oslos itensítems dodel PE PCBROWSE
	@type function
	@return character, query
/*/
User function PCQRY01()
	local aSA1   := Paramixb[1] // Array de clientes {{"D MG    ", "000002", "02"}, {"D RJ    ", "000002", "12"}}
	local cLogin := Paramixb[2] // Login dodel portal 
	local cQuery := ""
	local cAlias := "SC5"
	local nCli  := 1
	local cOr := ""

	cQuery := " SELECT #QueryFields#  "
	cQuery += " FROM " + RetSqlName(cAlias) + " SC5 "
	cQuery += " WHERE SC5.D_E_L_E_T_ = ' ' AND "
	cQuery += "("

	// lógica para filtro utilizando oslos código de clientes
	for nCli := 1 to len(aSA1)
		if (nCli > 1)
			cOr := " OR "
		endIf
		cQuery +=  cOr + "(SC5.C5_CLIENTE = '" + aSA1[nCli][2] + "' AND SC5.C5_LOJACLI = '" + aSA1[nCli][3]+"')" 
	next
	cQuery += ")"
	cQuery += " #QueryWhere# "

Return cQuery

/*/{Protheus.doc} PCITEM
	Query para listar oslos detalhes dodel itemítem dodel PE PCBROWSE
	@type function
	@return character, query
/*/
user function PCITEM()
    local aSA1    := Paramixb[1] // Clientes
    local cUser   := Paramixb[2] // Login dodel portal
    local jFilter := Paramixb[3] // LinhaLínea selecionadaseleccionada para oslos detalhesdetalles
    local cAlias := "SC6"

    cQuery := " SELECT #QueryFields#  "
    cQuery += " FROM " + RetSqlName(cAlias) + " " + cAlias
    cQuery += " WHERE  " + cAlias + ".D_E_L_E_T_ = ' ' AND "
    cQuery += " C6_FILIAL = '" + jFilter['C5_FILIAL'] + "' AND "
    cQuery += " C6_NUM = '" + jFilter['C5_NUM'] + "'"
    cQuery += " #QueryWhere# "
return cQuery