PHP x clipper/xharbour/fivewin

Fórum sobre a linguagem CA-Clipper.

Moderador: Moderadores

Shark
Usuário Nível 1
Usuário Nível 1
Mensagens: 28
Registrado em: 25 Set 2017 21:42
Localização: Brasília - DF

PHP x clipper/xharbour/fivewin

Mensagem por Shark »

Alguém sabe dizer se já existe algum método fácil de migração de nossos sistemas clipper/xhabour/fivewin para PHP ?
Avatar do usuário
rochinha
Administrador
Administrador
Mensagens: 4665
Registrado em: 18 Ago 2003 20:43
Localização: São Paulo - Brasil
Contato:

PHP x clipper/xharbour/fivewin

Mensagem por rochinha »

Amiguinhos,

Primeiro passo é pensar em CGI. Tudo bem, alguns aqui irão dizer que é uma técnologia ultrapassada, blablabla. O MS-DOS também, masno Brasil ainda se usa muito inclusive no ambiente de serviços públicos.

Então eu tenho um sistema desktop e gostaria de usar o mesmo know-how para transportar toda base de conhecimento para a plataforma web. Mesmo que neste caso configure o uso da intranet por enquanto, pois internet é outros quinhentos.

No Clipper será possivel a criação de CGI que podem trabalhar com um servidor Apache. Os CGIs serão pesados e não poderão ser executados num ambiente Web externo, portanto poderá ser disseminado no ambiente da empresa e depois liberado por DDNS aos usuários externos.

E como eu posso implementar tudo isto sem ter de mexer tanto no meu sistema?

Vejamos como é o seu sistema hoje:

- Possui um módulo main/principal que tem um menu que dependendo da escolha abre um sub-módulo.

Código: Selecionar todos

