Jump to content
Fivewin Brasil

silvanof

Membros
  • Posts

    36
  • Joined

  • Last visited

  • Days Won

    2

Posts posted by silvanof

  1. Pelo que entendi o que tem no código de barras seria um código de identificação do gerente e não uma senha, vc terá que alterar seu sistema par pedir além da identificação que é facilitada pelo código de barras, também uma senha. Não vejo outra solução.

     

     

  2. Prezados, a quem possa interessar.  Estou iniciando na programação web com PHP e minha primeira experiência foi juntar os dois mundos, fazendo uma chamada a uma pagina hospedada no servidor pra retornar um relatório html gerado com php. Utilizei o pacote Xampp que vem completo (Apache,PHP e MySql), mas usei o banco de dados Firebird do meu sistema. Vi que com isso dá para migrar facilmente relatório para internet/intranet.  Fiz assim:tela_rel_html.jpg

    Função com a classe TipClientHttp do xHb comercial:

     

    FUNCTION Main()
       
           LOCAL oHttp, cHtml, hQuery
           
           //   ? cPath+"listapartes.html"  
           //   SHELLEXECUTE( 0, 0, "iexplore.exe", cPath+"lista_partes.html", 0, 1 ) 
          //return nil       
           

           oHttp:= TIpClientHttp():new( "http://192.168.254.104/contratos/lista_partes_xhb.php" )

           // build the Google query
           hQUery := Hash()
           hSetCaseMatch( hQuery, .F. )

           hQuery["tipfil"]:= "3"
           hQuery["conteudo"]  := "INSTITUTO"

           // add query data to the TUrl object
           oHttp:oUrl:addGetForm( hQuery )

           // Connect to the HTTP server
           IF oHttp:open()
              // downlowad the Google response
              cHtml   := oHttp:readAll()

              Memowrit( "lista_partes.html", cHtml )
              oHttp:close()

               ? cPath+"listapartes.html"  
              SHELLEXECUTE( 0, 0, "iexplore.exe", cPath+"lista_partes.html", 0, 1 ) 
              

              //? Len(cHtml), "bytes received "
              //?? "and written to file lista_partes.html"
           ELSE
              ? "Connection error:", oHttp:lastErrorMessage()
           ENDIF
     
    RETURN nil

    Programa em PHP que lê os parâmetros passados via GET e da um SELECT no banco:

    <!DOCTYPE html>
    <html>
        <head>
            <!-- Para não dar problemas na acentuação -->
            <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> 
            <link rel="stylesheet" type="text/css" href="css/Estilo_Form.css" />

            <title> </title>
            <?php require_once('include/funcoes_aws.php') ?>
        
            <header>
            <center>
        
            <br>
            <!-- Funcao para exibir logo na tela (funcoes_aws.php) -->
            <?php ExibeLogoTela() ?>
                <hr><br>
            </center>    
            </header>
            <!-- 120% para gerar scrool horizontal -->
        </head>    
        <body style="width:120%" bgcolor="#87CEFA">
        <?php
        
        // Verificação de segurança    via variavel global

            $filtracampo="";
            $tipfil=$_REQUEST['tipfil'];
            $conteudo=$_REQUEST['conteudo'];
            
            switch($tipfil)
            {
                case "1": //todos
                    $filtracampo=""; 
                    break;
                case "2": //cnpj/cpf
                    $filtracampo="AND (CNPJ = '".$conteudo."' OR CPF = '".$conteudo."')";
                    break;
                case "3": //nome    
                    $filtracampo="AND NOME LIKE  '%".$conteudo."%'";
                    break;
            }
        
            $hoje=Hoje();
        
            // Conecta com o Firebird, banco CONTRATOS
            $db = ibase_connect("localhost:c:/contratos/contratos_compet.fdb", "sysdba", "masterkey");
            
            // Monta o SELECT na tabela de PARTES
            $query ="SELECT CODEMP,NOME,TELEFONE1,CNPJ,CPF,TIPOPESSOA FROM CTR_PARTES WHERE SR_DELETED<>'T' ".$filtracampo." ORDER BY NOME";   
            
            
            $result = ibase_query($db,$query);
            
            if ($result)
            {
                echo '<table border="1">';
                echo nl2br("<caption> <strong>  $hoje \r\n LISTAGEM DE PARTES </strong>  </caption>");
                echo "<tr bgcolor='lightgray'>";
                echo "<td><strong> CÓDIGO </strong></td>"; 
                echo "<td ><strong> NOME </strong></td>";
                echo "<td ><strong> TELEFONE </strong></td>";
                echo "<td ><strong> CNPJ/CPF </strong></td>";
                echo "</tr>";
                
                $lin=0;
                while ($row = ibase_fetch_assoc  ($result))
                {
                    $lin++;
                    // para alternar as cores das linhas (%=modulo() ou seja divisão com resto zero)
                    if($lin % 2 == 0)
                    {   //par
                        $corfundo="bgcolor='lightyellow'";
                    }
                    else
                    {
                        //impar
                        $corfundo='';
                    } 
                    
                    echo "<tr ".$corfundo.">";
                    echo "<td>" .$row['CODEMP']           ."</td>";
                    echo "<td >".substr($row['NOME'],0,50)."</td>";
                    echo "<td>" .$row['TELEFONE1']        ."</td>";
                    if ($row['TIPOPESSOA']=='J')
                        echo "<td>" .$row['CNPJ'] ."</td>";
                        
                    ELSE    
                        echo "<td>" .$row['CPF'] ."</td>";
                        
                    echo "</tr>";
                }
                echo '</table>';
            }
            ibase_free_result($result);
            ibase_close($db);    
            echo ibase_errmsg();
         
    ?>
        </body>
    </html>
     

     

     

    tela_rel_html.jpg

  3. Olá,

    Alguém conseguiu fazer funcionar índices que tenha o descend() na chave, usando a sqlrdd ?

    ou será que tem de refazer todo os códigos dos fontes que usam arquivos que tenha o descend() na chave.

    Nárlem

    Narlem vc usa a SQLRDD, e como citou o outro colega é vantagem mesmo vc ir eliminando índices do sistema e trabalhar com comandos SQL é mais rápido, mais versátil e menos sujeito a problemas. Hoje só uso índices simples nos campos chave. Se precisar tenho vários exemplos.

  4. Obrigado Kapiaba!!!

    Para quem quiser saber como usar o Mrboleto dentro do sistema: No meu caso, que utilizo o xHb comercial, tive gerar as libs Hbpdf, Hbzebra e Png, todas estão na pasta Contrib do xharbour. Depois é só compilar as tres libs, juntamente com o Mrboleto.prg com o restante do seu sistema. A maneira de passar os parametros para a classe Boleto está no Boleto.prg que faz parte do pacote MRboleto. No mais é só alegria. Se alguem precisar das classes posso enviar por email.

    []'s

  5. Prezados,

    Para quem quiser saber como usar o Mrboleto dentro do sistema: No meu caso, que utilizo o xHb comercial, tive gerar as libs Hbpdf, Hbzebra e Png, todas estão na pasta Contrib do xharbour. Depois é só compilar as tres libs, juntamente com o Mrboleto.prg com o restante do seu sistema. A maneira de passar os parametros para a classe Boleto está no Boleto.prg que faz parte do pacote MRboleto. No mais é só alegria. Se alguem precisar das classes posso enviar por email.

    []'s

  6. Edu,

    Sua dúvida é na hora de montar o XML? Se for eu faço assim:

    //Verifica se é desconto ou acrescimo conforme o pedido de venda

    Result:=nAcreTot-nDescTot
    if Result <> 0
    *---------------------------------------------
    // Grupo W19 - Desconto ou Acrescimo sobre total
    *---------------------------------------------
    oXmlDescAcr:=TxmlNode():new(,"DescAcrEntr")
    oXmlTotal:AddBelow(oXmlDescAcr)
    if Result < 0
    oXmlDescSubTot:=TxmlNode():new(HBXML_TYPE_TAG,"vDescSubtot",,Ltrim(Str(Result,15,2)))
    oXmlDescAcr:AddBelow(oXmlDescSubTot)
    endif
    if Result > 0
    oXmlAcresSubTot:=TxmlNode():new(HBXML_TYPE_TAG,"vAcresSubtot",,Ltrim(Str(Result,15,2)))
    oXmlDescAcr:AddBelow(oXmlAcresSubTot)
    endif
    endif
  7. Olá Narlem.

    Eu uso o sr_setfilter(), meu sistema é multi empresas, o usuário seleciona a empresa e eu filtro os dados das tabelas da empresa escolhida (nGCodemp) assim:

    DbSelectArea('PEDIDOVENDA')
    SR_SetFilter( "A.CODEMP ="+Trim(Str(nGCodemp,6,0)) )
    DBGoTop()
    DBSelectArea("Itens_PedidoVenda")
    SR_SetFilter( "A.CODEMP ="+Trim(Str(nGCodemp,6,0)) )
    DBGoTop()
    DbSelectArea('NOTAFISCAL')
    SR_SetFilter( "A.CODEMP ="+Trim(Str(nGCodemp,6,0)) )
    DBGoTop()
    DBSelectArea("Itens_NotaFiscal")
    SR_SetFilter( "A.CODEMP ="+Trim(Str(nGCodemp,6,0)) )
    DBGoTop()
  8. Ola,

     

    Vc tem que gerar a lib fivehmx.lib do Fivewin novamente, com todos os programas fontes do Fivewin no seu novo compilador. Toda vez que vc trocar a versão do xHarbour ou do Fivewin vc tem que fazer isso.

     

    Att.

     

    Silvano Bispo Faria

    AWS Sistemas Empresariais

    (15) 3202-7798

  9. Amigo, verifique o tipo de dado que vc esta tentando salvar a foto, pq cada tipo tem uma limitação de tamnhanho. Consulte o manual do bando de dados. Por exemplo, no Firebird, conseguia gravar imagens de no máximo 2 mb. Mudei para MS-SQL-Server, dai achei um tipo de dados com um limite bem maior.

     

    Att.

     

    Silvano Bispo Faria

    AWS Sistemas Empresariais

    tel(15) 3202-4498

  10. Ola Luiz,

     

    Utilizo o xHarbour.com com a SQLRDD e a sintax passada a query tem que ser sempre em SQL ANSI. Vc poderia tentar assim: cSql+=" where vencto < "+Any2Sql(date()-10) que acho que o resultado seria o mesmo.

     

    Att.,

     

    Silvano.
     

  11. Ola Kapiaba,

     

    Isto é um trecho da classe própria classe Tprinter só pra ilustrar onde está dando o erro, no caso a parte que está em vermelho, mais especificametne return Self da classe. Coloquei alguns pontos de checagem na classe só para rastrerar o erro. O problema é que o erro acontece qdo ela é chamada pela classe TRelatório que fiz, pra facilitar o uso da TPrinter.

     

    Att.

     

    Silvano

×
×
  • Create New...