Erro Aplicação de Formulário com Progress

(system) #1

Faz algumas semanas que relatei um problema na geração de formulário com BD Progress, porém até o momento não foi enviado nenhuma resposta sobre o assunto. Também postei aqui no FORUM, mas a sugestão de mudar o código gerado pelo SC3, apesar de inviável, foi feita e não apresentou sucesso. Provavelmente a Netmake entede que para correção de BUG, tenho que contratar serviço de UPGRADE, isso não é uma prática exclusiva da Netmake e acredito não está amparada em nenhuma lei de software.

Isto é claro que não ocorre quando você compra a licença de uso do Windows, Norton, etc., pois são realizadas atualizações para correção de problemas independente do tempo em que foi adquirida a licença.

Usei a versão 2 para fazer o mesmo formulário e funcionou sem problemas, inclusive o código gerado está com aspas dupla na clausula select.

=========================/======================
Código SC2:

          $nmgp_select = "SELECT \"Cust-Num\", Name, Address, Address2, City, State, Country, Phone, Contact, \"Sales-Rep\", Comments, \"Credit-Limit\", Balance, Terms, Discount, \"Postal-Code\" from " . $this->ini->nm_tabela ; 
      } 
      if ($this->nmgp_opcao == "igual") 
      { 
          if (in_array(strtolower($this->ini->nm_tpbanco), $this->ini->nm_bases_access))
          {
              $nmgp_select .= " WHERE  \"Cust-Num\" = $cust_num "; 
          }  
          else  
          {
              $nmgp_select .= " WHERE  \"Cust-Num\" = $cust_num "; 
          }  
      } 
      if ($_SESSION['sc_session'][$this->ini->sc_page]['frmCustomer']['run_iframe'] == "F" || $_SESSION['sc_session'][$this->ini->sc_page]['frmCustomer']['run_iframe'] == "R")
      {

====================//======================

Código SC3

      $_SESSION['sc_session'][$this->Ini->sc_page]['frmCustomer']['dados_select'] = $this->nmgp_dados_select;

      if (!isset($_SESSION['sc_session'][$this->Ini->sc_page]['frmCustomer']['total']))
      {
           $sc_where_pos = " WHERE (("Cust-Num" < $this->cust_num))";
           if ('' != $sc_where)
           {
               if ('where ' == strtolower(substr(trim($sc_where), 0, 6)))
               {
                   $sc_where = substr(trim($sc_where), 6);
               }
               if ('and ' == strtolower(substr(trim($sc_where), 0, 4)))
               {
                   $sc_where = substr(trim($sc_where), 4);
               }
               $sc_where_pos .= ' AND (' . $sc_where . ')';
               $sc_where = ' WHERE ' . $sc_where;

========================/===========================

Grata,
Msilva.

(Haroldo) #2

Fiz diversos relatórios usando o SC3 e o Postgree, é bem verdade que no início estava tendo problemas, reportei ao Suporte e nada, mas ai descobri como o sql do postgree fucniona, e consegui resolver os problemas. para o Postgree nos comandos SQL, a formatação gerado pelo SC3 da erro, mas voce pode fazer manualmente,segue um exemplo de uma consulta:

SELECT
ag.“CO_AGENCIA”,
ag.“NO_AGENCIA”,
ag.“NO_ABREVIADO”,
ag.“ESTADO”,
ag.“STATUS”,
ag.“BAUDRATE”,
ag.“BANDA_LIMITE”,
ag.“BANDA_REDE”,
ag.“PERC_BANDA_LIM”,
ag.“PORTA_SERIAL”,
ag.“ENDERECO”,
ag.“BAIRRO”,
ag.“CEP”,
ag.“CO_CIDADE”,
cid.“NO_CIDADE”,
AG.“CO_CENTRAL”,
ucm.“NO_CENTRAL”
FROM
public.“MNSEG002” ag INNER JOIN public.“MNSEG016” cid ON ag.“CO_CIDADE” = cid.“CO_CIDADE”
INNER JOIN public.“MNSEG005” ucm ON ag.“CO_CENTRAL” = ucm.“CO_CENTRAL”
ORDER BY XXX