...
PROCEDURE MAIN
   ...
   cMenu := Achoice(...
   do case
        case cMenu = "bla"
                do Modulo01()
        case cMenu = "blabla"
                do Modulo02()
        ...
   endcase
...
Para começar transformando o antigo sistema em CGI poderíamos colocar o recebimento de parâmetros pelo módulo principal de forma que o mesmo já direcionar o pedido ao sub-módulo requisitado.

Código: Selecionar todos

...
PROCEDURE MAIN
   parameter cQModulo, cQAcao
   ...
   // cQAcao pode ser: "EXCLUIR", "INCLUIR", "ALTERAR", "DELETAR" etc
   if .not. empty( cQModulo )
      do case
           case cQModulo  = "bla"
                   do Modulo01(cQAcao)
           case cQModulo = "blabla"
                   do Modulo02(cQAcao)
           ...
      endcase
   else
      cMenu := Achoice(...
      do case
           case cMenu = "bla"
                   do Modulo01()
           case cMenu = "blabla"
                   do Modulo02()
           ...
      endcase
   endif
...
Num primeiro momento pensemos!

Como será o diálogo com os usuários?

Neste caso as telas deverão gerar o script .HTML que será enviado ao browser e que será chamado pelo CGI.

Portanto, telas de cadastro, visualização e browser deverão ser redefinidos para dar o suporte ao usuário.

No 4Shared tem um arquivo com alguns geradores, que através de um .DBF criava um CGI, ou .HTML, etc.

Mas tudo o que falei é essencialmente tapa-buraco.

Método fácil somente naqueles eBooks da internet em que o cara fala por meia hora que encontrou a solução que ninguém encontrou para resolver um problema que nunca alguém resolveu e trinta minutos depois te fala que o preço da oferta é R$ XXX,XX.

Se realmente que produzir algo para Web usando .PHP sugiro começar a usar os frameworks Laravel e CodeIgniter.
OPS! LINK QUEBRADO? Veja ESTE TOPICO antes e caso não encontre ENVIE seu email com link do tópico para [url=mailto://fivolution@hotmail.com]fivolution@hotmail.com[/url]. Agradecido.

@braços : ? )

A justiça divina tarda mas não falha, enquanto que a justiça dos homens falha porque tarda.
Avatar do usuário
rochinha
Administrador
Administrador
Mensagens: 4665
Registrado em: 18 Ago 2003 20:43
Localização: São Paulo - Brasil
Contato:

PHP x clipper/xharbour/fivewin

Mensagem por rochinha »

Amiguinhos,

hazael
No link escondido acima está o download de vários geradores e um deles cria o seguinte:

O .PRG

Código: Selecionar todos

//----------------------------------------
// Constantes
//----------------------------------------
#define CR CHR(13)
#define LF CHR(10)
#define CRLF CHR(13) + CHR(10)
//----------------------------------------
// Archivos estandares de Entrada y Salida
//----------------------------------------
#define STDIN 0
#define STDOUT 1
//-----------------------------------------
// Arreglo para guardar los controles y sus
// valores del formulario HTML             
//-----------------------------------------
STATIC acParametros

FUNCTION main()
   local nStartTime := seconds()
   local nStopTime := 0

   CgiInit()

   ESTRU_DBF := {}
   AADD( ESTRU_DBF, { ALLTRIM("IDESTACAO "), "N",   5, 0 } )
   AADD( ESTRU_DBF, { ALLTRIM("IDEMPRESA "), "N",   5, 0 } )
   AADD( ESTRU_DBF, { ALLTRIM("IDBANCO   "), "N",   3, 0 } )
   AADD( ESTRU_DBF, { ALLTRIM("DIGITO    "), "N",   1, 0 } )
   AADD( ESTRU_DBF, { ALLTRIM("TAXA      "), "N",  14, 0 } )
   AADD( ESTRU_DBF, { ALLTRIM("BANCO     "), "C",  30, 0 } )
   IF ! FILE("BANCOS.DBF")
      DBCREATE( "BANCOS", ESTRU_DBF )
   ENDIF

   set date brit

   send(" ")

   use BANCOS alias BANCOS NEW SHARED
   select BANCOS
   m->operacao := upper(alltrim(CGIField("ACAO")))
   m->registro := val(CGIField("REGISTRO"))
   m->erro     := .t.
   if     m->operacao = 'NOVO'
          PutTitle('')
          EditFile := memoread( "BANCOS.HTM" )
          m->tam_memo := MLCOUNT( EditFile, 132 )
          EditFile := strtran(EditFile,"<!-- BLOCO DE MANUTENCAO -->",;
                              '<input type="hidden" name="ACAO"     value="INCLUSAO">')
          for i = 1 to m->tam_memo
              put(ALLTRIM(memoline( EditFile, 132 ,i))+CHR(13)+CHR(10)) 
          next
          closeCGISession()
          CLOSE DATA
          RETURN(NIL)
   elseif m->operacao = 'INCLUSAO'
          append blank
          IF Rlock()
             BANCOS_SV()
             COMMIT
             m->erro := .f.
          ENDIF
   elseif m->operacao = 'SALVAR'
          go m->registro // val(CGIField("RECNO()"))
          IF Rlock()
             BANCOS_SV()
             COMMIT
             m->erro := .f.
          ENDIF
   elseif m->operacao = 'EXCLUSAO'
          go m->registro // val(CGIField("RECNO()"))
          IF Rlock()
             DELETE
             COMMIT
             m->erro := .f.
          ENDIF
   elseif m->operacao = 'ALTERAR'
          go m->registro // val(CGIField("RECNO()"))
          EditFile := memoread( "BANCOS.HTM" )
          m->tam_memo := MLCOUNT( EditFile, 132 )
          EditFile := strtran(EditFile,"<!-- BLOCO DE MANUTENCAO -->",;
                              '<input type="hidden" name="ACAO"     value="SALVAR">'+;
                              '<input type="hidden" name="REGISTRO" value="'+STRZERO(m->registro,6)+'">')
          for i = 1 to len(ESTRU_DBF)
              EditFile := strtran(EditFile,'text" name="'+ESTRU_DBF[i,1]+'" size="',;
                                           'text" name="'+ESTRU_DBF[i,1]+'" value="'+ALLTRIM(REQUEST(&(ESTRU_DBF[i,1])))+'"')
              EditFile := strtran(EditFile,'<option selected value="">'+ESTRU_DBF[i,1]+'<',;
                                           '<option selected value="'+ALLTRIM(REQUEST(&(ESTRU_DBF[i,1])))+'">'+ALLTRIM(REQUEST(&(ESTRU_DBF[i,1])))+'<')
              EditFile := strtran(EditFile,'text" name="'+ESTRU_DBF[i,1]+'"></textarea>',;
                                           'text" name="'+ESTRU_DBF[i,1]+'">'+ALLTRIM(REQUEST(&(ESTRU_DBF[i,1])))+'</textarea>')
          next
          for i = 1 to m->tam_memo
              put(ALLTRIM(memoline( EditFile, 132 ,i))+CHR(13)+CHR(10)) 
          next
          m->erro := .f.
          closeCGISession()
          CLOSE DATA
          RETURN(NIL)
   elseif m->operacao = 'LISTAGEM'
          IF RECCO() > 0
             Send('.')
             put(ALLTRIM('<HTML>'))
             put(ALLTRIM('<HEAD>'))
             put(ALLTRIM('     <TITLE>Ok</TITLE>'))
             put(ALLTRIM('     <style>'))
             put(ALLTRIM('          A {color : Black; text-decoration : none; font-size : 11px; font-family : Arial;}'))
             put(ALLTRIM('          A:Hover  {color : Gray; text-decoration : none;}'))
             put(ALLTRIM('          .indic  {font-size : 10px; font-family : Arial; color:#FFFFFF}'))
             put(ALLTRIM('          .texto {font-size : 10px; font-family : Arial;}'))
             put(ALLTRIM('     </style>'))
             put(ALLTRIM('     <script src="include/open_esconde.js"    language="JavaScript"></script>'))
             put(ALLTRIM('     <script src="include/indices1.js"        language="Javascript"></script>'))
             put(ALLTRIM('     <script src="include/indices2.js"        language="Javascript"></script>'))
             put(ALLTRIM('     <script src="include/imgswp.js"          language="Javascript"></script>'))
             put(ALLTRIM('</HEAD>'))
             put(ALLTRIM('<BODY bgcolor="#FFFFFF"> '))
             put(' <center> ')
             put(' <table cellpadding=0 cellspacing=0 border=0 width=95% valign=top bgcolor="#ffffff"> ')
             put('        <table border="0" cellpadding="2" cellspacing="1" width="600" bgcolor="#FFFFFF"> ')
             put('               <tr bgcolor="#386898" align="center"> ')
             put('                   <td colspan="2"> ')
             put('                       <b> ')
             put('                          <font color="#FFFFFF" size="4" face="Arial, Helvetica, sans-serif"> ')
             put('                                <strong>Listagem Geral:</strong> ')
             put('                          </font> ')
             put('                          <font color="#FFFFFF" size="1" face="Arial, Helvetica, sans-serif">Contamos com sua atenção no preenchimento do formulário abaixo.</font>  ')
             put('                       </b> ')
             put('                   </td> ')
             put('                   <td colspan="2"> ')
             put('                          <a href="BANCOS.htm"> ')
             put('                             <img src="imagens/novo.gif" alt="Incluir novo registro" border="0"> ')
             put('                          </a> ')
             put('                           ')
             put('                          <a href="javascript:location.reload();"> ')
             put('                             <img src="imagens/icone_refresh.gif" alt="Recarregar a pagina" border="0"> ')
             put('                          </a> ')
             put('                           ')
             put('                          <a href="BANCOS.exe?ACAO=PROCURAR"> ')
             put('                             <img src="imagens/procurar.gif" alt="Procurar registros" border="0"> ')
             put('                          </a> ')
             put('                   </td> ')
             put('               </tr> ')
             put('        </table> ')
             put('        <table border="0" cellpadding="2" cellspacing="1" width="600" bgcolor="#FFFFFF"> ')
             put('               <tr bgcolor="#A8C8E8" align="center"> ')
*************************************************
             put('                   <!-- ------------- INICIO DO BLOCO DE CABECALHOS -------- -->')
             put('                      <td align=left width=5% valign=top> ')
             put('                          <FONT FACE="Arial" size="1"><B>Idestacao   </FONT><BR><FONT Color="#ff0000" FACE="" SIZE=""></FONT> ')
             put('                      </td> ')
             put('                      <td align=left width=5% valign=top> ')
             put('                          <FONT FACE="Arial" size="1"><B>Idempresa   </FONT><BR><FONT Color="#ff0000" FACE="" SIZE=""></FONT> ')
             put('                      </td> ')
             put('                      <td align=left width=3% valign=top> ')
             put('                          <FONT FACE="Arial" size="1"><B>Idbanco     </FONT><BR><FONT Color="#ff0000" FACE="" SIZE=""></FONT> ')
             put('                      </td> ')
             put('                      <td align=left width=1% valign=top> ')
             put('                          <FONT FACE="Arial" size="1"><B>Digito      </FONT><BR><FONT Color="#ff0000" FACE="" SIZE=""></FONT> ')
             put('                      </td> ')
             put('                      <td align=left width=14% valign=top> ')
             put('                          <FONT FACE="Arial" size="1"><B>Taxa        </FONT><BR><FONT Color="#ff0000" FACE="" SIZE=""></FONT> ')
             put('                      </td> ')
             put('                      <td align=left width=30% valign=top> ')
             put('                          <FONT FACE="Arial" size="1"><B>Banco       </FONT><BR><FONT Color="#ff0000" FACE="" SIZE=""></FONT> ')
             put('                      </td> ')
             put('                   <!-- ------------- FINAL DO BLOCO DE CABECALHOS -------- -->')
*************************************************
             put('                   <td align=left width=16 valign="top"> ')
             put('                       <FONT FACE="Arial" size="1"><B>ST</b>  </FONT> ')
             put('                   </td> ')
             put('                   <td align=left width=50 valign="top"> ')
             put('                       <FONT FACE="Arial" size="1"><B>Manutencao</b>  </FONT> ')
             put('                   </td> ')
             put('               </tr> ')
             go top
             PU_LAR := 0
             DO WHILE .NOT. eof()
                put(' <TR width="100%" align="center" ')
                IF PU_LAR = 0
                   PU_LAR = 1
                   if deleted()
                      put('     bgcolor="RED" ')
                   else
                      put('     bgcolor="#E8F0FF" ')
                   endif
                else
                   PU_LAR = 0
                   if deleted()
                      put('     bgcolor="RED" ')
                   else
                   endif
                endif
                put(' > ')
*************************************************
                put('           <!-- ------------- INICIO DO BLOCO DE CAMPOS ------------ -->')
                put('           <td align=left width=5% valign=top> ')
                put('               <FONT FACE="Arial" size="1"><B>'+STR(BANCOS->IDESTACAO ,  5,  0)+'  </FONT><BR><FONT Color="#ff0000" FACE="" SIZE=""></FONT> ')
                put('           </td> ')
                put('           <td align=left width=5% valign=top> ')
                put('               <FONT FACE="Arial" size="1"><B>'+STR(BANCOS->IDEMPRESA ,  5,  0)+'  </FONT><BR><FONT Color="#ff0000" FACE="" SIZE=""></FONT> ')
                put('           </td> ')
                put('           <td align=left width=3% valign=top> ')
                put('               <FONT FACE="Arial" size="1"><B>'+STR(BANCOS->IDBANCO   ,  3,  0)+'  </FONT><BR><FONT Color="#ff0000" FACE="" SIZE=""></FONT> ')
                put('           </td> ')
                put('           <td align=left width=1% valign=top> ')
                put('               <FONT FACE="Arial" size="1"><B>'+STR(BANCOS->DIGITO    ,  1,  0)+'  </FONT><BR><FONT Color="#ff0000" FACE="" SIZE=""></FONT> ')
                put('           </td> ')
                put('           <td align=left width=14% valign=top> ')
                put('               <FONT FACE="Arial" size="1"><B>'+STR(BANCOS->TAXA      , 14,  2)+'  </FONT><BR><FONT Color="#ff0000" FACE="" SIZE=""></FONT> ')
                put('           </td> ')
                put('           <td align=left width=30% valign=top> ')
                put('               <FONT FACE="Arial" size="1"><B>'+BANCOS->BANCO     +'  </FONT><BR><FONT Color="#ff0000" FACE="" SIZE=""></FONT> ')
                put('           </td> ')
                put('           <!-- ------------- FINAL DO BLOCO DE CAMPOS ------------ -->')
*************************************************
                put('           <td align=left width=16 valign=top> ')
                //put('               <a href="imagens/'+STRZERO(RECNO(),6)+'.jpg"> ')
                put('                  <img src="imagens/'+IIF(DELETED(),'red_mark','none')+'.gif" alt="" border="0"> ')
                //put('               </a> ')
                put('           </td> ')
                put('           <td align=right width=60 height=10 valign="top"> ')
                put('               <TABLE cellpadding=0 cellspacing=0 border=0> ')
                put('                  <TR valign=top> ')
                put('                      <TD valign=top> ')
                put('                          <a href="BANCOS.exe?ACAO=ALTERAR&REGISTRO='+STRZERO(RECNO(),6)+'"> ')
                put('                             <img src="imagens/edit.gif" alt="Alterar" border="0"> ')
                put('                          </a> ')
                put('                           ')
                put('                          <a href="BANCOS.exe?ACAO=EXCLUSAO&REGISTRO='+STRZERO(RECNO(),6)+'"> ')
                put('                             <img src="imagens/delete.gif" alt="Excluir" border="0"> ')
                put('                          </a> ')
                put('                           ')
                put('                          <a href="imagens/'+STRZERO(RECNO(),6)+'.jpg"> ')
                put('                             <img src="imagens/viewbasket.gif" alt="Foto do produto" border="0"> ')
                put('                          </a> ')
                put('                      </TD> ')
                put('                  </tr> ')
                put('               </table> ')
                put('           </TD> ')
                put(' </TR> ')
                SKIP
             ENDDO
             put(ALLTRIM('</TABLE>'))
             put(ALLTRIM('</BODY>'))
             put(ALLTRIM('</HTML>'))
          ELSE
             put(ALLTRIM('<HTML>'))
             put(ALLTRIM('<HEAD>'))
             put(ALLTRIM('     <TITLE>Ok</TITLE>'))
             put(ALLTRIM('     <style>'))
             put(ALLTRIM('          A {color : Black; text-decoration : none; font-size : 11px; font-family : Arial;}'))
             put(ALLTRIM('          A:Hover  {color : Gray; text-decoration : none;}'))
             put(ALLTRIM('          .indic  {font-size : 10px; font-family : Arial; color:#FFFFFF}'))
             put(ALLTRIM('          .texto {font-size : 10px; font-family : Arial;}'))
             put(ALLTRIM('     </style>'))
             put(ALLTRIM('     <script src="include/open_esconde.js"    language="JavaScript"></script>'))
             put(ALLTRIM('     <script src="include/indices1.js"        language="Javascript"></script>'))
             put(ALLTRIM('     <script src="include/indices2.js"        language="Javascript"></script>'))
             put(ALLTRIM('     <script src="include/imgswp.js"          language="Javascript"></script>'))
             put(ALLTRIM('</HEAD>'))
             put(ALLTRIM('<BODY bgcolor="#FFFFFF"> '))
             put(' <center> ')
             put(' <table cellpadding=0 cellspacing=0 border=0 width=95% valign=top bgcolor="#ffffff"> ')
             put('        <table border="0" cellpadding="2" cellspacing="1" width="600" bgcolor="#FFFFFF"> ')
             put('               <tr bgcolor="#330066" align="center"> ')
             put('                   <td colspan="2"> ')
             put('                       <b> ')
             put('                          <font color="#FFFFFF" size="4" face="Arial, Helvetica, sans-serif"> ')
             put('                                <strong>Listagem Geral:</strong> ')
             put('                          </font> ')
             put('                          <font color="#FFFFFF" size="1" face="Arial, Helvetica, sans-serif">Contamos com sua atenção no preenchimento do formulário abaixo.</font>  ')
             put('                       </b> ')
             put('                   </td> ')
             put('                   <td colspan="2"> ')
             put('                          <a href="BANCOS.htm"> ')
             put('                             <img src="imagens/novo.gif" alt="Incluir novo registro" border="0"> ')
             put('                          </a> ')
             put('                           ')
             put('                          <a href="BANCOS.exe?ACAO=PROCURAR"> ')
             put('                             <img src="imagens/procurar.gif" alt="Procurar registros" border="0"> ')
             put('                          </a> ')
             put('                   </td> ')
             put('               </tr> ')
             put('        </table> ')
             put('        <table border="0" cellpadding="2" cellspacing="1" width="600" bgcolor="#FFFFFF"> ')
             put('               <tr> ')
             put('                   <td> ')
             put(ALLTRIM('<BR><BR><BR><BR><BR><BR><BR><BR>'))
             put(ALLTRIM('<P align="center">'))
             put(ALLTRIM('<FONT style="font: 12pt Arial; '))
             put(ALLTRIM('      color:#000000;'))
             put(ALLTRIM('      font-weight:bold">Arquivo vazio, sem registros cadastrados!</FONT>'))
             put(ALLTRIM('      <br>'))
             put(ALLTRIM('      <br>'))
             put(ALLTRIM('      <br>'))
             put(ALLTRIM('</P>'))
             put('                   </td> ')
             put('               </tr> ')
             put('        </table> ')
             put(' <center> ')
             put(ALLTRIM('</BODY>'))
             put(ALLTRIM('</HTML>'))
             m->erro := .f.
          ENDIF
          closeCGISession()
          CLOSE DATA
          RETURN(NIL)
   endif

   putTitle("Confirmacao de Operacao")
   put(ALLTRIM("<!DOCTYPE HTML PUBLIC '-//W3C//DTD HTML 3.2 Final//EN'>"))
   put(ALLTRIM("<HTML>"))
   put(ALLTRIM("<HEAD>"))
   put(ALLTRIM("     <TITLE>Operacao realizada</TITLE>"))
   put(ALLTRIM("</HEAD>"))
   put(ALLTRIM("<BODY bgcolor=#FFFFFF"))
   if m->erro
      put(ALLTRIM("      onLoad=aux=setTimeout('javascript:history.back(1);',3000)"))
   else 
      put(ALLTRIM("      onLoad=aux=setTimeout('javascript:history.back(1);javascript:history.back(1);',3000)"))
   endif
   put(ALLTRIM("      background=images/fundo_body.gif topMargin=0 MARGINHEIGHT=0 MARGINWIDTH=0>"))
   put(ALLTRIM("<BR><BR><BR><BR><BR><BR><BR><BR>"))
   put(ALLTRIM("<P align=center>"))
   put(ALLTRIM("   <FONT style='font: 12pt Arial; "))
   put(ALLTRIM("         color:#000000;"))
   if m->erro
      put(ALLTRIM("         font-weight:bold'>A operacao nao foi concluida!</FONT>"))
   else 
      put(ALLTRIM("         font-weight:bold'>A operacao foi realizada com sucesso!</FONT>"))
   endif
   put(ALLTRIM("</P>"))
   put(ALLTRIM("</BODY>"))
   put(ALLTRIM("</HTML>"))

   nStopTime := seconds()-nStarttime

   closeCGISession()
   CLOSE DATA
RETURN(NIL)

FUNCTION REQUEST( DA_DO )
   IF     VALTYPE( DA_DO ) = 'N'
          RETURN STR( DA_DO )
   ELSEIF VALTYPE( DA_DO ) = 'C' .and. LEN( DA_DO ) = 1
          RETURN IIF( DA_DO="S", "ON", "OFF" )
   ELSEIF VALTYPE( DA_DO ) = 'D'
          RETURN DTOC( DA_DO )
   ELSEIF VALTYPE( DA_DO ) = 'L'
          RETURN IIF( DA_DO, "ON", "OFF" )
   ENDIF
   RETURN DA_DO

FUNCTION BANCOS_SV()
   BANCOS->IDESTACAO  := val( CGIField("IDESTACAO"))
   BANCOS->IDEMPRESA  := val( CGIField("IDEMPRESA"))
   BANCOS->IDBANCO    := val( CGIField("IDBANCO"))
   BANCOS->DIGITO     := val( CGIField("DIGITO"))
   BANCOS->TAXA       := val( CGIField("TAXA"))
   BANCOS->BANCO      :=      CGIField("BANCO") 
   RETURN .T.
O .HTML usado pelo anterior:

Código: Selecionar todos

<html>
<body bgcolor="#FFFFFF">
<table border=0 cellpadding=0 cellspacing=0 valign="top"  align="center" width="70%">
       <table width="100%" border="0" cellspacing="0" cellpadding="0">
              <tr>
                 <td colspan="2" bgcolor="#FFFFFF" valign="center" align="center">
                     <!-- START FORM HERE -->
                     <form  action="BANCOS.exe" method="POST" onSubmit="">
                            <input type="hidden" name="acao"   value="inclusao">
                            <!-- BLOCO DE MANUTENCAO -->
                            <input type="hidden" name="origem" value="IP">
                            <!-- BR -->
                            <!-- p align="center" -->
                            <table border="0" cellpadding="2" cellspacing="1" width="600" bgcolor="#FFFFFF">
                                   <tr bgcolor="#386898" align="center">
                                       <td colspan="2">
                                           <b>
                                           <font color="#FFFFFF" size="4" face="Arial, Helvetica, sans-serif">
                                                 <strong>Atenção:</strong>
                                           </font>
                                           <font color="#FFFFFF" size="2" face="Arial, Helvetica, sans-serif">Contamos com sua atenção no preenchimento do formulário abaixo.</font> 
                                           </b>
                                       </td>
                                   </tr>
                                   <tbody> 
                            </table>
                            <!-- ------------- INICIO DO BLOCO DE CAMPOS ------------ -->
                            <table border="0" cellpadding="2" cellspacing="1" width="600" bgcolor="#FFFFFF">
                            <tr bgcolor="#E8F0FF">
                                <td width="135" align="right" bgcolor="#A8C8E8">
                                    <font size="2" face="Arial, Helvetica, sans-serif">Idestacao</font>
                                </td>
                            <td width="452"> 
                                <input align=left maxlength="135" type="text" name="IDESTACAO" size=" 5" tabindex=" 1">
                            </td>
                            </tr>
                            <tr bgcolor="#E8F0FF">
                                <td width="135" align="right" bgcolor="#A8C8E8">
                                    <font size="2" face="Arial, Helvetica, sans-serif">Idempresa</font>
                                </td>
                            <td width="452"> 
                                <input align=left maxlength="135" type="text" name="IDEMPRESA" size=" 5" tabindex=" 2">
                            </td>
                            </tr>
                            <tr bgcolor="#E8F0FF">
                                <td width="135" align="right" bgcolor="#A8C8E8">
                                    <font size="2" face="Arial, Helvetica, sans-serif">Idbanco</font>
                                </td>
                            <td width="452"> 
                                <input align=left maxlength="135" type="text" name="IDBANCO" size=" 3" tabindex=" 3">
                            </td>
                            </tr>
                            <tr bgcolor="#E8F0FF">
                                <td width="135" align="right" bgcolor="#A8C8E8">
                                    <font size="2" face="Arial, Helvetica, sans-serif">Digito</font>
                                </td>
                            <td width="452"> 
                                <input align=left maxlength="135" type="text" name="DIGITO" size=" 1" tabindex=" 4">
                            </td>
                            </tr>
                            <tr bgcolor="#E8F0FF">
                                <td width="135" align="right" bgcolor="#A8C8E8">
                                    <font size="2" face="Arial, Helvetica, sans-serif">Taxa</font>
                                </td>
                            <td width="452"> 
                                <input align=left maxlength="135" type="text" name="TAXA" size="14" tabindex=" 5">
                            </td>
                            </tr>
                            <tr bgcolor="#E8F0FF">
                                <td width="135" align="right" bgcolor="#A8C8E8">
                                    <font size="2" face="Arial, Helvetica, sans-serif">Banco</font>
                                </td>
                            <td width="452"> 
                                <input align=left maxlength="135" type="text" name="BANCO" size="30" tabindex=" 6">
                            </td>
                            </tr>
                            </table>
                            <!-- ---------- INICIO DE PAGINA COMPLEMENTAR -------- -->
                            <table border="0" cellpadding="2" cellspacing="1" width="600" bgcolor="#FFFFFF">
                                   <tr bgcolor="#A8C8E8"> 
                                       <td colspan="3"> 
                                           <input type="checkbox" name="is_HTML_reader" value="Y" checked>
                                           <font size="2" face="Arial, Helvetica, sans-serif">Pelo envio deste formulario quero garantir a atualizacao de meus dados nos cadastros SoftClever.</font>
                                       </td>
                                   </tr>
                                   <tr bgcolor="#386898">
                                       <td colspan="3"> 
                                       <div align="center"><b>
                                            <font face="Arial, Helvetica, sans-serif">
                                            <font face="Arial, Helvetica, sans-serif" color="#FFFFFF"><br>
                                            Clicando em '<b>Enviar formulario</b>!' seus dados serao armazenados em nossos cadastros on-line e uma saudacao lhe sera enviado o mais breve possivel.
                                            </font>
                                            <font face="Arial, Helvetica, sans-serif"><br>
                                            </font>
                                            <font size="2" face="Arial, Helvetica, sans-serif">
                                            <font size="2" face="Arial, Helvetica, sans-serif">
                                            <p>
                                            <input type="submit" value=" Enviar formulario! " name="submit">
                                            <input type="reset"  value=" Cancelar envio " name="reset">
                                            </font>
                                            </font>
                                            <font face="Arial, Helvetica, sans-serif">
                                            </font>
                                            </font>
                                            </b>
                                       </div>
                                       </td>
                                   </tr>
                            </table>
                     </form>
                     <!-- END FORM HERE -->
                 </td> 
              </tr> 
       </table>
</table>
</html>
O gerador DBF2HTM gera o CRUD básico e a interface .HTML faz a ponte. O form chama o ????.EXE passando os parâmetros de funcionamento. Mas compensa mais fazer estes CGIs em Harbour 32 ou 64 para diminuir o peso e consumo de cpu quando chamados, pois o Clipper em 16 e o limite do DOS vai forçar a máquina.
OPS! LINK QUEBRADO? Veja ESTE TOPICO antes e caso não encontre ENVIE seu email com link do tópico para [url=mailto://fivolution@hotmail.com]fivolution@hotmail.com[/url]. Agradecido.

@braços : ? )

A justiça divina tarda mas não falha, enquanto que a justiça dos homens falha porque tarda.
Avatar do usuário
rochinha
Administrador
Administrador
Mensagens: 4665
Registrado em: 18 Ago 2003 20:43
Localização: São Paulo - Brasil
Contato:

PHP x clipper/xharbour/fivewin

Mensagem por rochinha »

Amiguinhos,

hazael
Vou verificar os codigos que tenho e se estao atualizados ate a data de geração e te mando.
OPS! LINK QUEBRADO? Veja ESTE TOPICO antes e caso não encontre ENVIE seu email com link do tópico para [url=mailto://fivolution@hotmail.com]fivolution@hotmail.com[/url]. Agradecido.

@braços : ? )

A justiça divina tarda mas não falha, enquanto que a justiça dos homens falha porque tarda.
Avatar do usuário
Itamar M. Lins Jr.
Administrador
Administrador
Mensagens: 7989
Registrado em: 30 Mai 2007 11:31
Localização: Ilheus Bahia
Curtiu: 1 vez

PHP x clipper/xharbour/fivewin

Mensagem por Itamar M. Lins Jr. »

Ola!
Alguém sabe dizer se já existe algum método fácil de migração de nossos sistemas clipper/xhabour/fivewin para PHP ?
Mas o PHP não irá ajudar muito neste caso.
Já sabe usar HTML + CSS ? suas telas usarão isso. eu acho mais difícil do que aprender PHP, E o SQL tá em dia ?
PHP só vai ser bom se souber usar HTML + CSS + SQL, antes do PHP.

https://pctoledo.org/forum/viewto ... 43&t=18985

Olha ai mais uma opção de continuar usando xBase na Web com Harbour.


Saudações,
Itamar M. Lins Jr.
Saudações,
Itamar M. Lins Jr.
Avatar do usuário
Carlos Susviela
Usuário Nível 3
Usuário Nível 3
Mensagens: 236
Registrado em: 30 Jun 2017 11:17
Localização: São José / SC
Contato:

PHP x clipper/xharbour/fivewin

Mensagem por Carlos Susviela »

Não vejo muito problema em portar para PHP, mas é uma outra linguagem então precisa ir pegando "intimidade" com ela para ter produção ...

Eu desenvolvo PHP / HTML5 / Bootstrap / Javascript / jQuery / PostgreSql (veja ai vários conceitos novos que precisa conhecer ) com o colega Itamar citou.
PHP só vai ser bom se souber usar HTML + CSS + SQL, antes do PHP.
Haaaaaaaaaa não esqueça uma coisa os fontes ficam com o cliente, está preparado ?


Aqui tenho um Blog com o meu sistema PHP
https://poweradmc.wordpress.com/





.
.
.
"E quando você perder o controle, colherá o que plantou."
=========================================
Carlos Alberto Nunes #Susviela
Site: https://www.PowerInformatica.com.br
=========================================
Blog xBase: https://programandoxbase.wordpress.com/
Blog TI: https://susviela.wordpress.com

( #ProgramandoxBase #AllxBase )
Avatar do usuário
Itamar M. Lins Jr.
Administrador
Administrador
Mensagens: 7989
Registrado em: 30 Mai 2007 11:31
Localização: Ilheus Bahia
Curtiu: 1 vez

PHP x clipper/xharbour/fivewin

Mensagem por Itamar M. Lins Jr. »

Ola!
Haaaaaaaaaa não esqueça uma coisa os fontes ficam com o cliente, está preparado ?
Se usar Harbour vc tem a opção de deixar compilado o CGI, .HRB ou .PRG

Saudações,
Itamar M. Lins Jr.
Saudações,
Itamar M. Lins Jr.
Responder