Complementando aplicativo com ASP/HTML/ADO

Aqui você poderá oferecer suas Contribuições, Dicas e Tutoriais (Texto ou Vídeo) que sejam de interesse de todos.

Moderador: Moderadores

Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Complementando aplicativo com ASP/HTML/ADO

Mensagem por JoséQuintas »

Tinha até esquecido disto.
adohtml.png
É uma página pra abrir no navegador.
Usando ADO e SQL.

No ASP seria quase igual, pra rodar num servidor de internet.

Então....
Tem horas que sei lá....

No caso de HTML, seria pra testes, você não vai mandar fonte e senha do seu banco de dados pra ser usado por aí.
No caso de ASP tudo bem, roda no servidor.

Então... usar harbour pra isso, sendo que depende de algum site aceitar o harbour, mais prático usar o ASP.
Aí poderia ser acessado por um celular, por exemplo.

Isso de script VB tem:

- No Windows, chamado VBScript
- No Office, chamado VBA Visual Basic For Applications
- No html (aberto no windows), chamado VBScript
- No ASP, que perdeu o lugar pro ASP.NET, mas ainda funciona
- No Access
- No antigo Outlook, não express

É interessante olhar, mesmo que por curiosidade.

Inclusive... no VB6 podiam ser criados controles pra serem usados em HTML - no Windows.
Acho que eram os HTA ao invés de HTML.
Não lembro mais, isso é tão antigo, acho que olhei há mais de 10 anos atrás....
De lá pra cá, a segurança barra muita coisa.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar do usuário
Itamar M. Lins Jr.
Administrador
Administrador
Mensagens: 7928
Registrado em: 30 Mai 2007 11:31
Localização: Ilheus Bahia
Curtiu: 1 vez

programando ASP/HTML com ADO

Mensagem por Itamar M. Lins Jr. »

Olá!
Então... usar harbour pra isso, sendo que depende de algum site aceitar o harbour, mais prático usar o ASP.
Aí poderia ser acessado por um celular, por exemplo.
Também temos isso pronto.
Mod_harbour faz isso, já tem uns 6 anos se não me engano.
Qualquer provedor tem apache e NGINX.
Só ativar o modulo do Harbour e pronto inclusive roda .HRB além do .PRG Linux/Windows/OSX.
https://github.com/FiveTechSoft/mod_harbour/wiki
Inclusive com HaruPDF, Curl... As contribs do Harbour.
Como as coisa no mundo harbour, vão se arrastando e poucos sabem disso.

Código: Selecionar todos

function Main()

   local cArgs := AP_Args(), nRecNo

   USE ( hb_GetEnv( "PRGPATH" ) + "/data/customer.dbf" ) SHARED
   
   if ! Empty( cArgs )
      if Left( cArgs, 5 ) == "next:"
         nRecNo = Val( SubStr( cArgs, 6 ) )
         if nRecNo < RecCount() - 10
            GOTO nRecNo
         endif   
      endif
      if Left( cArgs, 5 ) == "prev:"
         nRecNo = Val( SubStr( cArgs, 6 ) )
         if nRecNo > 20
            GOTO nRecNo - 10
         endif   
      endif
   endif   
   
   TEMPLATE
