Histórico da Página
...
IF lr_operand_fatur.tip_processo = "ARMAZENAGEM" THEN
IF lr_operand_fatur.tip_operando_faturamento = 99 THEN #Customizado pelo Usuário
CASE lr_operand_fatur.forma_cobranca
WHEN "S"
LET l_select_stmt = "SELECT SUM(palete.qtd_saldo)"
WHEN "P"
LET l_select_stmt = "SELECT MAX(palete.qtd_saldo)"
WHEN "M"
LET l_select_stmt = "SELECT AVG(palete.qtd_saldo)"
END CASE
- Montar cada estrutura de separadamente, em sua respectiva variável:
...
LET l_where_stmt = " WHERE b.empresa = palete.empresa ",
" AND b.data_posicao_estoque = palete.data_posicao_estoque ",
" AND b.palete = palete.palete ",
" AND EXISTS(SELECT DISTINCT 1 ",
" FROM wms_armaz_item_", l_depositante CLIPPED, " c",
" WHERE c.empresa = b.empresa ",
" AND c.data_posicao_estoque = b.data_posicao_estoque ",
" AND c.item = b.item ",
" AND c.sit_registro <> 'C' "
- E chamar a função Log_setVar(), passando os parâmetros, como cmd_select, cmd_from e cmd_where, respectivamente com suas variáveis, para que seja efetuado devido carregamento, e então o Return True indicará para a aplicação que esta poderá seguir com o prepare execute do comando SQL.
CALL LOG_setVar("cmd_select",l_select_stmt)
CALL LOG_setVar("cmd_from", l_from_stmt)
CALL LOG_setVar("cmd_where", l_where_stmt)
RETURN TRUE
END FUNCTION
3.3. Tabelas e Alias Padrões
Para facilitar o entendimento do SQL foi assumido por padrão que o ALIAS "m" indica a tabela mestre e "d" a tabela detalhe. Este padrão deverá ser seguido.
Montagem do SELECT
- Processo: "RECEBIMENTO"
LET l_from_stmt = " FROM wms_rec_mestre_", l_depositante CLIPPED, " m" - Processo: "EXPEDICAO"
LET l_from_stmt = " FROM wms_exp_mestre_", l_depositante CLIPPED, " m" - Processo: "ARMAZENAGEM"
LET l_from_stmt = " FROM wms_armaz_end_", l_depositante CLIPPED, " m" - Processo: "SEGURO"
LET l_from_stmt = " FROM wms_seg_detail_", l_depositante CLIPPED, " d" - Processo: "ATRIBUTO"
LET l_from_stmt = " FROM wms_atr_mestre_", l_depositante CLIPPED, " m"
HTML |
---|
<!-- esconder o menu --> <style> div.theme-default .ia-splitter #main { margin-left: 0px; } .ia-fixed-sidebar, .ia-splitter-left { display: none; } #main { padding-left: 10px; padding-right: 10px; overflow-x: hidden; } .aui-header-primary .aui-nav, .aui-page-panel { margin-left: 0px !important; } .aui-header-primary .aui-nav { margin-left: 0px !important; } </style> |