bloco de notas

Discussão em 'EMS , HCM e Totvs 11' iniciado por Carlos Alberto Giusti, Junho 27, 2025.

  1. Carlos Alberto Giusti

    Carlos Alberto Giusti Membro Ativo

    Ao executar um programa para extrair dados em excel, ao final exibe um bloco de notas.
    Onde eu comento no programa para não exibir esswe bloco de notas.
  2. Carlos Alberto Giusti

    Carlos Alberto Giusti Membro Ativo

    Notepad
  3. Carlos Alberto Giusti

    Carlos Alberto Giusti Membro Ativo

    Segue o código:

    &ANALYZE-SUSPEND _VERSION-NUMBER UIB_v8r12 GUI ADM1
    &ANALYZE-RESUME
    &Scoped-define WINDOW-NAME w-relat
    &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _DEFINITIONS w-relat
    /********************************************************************************
    ** Copyright DATASUL S.A. (1997)
    ** Todos os Direitos Reservados.
    **
    ** Este fonte e de propriedade exclusiva da DATASUL, sua reproducao
    ** parcial ou total por qualquer meio, so podera ser feita mediante
    ** autorizacao expressa.
    *******************************************************************************/
    {include/i-prgvrs.i escp001 2.06.00.000}

    /* 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 ************************** */

    /* Preprocessadores do Template de Relat¢rio */
    /* Obs: Retirar o valor do preprocessador para as p ginas que nÆo existirem */

    &GLOBAL-DEFINE PGSEL f-pg-sel
    &GLOBAL-DEFINE PGCLA
    &GLOBAL-DEFINE PGPAR
    &GLOBAL-DEFINE PGDIG
    &GLOBAL-DEFINE PGIMP f-pg-imp
    /* Parameters Definitions --- */

    /* Temporary Table Definitions --- */

    define temp-table tt-param
    field destino as integer
    field arquivo as char
    field usuario as char
    field data-exec as date
    field hora-exec as integer
    field classifica as INTEGER
    FIELD data-ini AS DATE
    FIELD data-fim AS DATE
    FIELD ctrab-ini AS CHARACTER
    FIELD ctrab-fim AS CHARACTER
    FIELD It-ini AS CHARACTER
    FIELD It-fim AS CHARACTER
    FIELD ordem-ini AS integer
    FIELD ordem-fim AS integer.

    define temp-table tt-digita no-undo
    field ordem as integer format ">>>>9"
    field exemplo as character format "x(30)"
    index id ordem.

    define buffer b-tt-digita for tt-digita.

    /* Transfer Definitions */

    def var raw-param as raw no-undo.

    def temp-table tt-raw-digita
    field raw-digita as raw.

    /* Local Variable Definitions --- */

    def var l-ok as logical no-undo.
    def var c-arq-digita as char no-undo.
    def var c-terminal as char no-undo.

    /* _UIB-CODE-BLOCK-END */
    &ANALYZE-RESUME


    &ANALYZE-SUSPEND _UIB-PREPROCESSOR-BLOCK

    /* ******************** Preprocessor Definitions ******************** */

    &Scoped-define PROCEDURE-TYPE w-relat
    &Scoped-define DB-AWARE no

    /* Name of designated FRAME-NAME and/or first browse and/or first query */
    &Scoped-define FRAME-NAME f-pg-imp

    /* Standard List Definitions */
    &Scoped-Define ENABLED-OBJECTS RECT-7 RECT-9 rs-destino bt-arquivo ~
    bt-config-impr c-arquivo rs-execucao
    &Scoped-Define DISPLAYED-OBJECTS rs-destino c-arquivo rs-execucao

    /* 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 w-relat AS WIDGET-HANDLE NO-UNDO.

    /* Definitions of the field level widgets */
    DEFINE BUTTON bt-arquivo
    IMAGE-UP FILE "image\im-sea":U
    IMAGE-INSENSITIVE FILE "image\ii-sea":U
    LABEL ""
    SIZE 4 BY 1.

    DEFINE BUTTON bt-config-impr
    IMAGE-UP FILE "image\im-cfprt":U
    LABEL ""
    SIZE 4 BY 1.

    DEFINE VARIABLE c-arquivo AS CHARACTER
    VIEW-AS EDITOR MAX-CHARS 256
    SIZE 40 BY .88
    BGCOLOR 15 NO-UNDO.

    DEFINE VARIABLE text-destino AS CHARACTER FORMAT "X(256)":U INITIAL " Destino"
    VIEW-AS TEXT
    SIZE 8.57 BY .63 NO-UNDO.

    DEFINE VARIABLE text-modo AS CHARACTER FORMAT "X(256)":U INITIAL "Execu?Æo"
    VIEW-AS TEXT
    SIZE 10.86 BY .63 NO-UNDO.

    DEFINE VARIABLE rs-destino AS INTEGER INITIAL 2
    VIEW-AS RADIO-SET HORIZONTAL
    RADIO-BUTTONS
    "Impressora", 1,
    "Arquivo", 2,
    "Terminal", 3
    SIZE 44 BY 1.08 NO-UNDO.

    DEFINE VARIABLE rs-execucao AS INTEGER INITIAL 1
    VIEW-AS RADIO-SET HORIZONTAL
    RADIO-BUTTONS
    "On-Line", 1,
    "Batch", 2
    SIZE 27.72 BY .92 NO-UNDO.

    DEFINE RECTANGLE RECT-7
    EDGE-PIXELS 2 GRAPHIC-EDGE NO-FILL
    SIZE 46.29 BY 2.92.

    DEFINE RECTANGLE RECT-9
    EDGE-PIXELS 2 GRAPHIC-EDGE NO-FILL
    SIZE 46.29 BY 1.71.

    DEFINE RECTANGLE RECT-10
    EDGE-PIXELS 2 GRAPHIC-EDGE NO-FILL
    SIZE 30 BY 2.

    DEFINE VARIABLE data-ini AS date FORMAT "99/99/9999":U INITIAL today
    LABEL "Período"
    VIEW-AS FILL-IN
    SIZE 10 BY 1 NO-UNDO.

    DEFINE VARIABLE data-fim AS date FORMAT "99/99/9999":U INITIAL today
    VIEW-AS FILL-IN
    SIZE 10 BY 1 NO-UNDO.

    DEFINE VARIABLE ctrab-ini AS char FORMAT "x(12)":U INITIAL ""
    LABEL "Centro Trab"
    VIEW-AS FILL-IN
    SIZE 12 BY 1 NO-UNDO.

    DEFINE VARIABLE ctrab-fim AS char FORMAT "x(12)":U INITIAL "ZZZZZZZZZZZZ"
    VIEW-AS FILL-IN
    SIZE 12 BY 1 NO-UNDO.

    DEFINE VARIABLE it-ini AS char FORMAT "x(16)":U INITIAL ""
    LABEL "Item"
    VIEW-AS FILL-IN
    SIZE 16 BY 1 NO-UNDO.

    DEFINE VARIABLE it-fim AS char FORMAT "x(16)":U INITIAL "ZZZZZZZZZZZZZZZZ"
    VIEW-AS FILL-IN
    SIZE 16 BY 1 NO-UNDO.

    DEFINE VARIABLE ordem-ini AS inte FORMAT ">>>,>>>,>>9":U INITIAL 0
    LABEL "Ordem Prod"
    VIEW-AS FILL-IN
    SIZE 10 BY 1 NO-UNDO.

    DEFINE VARIABLE ordem-fim AS inte FORMAT ">>>,>>>,>>9":U INITIAL "999999999"
    VIEW-AS FILL-IN
    SIZE 10 BY 1 NO-UNDO.

    DEFINE IMAGE IMAGE-11
    FILENAME "image\im-fir":U
    SIZE 3 BY 1.

    DEFINE IMAGE IMAGE-12
    FILENAME "image\im-las":U
    SIZE 3 BY 1.

    DEFINE IMAGE IMAGE-21
    FILENAME "image\im-fir":U
    SIZE 3 BY 1.

    DEFINE IMAGE IMAGE-22
    FILENAME "image\im-las":U
    SIZE 3 BY 1.

    DEFINE IMAGE IMAGE-31
    FILENAME "image\im-fir":U
    SIZE 3 BY 1.

    DEFINE IMAGE IMAGE-32
    FILENAME "image\im-las":U
    SIZE 3 BY 1.

    DEFINE IMAGE IMAGE-41
    FILENAME "image\im-fir":U
    SIZE 3 BY 1.

    DEFINE IMAGE IMAGE-42
    FILENAME "image\im-las":U
    SIZE 3 BY 1.

    DEFINE BUTTON bt-ajuda
    LABEL "Ajuda"
    SIZE 10 BY 1.

    DEFINE BUTTON bt-cancelar AUTO-END-KEY
    LABEL "Fechar"
    SIZE 10 BY 1.

    DEFINE BUTTON bt-executar
    LABEL "Executar"
    SIZE 10 BY 1.

    DEFINE IMAGE im-pg-imp
    FILENAME "image\im-fldup":U
    SIZE 15.72 BY 1.21.

    DEFINE IMAGE im-pg-sel
    FILENAME "image\im-fldup":U
    SIZE 15.72 BY 1.21.

    DEFINE RECTANGLE RECT-1
    EDGE-PIXELS 2 GRAPHIC-EDGE
    SIZE 79 BY 1.42
    BGCOLOR 7 .

    DEFINE RECTANGLE RECT-6
    EDGE-PIXELS 0
    SIZE 78.72 BY .13
    BGCOLOR 7 .

    DEFINE RECTANGLE rt-folder
    EDGE-PIXELS 1 GRAPHIC-EDGE NO-FILL
    SIZE 79 BY 11.38
    FGCOLOR 0 .

    DEFINE RECTANGLE rt-folder-left
    EDGE-PIXELS 0
    SIZE .43 BY 11.21
    BGCOLOR 15 .

    DEFINE RECTANGLE rt-folder-right
    EDGE-PIXELS 0
    SIZE .43 BY 11.17
    BGCOLOR 7 .

    DEFINE RECTANGLE rt-folder-top
    EDGE-PIXELS 0
    SIZE 78.72 BY .13
    BGCOLOR 15 .


    /* ************************ Frame Definitions *********************** */

    DEFINE FRAME f-relat
    bt-executar AT ROW 14.54 COL 3 HELP
    "Dispara a execu?Æo do relat¢rio"
    bt-cancelar AT ROW 14.54 COL 14 HELP
    "Fechar"
    bt-ajuda AT ROW 14.54 COL 70 HELP
    "Ajuda"
    rt-folder-left AT ROW 2.54 COL 2.14
    rt-folder-top AT ROW 2.54 COL 2.14
    RECT-1 AT ROW 14.29 COL 2
    rt-folder-right AT ROW 2.67 COL 80.43
    rt-folder AT ROW 2.5 COL 2
    RECT-6 AT ROW 13.75 COL 2.14
    im-pg-imp AT ROW 1.5 COL 17.72
    im-pg-sel AT ROW 1.5 COL 2.14
    WITH 1 DOWN NO-BOX KEEP-TAB-ORDER OVERLAY
    SIDE-LABELS NO-UNDERLINE THREE-D
    AT COL 1 ROW 1
    SIZE 81 BY 15
    DEFAULT-BUTTON bt-executar.

    DEFINE FRAME f-pg-imp
    rs-destino AT ROW 2.38 COL 3.29 HELP
    "Destino de ImpressÆo do Relat¢rio" NO-LABEL
    bt-arquivo AT ROW 3.58 COL 43.29 HELP
    "Escolha do nome do arquivo"
    bt-config-impr AT ROW 3.67 COL 43.29 HELP
    "Configura?Æo da impressora"
    c-arquivo AT ROW 3.71 COL 3.29 HELP
    "Nome do arquivo de destino do relat¢rio" NO-LABEL
    rs-execucao AT ROW 5.75 COL 3 HELP
    "Modo de Execu?Æo" NO-LABEL
    text-destino AT ROW 1.63 COL 3.86 NO-LABEL
    text-modo AT ROW 5 COL 1.29 COLON-ALIGNED NO-LABEL
    RECT-7 AT ROW 2 COL 2
    RECT-9 AT ROW 5.29 COL 2.14
    WITH 1 DOWN NO-BOX KEEP-TAB-ORDER OVERLAY
    SIDE-LABELS NO-UNDERLINE THREE-D
    AT COL 3 ROW 3
    SIZE 73.72 BY 10.

    DEFINE FRAME f-pg-sel
    data-ini AT ROW 2.25 COL 12 COLON-ALIGNED
    data-fim AT ROW 2.25 COL 34 COLON-ALIGNED no-label
    ctrab-ini AT ROW 3.25 COL 12 COLON-ALIGNED
    ctrab-fim AT ROW 3.25 COL 34 COLON-ALIGNED no-label
    ordem-ini AT ROW 4.25 COL 12 COLON-ALIGNED
    ordem-fim AT ROW 4.25 COL 34 COLON-ALIGNED no-label
    it-ini AT ROW 5.25 COL 12 COLON-ALIGNED
    it-fim AT ROW 5.25 COL 34 COLON-ALIGNED no-label
    image-11 AT ROW 2.25 COL 28 COLON-ALIGNED
    image-12 AT ROW 2.25 COL 31 COLON-ALIGNED
    image-21 AT ROW 3.25 COL 28 COLON-ALIGNED
    image-22 AT ROW 3.25 COL 31 COLON-ALIGNED
    image-31 AT ROW 4.25 COL 28 COLON-ALIGNED
    image-32 AT ROW 4.25 COL 31 COLON-ALIGNED
    image-41 AT ROW 5.25 COL 28 COLON-ALIGNED
    image-42 AT ROW 5.25 COL 31 COLON-ALIGNED
    WITH 1 DOWN NO-BOX KEEP-TAB-ORDER OVERLAY
    SIDE-LABELS NO-UNDERLINE THREE-D
    AT COL 3 ROW 2.85
    SIZE 76.86 BY 10.62
    FONT 1.


    /* *********************** Procedure Settings ************************ */

    &ANALYZE-SUSPEND _PROCEDURE-SETTINGS
    /* Settings for THIS-PROCEDURE
    Type: w-relat
    Allow: Basic,Browse,DB-Fields,Window,Query
    Add Fields to: Neither
    Other Settings: COMPILE
    */
    &ANALYZE-RESUME _END-PROCEDURE-SETTINGS

    /* ************************* Create Window ************************** */

    &ANALYZE-SUSPEND _CREATE-WINDOW
    IF SESSION:DISPLAY-TYPE = "GUI":U THEN
    CREATE WINDOW w-relat ASSIGN
    HIDDEN = YES
    TITLE = ""
    HEIGHT = 15.58
    WIDTH = 81.14
    MAX-HEIGHT = 30.25
    MAX-WIDTH = 194.86
    VIRTUAL-HEIGHT = 30.25
    VIRTUAL-WIDTH = 194.86
    RESIZE = yes
    SCROLL-BARS = no
    STATUS-AREA = yes
    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

    &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _INCLUDED-LIB w-relat
    /* ************************* Included-Libraries *********************** */

    {src/adm/method/containr.i}
    {include/w-relat.i}
    {utp/ut-glob.i}

    /* _UIB-CODE-BLOCK-END */
    &ANALYZE-RESUME




    /* *********** Runtime Attributes and AppBuilder Settings *********** */

    &ANALYZE-SUSPEND _RUN-TIME-ATTRIBUTES
    /* SETTINGS FOR WINDOW w-relat
    VISIBLE,,RUN-PERSISTENT */
    /* SETTINGS FOR FRAME f-pg-imp
    FRAME-NAME */
    /* SETTINGS FOR FILL-IN text-destino IN FRAME f-pg-imp
    NO-DISPLAY NO-ENABLE ALIGN-L */
    ASSIGN
    text-destino:pRIVATE-DATA IN FRAME f-pg-imp =
    "Destino".

    /* SETTINGS FOR FILL-IN text-modo IN FRAME f-pg-imp
    NO-DISPLAY NO-ENABLE */
    ASSIGN
    text-modo:pRIVATE-DATA IN FRAME f-pg-imp =
    "Execu?Æo".

    /* SETTINGS FOR FRAME f-pg-sel
    */
    /* SETTINGS FOR FRAME f-relat
    */
    /* SETTINGS FOR RECTANGLE RECT-1 IN FRAME f-relat
    NO-ENABLE */
    /* SETTINGS FOR RECTANGLE RECT-6 IN FRAME f-relat
    NO-ENABLE */
    /* SETTINGS FOR RECTANGLE rt-folder IN FRAME f-relat
    NO-ENABLE */
    /* SETTINGS FOR RECTANGLE rt-folder-left IN FRAME f-relat
    NO-ENABLE */
    /* SETTINGS FOR RECTANGLE rt-folder-right IN FRAME f-relat
    NO-ENABLE */
    /* SETTINGS FOR RECTANGLE rt-folder-top IN FRAME f-relat
    NO-ENABLE */
    IF SESSION:DISPLAY-TYPE = "GUI":U AND VALID-HANDLE(w-relat)
    THEN w-relat:HIDDEN = no.

    /* _RUN-TIME-ATTRIBUTES-END */
    &ANALYZE-RESUME


    /* Setting information for Queries and Browse Widgets fields */

    &ANALYZE-SUSPEND _QUERY-BLOCK FRAME f-pg-imp
    /* Query rebuild information for FRAME f-pg-imp
    _Query is NOT OPENED
    */ /* FRAME f-pg-imp */
    &ANALYZE-RESUME

    &ANALYZE-SUSPEND _QUERY-BLOCK FRAME f-pg-sel
    /* Query rebuild information for FRAME f-pg-sel
    _Query is NOT OPENED
    */ /* FRAME f-pg-sel */
    &ANALYZE-RESUME





    /* ************************ Control Triggers ************************ */

    &Scoped-define SELF-NAME w-relat
    &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL w-relat w-relat
    ON END-ERROR OF w-relat /* Relat¢rio de Concilia?Æo de Embarques */
    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. */
    RETURN NO-APPLY.
    END.

    /* _UIB-CODE-BLOCK-END */
    &ANALYZE-RESUME


    &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL w-relat w-relat
    ON WINDOW-CLOSE OF w-relat /* Relat¢rio de Concilia?Æo de Embarques */
    DO:
    /* This event will close the window and terminate the procedure. */
    APPLY "CLOSE":U TO THIS-PROCEDURE.
    RETURN NO-APPLY.
    END.

    /* _UIB-CODE-BLOCK-END */
    &ANALYZE-RESUME


    &Scoped-define FRAME-NAME f-relat
    &Scoped-define SELF-NAME bt-ajuda
    &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL bt-ajuda w-relat
    ON CHOOSE OF bt-ajuda IN FRAME f-relat /* Ajuda */
    DO:
    {include/ajuda.i}
    END.

    /* _UIB-CODE-BLOCK-END */
    &ANALYZE-RESUME


    &Scoped-define FRAME-NAME f-pg-imp
    &Scoped-define SELF-NAME bt-arquivo
    &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL bt-arquivo w-relat
    ON CHOOSE OF bt-arquivo IN FRAME f-pg-imp
    DO:
    {include/i-rparq.i}
    END.

    /* _UIB-CODE-BLOCK-END */
    &ANALYZE-RESUME


    &Scoped-define FRAME-NAME f-relat
    &Scoped-define SELF-NAME bt-cancelar
    &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL bt-cancelar w-relat
    ON CHOOSE OF bt-cancelar IN FRAME f-relat /* Fechar */
    DO:
    apply "close" to this-procedure.
    END.

    /* _UIB-CODE-BLOCK-END */
    &ANALYZE-RESUME


    &Scoped-define FRAME-NAME f-pg-imp
    &Scoped-define SELF-NAME bt-config-impr
    &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL bt-config-impr w-relat
    ON CHOOSE OF bt-config-impr IN FRAME f-pg-imp
    DO:
    {include/i-rpimp.i}
    END.

    /* _UIB-CODE-BLOCK-END */
    &ANALYZE-RESUME


    &Scoped-define FRAME-NAME f-relat
    &Scoped-define SELF-NAME bt-executar
    &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL bt-executar w-relat
    ON CHOOSE OF bt-executar IN FRAME f-relat /* Executar */
    DO:
    do on error undo, return no-apply:
    run pi-executar.
    end.
    END.

    /* _UIB-CODE-BLOCK-END */
    &ANALYZE-RESUME


    &Scoped-define SELF-NAME im-pg-imp
    &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL im-pg-imp w-relat
    ON MOUSE-SELECT-CLICK OF im-pg-imp IN FRAME f-relat
    DO:
    run pi-troca-pagina.
    END.

    /* _UIB-CODE-BLOCK-END */
    &ANALYZE-RESUME


    &Scoped-define SELF-NAME im-pg-sel
    &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL im-pg-sel w-relat
    ON MOUSE-SELECT-CLICK OF im-pg-sel IN FRAME f-relat
    DO:
    run pi-troca-pagina.
    END.

    /* _UIB-CODE-BLOCK-END */
    &ANALYZE-RESUME


    &Scoped-define FRAME-NAME f-pg-imp
    &Scoped-define SELF-NAME rs-destino
    &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL rs-destino w-relat
    ON VALUE-CHANGED OF rs-destino IN FRAME f-pg-imp
    DO:
    do with frame f-pg-imp:
    case self:screen-value:
    when "1" then do:
    assign c-arquivo:sensitive = no
    bt-arquivo:visible = no
    bt-config-impr:visible = yes.
    end.
    when "2" then do:
    assign c-arquivo:sensitive = yes
    bt-arquivo:visible = yes
    bt-config-impr:visible = no.
    end.
    when "3" then do:
    assign c-arquivo:sensitive = no
    bt-arquivo:visible = no
    bt-config-impr:visible = no.
    end.
    end case.
    end.
    END.

    /* _UIB-CODE-BLOCK-END */
    &ANALYZE-RESUME


    &Scoped-define SELF-NAME rs-execucao
    &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL rs-execucao w-relat
    ON VALUE-CHANGED OF rs-execucao IN FRAME f-pg-imp
    DO:
    {include/i-rprse.i}
    END.

    /* _UIB-CODE-BLOCK-END */
    &ANALYZE-RESUME


    &UNDEFINE SELF-NAME

    &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _MAIN-BLOCK w-relat


    /* *************************** Main Block *************************** */

    /* Set CURRENT-WINDOW: this will parent dialog-boxes and frames. */
    ASSIGN CURRENT-WINDOW = {&WINDOW-NAME}
    THIS-PROCEDURE:CURRENT-WINDOW = {&WINDOW-NAME}.

    {utp/ut9000.i "ESCP001" "2.06.00.000"}

    /* inicializa?äes do template de relat¢rio */
    {include/i-rpini.i}

    /* The CLOSE event can be used from inside or outside the procedure to */
    /* terminate it. */
    ON CLOSE OF THIS-PROCEDURE
    RUN disable_UI.

    {include/i-rplbl.i}

    /* 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:

    RUN enable_UI.
    /*ASSIGN bt-arquivo-entrada:HIDDEN IN FRAME f-pg-sel = YES.*/
    {include/i-rpmbl.i}

    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 adm-create-objects w-relat _ADM-CREATE-OBJECTS
    PROCEDURE adm-create-objects :
    /*------------------------------------------------------------------------------
    Purpose: Create handles for all SmartObjects used in this procedure.
    After SmartObjects are initialized, then SmartLinks are added.
    Parameters: <none>
    ------------------------------------------------------------------------------*/

    END PROCEDURE.

    /* _UIB-CODE-BLOCK-END */
    &ANALYZE-RESUME

    &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE adm-row-available w-relat _ADM-ROW-AVAILABLE
    PROCEDURE adm-row-available :
    /*------------------------------------------------------------------------------
    Purpose: Dispatched to this procedure when the Record-
    Source has a new row available. This procedure
    tries to get the new row (or foriegn keys) from
    the Record-Source and process it.
    Parameters: <none>
    ------------------------------------------------------------------------------*/

    /* Define variables needed by this internal procedure. */
    {src/adm/template/row-head.i}

    /* Process the newly available records (i.e. display fields,
    open queries, and/or pass records on to any RECORD-TARGETS). */
    {src/adm/template/row-end.i}

    END PROCEDURE.

    /* _UIB-CODE-BLOCK-END */
    &ANALYZE-RESUME

    &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE disable_UI w-relat _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(w-relat)
    THEN DELETE WIDGET w-relat.
    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 w-relat _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.
    ------------------------------------------------------------------------------*/
    ENABLE im-pg-imp im-pg-sel bt-executar bt-cancelar bt-ajuda
    WITH FRAME f-relat IN WINDOW w-relat.
    {&OPEN-BROWSERS-IN-QUERY-f-relat}
    DISPLAY data-ini data-fim ctrab-ini ctrab-fim ordem-ini ordem-fim it-ini it-fim
    WITH FRAME f-pg-sel IN WINDOW w-relat.
    ENABLE data-ini data-fim ctrab-ini ctrab-fim ordem-ini ordem-fim it-ini it-fim
    image-11 image-12 image-21 image-22 image-31 image-32 image-41 image-42
    WITH FRAME f-pg-sel IN WINDOW w-relat.
    {&OPEN-BROWSERS-IN-QUERY-f-pg-sel}
    DISPLAY rs-destino c-arquivo rs-execucao
    WITH FRAME f-pg-imp IN WINDOW w-relat.
    ENABLE RECT-7 RECT-9 rs-destino bt-arquivo bt-config-impr c-arquivo
    rs-execucao
    WITH FRAME f-pg-imp IN WINDOW w-relat.
    {&OPEN-BROWSERS-IN-QUERY-f-pg-imp}
    VIEW w-relat.
    END PROCEDURE.

    /* _UIB-CODE-BLOCK-END */
    &ANALYZE-RESUME

    &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE local-exit w-relat
    PROCEDURE local-exit :
    /* -----------------------------------------------------------
    Purpose: Starts an "exit" by APPLYing CLOSE event, which starts "destroy".
    Parameters: <none>
    Notes: If activated, should APPLY CLOSE, *not* dispatch adm-exit.
    -------------------------------------------------------------*/
    APPLY "CLOSE":U TO THIS-PROCEDURE.

    RETURN.

    END PROCEDURE.

    /* _UIB-CODE-BLOCK-END */
    &ANALYZE-RESUME

    &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE pi-executar w-relat
    PROCEDURE pi-executar :
    /*------------------------------------------------------------------------------
    Purpose:
    Parameters: <none>
    Notes:
    ------------------------------------------------------------------------------*/
    define var r-tt-digita as rowid no-undo.

    do on error undo, return error on stop undo, return error:
    {include/i-rpexa.i}

    /* if input FRAME f-pg-imp rs-destino = 2 and */
    /* input FRAME f-pg-imp rs-execucao = 1 then do: */
    /* run utp/ut-vlarq.p (input input FRAME f-pg-imp c-arquivo). */
    /* */
    /* if return-value = "NOK":U then do: */
    /* run utp/ut-msgs.p (input "show", input 73, input ""). */
    /* */
    /* apply "MOUSE-SELECT-CLICK":U to im-pg-imp in FRAME f-relat. */
    /* apply "ENTRY":U to c-arquivo in FRAME f-pg-imp. */
    /* return error. */
    /* end. */
    /* end. */

    /* Coloque aqui as valida?äes das outras p ginas, lembrando que elas devem
    apresentar uma mensagem de erro cadastrada, posicionar na p gina com
    problemas e colocar o focus no campo com problemas */

    /* Aqui sÆo gravados os campos da temp-table que ser passada como par?metro
    para o programa RP.P */

    create tt-param.
    assign tt-param.usuario = c-seg-usuario
    tt-param.destino = input FRAME f-pg-imp rs-destino
    tt-param.data-exec = today
    tt-param.hora-exec = time

    tt-param.data-ini = input frame f-pg-sel data-ini
    tt-param.data-fim = input frame f-pg-sel data-fim
    tt-param.ctrab-ini = input frame f-pg-sel ctrab-ini
    tt-param.ctrab-fim = input frame f-pg-sel ctrab-fim
    tt-param.ordem-ini = input frame f-pg-sel ordem-ini
    tt-param.ordem-fim = input frame f-pg-sel ordem-fim
    tt-param.it-ini = input frame f-pg-sel it-ini
    tt-param.it-fim = input frame f-pg-sel it-fim.

    /* if tt-param.destino = 1 */
    /* then assign tt-param.arquivo = "". */
    /* else if tt-param.destino = 2 */
    /* then assign tt-param.arquivo = input FRAME f-pg-imp c-arquivo. */
    /* else assign tt-param.arquivo = session:temp-directory + c-programa-mg97 + ".tmp". */

    /* Coloque aqui a l¢gica de grava?Æo dos demais campos que devem ser passados
    como par?metros para o programa RP.P, atrav?s da temp-table tt-param */

    /* Executar do programa RP.P que ir criar o relat¢rio */
    {include/i-rpexb.i}

    SESSION:SET-WAIT-STATE("general":U).

    {include/i-rprun.i esp/escp001rp.p}

    {include/i-rpexc.i}

    SESSION:SET-WAIT-STATE("":U).

    {include/i-rptrm.i}
    end.

    END PROCEDURE.

    /* _UIB-CODE-BLOCK-END */
    &ANALYZE-RESUME

    &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE pi-troca-pagina w-relat
    PROCEDURE pi-troca-pagina :
    /*------------------------------------------------------------------------------
    Purpose: Gerencia a Troca de P gina (folder)
    Parameters: <none>
    Notes:
    ------------------------------------------------------------------------------*/

    {include/i-rptrp.i}

    END PROCEDURE.

    /* _UIB-CODE-BLOCK-END */
    &ANALYZE-RESUME

    &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE send-records w-relat _ADM-SEND-RECORDS
    PROCEDURE send-records :
    /*------------------------------------------------------------------------------
    Purpose: Send record ROWID's for all tables used by
    this file.
    Parameters: see template/snd-head.i
    ------------------------------------------------------------------------------*/

    /* SEND-RECORDS does nothing because there are no External
    Tables specified for this w-relat, and there are no
    tables specified in any contained Browse, Query, or Frame. */

    END PROCEDURE.

    /* _UIB-CODE-BLOCK-END */
    &ANALYZE-RESUME

    &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE state-changed w-relat
    PROCEDURE state-changed :
    /* -----------------------------------------------------------
    Purpose:
    Parameters: <none>
    Notes:
    -------------------------------------------------------------*/
    DEFINE INPUT PARAMETER p-issuer-hdl AS HANDLE NO-UNDO.
    DEFINE INPUT PARAMETER p-state AS CHARACTER NO-UNDO.
    run pi-trata-state (p-issuer-hdl, p-state).
    END PROCEDURE.

    /* _UIB-CODE-BLOCK-END */
    &ANALYZE-RESUME
  4. bootstrapmaster

    bootstrapmaster Moderator Moderador Equipe de Suporte

    então, se está saindo o seu excel no bloco de notas é porque vc está fazendo put na saida padrão do relatorio, que é o bloco de notas, crie um stream-io pra vc e faça o seu output to e put para a stream que vc criou, dai não vai pro bloco de notas.

Compartilhe esta Página