<html>   
<head>
  <title>modHarbour dbGen</title>
  <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
  <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
  <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
  <style>
     .table-striped>tbody>tr:nth-of-type(odd) {background-color: #ecf3f7;}  
     .table-striped>tbody>tr:nth-of-type(even) {background-color: #e1ebf2;}  
     .table-striped>tbody>tr:hover>td {background-color: #f6f4d0;}  
  </style>   
</head>

<body>
<div class="container-fluid">
    <div class="container" style="margin-top:50px">

    <div class="panel panel-default" style="background-color:#f5f5f5;">
       <div style="margin:7px">
          <div class="col-xs-6">
          <div class="btn-group">
             <a class="btn btn-default" style="background-color:#0ed145;"><span>New</span></a>
             <a class="btn btn-default" style="background-color:#fff200;"><span>Edit</span></a>
             <a class="btn btn-default" style="background-color:#ec1c24;"><span>Delete</span></a>
          </div>
       </div>
       <div class="col-xs-6 pull-right form-group">
           <input type="text" class="form-control" style="border-radius:0px" placeholder="Search">
       </div>
    </div>
  
    <div class="panel-body" style="padding:0px">
       <table class="table table-striped table-bordered" style="margin:0px;">
          <thead>
             <tr>
               <?prg local cCols := ""
                     for n = 1 to FCount()
                        cCols += "<th>" + FieldName( n ) + "</n>"
                     next
                     return cCols ?>
             </tr>
	       </thead>
          <tbody>
             <?prg local cRow := "", nRow := 1, n
                   while nRow < 11 .and. ! Eof()
                      cRow += '<tr>' 
                      for n = 1 to FCount()
                         cRow += '<td class="center">' + ValToChar( FieldGet( n ) ) + "</td>"
                      next
                      cRow += "<td>"
                      cRow += '<button type="button" class="btn btn-xs btn-default">'
    	                cRow += '   <span class="glyphicon glyphicon-pencil"></span>'
                      cRow += "</button>"
	                   cRow += '<button type="button" data-bind="click: $parent.remove" class="remove-news btn btn-xs btn-default" data-toggle="tooltip" data-placement="top" data-original-title="Delete">'
                      cRow += '   <span class="glyphicon glyphicon-trash"></span>'
	                   cRow += "</button>"
	                   cRow += '<button type="button" class="enabledisable-news btn btn-xs btn-default">'
		                cRow += '   <span class="glyphicon glyphicon-ok"></span>'
                      cRow += "</button>"
                      cRow += "</td>"
                      cRow += "</tr>"
                      SKIP
                      nRow++
                   end   
                   return cRow ?>
          </tbody> 
       </table>
    </div>
    
    <div class="panel-footer">
       <div class="col-xs-3"><div class="dataTables_info" id="example_info">Showing <?prg return AllTrim( Str( RecNo() - 10 ) ) + " - " + AllTrim( Str( RecNo() - 1 ) ) ?> of <?prg return Str( RecCount() ) ?> total results</div></div>
          <div class="col-xs-6">
             <div class="dataTables_paginate paging_bootstrap">
                <ul class="pagination pagination-sm" style="margin:0 !important">
                   <li class="prev"><a href="dbrowse.prg?prev:<?prg return AllTrim( Str( RecNo() - 10 ) )?>">Previous</a></li>
                   <li class="active"><a href="#">1</a></li>
                   <li><a href="#">2</a></li>
                   <li><a href="#">3</a></li>
                   <li><a href="#">4</a></li>
                   <li class="next"><a href="dbrowse.prg?next:<?prg return AllTrim( Str( RecNo() ) )?>">Next</a></li></ul>
             </div>
          </div>
          <div class="btn-group">
             <button type="button" class="btn btn-sm btn-default dropdown-toggle" data-toggle="dropdown">
                10 <span class="caret"></span>
             </button>
             <ul class="dropdown-menu" role="menu" style="min-width: 0px ">
                <li><a href="#">5</a></li>
                <li class="active"><a href="#">10</a></li>
                <li><a href="#">15</a></li>
                <li><a href="#">15</a></li>
             </ul>
             <span>items per page </span>
          </div>
       </div>
     </div>	
   </body>
 </html> 
   ENDTEXT

return nil
Fragmento de código usando HaruPDF para gerar PDF direto.

Código: Selecionar todos

#ifdef __PLATFORM__WINDOWS
   #include "c:\harbour\include\hbclass.ch"
   #include "c:\harbour\contrib\hbhpdf\harupdf.ch"
#else
   #ifdef __PLATFORM__UNIX
      #include "/usr/include/harbour/hbclass.ch"
      #include "/usr/include/harbour/harupdf.ch"
   #else   
      #include "/Users/anto/harbour/include/hbclass.ch"
      #include "/Users/anto/harbour/contrib/hbhpdf/harupdf.ch"
   #endif
#endif      

STATIC aTtfFontList:= NIL
STATIC cFontDir

#translate RGB( <nRed>, <nGreen>, <nBlue> ) => ;
              ( <nRed> + ( <nGreen> * 256 ) + ( <nBlue> * 65536 ) )

function Main()
    
   local oPrn, oFont1, oFont2, oFont3
   
   oPrn := TPdf():New( "list" )
   oPrn:LoadedFonts := { "Verdana" }

   oFont1 = oPrn:DefineFont( 'Helvetica', 24 )
   oFont2 = oPrn:DefineFont( 'Helvetica-Bold', 16 )
   oFont3 = oPrn:DefineFont( 'Helvetica', 12 )   

   oPrn:StartPage()
    
   height :=  oprn:nVertSize()
   width  :=  oprn:nHorzSize()

   oPrn:cmSay( 4, 5, "mod_harbour invoice", oFont2,, rgb(0,0,255) )
   oPrn:cmSay( 4.9, 5, "create PDFs on runtime", oFont3,, 0 )
   oPrn:cmSay( 5.6, 5, "https://github.com/fivetechsoft/mod_harbour", oFont3,, 0 )
   oPrn:cmRect( 8.5, 2, 11.5, 19,, rgb(0x99,0xCC,0xFF), rgb(0x99,0xCC,0xFF) )
   oPrn:cmSay( 9, 11, "Client:", oFont3, 0 )

   oPrn:cmSay( 12.2, 2, "Invoice: 20190807/101", oFont3, 0 )
   oPrn:cmRect( 13,  2, 14, 19,, 0, rgb( 0x99, 0xCC, 0xFF ) )
   oPrn:cmSay( 13.2, 2.8, "Date", oFont3, 0 )
   oPrn:cmSay( 14.5, 2.4, DToC( Date() ), oFont3, 0 )
   oPrn:cmSay( 14.5, 5, "An Apache module for Harbour", oFont3, 0 )
   oPrn:cmSay( 13.2, 7, "Description", oFont3, 0 )
   oPrn:cmSay( 13.2, 12.2, "Units", oFont3, 0 )
   oPrn:cmSay( 14.5, 12.6, "1", oFont3, 0 )
   oPrn:cmSay( 13.2, 14.7, "Price", oFont3, 0 )
   oPrn:cmSay( 14.5, 14.8, "free", oFont3, 0 )
   oPrn:cmSay( 25.2, 14.7, "Total...", oFont3, 0 )
   oPrn:cmSay( 25.2, 16.9, "Freedom", oFont3, 0 )
   oPrn:cmSay( 13.2, 17, "Amount", oFont3, 0 )
   oPrn:cmSay( 14.5, 17.3, "zero", oFont3, 0 )
   oPrn:cmRect( 13,  2, 26, 19, 1 )
   oPrn:cmLine( 14,  2, 14, 19, 1 )
   oPrn:cmLine( 25,  2, 25, 19, 1 )
   oPrn:cmLine( 13, 4.5, 26, 4.5, 1 )
   oPrn:cmLine( 13, 11.5, 26, 11.5, 1 )
   oPrn:cmLine( 13, 14, 26, 14, 1 )
   oPrn:cmLine( 13, 16.5, 26, 16.5, 1 )

   oPrn:EndPage()
   oPrn:Save( hb_GetEnv( "PRGPATH" ) + "/data/test3.pdf" )
   oPrn:End()
   
   ?? "<" + "iframe src='./data/test3.pdf' style='width:calc( 100% + 16px );height:100%;border:0px;margin:-8px;'><" + ;
      "/iframe>"

return nil
Saudações,
Itamar M. Lins Jr.
Saudações,
Itamar M. Lins Jr.
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

programando ASP/HTML com ADO

Mensagem por JoséQuintas »

Legal.
Agora é só dizer qual provedor que aceita isso, porque sem provedor isso não serve pra nada.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar do usuário
Itamar M. Lins Jr.
Administrador
Administrador
Mensagens: 7928
Registrado em: 30 Mai 2007 11:31
Localização: Ilheus Bahia
Curtiu: 1 vez

programando ASP/HTML com ADO

Mensagem por Itamar M. Lins Jr. »

Olá!
Não sei.
Imagino que ASP seja um serviço até mais caro.
Agora se o provedor deixa mexer no httpd.conf... Tem que ver com eles. Pra mim isso é o de menos. Pior é fazer.
Tem também o KVM que vc pode configurar, enfim fazer é o mais difícil.

Saudações,
Itamar M. Lins Jr.
Saudações,
Itamar M. Lins Jr.
Avatar do usuário
Itamar M. Lins Jr.
Administrador
Administrador
Mensagens: 7928
Registrado em: 30 Mai 2007 11:31
Localização: Ilheus Bahia
Curtiu: 1 vez

programando ASP/HTML com ADO

Mensagem por Itamar M. Lins Jr. »

Olá!
Em menos de 1 minuto achei isso:
https://www.locaweb.com.br/ajuda/wiki/i ... s-locaweb/
Captura de imagem_20241114_222034.png
Como disse fazer é o mais difícil, 70% ou mais é HTML + CSS + JAVASCRIPT. Pode ser em PHP, ASP, Harbour...
Primeiro aprende, depois vai ver como irá fazer para colocar no AR.
Se compensar usar Harbour, ASP, PHP, vai de cada um.
Sem falar que a pessoa pode usar um computador em casa pra isso. Ai não depende de ninguém só dele mesmo.
Essa de que Harbour não tem no provedor, vai do bolso de cada um também, por conta dos VPS, KVM ou paga 90 reais por um link e coloca um provedor em casa.

Saudações,
Itamar M. Lins Jr.
Saudações,
Itamar M. Lins Jr.
Avatar do usuário
Itamar M. Lins Jr.
Administrador
Administrador
Mensagens: 7928
Registrado em: 30 Mai 2007 11:31
Localização: Ilheus Bahia
Curtiu: 1 vez

programando ASP/HTML com ADO

Mensagem por Itamar M. Lins Jr. »

Olá!
Ah, sim já ia me esquecendo.
Na Espanha tem provedor lá com mod_harbour instalado. Achei bem caro a hospedagem.
Perguntar lá no grupo que eles devem informar.

Saudações,
Itamar M. Lins Jr.
Saudações,
Itamar M. Lins Jr.
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

programando ASP/HTML com ADO

Mensagem por JoséQuintas »

O que mostrou, está na tela, é VPS, Virtual Private Server.
Isso é alugar uma máquina na internet, o que é muito mais caro.
E precisa total conhecimento sobre tudo, porque o provedor só vai te dar a máquina.
Itamar M. Lins Jr. escreveu:Imagino que ASP seja um serviço até mais caro.
É grátis.
É só falar pro provedor, caso não esteja ativado, pra ativar.
Me parece que tem até pra servidor Linux.

Que tal minha stored procedure em MySQL que retorna o extenso de um número ?
Via ASP.

http://www.jpatecnologia.com.br/extenso ... =454454.54

ASP é limitado, dizem obsoleto, não faz conexão com API dos correios porque não tem conexão segura...
Não é o melhor que existe.... mas estou usando há muitos anos, e qualquer um pode usar.
ASP.NET está disponível, mas não gostei de NET, fazer o que...
Talvez até rode na internet dialogs criadas no windows server...
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar do usuário
Itamar M. Lins Jr.
Administrador
Administrador
Mensagens: 7928
Registrado em: 30 Mai 2007 11:31
Localização: Ilheus Bahia
Curtiu: 1 vez

programando ASP/HTML com ADO

Mensagem por Itamar M. Lins Jr. »

Olá!
É grátis.
É só falar pro provedor, caso não esteja ativado, pra ativar.
Nesse seu provedor que usa windows.
Em outros, a maioria é Linux... Enfim...

Aqui é dicas e tutoriais xBase.
ASP deveria esta em outras linguagens de programação.

Vc é moderador... vc que sabe...

Também só escrevi, pq vc disse que Harbour é inviável, pq não tem nos provedores... enfim... Cada um sabe de si.

Saudações,
Itamar M. Lins Jr.
Saudações,
Itamar M. Lins Jr.
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

programando ASP/HTML com ADO

Mensagem por JoséQuintas »

Em Linux, somente ASP.NET.
O ASP é linguagem proprietária.

asp2.png
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

programando ASP/HTML com ADO

Mensagem por JoséQuintas »

Itamar M. Lins Jr. escreveu:Aqui é dicas e tutoriais xBase.
ASP deveria esta em outras linguagens de programação.
Considerei o fato de estar mostrando um complemento ao aplicativo.
Não coloquei detalhes de como usar.
Apenas mostrei um exemplo pra dar uma idéia melhor do troço.

E acrescentei que no Windows tem em tudo que é lugar.
Alguns até já utilizam em aplicativos, quando executam scripts.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Responder