Combo-Box

Discussão em 'WebSpeed' iniciado por erickles, Setembro 4, 2009.

  1. erickles

    erickles Membro Participativo

    Olá Pessoal,

    Como eu faria para encher um combo box com dados oriundos de uma tabela no progress usando webspeed? Utilizei um exemplo no forum e não funcionou...
  2. alexfowler

    alexfowler Membro Participativo

    Uma vez eu fiz algo assim:

    /* prepara informacoes para motivo, esse aqui é para a primeira opcao ser branco */
    ASSIGN v-motivos-aprova = "'" + " " + "'".
    v-motivos-reprova = "'" + " " + "'".

    /* aprovacao */
    FOR EACH es-motivo-sd WHERE es-motivo-sd.tipo = 1 :
    ASSIGN v-motivos-aprova = v-motivos-aprova + "," + "'" + es-motivo-sd.cod-motivo + "'".
    END.

    /* reprovacao */
    FOR EACH es-motivo-sd WHERE es-motivo-sd.tipo = 2 :
    ASSIGN v-motivos-reprova = v-motivos-reprova + "," + "'" + es-motivo-sd.cod-motivo + "'".
    END.

    Dai o combo era preenchido dinamicamente, de acordo com o tipo de motivo que o usuario escolhesse na tela, aprovacao ou reprovacao, entao eu chamava um java script com a opcao que o usuario escolheu e a referencia do combo na tela, para preencher os motivos:

    ' function criaSelectMotivo( opcao, campoSelect ) ' SKIP
    ' ~{ ' SKIP
    ' var aprovacao = new Array(' v-motivos-aprova ');' SKIP
    ' var reprovacao = new Array(' v-motivos-reprova ');' SKIP
    ' if ( opcao == 1 ) ' SKIP
    ' ~{ ' SKIP
    ' campoSelect.length = aprovacao.length; ' SKIP
    ' for ( i=0; i < aprovacao.length; i ++ ) ' SKIP
    ' ~{ ' SKIP
    ' if ( aprovacao == " " ) ' SKIP
    ' ~{ ' SKIP
    ' campoSelect.options.value = "branco"; ' SKIP
    ' campoSelect.options.text = aprovacao; ' SKIP
    ' ~} ' SKIP
    ' else ' SKIP
    ' ~{ ' SKIP
    ' campoSelect.options.value = aprovacao; ' SKIP
    ' campoSelect.options.text = aprovacao; ' SKIP
    ' ~} ' SKIP
    ' ~} ' SKIP
    ' campoSelect.options[0].selected = true; ' SKIP
    ' ~} ' SKIP
    ' if ( opcao == 2 ) ' SKIP
    ' ~{ ' SKIP
    ' campoSelect.length = reprovacao.length; ' SKIP
    ' for ( i=0; i < reprovacao.length; i ++ ) ' SKIP
    ' ~{ ' SKIP
    ' if ( reprovacao == " " ) ' SKIP
    ' ~{ ' SKIP
    ' campoSelect.options.value = "branco"; ' SKIP
    ' campoSelect.options.text = reprovacao; ' SKIP
    ' ~} ' SKIP
    ' else ' SKIP
    ' ~{ ' SKIP
    ' campoSelect.options.value = reprovacao; ' SKIP
    ' campoSelect.options.text = reprovacao; ' SKIP
    ' ~} ' SKIP
    ' ~} ' SKIP
    ' campoSelect.options[0].selected = true; ' SKIP
    ' ~} ' SKIP
    ' ~} ' SKIP.

    Talvez isso possa ajudar.
  3. erickles

    erickles Membro Participativo

    Nossa, fiquei ainda mais confuso...ehahuhuea

    Na verdade, usei um programa aqui como exemplo, porém não funcionou, é como se o for each não estivesse pegando nada...:
    Código:
    &ANALYZE-SUSPEND _VERSION-NUMBER WDT_v2r1 Web-Object
    /* Maps: repres/wsco059rp.htm */
    &ANALYZE-RESUME
    &ANALYZE-SUSPEND _CODE-BLOCK _CUSTOM Definitions 
    /*------------------------------------------------------------------------
    
       
      File: 
    
      Description: 
    
      Input Parameters:
          <none>
    
      Output Parameters:
          <none>
    
      Author: 
    
      Created: 
    
    ------------------------------------------------------------------------*/
    /*           This .W file was created with WebSpeed Workshop.           */
    /*----------------------------------------------------------------------*/
    
    /* ***************************  Definitions  ************************** */
    
    /* Preprocessor Definitions ---                                         */
    
    /* Parameters Definitions ---                                           */
    
    /* Local Variable Definitions ---                                       */
    
    DEFINE VARIABLE ProgramaEmUso AS CHARACTER INITIAL ["wsco059"].
    DEFINE VARIABLE NmeDoPrograma AS CHARACTER INITIAL ["wsco059.w"].
    
    DEFINE VARIABLE opcao                 AS CHARACTER.
    DEFINE VARIABLE msg-erro              AS CHARACTER.
    DEFINE VARIABLE msg-erro-aux          AS INTEGER.
    DEFINE VARIABLE ponteiro-auxiliar     AS CHARACTER.
    DEFINE VARIABLE pesquisa              AS CHARACTER.     
    DEFINE VARIABLE FlagPermissoes        AS CHARACTER.
    DEFINE VARIABLE IdentificacaoDaSessao AS CHARACTER FORMAT "x(47)".
    DEFINE VARIABLE vauxsenha             AS CHARACTER FORMAT "X(16)".
    &ANALYZE-RESUME
    &ANALYZE-SUSPEND _PREPROCESSOR-BLOCK 
    
    /* ********************  Preprocessor Definitions  ******************** */
    
    &Scoped-define PROCEDURE-TYPE Web-Object
    
    &Scoped-define WEB-FILE SUPER/wsco059.htm
    
    /* Default preprocessor names. */
    &Scoped-define FRAME-NAME Web-Frame
    
    /* Standard List Definitions                                            */
    &Scoped-Define ENABLED-OBJECTS cabecalho regiao-ini regiao-fim mrfim mrini ~
    estado cidade codrepini codrepfim ~
    op opretornomsg permi pesq ~
    ponteiro statuspos 
    &Scoped-Define DISPLAYED-OBJECTS cabecalho regiao-ini regiao-fim mrfim mrini ~
    estado cidade codrepini codrepfim ~
    op opretornomsg permi pesq ~
    ponteiro statuspos 
    
    /* Custom List Definitions                                              */
    /* List-1,List-2,List-3,List-4,List-5,List-6                            */
    &ANALYZE-RESUME
    
    &ANALYZE-SUSPEND _FORM-BUFFER
    
    
    /* Definitions of the field level widgets                               */
    DEFINE VARIABLE cabecalho AS CHARACTER FORMAT "x(256)":U 
         VIEW-AS FILL-IN
         SIZE 20 BY 1 NO-UNDO.
    
    DEFINE VARIABLE regiao-ini AS CHARACTER FORMAT "x(256)":U 
         VIEW-AS SELECTION-LIST SINGLE 
         LIST-ITEM-PAIRS "Seleciona a Regiao inicial","none" 
         SIZE 30 BY 4.
    
    DEFINE VARIABLE regiao-fim AS CHARACTER FORMAT "x(256)":U 
         VIEW-AS SELECTION-LIST SINGLE 
         LIST-ITEM-PAIRS "Seleciona a Regiao final","none" 
         SIZE 20 BY 4.
    
    DEFINE VARIABLE mrfim AS CHARACTER FORMAT "x(256)":U 
         VIEW-AS FILL-IN
         SIZE 20 BY 1 NO-UNDO.
    
    DEFINE VARIABLE mrini AS CHARACTER FORMAT "x(256)":U 
         VIEW-AS FILL-IN
         SIZE 20 BY 1 NO-UNDO.
    
    DEFINE VARIABLE codrepfim AS CHARACTER FORMAT "x(256)":U 
         VIEW-AS FILL-IN
         SIZE 20 BY 1 NO-UNDO.
    
    DEFINE VARIABLE codrepini AS CHARACTER FORMAT "x(256)":U 
         VIEW-AS FILL-IN
         SIZE 20 BY 1 NO-UNDO.
    
    DEFINE VARIABLE op AS CHARACTER FORMAT "x(256)":U 
         VIEW-AS FILL-IN
         SIZE 20 BY 1 NO-UNDO.
    
    DEFINE VARIABLE opretornomsg AS CHARACTER FORMAT "x(256)":U 
         VIEW-AS FILL-IN
         SIZE 20 BY 1 NO-UNDO.
    
    DEFINE VARIABLE permi AS CHARACTER FORMAT "x(256)":U 
         VIEW-AS FILL-IN
         SIZE 20 BY 1 NO-UNDO.
    
    DEFINE VARIABLE pesq AS CHARACTER FORMAT "x(256)":U 
         VIEW-AS FILL-IN
         SIZE 20 BY 1 NO-UNDO.
    
    DEFINE VARIABLE ponteiro AS CHARACTER FORMAT "x(256)":U 
         VIEW-AS FILL-IN
         SIZE 20 BY 1 NO-UNDO.
    
    DEFINE VARIABLE statuspos AS CHARACTER FORMAT "x(256)":U 
         VIEW-AS FILL-IN
         SIZE 20 BY 1 NO-UNDO.
    
    DEFINE VARIABLE estado AS CHARACTER INITIAL "Todos" 
         VIEW-AS SELECTION-LIST SINGLE 
         LIST-ITEMS "Todos",
                    "Acre",
                    "Alagoas",
                    "Amapá",
                    "Amazonas",
                    "Bahia",
                    "Ceará",
                    "Distrito Federal",
                    "Goiás",
                    "Espirito Santo",
                    "Maranhão",
                    "Mato Grosso",
                    "Mato Grosso do Sul",
                    "Minas Gerais",
                    "Pará",
                    "Paraiba",
                    "Paraná",
                    "Pernambuco",
                    "Piauí",
                    "Rio de Janeiro",
                    "Rio Grande do Norte",
                    "Rio Grande do Sul",
                    "Rondônia",
                    "Rorâima",
                    "São Paulo",
                    "Santa Catarina",
                    "Sergipe",
                    "Tocantins"
                    SIZE 20 BY 4 NO-UNDO.
    
    DEFINE VARIABLE cidade AS CHARACTER INITIAL "Todos" 
         VIEW-AS SELECTION-LIST SINGLE 
         LIST-ITEMS "Seleciona a Cidade","none" 
                    SIZE 20 BY 4 NO-UNDO.
    
    /* ************************  Frame Definitions  *********************** */
    
    DEFINE FRAME Web-Frame
         cabecalho no-label SKIP
         regiao-ini skip
         regiao-fim skip
         mrfim no-label SKIP
         mrini no-label SKIP
         estado no-label SKIP
         cidade no-label skip
         codrepfim no-label SKIP
         codrepini no-label SKIP
         op no-label SKIP
         opretornomsg no-label SKIP
         permi no-label SKIP
         pesq no-label SKIP
         ponteiro no-label SKIP
         statuspos no-label SKIP.  
    
    &ANALYZE-RESUME
    
    /* *********************** Procedure Settings ************************ */
    
    &ANALYZE-SUSPEND _PROCEDURE-SETTINGS
    /* Settings for THIS-PROCEDURE
       Other Settings: COMPILE
     */
    &ANALYZE-RESUME _END-PROCEDURE-SETTINGS
    
    &ANALYZE-SUSPEND _INCLUDED-LIBRARIES
    /* Included Libraries --- */
    
    {src/web/method/html-map.i}
    &ANALYZE-RESUME _END-INCLUDED-LIBRARIES
    
    /* ***************************  Functions  **************************** */
    
    &ANALYZE-SUSPEND _CODE-BLOCK _FUNCTION ValidaDados 
    FUNCTION ValidaDados RETURNS CHARACTER (INPUT tipo-validacao AS CHARACTER) :
    
    END FUNCTION.
    &ANALYZE-RESUME
    &ANALYZE-SUSPEND _CODE-BLOCK _CUSTOM "Main Code Block" 
    
    
    /* ************************  Main Code Block  ************************* */
    
    /* 
     * Standard Main Code Block. This dispatches two events:
     *   'initialize'
     *   'process-web-request'
     * The bulk of the web processing is in the procedure 'process-web-request'
     * elsewhere in this Web object.
     */
    {src/web/template/hmapmain.i}
    &ANALYZE-RESUME
    /* **********************  Internal Procedures  *********************** */
    
    &ANALYZE-SUSPEND _CODE-BLOCK _PROCEDURE htm-offsets _WEB-HTM-OFFSETS
    PROCEDURE htm-offsets :
    /*------------------------------------------------------------------------------
      Purpose:     Runs procedure to associate each HTML field with its
                   corresponding widget name and handle.
      Parameters:  
      Notes:       
    ------------------------------------------------------------------------------*/
      RUN web/support/rdoffr.p ("{&WEB-FILE}":U).
      RUN htm-associate IN THIS-PROCEDURE
        ("cabecalho":U,"cabecalho":U,cabecalho:HANDLE IN FRAME {&FRAME-NAME}).
      RUN htm-associate IN THIS-PROCEDURE
        ("regiao-ini":U,"regiao-ini":U,regiao-ini:HANDLE IN FRAME {&FRAME-NAME}).
      RUN htm-associate IN THIS-PROCEDURE
        ("regiao-fim":U,"regiao-fim":U,regiao-fim:HANDLE IN FRAME {&FRAME-NAME}).
      RUN htm-associate IN THIS-PROCEDURE
        ("mrfim":U,"mrfim":U,mrfim:HANDLE IN FRAME {&FRAME-NAME}).
      RUN htm-associate IN THIS-PROCEDURE
        ("mrini":U,"mrini":U,mrini:HANDLE IN FRAME {&FRAME-NAME}).
      RUN htm-associate IN THIS-PROCEDURE
        ("estado":U,"estado":U,estado:HANDLE IN FRAME {&FRAME-NAME}).  
      RUN htm-associate IN THIS-PROCEDURE
        ("cidade":U,"cidade":U,cidade:HANDLE IN FRAME {&FRAME-NAME}).
      RUN htm-associate IN THIS-PROCEDURE
        ("codrepfim":U,"codrepfim":U,codrepfim:HANDLE IN FRAME {&FRAME-NAME}).
      RUN htm-associate IN THIS-PROCEDURE
        ("codrepini":U,"codrepini":U,codrepini:HANDLE IN FRAME {&FRAME-NAME}).
      RUN htm-associate IN THIS-PROCEDURE
        ("op":U,"op":U,op:HANDLE IN FRAME {&FRAME-NAME}).
      RUN htm-associate IN THIS-PROCEDURE
        ("opretornomsg":U,"opretornomsg":U,opretornomsg:HANDLE IN FRAME {&FRAME-NAME}).
      RUN htm-associate IN THIS-PROCEDURE
        ("permi":U,"permi":U,permi:HANDLE IN FRAME {&FRAME-NAME}).
      RUN htm-associate IN THIS-PROCEDURE
        ("pesq":U,"pesq":U,pesq:HANDLE IN FRAME {&FRAME-NAME}).
      RUN htm-associate IN THIS-PROCEDURE
        ("ponteiro":U,"ponteiro":U,ponteiro:HANDLE IN FRAME {&FRAME-NAME}).
      RUN htm-associate IN THIS-PROCEDURE
        ("statuspos":U,"statuspos":U,statuspos:HANDLE IN FRAME {&FRAME-NAME}).
    END PROCEDURE.
    
    &ANALYZE-RESUME
    
    &ANALYZE-SUSPEND _CODE-BLOCK _PROCEDURE local-assign-record 
    &ANALYZE-RESUME
    
    &ANALYZE-SUSPEND _CODE-BLOCK _PROCEDURE local-display-fields 
    PROCEDURE local-display-fields :
    
    RUN dispatch IN THIS-PROCEDURE ( INPUT 'display-fields':U ).
    
    END PROCEDURE.
    &ANALYZE-RESUME
    
    &ANALYZE-SUSPEND _CODE-BLOCK _PROCEDURE output-header 
    PROCEDURE output-header :
    /*------------------------------------------------------------------------
      Purpose:     Output the MIME header, and any "cookie" information needed 
                   by this procedure.  
      Parameters:  <none>
      Notes:       In the event that this Web object is State-Aware, this is also
                   a good place to set the "Web-State" and "Web-Timeout" 
                   attributes.              
    ------------------------------------------------------------------------*/
       
       output-content-type ("text/html":U).
      
    END PROCEDURE.
    &ANALYZE-RESUME
    &ANALYZE-SUSPEND _CODE-BLOCK _PROCEDURE PermissaoDeAcesso 
    PROCEDURE PermissaoDeAcesso :
    
    {includes/permaces.i}
    
    END PROCEDURE.
    &ANALYZE-RESUME
    &ANALYZE-SUSPEND _CODE-BLOCK _PROCEDURE process-web-request 
    PROCEDURE process-web-request :
    /*------------------------------------------------------------------------
    
    ------------------------------------------------------------------------*/
      def var remitente as rowid no-undo.
      def var rrepres   as rowid no-undo.
      def var v-identificacao as char no-undo.
    
    v-identificacao = get-cookie("cookie-usuario-em-uso").
      find Ws-sessao no-lock where Ws-sessao.identificacao = v-identificacao no-error.
     
      assign remitente = TO-ROWID(GET-VALUE("remitente"))
             rrepres   = TO-ROWID(GET-VALUE("rrepres")).
      
      if remitente <> ? then do:
        find first emitente where rowid(emitente) = remitente no-lock no-error.
        if avail emitente then do:
            assign mrini         = emitente.cgc
                   mrfim         = emitente.cgc.
        end.
      end. /*rowid <> ?*/
      else
      if rrepres <> ? then do:
          find first repres where rowid(repres) = rrepres no-lock no-error.
          if avail repres then do:
              assign codrepini = "00000"
                     codrepfim = "99999"
                     mrini         = ""
                     mrfim         = "ZZZZZZZZZZZZZZZZZZZ".
          end.
      end.  
      else
        if ws-sessao.tipo = "REP" then do:
            assign codrepini = "00000"
                   codrepfim = "99999"
                   mrini         = ""
                   mrfim         = "ZZZZZZZZZZZZZZZZZZZ".
      end.
      else
      if ws-sessao.tipo = "EMI" then do:
        find first emitente where 
        emitente.cod-emitente = ws-sessao.codigo no-lock no-error.
    
        assign 
        codrepini = "00000"
        codrepfim = "99999"
        mrini         = if avail emitente then emitente.cgc else ""
        mrfim         = if avail emitente then emitente.cgc else "ZZZZZZZZZZZZZZZZZZZZ".
      end.
      else do:
        assign
        codrepini = "00000"
        codrepfim = "99999"
        mrini         = ""
        mrfim         = "ZZZZZZZZZZZZZZZZZZZ".
      end. /*rowid = ?*/
    
      /*Problema aqui, for each parece que nao pega nada*/
      DEFINE VARIABLE pc-regiao-ini AS CHARACTER no-undo initial "".
      FOR EACH regiao no-lock:
          pc-regiao-ini = IF pc-regiao-ini = "" THEN regiao.nome-reg
                          ELSE string(pc-regiao-ini + "," + regiao.nome-reg).
      END.
      
      regiao-ini:LIST-ITEM-PAIRS IN FRAME {&FRAME-NAME} = pc-regiao-ini.
    
      DEFINE VARIABLE pc-regiao-fim AS CHARACTER   NO-UNDO.    
      FOR EACH regiao:
          pc-regiao-fim = IF pc-regiao-fim = "" THEN regiao.nome-reg
                          ELSE string(pc-regiao-fim + "," + regiao.nome-reg).    
      END.
        
        regiao-fim:LIST-ITEM-PAIRS IN FRAME {&FRAME-NAME} = pc-regiao-fim.
    
      {includes/webconsu.i}
    
    END PROCEDURE.
    &ANALYZE-RESUME
    &ANALYZE-SUSPEND _CODE-BLOCK _PROCEDURE RodaJavaScript 
    PROCEDURE RodaJavaScript :
    
    {includes/rodajava.i}
    
    END PROCEDURE.
    &ANALYZE-RESUME
    E eis o html:

    Código:
    <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
    <html>
    
    <head>
    <meta name="AUTHOR" content="Solusoft/Bt - wsco02">
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
    <meta name="wsoptions" content="no-output">
    <meta name="GENERATOR" content="">
    <meta http-equiv="Cache-Control" content="No-Cache">
    <meta http-equiv="Pragma"        content="No-Cache">
    <meta http-equiv="Expires"       content="0">
    <title>Consulta Cliente</title>
    <base target="frame_de_corpo">
    <link rel="stylesheet" href="/webems24/estilos/corpo.css" type="text/css">
    </head>
    <script LANGUAGE="JavaScript">
    NomeDoProgramaPrincipal  = '/super/wsco059.w';
    NomeDoProgramaDeListagem = '';
    NomeDoProgramaDeAjuda    = '/tortuga/wsco02aj.w';
    ProgramaDeRelatorio      = '/tortuga/wsco02re.w';
    NomeDoProgramaDeZoom     = '';
    </script>
    <script LANGUAGE="JavaScript">
    
    function RetornoDaPesquisa(campo,valor,valor2,valor3)
        {  
        }
    
    function RetornoDoZoom(campo,valor,valor2,valor3)
        { 
    
         if (campo == 'mrini') {
             parent.frame_de_corpo.document.form.mrini.value = valor2; 
             parent.frame_de_corpo.document.form.mrfim.value = valor2;          
            }  
    
         if (campo == 'codrepini') {
            parent.frame_de_corpo.document.form.codrepini.value = valor; 
            parent.frame_de_corpo.document.form.codrepfim.value = valor; 
            }
    
    
        }
    
    function ValidaDados(form)
        { 
            var msg="";
            msg = msg + top.frames[0].VE("in",form.mrini,"O c¢digo da Microregião","sim","0","999999999");
            msg = msg + top.frames[0].VE("in",form.mrfim,"O c¢digo da Microregião","sim","0","999999999");
            msg = msg + top.frames[0].VE("ca",form.cgcini,"O CNPJ do cliente","sim");
            msg = msg + top.frames[0].VE("ca",form.cgcfim,"O CNPJ do cliente","sim");
            msg = msg + top.frames[0].VE("in",form.codrepini,"O c¢digo representante","sim","0","99999");
            msg = msg + top.frames[0].VE("in",form.codrepfim,"O c¢digo representante","sim","0","99999");
                     
            if (msg == "")
                    return true
                else
                    {
                        top.frames[0].MostraResultado('1',msg);
                        return false
                    }
        }
    
    
    function CarregaPrincipal()
        {
            jan1 = open('/webems24/htm/wsco02ca.htm','frcabec');
            jan2 = open('/webems24/htm/frbotao2.htm','frpanel');
            jan3 = open('fraux.w','fraux');
            parent.frame_de_corpo.document.form.codemitenteini.focus();
            parent.frame_de_corpo.document.form.codemitenteini.select();
        }    
    
    
    function Executar()
        {
            if (ValidaDados(parent.frame_de_corpo.document.forms[0])) 
                   {
    
                        parent.frame_de_corpo.status = 'Processando relat¢rio. Por favor, aguarde ...'; 
                        varurl = parent.frame_de_corpo.document.form.cabecalho.value + 
    					         ProgramaDeRelatorio + 
    			    '?codemitenteini='  + parent.frame_de_corpo.document.form.codemitenteini.value + 
                    '&codemitentefim='  + parent.frame_de_corpo.document.form.codemitentefim.value + 
                    '&canalvendaini='   + '000' +    
                    '&canalvendafim='   + '999' + 
                    '&nomeabrevini='    + ' '   +    
                    '&nomeabrevfim='    + 'ZZZZZZZZZZZZ' + 
                    '&matrizini='       + '' +    
                    '&matrizfim='       + 'ZZZZZZZZZZZZ' + 
                    '&cgcini='          + parent.frame_de_corpo.document.form.cgcini.value          + 
                    '&cgcfim='          + parent.frame_de_corpo.document.form.cgcfim.value          + 
                    '&codgrcliini='     + '00'     + 
                    '&codgrclifim='     + '99'     + 
                    '&codrepini='       + parent.frame_de_corpo.document.form.codrepini.value +
                    '&codrepfim='       + parent.frame_de_corpo.document.form.codrepfim.value +
                    '&cepini='          + '00000000' + 
                    '&cepfim='          + '99999999' +
                    '&suspenso='        + 'true'     +
                    '&estado='          + parent.frame_de_corpo.document.form.estado.selectedIndex +
                    '&regiao-ini='      + parent.frame_de_corpo.document.form.regiao-ini[parent.frame_de_corpo.document.form.regiao-ini.selectedIndex].value +
                    '&regiao-fim='      + parent.frame_de_corpo.document.form.regiao-fim[parent.frame_de_corpo.document.form.regiao-fim.selectedIndex].value;
                        
                        JanCo02 = window.open(varurl,'JanCo02','toolbar=yes,location=no,diretories=no,status=no,menubar=yes,scrollbars=yes,resizable=yes,width=750,height=450,top=0,left=0,screenX=0,screenY=0');
                        JanCo02.document.writeln('<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">');
                        JanCo02.document.writeln('<html>');
                        JanCo02.document.writeln('<head>');
                        JanCo02.document.writeln('<meta http-equiv="Content-Type"');
                        JanCo02.document.writeln('content="text/html; charset=iso-8859-1">');
                        JanCo02.document.writeln('<title>Mensagem</title>'); 
                        JanCo02.document.writeln('</head>');
                        JanCo02.document.writeln('<body >');
                        JanCo02.document.writeln('<font face="fixedsys">Aguarde Processando...</font><br>');
                        JanCo02.document.writeln('</body>');
                        JanCo02.document.writeln('</html>');
                        JanCo02 = window.open(varurl,'JanCo02','toolbar=yes,location=no,diretories=no,status=no,menubar=yes,scrollbars=yes,resizable=yes,width=750,height=450,top=0,left=0,screenX=0,screenY=0');
                        JanCo02.focus();
                        parent.frame_de_corpo.status = '';
                        return true
                    } 
                else 
                    return false
        }
    </script>
    
    
    <body>
    
    <form METHOD="POST" NAME="form">
      <input type="hidden" name="op" value="0"><input type="hidden" name="permi" value="XXXXXX"><input
      type="hidden" name="pesq" value="0"><input type="hidden" name="ponteiro" value="0"><input
      type="hidden" name="opretornomsg" value="0"><input type="hidden" name="statuspos"
      value="0"><input type="hidden" name="cabecalho" value="0"><div align="center"><center>
          <table border="0" cellspacing="1">
    
            <tr>
                <td><td align="left" colspan="3"><select name="regiao-ini" size=1>           
                <option SELECTED VALUE="0">Seleciona a Regiao inicial
             </select>            
                <td>ate</td>
                <td><td align="left" colspan="3"><select name="regiao-fim" size=1>           
                <option SELECTED VALUE="0">Seleciona a Regiao final
             </select>                 
            </tr>
    
            <tr> 
                <td align="right">Microregião:</td>
                <td> 
                    <input LANGUAGE="JavaScript" TYPE="text"
                        ONFOCUS="window.status = 'Informe a microregião inicial.'" SIZE="5" NAME="mrini"
                        maxlength="5">
                </td>
                <td>ate </td>
                <td> 
                    <input language="JavaScript" type="text"
                        onFocus="window.status = 'Informe a microregião final.'" size="5" name="mrfim"
                        maxlength="5">
                </td>
    
            </tr>
    
            <tr> 
                <td align="right"><a href="javascript:top.frames[0].AbreZoom('/zoom/wszo06.w','codrepini','Z')">Representante:</a></td>
                <td> 
                    <input LANGUAGE="JavaScript" TYPE="text"
                        ONFOCUS="window.status = 'Informe o c¢digo do representante.'" SIZE="5" NAME="codrepini"
                        maxlength="5">
                </td>
                <td>ate </td>
                <td> 
                    <input language="JavaScript" type="text"
                        onFocus="window.status = 'Informe o c¢digo do representante.'" size="5" name="codrepfim"
                        maxlength="5">
                </td>
            </tr>
    
            <tr> 
              <td align="right">Estado:</td>
              <td colspan="3">
                <select name="estado" size="1" ONFOCUS="window.status = 'Selecione um Estado.'">
                    <option value="todos">Todos</option>
                    <option selected value="AC">"Acre"</option>
                    <option selected value="AL">"Alagoas"</option>
                    <option selected value="AP">"Amapß"</option>
                    <option selected value="AM">"Amazonas"</option>
                    <option selected value="BA">"Bahia"</option>
                    <option selected value="CE">"Cearß"</option>
                    <option selected value="DF">"Distrito Federal"</option>
                    <option selected value="GO">"Goißs"</option>
                    <option selected value="ES">"Espirito Santo"</option>
                    <option selected value="MA">"MaranhÒo"</option>
                    <option selected value="MT">"Mato Grosso"</option>
                    <option selected value="MS">"Mato Grosso do Sul"</option>
                    <option selected value="MG">"Minas Gerais"</option>
                    <option selected value="PA">"Parß"</option>
                    <option selected value="PB">"Paraiba"</option>
                    <option selected value="PR">"Paranß"</option>
                    <option selected value="PE">"Pernambuco"</option>
                    <option selected value="PI">"PiauÝ"</option>
                    <option selected value="RJ">"Rio de Janeiro"</option>
                    <option selected value="RN">"Rio Grande do Norte"</option>
                    <option selected value="RS">"Rio Grande do Sul"</option>
                    <option selected value="RO">"Rond¶nia"</option>
                    <option selected value="RR">"RorÔima"</option>
                    <option selected value="SP">"SÒo Paulo"</option>          
                    <option selected value="SC">"Santa Catarina"</option>     
                    <option selected value="SE">"Sergipe"</option>            
                    <option selected value="TO">"Tocantins"</option>           
                </select>
              </td>
            </tr>
    
            <tr> 
              <td align="right">Cidade:</td>
              <td colspan="3"><select name="cidade" size="1" ONFOCUS="window.status = 'Selecione um cidade.'">
                  <option value="TODOS">Todos</option>              
              </select>
              </td>
            </tr>
            
    
          </table>
      </center></div>
    </form>
    </body>
    </html>
    
  4. erickles

    erickles Membro Participativo

    Resolvido pessoal...

    Era só mudar isso...

    Código:
    DEFINE VARIABLE regiao-ini AS CHARACTER FORMAT "x(256)":U 
         VIEW-AS SELECTION-LIST SINGLE 
         LIST-ITEMS "Seleciona a Regiao inicial" 
         SIZE 30 BY 4.
    
    DEFINE VARIABLE regiao-fim AS CHARACTER FORMAT "x(256)":U 
         VIEW-AS SELECTION-LIST SINGLE 
         LIST-ITEM "Seleciona a Regiao final"
         SIZE 20 BY 4.
    E isso...
    Código:
    FOR EACH es-usuario-ger no-lock WHERE es-usuario-ger.cod_usuario = "ess55813"
        BY es-usuario-ger.nome-ab-reg:
    
        IF cList EQ ? THEN
            ASSIGN cList = es-usuario-ger.nome-ab-reg.
        ELSE
            ASSIGN cList = cList + "," + es-usuario-ger.nome-ab-reg.
    
    END.
    
    assign regiao-ini:LIST-ITEMS IN FRAME {&FRAME-NAME} = cList
           regiao-fim:LIST-ITEMS IN FRAME {&FRAME-NAME} = clist.
    
    IF cList <> ? THEN DO:
    
        FIND FIRST es-usuario-ger NO-LOCK 
            WHERE es-usuario-ger.cod_usuario = "ess55813" NO-ERROR.
        ASSIGN regiao-ini:SCREEN-VALUE IN FRAME {&FRAME-NAME} =  es-usuario-ger.nome-ab-reg.
    
        FIND LAST es-usuario-ger NO-LOCK 
            WHERE es-usuario-ger.cod_usuario = "ess55813" NO-ERROR.
        ASSIGN regiao-fim:SCREEN-VALUE IN FRAME {&FRAME-NAME} =  es-usuario-ger.nome-ab-reg.
    
    END.
    E me listaram todas as regiões!
  5. alexfowler

    alexfowler Membro Participativo

    Bom, cria um select name com os option value como num html, misturando o codigo progress, mais ou menos assim:

    '<select name=htm_cod_motivo">' SKIP.

    {&OUT}
    ' <option value=" " selected >&nbsp;</option>' SKIP.

    FOR EACH es-motivo NO-LOCK:
    {&OUT}
    ' <option value="' STRING(es-motivo.codigo,"X(3)") '">' STRING(es-motivo.descricao,"X(15)") '</option>' SKIP.
    END.

    {&OUT}
    '</select>'

    Nao sei se as aspas no codigo estao exatamente corretas, mas é por ai.
  6. alexfowler

    alexfowler Membro Participativo

    Bom, vendo melhor o seu código, eu nao utilizo esse esquema que voce esta utilizando para desenvolver, mas pode ser que o motivo para o estado funcionar e as regioes nao, é porque voce ta criando a lista de regios na web-request.

    Por curiosidade, tente fazer o foreach na secao de defitions para testar, se rolar, já explicou uma parte do problema, dai o lance é tentar descobrir se nesse esquema que voce ta fazendo, se dentro da process-web-request tem como montar o combo ali, caso mesmo no defitions nao funcione ai talvez seja algo na hora de atribuir o list-item-pairs.

Compartilhe esta Página