[RESOLVIDO] RELATORIO DATASUL WM0540 EM EXCEL

Discussão em 'EMS , HCM e Totvs 11' iniciado por brunohrds27, Julho 11, 2014.

Status do Tópico:
Não esta aberto para novas mensagens.
  1. brunohrds27

    brunohrds27 Sem Pontuação

    Olá senhores,

    Estou me aventurando na linguagem de programação progress no datasul 206.

    Estou tentando tranformar um relatorio padrao do datasul no WMS WM0540 para excel.

    Nao estou conseguindo usar o for para amarrar a quantidade de embalgem do item.

    Voce poderia me auxiliar....

    Grato pela ajuda.


    Código:
    
    DEFINE VARIABLE h-acomp             AS HANDLE                                                                 NO-UNDO.
    DEFINE VARIABLE h-prog              AS HANDLE                                                                 NO-UNDO.
    
    DEF VAR Data-Inicial                AS DATE FORMAT "99/99/9999"   LABEL "Data Inicial"      INIT "01/01/2013" NO-UNDO.
    DEF VAR Data-Final                  AS DATE FORMAT "99/99/9999"   LABEL "Data Final"        INIT Today        NO-UNDO. 
    DEF VAR dt-data                     AS DATE                                                                   NO-UNDO.
    DEF VAR Item-Inicial                AS CHAR FORMAT "X(10)"        LABEL "Item Incial"       INIT "0000000000" NO-UNDO.
    DEF VAR Item-Final                  AS CHAR FORMAT "X(10)"        LABEL "Item Final "       INIT "9999999999" NO-UNDO.
    
    DEF VAR chExcelApplication          AS COM-HANDLE                                                             NO-UNDO.                               
    DEF VAR chWorkbook                  AS COM-HANDLE                                                             NO-UNDO.               
    DEF var chworksheet                 AS COM-HANDLE                                                             NO-UNDO.
    
    DEF VAR m-linha                     AS INTEGER                                                                NO-UNDO.
    DEF VAR i-cont                      AS INT                                                                    NO-UNDO.
    
    
    DEF VAR sit-doc                     AS CHAR FORMAT "X(10)"                                                    NO-UNDO.
    DEF VAR sit-mov                     AS CHAR FORMAT "X(10)"                                                    NO-UNDO.
    
    
    
    
    def var iNumReg         as integer  no-undo.
    
    
    
    
    /**************************************************************************************************************************************/
                               
                  
      FORM 
        Item-Inicial  AT ROW 2 COLUMNS 10 COLON-ALIGNED
        Item-Final    AT ROW 2 COLUMNS 40 COLON-ALIGNED
    
        WITH FRAME Consulta-Pedido   
         TITLE "Relatorio de Invent rio - WMS"
         THREE-D
         SIDE-LABEL
         VIEW-AS DIALOG-BOX
         SIZE 100 BY 5.
         UPDATE    Item-Inicial  Item-Final   
        WITH FRAME Consulta-Pedido.              
                   
    
    /**************************************************************************************************************************************/
    
    RUN utp/ut-acomp.p PERSISTENT SET h-acomp.
    RUN pi-inicializar IN h-acomp (INPUT "Processando Itens WMS ... Aguarde por Favor !!! ").
    RUN pi-inicializar in h-acomp (input return-value).      
               
         
    
    /**************************************************************************************************************************************/
    
    
    
    
    CREATE "Excel.Application" chExcelApplication.                                              
              
        ASSIGN  chWorkbook = chExcelApplication:Workbooks:ADD("")
                chExcelApplication:VISIBLE = FALSE.
                chWorkbook:Worksheets(1):Activate.             
                chworksheet=chexcelapplicAtion:sheets:item(1).
                chExcelApplication:ErrorCheckingOptions:BackgroundChecking = FALSE.
                chworksheet:name="Rel_Armazenar" NO-ERROR.                                                
                m-linha = 1.           
                   
        ASSIGN chWorkSheet:PageSetup:Orientation = 2.                                              
                                                                                                  
        ASSIGN  chworksheet:range("A1:N1"):font:bold = TRUE                                          
                chworksheet:range("A1:N1"):FONT:colorindex = 02                                   
                chWorkSheet:Range("A1:N1"):Interior:colorindex = 01  
               
            
        chworksheet:range("A" + STRING(m-linha)):VALUE = "wm-box-saldo.cod-item"  
        chworksheet:range("B" + STRING(m-linha)):VALUE = "wm-item.des-item"
        chworksheet:range("C" + STRING(m-linha)):VALUE = "wm-box-saldo.cod-lote"
        chworksheet:range("D" + STRING(m-linha)):VALUE = "wm-box.cod-bloco"
        chworksheet:range("E" + STRING(m-linha)):VALUE = "wm-box.cod-rua"
        chworksheet:range("F" + STRING(m-linha)):VALUE = "wm-box.cod-nivel"
        chworksheet:range("G" + STRING(m-linha)):VALUE = "wm-box.cod-coluna"
       
        chworksheet:range("H" + STRING(m-linha)):VALUE = "wm-saldo-estoque.dt-validade-lote"
              
    
        chworksheet:range("l" + STRING(m-linha)):VALUE = "wm-box-saldo.cod-embalagem"
        chworksheet:range("m" + STRING(m-linha)):VALUE = "wm-box-saldo.qtd-item"
        chworksheet:range("n" + STRING(m-linha)):VALUE = "wm-box-saldo.ind-status-saldo"
       
        chworksheet:range("M" + STRING(m-linha)):VALUE = "wm-saldo-estoque.qtd-atual"
        chworksheet:range("M" + STRING(m-linha)):VALUE = "wm-box-movto.qti-embalagem".
    
       
        m-linha = m-linha + 1.
    
    /**************************************************************************************************************************************/
    
    
       FOR EACH wm-item NO-LOCK 
          WHERE wm-item.cod-item >= Item-Inicial
            AND wm-item.cod-item  <= Item-Inicial.
    
    
       FOR EACH wm-box-saldo NO-LOCK 
          WHERE wm-box-saldo.cod-item = wm-item.cod-item.
         
       FOR EACH  wm-box-movto NO-LOCK
           WHERE   wm-box-movto.id-box = wm-box-saldo.id-box.
    
       FOR EACH wm-saldo-estoque NO-LOCK
          WHERE wm-saldo-estoque.cod-item = wm-item.cod-item.
            
          FOR EACH wm-box NO-LOCK 
          WHERE wm-box.id-box    =  wm-box-saldo.id-box.    
    
        RUN pi-acompanhar IN h-acomp(INPUT "Item:" + wm-box-saldo.cod-item).                                                       
        ASSIGN i-cont = i-cont + 1.
      
    /**************************************************************************************************************************************/   
          
         /*  CASE wm-docto.ind-sit-docto:
            
               WHEN 1 THEN ASSIGN sit-doc = "Implantado".
               WHEN 2 THEN ASSIGN sit-doc = "Concluido".  
               OTHERWISE   ASSIGN sit-doc = "".
             END CASE.  
               
             CASE wm-box-movto.ind-status-movto:
            
               WHEN 1 THEN ASSIGN sit-mov = "NaoInciado".
               WHEN 2 THEN ASSIGN sit-mov = "EmProcesso".  
               WHEN 3 THEN ASSIGN sit-mov = "Concluido".
               OTHERWISE   ASSIGN sit-mov = "".
             END CASE.   */
    /**************************************************************************************************************************************/ 
    
        ASSIGN
       
        chworksheet:range("A" + STRING(m-linha)):VALUE = wm-box-saldo.cod-item  
        chworksheet:range("B" + STRING(m-linha)):VALUE = wm-item.des-item
        chworksheet:range("C" + STRING(m-linha)):VALUE = wm-box-saldo.cod-lote
       
        chworksheet:range("D" + STRING(m-linha)):VALUE = wm-box.cod-bloco
        chworksheet:range("E" + STRING(m-linha)):VALUE = wm-box.cod-rua
        chworksheet:range("F" + STRING(m-linha)):VALUE = wm-box.cod-nivel
        chworksheet:range("G" + STRING(m-linha)):VALUE = wm-box.cod-coluna 
       
    
        chworksheet:range("H" + STRING(m-linha)):VALUE = wm-saldo-estoque.dt-validade-lote
    
        chworksheet:range("l" + STRING(m-linha)):VALUE = wm-box-saldo.cod-embalagem
        chworksheet:range("m" + STRING(m-linha)):VALUE = wm-box-saldo.qtd-item
        chworksheet:range("n" + STRING(m-linha)):VALUE = wm-box-saldo.ind-status-saldo
       
        chworksheet:range("M" + STRING(m-linha)):VALUE = wm-saldo-estoque.qtd-atual
        chworksheet:range("O" + STRING(m-linha)):VALUE = wm-box-movto.qti-embalagem.
    
       
     
           ASSIGN m-linha = m-linha + 1.
          
            END.
           
            END.
                           
            END.
        END.
      END. 
       
          
    /**************************************************************************************************************************************/                
      IF i-cont > 0 THEN DO.
     
                MESSAGE "Arquivo gerado com Sucesso!"           
                VIEW-AS ALERT-BOX INFO BUTTONS OK.               
    
            END.
    
            ELSE
                MESSAGE "N encontrado (Registros/Item) no periodo informado !"  
                VIEW-AS ALERT-BOX INFO BUTTONS OK.
    /**************************************************************************************************************************************/          
      
            ASSIGN
    
                chWorkSheet:PageSetup:RightFooter  = "&d/&t" + "-PAGINA:" + "&P/&N".            
                chworksheet:range("A2:Z2"):EntireColumn:AutoFit.                                        
                chWorkSheet:PageSetup:PrintTitleRows  = "$1:$1".                             
                chWorkSheet:PageSetup:Zoom  = 80. 
                chExcelApplication:Range("A1"):select.
                chExcelApplication:Visible = true.                                                    
    
    /**************************************************************************************************************************************/                                                                     
    RELEASE OBJECT chworksheet              NO-ERROR.
    RELEASE OBJECT chExcelApplication       NO-ERROR.
    RELEASE OBJECT chWorkbook               NO-ERROR. 
    /**************************************************************************************************************************************/
    
    
    FINALLY:
    IF VALID-HANDLE(h-acomp) THEN DO:
    run pi-finalizar in h-acomp.
    RETURN "OK":U.
    END.
    END.
    
    
    
    
Status do Tópico:
Não esta aberto para novas mensagens.

Compartilhe esta Página