Árvore de páginas

Versões comparadas

Chave

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

...

Produto:

Solucoes_totvs
SolucaoTOTVS Logística WMS

Solucoes_totvs_cross
SolucaoCross

Solucoes_totvs_parceiros
SolucaoParceiros

Solucoes_totvs_parceirosexptotvs
SolucaoParcsExpsTOTVS

Linha de Produto:

Linhas_totvs
LinhaLinha Protheus

Segmento:

Segmentos_totvs
SegmentoLogística

Módulo:SIGAWMS - Gestão de Armazenagem
Função:WMSA560 WMSA150 - Bloqueio Execução de Saldo WMSServiços
País:Todos Países
Ticket:-
Requisito/Story/Issue (informe o requisito relacionado) :-

...

Este Ponto de Entrada permite incluir um filtro personalizado na tela inicial e ao pressionar a tecla F12 na rotina WMSA560 (Bloqueio de Saldo WMS)manipular as opções do menu Ações Relacionadas, da rotina WMSA150 (Execução de Serviços), tanto na inclusão como na exclusão de opções.

03. LOCALIZAÇÃO

Localizado antes da abertura da tela, na função principal WMSA560na função MenuDef da rotina WMSA150, após a inclusão das ações padrões.

04. PARÂMETROS

...

NomeTipoDescriçãoObrigatório
aRotinaArrayContêm as opções de menu padrão.Sim

05. RETORNO

Uma literal, no padrão SQL, com o filtro personalizado.

NomeTipoDescriçãoObrigatório
aRotinaArrayContêm as opções de menu após a modificação com inclusão e/ou exclusão de itens.Sim

06. VERSÕES

12.1.27.

07. OBSERVAÇÃO

Não se aplicaTodos os parâmetros são recebidos na User Function via PARAMIXB, conforme consta em Execblock / Customização.

08. EXEMPLO

language
Bloco de código
cpptitleExemplo
linenumberstrue
collapsetrue
#INCLUDE "PROTHEUS.CH"
#INCLUDE "TOTVS.CH"
#INCLUDE "FWMVCDEF.CH"

User Function DL560FILDL150MNU()
	Local cRetaRotina := ParamIxb[1]
   //A função GetMark150 está contida no WMSA150 e retorna o conteúdo que identifica quais os registros selecionados na execução atual.
   ADD OPTION aRotina TITLE "Minha Ação" ACTION "U_MyAction(GetMark150())"
	cRet OPERATION 2 ACCESS 0
Return aRotina

//Função executada ao clicar no item de menu específico
User Function MyAction(cMark)
Local cAliasDCF := GetNextAlias()
Local cDocto := ''
Local cEnd := " EXISTS (SELECT 1 FROM " + RetSQLName("SA1") + " WHERE A1_COD = '000001')"
Return cRetReplicate(' ', TamSX3('DCF_ENDER')[1])
Local cQry := ''

   BeginSql Alias cAliasDCF
      SELECT DISTINCT DCF_DOCTO
        FROM %Table:DCF% DCF
        WHERE DCF.DCF_FILIAL = %xFilial:DCF%
        AND DCF_OK = %Exp:cMark%
        AND DCF.%NotDel%
   EndSql
   Do While !(cAliasDCF)->(Eof())
      cDocto += (cAliasDCF)->DCF_DOCTO + ', '
      (cAliasDCF)->(dbSkip())
   EndDo

   (cAliasDCF)->(dbCloseArea())

   If Len(cDocto) > 0
      cDocto := Substr(cDocto, 1, Len(cDocto) - 2)

	   //Monta tela para permitir alterar o endereço
      DEFINE MSDIALOG oDlg TITLE 'Confirme o endereço' From 0,0 To 160,500 of oMainWnd PIXEL
	   @ 25, 10 SAY 'Documentos: ' + cDocto OF oDlg PIXEL	   
      @ 40, 10 SAY 'Endereço: ' OF oDlg PIXEL
	   @ 40, 50 MSGET cEnd OF oDlg PIXEL
	   @ 60, 50 BUTTON oBtn PROMPT 'Confirmar' SIZE 040,012 OF oDlg PIXEL ACTION oDlg:End()
	   oDlg:lEscClose := .F.
	   ACTIVATE MSDIALOG oDlg CENTERED

      //Se informado endereço vazio nada é feito.
      //Do contrário, altera o endereço origem com o conteúdo informado em tela.
      If !Empty(cEnd)
         cQry := "UPDATE " + RetSqlName("DCF")
         cQry += " SET DCF_ENDER = '" + cEnd + "'"
         cQry += " WHERE DCF_FILIAL = '" + xFilial("DCF") + "'"
         cQry += " AND DCF_OK = '" + cMark + "'"
         cQry += " AND D_E_L_E_T_ = ''"
        	If TcSQLExec(cQry) < 0
            MsgAlert('Erro na atualização via PE: ' + CRLF + TcSQLError(), 'Erro') 
         EndIf
      EndIf
   EndIf

Return




Templatedocumentos


HTML
<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;
}

.aui-tabs.horizontal-tabs>.tabs-menu>.menu-item.active-tab a::after { 
	background: #FF9900; !important 
}

.menu-item.active-tab { 
	border-bottom: none !important; 
}

</style>