Erro estranho.

Discussão em 'Progress 4GL' iniciado por demetriusbarbosa, Junho 14, 2010.

  1. Rogerio

    Rogerio Moderator Moderador Equipe de Suporte

    Isso mesmo, coloque em anexo seu arquivo .w
  2. demetriusbarbosa

    demetriusbarbosa Membro Participativo

    Código:
    
    &ANALYZE-SUSPEND _VERSION-NUMBER UIB_v9r12 GUI
    &ANALYZE-RESUME
    /* Connected Databases 
              qaddb            PROGRESS
    */
    &Scoped-define WINDOW-NAME C-Monitor
    &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _DEFINITIONS C-Monitor 
    /*------------------------------------------------------------------------
    
      File: 
    
      Description: 
    
      Input Parameters:
          <none>
    
      Output Parameters:
          <none>
    
      Author: 
    
      Created: 
    
    ------------------------------------------------------------------------*/
    /*          This .W file was created with the Progress AppBuilder.      */
    /*----------------------------------------------------------------------*/
    
    /* Create an unnamed pool to store all the widgets created 
         by this procedure. This is a good default which assures
         that this procedure's triggers and internal procedures 
         will execute in this procedure's storage, and that proper
         cleanup will occur on deletion of the procedure. */
    
    CREATE WIDGET-POOL.
    
    /* ***************************  Definitions  ************************** */
    
    /* Parameters Definitions ---                                           */
    
    DEF INPUT PARAMETER vParent    AS HANDLE.
    DEF INPUT PARAMETER supervisor AS CHAR FORMAT "X(10)".
    
    DEF NEW SHARED TEMP-TABLE arquivos
        FIELD tmpOperador     AS CHAR FORMAT "999"
        FIELD tmpPedido       AS CHAR FORMAT "x(08)"
        FIELD tmpVolume       AS CHAR FORMAT "x(03)"
        FIELD tmpExtensao     AS CHAR FORMAT "x(03)"
        FIELD tmpQtdeSku      AS INT  FORMAT ">>>9"
        FIELD tmpQtdeUnit     AS INT  FORMAT ">>>9"
        FIELD tmpPrioridade   AS CHAR FORMAT "X(06)"
        FIELD tmpComplexidade AS CHAR FORMAT "X(06)"
        FIELD tmpStatus       AS CHAR FORMAT "X(10)"
        FIELD tmpNomOperador  AS CHAR FORMAT "X(20)"
        INDEX id_arquivos tmpPedido tmpVolume.
    
    DEF NEW SHARED TEMP-TABLE contPedidos
        FIELD contPedido   AS CHAR FORMAT "X(08)"
        FIELD contVolumes  AS INT FORMAT ">>>9"
        FIELD contSKUS     AS INT FORMAT ">>>9"
        FIELD contUnidades AS INT FORMAT ">>>9"
        INDEX id_contPedidos contPedido.
    
    /* Local Variable Definitions ---                                       */
        DEF VAR statusArq  AS CHAR FORMAT "X(10)".
        DEF VAR codColetor AS CHAR FORMAT "999".
        DEF VAR ttPedidos  AS INT  FORMAT "9999" INIT 0.
        DEF VAR ttVolumes  AS INT  FORMAT "9999" INIT 0.
        DEF VAR ttSkus     AS INT  FORMAT "9999" INIT 0.
        DEF VAR ttUnidade  AS INT  FORMAT "9999" INIT 0.
    
    /* _UIB-CODE-BLOCK-END */
    &ANALYZE-RESUME
    
    
    &ANALYZE-SUSPEND _UIB-PREPROCESSOR-BLOCK 
    
    /* ********************  Preprocessor Definitions  ******************** */
    
    &Scoped-define PROCEDURE-TYPE Window
    &Scoped-define DB-AWARE no
    
    /* Name of first Frame and/or Browse and/or first Query                 */
    &Scoped-define FRAME-NAME DEFAULT-FRAME
    &Scoped-define BROWSE-NAME listaPedidos
    
    /* Internal Tables (found by Frame, Query & Browse Queries)             */
    &Scoped-define INTERNAL-TABLES arquivos
    
    /* Definitions for BROWSE listaPedidos                                  */
    &Scoped-define FIELDS-IN-QUERY-listaPedidos tmpPedido tmpVolume tmpQtdeSku tmpQtdeUnit tmpPrioridade tmpComplexidade tmpStatus tmpNomOperador   
    &Scoped-define ENABLED-FIELDS-IN-QUERY-listaPedidos   
    &Scoped-define SELF-NAME listaPedidos
    &Scoped-define QUERY-STRING-listaPedidos FOR EACH arquivos
    &Scoped-define OPEN-QUERY-listaPedidos OPEN QUERY {&SELF-NAME} FOR EACH arquivos.
    &Scoped-define TABLES-IN-QUERY-listaPedidos arquivos
    &Scoped-define FIRST-TABLE-IN-QUERY-listaPedidos arquivos
    
    
    /* Definitions for FRAME DEFAULT-FRAME                                  */
    &Scoped-define OPEN-BROWSERS-IN-QUERY-DEFAULT-FRAME ~
        ~{&OPEN-QUERY-listaPedidos}
    
    /* Standard List Definitions                                            */
    &Scoped-Define ENABLED-OBJECTS detalhar detVolPedido detNumPedido ~
    listaPedidos CBPrioridade CBComplexidade BTGravar CBFuncionario CBStatus ~
    Usuario ultimaAtualizacao data numPed numVol TPedidos TVolumes TSkus TUnid ~
    RECT-1 RECT-10 RECT-2 RECT-3 RECT-4 RECT-5 RECT-6 RECT-7 RECT-8 RECT-9 
    &Scoped-Define DISPLAYED-OBJECTS detVolPedido detNumPedido CBPrioridade ~
    CBComplexidade CBFuncionario CBStatus Usuario ultimaAtualizacao data numPed ~
    numVol TPedidos TVolumes TSkus TUnid 
    
    /* Custom List Definitions                                              */
    /* List-1,List-2,List-3,List-4,List-5,List-6                            */
    
    /* _UIB-PREPROCESSOR-BLOCK-END */
    &ANALYZE-RESUME
    
    
    
    /* ***********************  Control Definitions  ********************** */
    
    /* Define the widget handle for the window                              */
    DEFINE VAR C-Monitor AS WIDGET-HANDLE NO-UNDO.
    
    /* Definitions of handles for OCX Containers                            */
    DEFINE VARIABLE CtrlFrame AS WIDGET-HANDLE NO-UNDO.
    DEFINE VARIABLE chCtrlFrame AS COMPONENT-HANDLE NO-UNDO.
    
    /* Definitions of the field level widgets                               */
    DEFINE BUTTON BTGravar 
         LABEL "Gravar" 
         SIZE 15 BY 1.14.
    
    DEFINE BUTTON detalhar 
         LABEL "Detalhar" 
         SIZE 15 BY 1.14.
    
    DEFINE VARIABLE CBComplexidade AS CHARACTER FORMAT "X(256)":U 
         LABEL "Complexidade" 
         VIEW-AS COMBO-BOX INNER-LINES 5
         LIST-ITEMS "Alta","Baixa" 
         DROP-DOWN-LIST
         SIZE 16 BY 1 NO-UNDO.
    
    DEFINE VARIABLE CBFuncionario AS CHARACTER FORMAT "X(256)":U 
         LABEL "Funcionário" 
         VIEW-AS COMBO-BOX INNER-LINES 5
         DROP-DOWN-LIST
         SIZE 43.2 BY 1 NO-UNDO.
    
    DEFINE VARIABLE CBPrioridade AS CHARACTER FORMAT "X(256)":U 
         LABEL "Prioridade" 
         VIEW-AS COMBO-BOX INNER-LINES 5
         LIST-ITEMS "Alta","Normal" 
         DROP-DOWN-LIST
         SIZE 16 BY 1 NO-UNDO.
    
    DEFINE VARIABLE CBStatus AS CHARACTER FORMAT "X(256)":U 
         LABEL "Status" 
         VIEW-AS COMBO-BOX INNER-LINES 5
         LIST-ITEMS "","Cancelado" 
         DROP-DOWN-LIST
         SIZE 16 BY 1 NO-UNDO.
    
    DEFINE VARIABLE data AS DATE FORMAT "99/99/9999":U 
         LABEL "Data" 
          VIEW-AS TEXT 
         SIZE 14 BY .62 NO-UNDO.
    
    DEFINE VARIABLE detNumPedido AS INTEGER FORMAT "99999999":U INITIAL 0 
         LABEL "Pedido Nº" 
         VIEW-AS FILL-IN 
         SIZE 14 BY 1 NO-UNDO.
    
    DEFINE VARIABLE detVolPedido AS INTEGER FORMAT "999":U INITIAL 0 
         LABEL "Volume" 
         VIEW-AS FILL-IN 
         SIZE 14 BY 1 NO-UNDO.
    
    DEFINE VARIABLE numPed AS CHARACTER FORMAT "X(256)":U 
         LABEL "Pedido" 
          VIEW-AS TEXT 
         SIZE 14 BY .62 NO-UNDO.
    
    DEFINE VARIABLE numVol AS CHARACTER FORMAT "X(256)":U 
         LABEL "Volume" 
          VIEW-AS TEXT 
         SIZE 14 BY .62 NO-UNDO.
    
    DEFINE VARIABLE TPedidos AS CHARACTER FORMAT "X(256)":U 
         LABEL "Total de Pedidos" 
          VIEW-AS TEXT 
         SIZE 11.4 BY .62 NO-UNDO.
    
    DEFINE VARIABLE TSkus AS CHARACTER FORMAT "X(256)":U 
         LABEL "Total de SKU's" 
          VIEW-AS TEXT 
         SIZE 12.6 BY .62 NO-UNDO.
    
    DEFINE VARIABLE TUnid AS CHARACTER FORMAT "X(256)":U 
         LABEL "Total de Unid." 
          VIEW-AS TEXT 
         SIZE 15.4 BY .62 NO-UNDO.
    
    DEFINE VARIABLE TVolumes AS CHARACTER FORMAT "X(256)":U 
         LABEL "Total de Volumes" 
          VIEW-AS TEXT 
         SIZE 12.6 BY .62 NO-UNDO.
    
    DEFINE VARIABLE ultimaAtualizacao AS CHARACTER FORMAT "X(256)":U 
         LABEL "Última Atualização" 
          VIEW-AS TEXT 
         SIZE 31.6 BY .62 NO-UNDO.
    
    DEFINE VARIABLE Usuario AS CHARACTER FORMAT "X(256)":U 
         LABEL "Usuário" 
          VIEW-AS TEXT 
         SIZE 36.6 BY .62 NO-UNDO.
    
    DEFINE RECTANGLE RECT-1
         EDGE-PIXELS 2 GRAPHIC-EDGE  NO-FILL 
         SIZE 128 BY 1.67
         BGCOLOR 7 FGCOLOR 7 .
    
    DEFINE RECTANGLE RECT-10
         EDGE-PIXELS 4 GRAPHIC-EDGE  NO-FILL 
         SIZE 130 BY 25.
    
    DEFINE RECTANGLE RECT-2
         EDGE-PIXELS 2 GRAPHIC-EDGE  NO-FILL 
         SIZE 128 BY 2.14.
    
    DEFINE RECTANGLE RECT-3
         EDGE-PIXELS 2 GRAPHIC-EDGE  NO-FILL 
         SIZE 128 BY 4.62.
    
    DEFINE RECTANGLE RECT-4
         EDGE-PIXELS 2 GRAPHIC-EDGE  NO-FILL 
         SIZE 128 BY 1.91
         BGCOLOR 7 .
    
    DEFINE RECTANGLE RECT-5
         EDGE-PIXELS 2 GRAPHIC-EDGE  NO-FILL 
         SIZE .2 BY 1.19.
    
    DEFINE RECTANGLE RECT-6
         EDGE-PIXELS 2 GRAPHIC-EDGE  NO-FILL 
         SIZE .2 BY 1.19.
    
    DEFINE RECTANGLE RECT-7
         EDGE-PIXELS 2 GRAPHIC-EDGE  NO-FILL 
         SIZE .2 BY 1.19.
    
    DEFINE RECTANGLE RECT-8
         EDGE-PIXELS 2 GRAPHIC-EDGE  NO-FILL 
         SIZE .2 BY 1.19.
    
    DEFINE RECTANGLE RECT-9
         EDGE-PIXELS 2 GRAPHIC-EDGE  NO-FILL 
         SIZE .2 BY 1.19.
    
    /* Query definitions                                                    */
    &ANALYZE-SUSPEND
    DEFINE QUERY listaPedidos FOR 
          arquivos SCROLLING.
    &ANALYZE-RESUME
    
    /* Browse definitions                                                   */
    DEFINE BROWSE listaPedidos
    &ANALYZE-SUSPEND _UIB-CODE-BLOCK _DISPLAY-FIELDS listaPedidos C-Monitor _FREEFORM
      QUERY listaPedidos DISPLAY
          tmpPedido       COLUMN-LABEL "Pedido"       FORMAT "X(10)" 
    tmpVolume       COLUMN-LABEL "Volume"       FORMAT "X(05)"
    tmpQtdeSku      COLUMN-LABEL "Qtde. Sku"    FORMAT ">>>9"
    tmpQtdeUnit     COLUMN-LABEL "Qtde. Unit."  FORMAT ">>>9"
    tmpPrioridade   COLUMN-LABEL "Prioridade"   FORMAT "X(10)"
    tmpComplexidade COLUMN-LABEL "Complexidade" FORMAT "X(10)"
    tmpStatus       COLUMN-LABEL "Status"       FORMAT "X(15)"
    tmpNomOperador  COLUMN-LABEL "Funcionário"  FORMAT "X(20)"
    /* _UIB-CODE-BLOCK-END */
    &ANALYZE-RESUME
        WITH NO-ROW-MARKERS SEPARATORS SIZE 127.8 BY 12.71
             TITLE "Pedidos" ROW-HEIGHT-CHARS .7 EXPANDABLE.
    
    
    /* ************************  Frame Definitions  *********************** */
    
    DEFINE FRAME DEFAULT-FRAME
         detalhar AT ROW 3.71 COL 106
         detVolPedido AT ROW 3.76 COL 57.6 COLON-ALIGNED
         detNumPedido AT ROW 3.81 COL 19 COLON-ALIGNED
         listaPedidos AT ROW 5.52 COL 2.2
         CBPrioridade AT ROW 19.57 COL 71.6 COLON-ALIGNED
         CBComplexidade AT ROW 19.57 COL 109.2 COLON-ALIGNED
         BTGravar AT ROW 21.33 COL 103.8
         CBFuncionario AT ROW 21.43 COL 44.8 COLON-ALIGNED
         CBStatus AT ROW 21.48 COL 9 COLON-ALIGNED
         Usuario AT ROW 1.71 COL 37.4 COLON-ALIGNED
         ultimaAtualizacao AT ROW 1.71 COL 95.4 COLON-ALIGNED
         data AT ROW 1.76 COL 7.4 COLON-ALIGNED
         numPed AT ROW 19.71 COL 9.4 COLON-ALIGNED
         numVol AT ROW 19.76 COL 40.8 COLON-ALIGNED
         TPedidos AT ROW 24.48 COL 18.6 COLON-ALIGNED
         TVolumes AT ROW 24.52 COL 50 COLON-ALIGNED
         TSkus AT ROW 24.52 COL 80.8 COLON-ALIGNED
         TUnid AT ROW 24.52 COL 111 COLON-ALIGNED
         RECT-1 AT ROW 1.24 COL 2
         RECT-10 AT ROW 1 COL 1
         RECT-2 AT ROW 3.24 COL 2
         RECT-3 AT ROW 18.76 COL 2
         RECT-4 AT ROW 23.86 COL 2
         RECT-5 AT ROW 1.43 COL 29.4
         RECT-6 AT ROW 1.43 COL 77.2
         RECT-7 AT ROW 24.19 COL 33
         RECT-8 AT ROW 24.19 COL 66.2
         RECT-9 AT ROW 24.19 COL 97.2
         "Detalhes do Pedido" VIEW-AS TEXT
              SIZE 19 BY .62 AT ROW 2.95 COL 3
         "Atribuição do Pedido" VIEW-AS TEXT
              SIZE 20 BY .62 AT ROW 18.48 COL 3.6
         "Informações Gerais" VIEW-AS TEXT
              SIZE 19 BY .62 AT ROW 23.57 COL 3.6
        WITH 1 DOWN NO-BOX KEEP-TAB-ORDER OVERLAY 
             SIDE-LABELS NO-UNDERLINE THREE-D 
             AT COL 1 ROW 1
             SIZE 139.2 BY 28.91.
    
    
    /* *********************** Procedure Settings ************************ */
    
    &ANALYZE-SUSPEND _PROCEDURE-SETTINGS
    /* Settings for THIS-PROCEDURE
       Type: Window
       Allow: Basic,Browse,DB-Fields,Window,Query
       Other Settings: COMPILE
     */
    &ANALYZE-RESUME _END-PROCEDURE-SETTINGS
    
    /* *************************  Create Window  ************************** */
    
    &ANALYZE-SUSPEND _CREATE-WINDOW
    IF SESSION:DISPLAY-TYPE = "GUI":U THEN
      CREATE WINDOW C-Monitor ASSIGN
             HIDDEN             = YES
             TITLE              = "<insert window title>"
             HEIGHT             = 28.91
             WIDTH              = 130.8
             MAX-HEIGHT         = 30.19
             MAX-WIDTH          = 130.8
             VIRTUAL-HEIGHT     = 30.19
             VIRTUAL-WIDTH      = 130.8
             RESIZE             = yes
             SCROLL-BARS        = no
             STATUS-AREA        = no
             BGCOLOR            = ?
             FGCOLOR            = ?
             KEEP-FRAME-Z-ORDER = yes
             THREE-D            = yes
             MESSAGE-AREA       = no
             SENSITIVE          = yes.
    ELSE {&WINDOW-NAME} = CURRENT-WINDOW.
    /* END WINDOW DEFINITION                                                */
    &ANALYZE-RESUME
    
    
    
    /* ***********  Runtime Attributes and AppBuilder Settings  *********** */
    
    &ANALYZE-SUSPEND _RUN-TIME-ATTRIBUTES
    /* SETTINGS FOR WINDOW C-Monitor
      VISIBLE,,RUN-PERSISTENT                                               */
    /* SETTINGS FOR FRAME DEFAULT-FRAME
                                                                            */
    /* BROWSE-TAB listaPedidos detNumPedido DEFAULT-FRAME */
    IF SESSION:DISPLAY-TYPE = "GUI":U AND VALID-HANDLE(C-Monitor)
    THEN C-Monitor:HIDDEN = no.
    
    /* _RUN-TIME-ATTRIBUTES-END */
    &ANALYZE-RESUME
    
    
    /* Setting information for Queries and Browse Widgets fields            */
    
    &ANALYZE-SUSPEND _QUERY-BLOCK BROWSE listaPedidos
    /* Query rebuild information for BROWSE listaPedidos
         _START_FREEFORM
    OPEN QUERY {&SELF-NAME} FOR EACH arquivos.
         _END_FREEFORM
         _Query            is OPENED
    */  /* BROWSE listaPedidos */
    &ANALYZE-RESUME
    
     
    
    
    /* **********************  Create OCX Containers  ********************** */
    
    &ANALYZE-SUSPEND _CREATE-DYNAMIC
    
    &IF "{&OPSYS}" = "WIN32":U AND "{&WINDOW-SYSTEM}" NE "TTY":U &THEN
    
    CREATE CONTROL-FRAME CtrlFrame ASSIGN
           FRAME           = FRAME DEFAULT-FRAME:HANDLE
           ROW             = 25.29
           COLUMN          = 48
           HEIGHT          = 2.95
           WIDTH           = 13
           HIDDEN          = yes
           SENSITIVE       = yes.
          CtrlFrame:NAME = "CtrlFrame":U .
    /* CtrlFrame OCXINFO:CREATE-CONTROL from: {F0B88A90-F5DA-11CF-B545-0020AF6ED35A} type: PSTimer */
          CtrlFrame:MOVE-AFTER(CBStatus:HANDLE IN FRAME DEFAULT-FRAME).
    
    &ENDIF
    
    &ANALYZE-RESUME /* End of _CREATE-DYNAMIC */
    
    
    /* ************************  Control Triggers  ************************ */
    
    &Scoped-define SELF-NAME C-Monitor
    &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL C-Monitor C-Monitor
    ON END-ERROR OF C-Monitor /* <insert window title> */
    OR ENDKEY OF {&WINDOW-NAME} ANYWHERE DO:
      /* This case occurs when the user presses the "Esc" key.
         In a persistently run window, just ignore this.  If we did not, the
         application would exit. */
        DELETE WIDGET C-Monitor.
        QUIT.
    /*   IF THIS-PROCEDURE:PERSISTENT THEN RETURN NO-APPLY. */
    
    END.
    
    /* _UIB-CODE-BLOCK-END */
    &ANALYZE-RESUME
    
    
    &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL C-Monitor C-Monitor
    ON WINDOW-CLOSE OF C-Monitor /* <insert window title> */
    DO:
      /* This event will close the window and terminate the procedure.  */
        DELETE WIDGET C-Monitor.
        QUIT.
        RETURN NO-APPLY.
    END.
    
    /* _UIB-CODE-BLOCK-END */
    &ANALYZE-RESUME
    
    
    &Scoped-define SELF-NAME BTGravar
    &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL BTGravar C-Monitor
    ON CHOOSE OF BTGravar IN FRAME DEFAULT-FRAME /* Gravar */
    DO:
        DEF VAR prioridade   AS CHAR FORMAT "X(01)" INIT "N".
        DEF VAR complexidade AS CHAR FORMAT "X(01)" INIT "B".
        DEF VAR extensao     AS CHAR FORMAT "X(04)" INIT "".
        DEF VAR arquivo      AS CHAR FORMAT "X(20)" INIT "".
        DEF VAR novaExtensao AS CHAR FORMAT "X(04)" INIT "".
        DEF VAR Confirma     AS LOGICAL INIT NO.
    
        IF  cbComplexidade:SCREEN-VALUE IN FRAME {&FRAME-NAME}  = ? OR
            cbPrioridade:SCREEN-VALUE IN FRAME {&FRAME-NAME}    = ? OR
            cbFuncionario:SCREEN-VALUE IN FRAME {&FRAME-NAME}   = ? OR 
            cbFuncionario:SCREEN-VALUE IN FRAME {&FRAME-NAME}   = "" THEN DO:
                MESSAGE "Favor preencher os campos." VIEW-AS ALERT-BOX ERROR.
                APPLY "entry" TO cbComplexidade IN FRAME {&FRAME-NAME}.
        END.
        ELSE DO:
            FIND FIRST bc_Coletores WHERE bc_Coletores.nome_funcionario = cbFuncionario:SCREEN-VALUE IN FRAME {&FRAME-NAME} NO-LOCK NO-ERROR.
                IF NOT AVAIL bc_Coletores THEN DO:
                    MESSAGE "Funcionario não encontrado." VIEW-AS ALERT-BOX ERROR.
                    APPLY "entry" TO cbFuncionario IN FRAME {&FRAME-NAME}.
                END.
                ELSE DO:
                    CASE statusArq:
                        WHEN "aguardando" THEN ASSIGN extensao = ".aco".
                        WHEN "Coleta"     THEN ASSIGN extensao = ".col".
                        WHEN "Pausado"    THEN ASSIGN extensao = ".pau".
                        WHEN "Devolvido"  THEN ASSIGN extensao = ".dev".
                        OTHERWISE              ASSIGN extensao = ".can".
                    END CASE.
    
                    IF CBStatus:SCREEN-VALUE IN FRAME {&FRAME-NAME} = "Cancelado" THEN DO:
                        MESSAGE "Confirma o Cancelamento da Coleta?" VIEW-AS ALERT-BOX QUESTION BUTTONS YES-NO TITLE "Cancela Coleta"
                            UPDATE Confirma.
                    END.
    
                    IF Confirma THEN
                        novaExtensao = ".can".
                    ELSE DO:
                        novaExtensao = extensao.
                        cbStatus:SCREEN-VALUE IN FRAME {&FRAME-NAME} = ?.
                    END.
    
    
    
                    ASSIGN arquivos.tmpOperador     = STRING(bc_Coletores.id,"999")
                           arquivos.tmpNomOperador  = cbFuncionario:SCREEN-VALUE IN FRAME {&FRAME-NAME}
                           arquivos.tmpPrioridade   = cbPrioridade:SCREEN-VALUE IN FRAME {&FRAME-NAME}
                           arquivos.tmpComplexidade = cbComplexidade:SCREEN-VALUE IN FRAME {&FRAME-NAME}
                           arquivo                  = codColetor                                 +
                                                      numPed:SCREEN-VALUE IN FRAME {&FRAME-NAME} +
                                                      numVol:SCREEN-VALUE IN FRAME {&FRAME-NAME} +
                                                      extensao.
    
                    IF cbPrioridade:SCREEN-VALUE IN FRAME {&FRAME-NAME}   = "Alta" THEN prioridade   = "A".
                    IF cbComplexidade:SCREEN-VALUE IN FRAME {&FRAME-NAME} = "Alta" THEN complexidade = "A".
    
                    RUN yyAlteraArquivo.r (INPUT prioridade,
                                           INPUT complexidade,
                                           INPUT STRING(bc_Coletores.id,"999"),
                                           INPUT arquivo,
                                           INPUT numPed:SCREEN-VALUE IN FRAME {&FRAME-NAME},
                                           INPUT numVol:SCREEN-VALUE IN FRAME {&FRAME-NAME},
                                           INPUT novaExtensao,
                                           INPUT usuario:SCREEN-VALUE IN FRAME {&FRAME-NAME}).
                END.
        END.
    
        CLOSE QUERY listaPedidos.
        OPEN QUERY listaPedidos FOR EACH arquivos.
    /*     cbfuncionario:SCREEN-VALUE IN FRAME {&FRAME-NAME} = ?. */
    END.
    
    /* _UIB-CODE-BLOCK-END */
    &ANALYZE-RESUME
    
    
    &Scoped-define SELF-NAME CtrlFrame
    &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL CtrlFrame C-Monitor OCX.Tick
    PROCEDURE CtrlFrame.PSTimer.Tick .
    /*------------------------------------------------------------------------------
      Purpose:     
      Parameters:  None required for OCX.
      Notes:       
    ------------------------------------------------------------------------------*/
    
    /* ASSIGN data:SCREEN-VALUE IN FRAME {&FRAME-NAME} = STRING(TODAY). */
    
    MESSAGE "teste" VIEW-AS ALERT-BOX.
    
    END PROCEDURE.
    
    /* _UIB-CODE-BLOCK-END */
    &ANALYZE-RESUME
    
    
    &Scoped-define SELF-NAME detalhar
    &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL detalhar C-Monitor
    ON CHOOSE OF detalhar IN FRAME DEFAULT-FRAME /* Detalhar */
    DO:
      IF detNumpedido:SCREEN-VALUE IN FRAME {&FRAME-NAME} = "0" OR 
         detVolpedido:SCREEN-VALUE IN FRAME {&FRAME-NAME} = "0" THEN DO:
          MESSAGE "Número de Pedido e Volume obrigatórios" VIEW-AS ALERT-BOX ERROR.
          APPLY "entry" TO detNumPedido IN FRAME {&FRAME-NAME}.
      END.
      ELSE DO:
          RUN Z:\Barcode\Programas\yyDetpedido.p (INPUT detNumpedido:SCREEN-VALUE IN FRAME {&FRAME-NAME},
                                                  INPUT detVolpedido:SCREEN-VALUE IN FRAME {&FRAME-NAME}).
    
          ASSIGN
            detNumpedido:SCREEN-VALUE IN FRAME {&FRAME-NAME} = "0" 
            detVolpedido:SCREEN-VALUE IN FRAME {&FRAME-NAME} = "0".
      END.
    END.
    
    /* _UIB-CODE-BLOCK-END */
    &ANALYZE-RESUME
    
    
    &Scoped-define BROWSE-NAME listaPedidos
    &Scoped-define SELF-NAME listaPedidos
    &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL listaPedidos C-Monitor
    ON ROW-DISPLAY OF listaPedidos IN FRAME DEFAULT-FRAME /* Pedidos */
    DO:
    /* CASE arquivos.tmpStatus:                                                         */
    /*     WHEN "aguardando" THEN ASSIGN tmpStatus:BGCOLOR IN BROWSE listaPedidos = 2   */
    /*                                   tmpStatus:FGCOLOR IN BROWSE listaPedidos = 15. */
    /*     WHEN "Coleta"     THEN ASSIGN tmpStatus:BGCOLOR IN BROWSE listaPedidos = 9   */
    /*                                   tmpStatus:FGCOLOR IN BROWSE listaPedidos = 15. */
    /*     WHEN "Cancelado"  THEN ASSIGN tmpStatus:BGCOLOR IN BROWSE listaPedidos = 12  */
    /*                                   tmpStatus:FGCOLOR IN BROWSE listaPedidos = 15. */
    /* /*     WHEN "Coleta"     THEN ASSIGN extensao = ".col". */                       */
    /* /*     WHEN "Pausado"    THEN ASSIGN extensao = ".pau". */                       */
    /* /*     WHEN "Devolvido"  THEN ASSIGN extensao = ".dev". */                       */
    /* /*     OTHERWISE              ASSIGN extensao = ".can". */                       */
    /* END CASE.                                                                        */
    END.
    
    /* _UIB-CODE-BLOCK-END */
    &ANALYZE-RESUME
    
    
    &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL listaPedidos C-Monitor
    ON VALUE-CHANGED OF listaPedidos IN FRAME DEFAULT-FRAME /* Pedidos */
    DO:
        IF TEMP-TABLE arquivos:HAS-RECORDS THEN DO:
            ASSIGN detNumPedido:SCREEN-VALUE IN FRAME {&FRAME-NAME}   = arquivos.tmpPedido
                   detVolPedido:SCREEN-VALUE IN FRAME {&FRAME-NAME}   = arquivos.tmpVolume 
                   numPed:SCREEN-VALUE IN FRAME {&FRAME-NAME}         = arquivos.tmpPedido
                   numVol:SCREEN-VALUE IN FRAME {&FRAME-NAME}         = arquivos.tmpVolume 
                   cbPrioridade:SCREEN-VALUE IN FRAME {&FRAME-NAME}   = arquivos.tmpprioridade
                   cbComplexidade:SCREEN-VALUE IN FRAME {&FRAME-NAME} = arquivos.tmpComplexidade
                   cbFuncionario:SCREEN-VALUE IN FRAME {&FRAME-NAME}  = arquivos.tmpNomOperador
                   statusArq                                          = arquivos.tmpStatus
                   codColetor                                         = arquivos.tmpOperador.
        END.
    
    /*     IF arquivos.tmpNomOperador = "" THEN cbfuncionario:SCREEN-VALUE IN FRAME {&FRAME-NAME}   = " ". */
    /*     ELSE cbfuncionario:SCREEN-VALUE IN FRAME {&FRAME-NAME} = arquivos.tmpNomOperador.               */
    
    /*     IF arquivos.tmpNomOperador = "" THEN cbfuncionario:ADD-FIRST("").                 */
    /*     ELSE cbfuncionario:SCREEN-VALUE IN FRAME {&FRAME-NAME} = arquivos.tmpNomOperador. */
    
    /* cbfuncionario:ADD-LAST(bc_coletores.nome_funcionario) */
    END.
    
    /* _UIB-CODE-BLOCK-END */
    &ANALYZE-RESUME
    
    
    &UNDEFINE SELF-NAME
    
    &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _MAIN-BLOCK C-Monitor 
    
    
    /* ***************************  Main Block  *************************** */
    
    /* Set CURRENT-WINDOW: this will parent dialog-boxes and frames.        */
    ASSIGN CURRENT-WINDOW                = {&WINDOW-NAME} 
           THIS-PROCEDURE:CURRENT-WINDOW = {&WINDOW-NAME}.
    
    /* The CLOSE event can be used from inside or outside the procedure to  */
    /* terminate it.                                                        */
    ON CLOSE OF THIS-PROCEDURE 
       RUN disable_UI.
    
    /* Best default for GUI applications is...                              */
    PAUSE 0 BEFORE-HIDE.
    
    /* Now enable the interface and wait for the exit condition.            */
    /* (NOTE: handle ERROR and END-KEY so cleanup code will always fire.    */
    MAIN-BLOCK:
    DO ON ERROR   UNDO MAIN-BLOCK, LEAVE MAIN-BLOCK
       ON END-KEY UNDO MAIN-BLOCK, LEAVE MAIN-BLOCK:
    
        IF VALID-HANDLE(vParent) THEN DO:
             DELETE OBJECT vParent.
        END.
    
        RUN enable_UI.
    
    ASSIGN data:SCREEN-VALUE IN FRAME {&FRAME-NAME}              = STRING(TODAY)
           ultimaAtualizacao:SCREEN-VALUE IN FRAME {&FRAME-NAME} = STRING(TODAY) + "   " + STRING(TIME, "HH:MM:SS")
           usuario:SCREEN-VALUE IN FRAME {&FRAME-NAME}           = supervisor.
    
    RUN carregaArquivos.
    
    cbfuncionario:ADD-LAST("").
    
    FOR EACH bc_coletores WHERE bc_coletores.ativo = YES NO-LOCK USE-INDEX bc_colet7:
        cbfuncionario:ADD-LAST(bc_coletores.nome_funcionario).
    END.
    
    IF TEMP-TABLE arquivos:HAS-RECORDS THEN DO:
        ASSIGN detNumPedido:SCREEN-VALUE IN FRAME {&FRAME-NAME}   = arquivos.tmpPedido
               detVolPedido:SCREEN-VALUE IN FRAME {&FRAME-NAME}   = arquivos.tmpVolume 
               numPed:SCREEN-VALUE IN FRAME {&FRAME-NAME}         = arquivos.tmpPedido
               numVol:SCREEN-VALUE IN FRAME {&FRAME-NAME}         = arquivos.tmpVolume 
               cbPrioridade:SCREEN-VALUE IN FRAME {&FRAME-NAME}   = arquivos.tmpprioridade
               cbComplexidade:SCREEN-VALUE IN FRAME {&FRAME-NAME} = arquivos.tmpComplexidade
               cbFuncionario:SCREEN-VALUE IN FRAME {&FRAME-NAME}  = arquivos.tmpNomOperador
               statusArq                                          = arquivos.tmpStatus
               codColetor                                         = arquivos.tmpOperador.
    END.
    
    /* RUN atualizaInformacoes. */
    
      IF NOT THIS-PROCEDURE:PERSISTENT THEN
        WAIT-FOR CLOSE OF THIS-PROCEDURE.
    END.
    
    /* _UIB-CODE-BLOCK-END */
    &ANALYZE-RESUME
    
    
    /* **********************  Internal Procedures  *********************** */
    
    &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE carregaArquivos C-Monitor 
    PROCEDURE carregaArquivos :
    /*------------------------------------------------------------------------------
      Purpose:     
      Parameters:  <none>
      Notes:       
    ------------------------------------------------------------------------------*/
    IF TEMP-TABLE arquivos:HAS-RECORDS THEN
        EMPTY TEMP-TABLE arquivos.
    
    IF TEMP-TABLE contPedidos:HAS-RECORDS THEN
        EMPTY TEMP-TABLE contPedidos.
    
    RUN yyverificaArquivos.r.
    CLOSE QUERY listaPedidos.
    OPEN  QUERY listaPedidos FOR EACH arquivos.
    
    RUN InfGerais.
    
    END PROCEDURE.
    
    /* _UIB-CODE-BLOCK-END */
    &ANALYZE-RESUME
    
    &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE control_load C-Monitor  _CONTROL-LOAD
    PROCEDURE control_load :
    /*------------------------------------------------------------------------------
      Purpose:     Load the OCXs    
      Parameters:  <none>
      Notes:       Here we load, initialize and make visible the 
                   OCXs in the interface.                        
    ------------------------------------------------------------------------------*/
    
    &IF "{&OPSYS}" = "WIN32":U AND "{&WINDOW-SYSTEM}" NE "TTY":U &THEN
    DEFINE VARIABLE UIB_S    AS LOGICAL    NO-UNDO.
    DEFINE VARIABLE OCXFile  AS CHARACTER  NO-UNDO.
    
    OCXFile = SEARCH( "yyMonitor2.wrx":U ).
    IF OCXFile = ? THEN
      OCXFile = SEARCH(SUBSTRING(THIS-PROCEDURE:FILE-NAME, 1,
                         R-INDEX(THIS-PROCEDURE:FILE-NAME, ".":U), "CHARACTER":U) + "wrx":U).
    
    IF OCXFile <> ? THEN
    DO:
      ASSIGN
        chCtrlFrame = CtrlFrame:COM-HANDLE
        UIB_S = chCtrlFrame:LoadControls( OCXFile, "CtrlFrame":U)
      .
      RUN initialize-controls IN THIS-PROCEDURE NO-ERROR.
    END.
    ELSE MESSAGE "yyMonitor2.wrx":U SKIP(1)
                 "The binary control file could not be found. The controls cannot be loaded."
                 VIEW-AS ALERT-BOX TITLE "Controls Not Loaded".
    
    &ENDIF
    
    END PROCEDURE.
    
    /* _UIB-CODE-BLOCK-END */
    &ANALYZE-RESUME
    
    &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE disable_UI C-Monitor  _DEFAULT-DISABLE
    PROCEDURE disable_UI :
    /*------------------------------------------------------------------------------
      Purpose:     DISABLE the User Interface
      Parameters:  <none>
      Notes:       Here we clean-up the user-interface by deleting
                   dynamic widgets we have created and/or hide 
                   frames.  This procedure is usually called when
                   we are ready to "clean-up" after running.
    ------------------------------------------------------------------------------*/
      /* Delete the WINDOW we created */
      IF SESSION:DISPLAY-TYPE = "GUI":U AND VALID-HANDLE(C-Monitor)
      THEN DELETE WIDGET C-Monitor.
      IF THIS-PROCEDURE:PERSISTENT THEN DELETE PROCEDURE THIS-PROCEDURE.
    END PROCEDURE.
    
    /* _UIB-CODE-BLOCK-END */
    &ANALYZE-RESUME
    
    &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE enable_UI C-Monitor  _DEFAULT-ENABLE
    PROCEDURE enable_UI :
    /*------------------------------------------------------------------------------
      Purpose:     ENABLE the User Interface
      Parameters:  <none>
      Notes:       Here we display/view/enable the widgets in the
                   user-interface.  In addition, OPEN all queries
                   associated with each FRAME and BROWSE.
                   These statements here are based on the "Other 
                   Settings" section of the widget Property Sheets.
    ------------------------------------------------------------------------------*/
      RUN control_load.
      DISPLAY detVolPedido detNumPedido CBPrioridade CBComplexidade CBFuncionario 
              CBStatus Usuario ultimaAtualizacao data numPed numVol TPedidos 
              TVolumes TSkus TUnid 
          WITH FRAME DEFAULT-FRAME IN WINDOW C-Monitor.
      ENABLE detalhar detVolPedido detNumPedido listaPedidos CBPrioridade 
             CBComplexidade BTGravar CBFuncionario CBStatus Usuario 
             ultimaAtualizacao data numPed numVol TPedidos TVolumes TSkus TUnid 
             RECT-1 RECT-10 RECT-2 RECT-3 RECT-4 RECT-5 RECT-6 RECT-7 RECT-8 RECT-9 
          WITH FRAME DEFAULT-FRAME IN WINDOW C-Monitor.
      {&OPEN-BROWSERS-IN-QUERY-DEFAULT-FRAME}
      VIEW C-Monitor.
    END PROCEDURE.
    
    /* _UIB-CODE-BLOCK-END */
    &ANALYZE-RESUME
    
    &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE infGerais C-Monitor 
    PROCEDURE infGerais :
    /*------------------------------------------------------------------------------
      Purpose:     
      Parameters:  <none>
      Notes:       
    ------------------------------------------------------------------------------*/
    ASSIGN
        ttPedidos = 0
        ttVolumes = 0
        ttSkus    = 0
        ttUnidade = 0.
        
    FOR EACH contPedidos NO-LOCK:
        ASSIGN
            ttPedidos = ttPedidos + 1
            ttVolumes = ttVolumes + contVolumes
            ttSkus    = ttSkus    + contSkus
            ttUnidade = ttUnidade + contUnidades.
    END.
    
    
    ASSIGN tPedidos:SCREEN-VALUE IN FRAME {&FRAME-NAME} = STRING(ttPedidos)
           tVolumes:SCREEN-VALUE IN FRAME {&FRAME-NAME} = STRING(ttVolumes)
           tSkus:SCREEN-VALUE IN FRAME {&FRAME-NAME}    = STRING(ttSkus)
           tUnid:SCREEN-VALUE IN FRAME {&FRAME-NAME}    = STRING(ttUnidade).
    
    END PROCEDURE.
    
    /* _UIB-CODE-BLOCK-END */
    &ANALYZE-RESUME
    
    
    
    
  3. eduardo.leite

    eduardo.leite Equipe de Suporte Moderador Equipe de Suporte

    Caro colega, vc pode enviar-me a rotina *.W por e-mail... copiando daqui não está abrindo pelo APPBUILDER somente pelo EDITOR, e assim não estou conseguindo testar da maneira correta.

    Fico aguardando o envio: leite1969@yahoo.com.br
  4. eduardo.leite

    eduardo.leite Equipe de Suporte Moderador Equipe de Suporte

    Acho que identifiquei o que pode ser:

    01) A sua rotina está sendo carregada mas não executa a rotina da OCX, certo? Verifica na propriedade do PSTimer o atributo INTERVAL, na sua rotina está igual a 0, sendo assim ele não dispara. Mude para 1.000 (1 seg) e veja se passa a funcionar.

    Consegui carregar a rotina aqui e o que não executou foi por causa disso...

    Arquivos Anexados:

  5. demetriusbarbosa

    demetriusbarbosa Membro Participativo

    Eduardo, que estranho, aqui abro o meu *.w e no PStime está com intervalo de 15000. Será que quando altero no componente não está atualizando no programa.
    Vou abrir o .W e alterar o valor do intervalo manualmente e recompilar.
  6. demetriusbarbosa

    demetriusbarbosa Membro Participativo

    Srs., encontrei o problema.
    Por mais que alterasse o valor do intervalo no componente o valor no código não era alterado.
    Coloquei mais um PSTimer e alterei o valor e verifiquei no código e lá permanecia zerado.

    Está acontecendo algum erro no meu Progress, vou reinstalá-lo.
    Agradeço a todos a ajuda e paciência.

    Muito Obrigado.

Compartilhe esta Página