Árvore de páginas

Versões comparadas

Chave

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

...

Bloco de código
languagecpp
titleExemplo
linenumberstrue
collapsetrue
#include "protheus.ch"

// Este ponto de entrada grava um array do tipo Private que irá gravar os volumes da nota fiscal
User Function MTASF2()
Local aVolumes := QtdVolSF2()
   If Len(aVolumes) > 0
      // Caso queira limpar os volumes calculados no padrão
      // aEspVol := {}
      If Len(aEspVol) >= 1
         aEspVol[1] := aVolumes
      Else
         Aadd(aRet, aVolumes)
      EndIf
   EndIf
Return

// Este ponto de entrada deve gravar diretamente na tabela SF2 nos campos correspondentes
User Function SF2460I()
Local aVolumes := QtdVolSF2()
   If Len(aVolumes) > 0
      RecLock("SF2",.F.)
      SF2->F2_ESPECI1 := aVolumes[1]
      SF2->F2_VOLUME1 := aVolumes[2]
      SF2->(MsUnLock())
   EndIf
Return

Static Function QtdVolSF2()
Local aAreaAnt  := GetArea()
Local cQuery    := ""
Local cAliasQry := GetNextAlias()
Local aRet      := {}

   cQuery = "SELECT count(DISTINCT DCV_CODVOL) AS DCV_QTDVOL"
   cQuery+=  " FROM "+RetSqlName("SC9")+" SC9"
   cQuery+= " INNER JOIN "+RetSqlName("DCV")+" DCV"
   cQuery+=    " ON DCV.DCV_FILIAL = '"+xFilial("DCV")+"'"
   cQuery+=   " AND DCV.DCV_PEDIDO = SC9.C9_PEDIDO"
   cQuery+=   " AND DCV.DCV_ITEM = SC9.C9_ITEM"
   cQuery+=   " AND DCV.DCV_SEQUEN = SC9.C9_SEQUEN"
   cQuery+=   " AND DCV.DCV_PRDORI = SC9.C9_PRODUTO"
   cQuery+=   " AND DCV.D_E_L_E_T_ = ' '"
   cQuery+= " WHERE SC9.C9_FILIAL  = '"+xFilial("SC9")+"'"
   cQuery+=   " AND SC9.C9_NFISCAL = '"+SF2->F2_DOC+"'"
   cQuery+=   " AND SC9.C9_SERIENF = '"+SF2->F2_SERIE+"'"
   cQuery+=   " AND SC9.D_E_L_E_T_ = ' '"

   DbUseArea(.T.,'TOPCONN',TcGenQry(,,cQuery),cAliasQry,.F.,.T.)
   TcSetField(cAliasQry,'DCV_QTDVOL','N',10,0)
   If (cAliasQry)->(!Eof()).And. (cAliasQry)->DCV_QTDVOL > 0)
      // Supondo que a espécie seja caixas
      Aadd(aRet, {"CAIXA", (cAliasQry)->DCV_QTDVOL})
   EndIf
   (cAliasQry)->(dbCloseArea())
   RestArea(aAreaAnt)
Return aRet

03. ASSUNTOS RELACIONADOS

Pontos de Entrada

04. ANEXO - PDF


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>