Clipper On Line • Ver Tópico - PHP x clipper/xharbour/fivewin

PHP x clipper/xharbour/fivewin

Discussão sobre a linguagem CA-Clipper.

Moderador: Moderadores

 

PHP x clipper/xharbour/fivewin

Mensagempor Shark » 30 Ago 2018 02:13

Alguém sabe dizer se já existe algum método fácil de migração de nossos sistemas clipper/xhabour/fivewin para PHP ?
Shark
Usuário Nível 1

Usuário Nível 1
 
Mensagens: 28
Data de registro: 25 Set 2017 21:42
Cidade/Estado: Brasília - DF
Curtiu: 5 vezes
Mens.Curtidas: 3 vezes

PHP x clipper/xharbour/fivewin

Mensagempor rochinha » 30 Ago 2018 17:20

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.
...
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.
...
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 fivolution@hotmail.com. Agradecido.

@braços : ? )

A justiça divina tarda mas não falha, enquanto que a justiça dos homens falha porque tarda.
Avatar de usuário

rochinha
Membro Master

Membro Master
 
Mensagens: 4538
Data de registro: 18 Ago 2003 20:43
Cidade/Estado: São Paulo - Brasil
Curtiu: 800 vezes
Mens.Curtidas: 242 vezes

PHP x clipper/xharbour/fivewin

Mensagempor rochinha » 30 Ago 2018 19:54

Amiguinhos,

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

O .PRG
//----------------------------------------
// 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>&nbsp; ')
             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('                          &nbsp;')
             put('                          <a href="javascript:location.reload();"> ')
             put('                             <img src="imagens/icone_refresh.gif" alt="Recarregar a pagina" border="0"> ')
             put('                          </a> ')
             put('                          &nbsp;')
             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 &nbsp;&nbsp;</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 &nbsp;&nbsp;</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   &nbsp;&nbsp;</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    &nbsp;&nbsp;</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      &nbsp;&nbsp;</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     &nbsp;&nbsp;</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>&nbsp;&nbsp;</FONT> ')
             put('                   </td> ')
             put('                   <td align=left width=50 valign="top"> ')
             put('                       <FONT FACE="Arial" size="1"><B>Manutencao</b>&nbsp;&nbsp;</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)+'&nbsp;&nbsp;</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)+'&nbsp;&nbsp;</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)+'&nbsp;&nbsp;</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)+'&nbsp;&nbsp;</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)+'&nbsp;&nbsp;</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     +'&nbsp;&nbsp;</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('                          &nbsp;')
                put('                          <a href="BANCOS.exe?ACAO=EXCLUSAO&REGISTRO='+STRZERO(RECNO(),6)+'"> ')
                put('                             <img src="imagens/delete.gif" alt="Excluir" border="0"> ')
                put('                          </a> ')
                put('                          &nbsp;')
                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>&nbsp; ')
             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('                          &nbsp;')
             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:
<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>&nbsp;
                                           </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 fivolution@hotmail.com. Agradecido.

@braços : ? )

A justiça divina tarda mas não falha, enquanto que a justiça dos homens falha porque tarda.
Avatar de usuário

rochinha
Membro Master

Membro Master
 
Mensagens: 4538
Data de registro: 18 Ago 2003 20:43
Cidade/Estado: São Paulo - Brasil
Curtiu: 800 vezes
Mens.Curtidas: 242 vezes

PHP x clipper/xharbour/fivewin

Mensagempor rochinha » 04 Set 2018 03:46

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 fivolution@hotmail.com. Agradecido.

@braços : ? )

A justiça divina tarda mas não falha, enquanto que a justiça dos homens falha porque tarda.
Avatar de usuário

rochinha
Membro Master

Membro Master
 
Mensagens: 4538
Data de registro: 18 Ago 2003 20:43
Cidade/Estado: São Paulo - Brasil
Curtiu: 800 vezes
Mens.Curtidas: 242 vezes

PHP x clipper/xharbour/fivewin

Mensagempor Itamar M. Lins Jr. » 20 Set 2018 17:01

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.

http://www.pctoledo.com.br/forum/viewtopic.php?f=43&t=18985

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

Saudações,
Itamar M. Lins Jr.
Avatar de usuário

Itamar M. Lins Jr.
Colaborador

Colaborador
 
Mensagens: 6927
Data de registro: 30 Mai 2007 11:31
Cidade/Estado: Ilheus Bahia
Curtiu: 309 vezes
Mens.Curtidas: 503 vezes

PHP x clipper/xharbour/fivewin

Mensagempor susviela@bol.com.br » 20 Set 2018 17:30

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 de usuário

susviela@bol.com.br
Usuário Nível 3

Usuário Nível 3
 
Mensagens: 236
Data de registro: 30 Jun 2017 11:17
Cidade/Estado: São José / SC
Curtiu: 153 vezes
Mens.Curtidas: 24 vezes

PHP x clipper/xharbour/fivewin

Mensagempor Itamar M. Lins Jr. » 21 Set 2018 09:47

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.
Avatar de usuário

Itamar M. Lins Jr.
Colaborador

Colaborador
 
Mensagens: 6927
Data de registro: 30 Mai 2007 11:31
Cidade/Estado: Ilheus Bahia
Curtiu: 309 vezes
Mens.Curtidas: 503 vezes




Retornar para CA-Clipper

Quem está online

Usuários vendo este fórum: Nenhum usuário registrado online e 2 visitantes


Ola Amigo, espero que meu site e forum tem lhe beneficiado, com exemplos e dicas de programacao.
Entao divulgue o link da Doacao abaixo para seus amigos e redes sociais ou faça uma doacao para o site forum...
MUITO OBRIGADO PELA SUA DOACAO!
Faça uma doação para o forum
cron
v
Olá visitante, seja bem-vindo ao Fórum Clipper On Line!
Efetue o seu login ou faça o seu Registro