Clipper On Line • Ver Tópico - Convertendo Sistema do GASPRO para Harbour

Convertendo Sistema do GASPRO para Harbour

Projeto Harbour - Compilador de código aberto compatível com o Clipper.

Moderador: Moderadores

 

Convertendo Sistema do GASPRO para Harbour

Mensagempor bcm » 19 Jul 2015 22:37

abaixo outras telas do sistema comercial que gostaria de melhorar o visual.
Foi desenvolvido em gaspro e copilado em harbour 3.0
Alguém poderia me ajudar a colocar pano de fundo e usar um fonte grande para mostrar o resultado da venda?
Anexos
pdv.JPG
SISTCOM.JPG
PRODUTOS.JPG
bcm
Usuário Nível 2

Usuário Nível 2
 
Mensagens: 82
Data de registro: 02 Set 2012 00:48
Cidade/Estado: volta redonda/rj
Curtiu: 0 vez
Mens.Curtidas: 2 vezes

Convertendo Sistema do GASPRO para Harbour

Mensagempor leozirio » 10 Set 2015 09:34

Bom dia

no meu projeto em gás quando eu mudava a data no inicio do sistema ele aceitava e tudo dentro do sistema usava a data do inicio quando converti para o habour essa função não esta mais funcionando (DOSDATA), alguém sabe dizer como fazer isso agora em habour?
leozirio
Usuário Nível 1

Usuário Nível 1
 
Mensagens: 3
Data de registro: 04 Jun 2011 00:02
Cidade/Estado: aracaju/se
Curtiu: 0 vez
Mens.Curtidas: 0 vez

Convertendo Sistema do GASPRO para Harbour

Mensagempor Itamar M. Lins Jr. » 10 Set 2015 09:55

Ola!
Cadê sua função ?
Penso que na verdade você estava mudando a DATA o DOS... No windows tem o relógio e data no canto inferior direito...

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

Convertendo Sistema do GASPRO para Harbour

Mensagempor Jairo Maia » 10 Set 2015 10:35

Olá Leozirio,

Você poderia trocar a função DOSDATA() pela função SetDate( dNewDate ), porém, para que ela funcione o usuário precisa ter privilégio para essa alteração. No Seven ou superior se você entrar no prompt de comando e tentar alterar a data pelo comando date, receberá a mensagem: O cliente não tem o privilégio necessário.

Você com certeza está tentando primeiro alterar a data do sistema como foi dito pelo Itamar e depois colocando na sua variável publica datac lendo a data com a função Date(). Você precisa mudar, setando a variavel datac diretamente com o resultado obtido no campo de atualização de data.

Quanto a alterar a data do sistema via aplicativo não sei dizer como fazer.
Abraços, Jairo
Harbour / Clipper 5.2e - Blinker 7
(Não respondo dúvidas por MP ou E-mail. Por favor, não encaminhe via mensagem privada ou e-mail, dúvidas que podem ser compartilhadas com todos no fórum)
Avatar de usuário

Jairo Maia
Colaborador

Colaborador
 
Mensagens: 2733
Data de registro: 16 Ago 2010 13:46
Cidade/Estado: Campinas-SP
Curtiu: 371 vezes
Mens.Curtidas: 305 vezes

Convertendo Sistema do GASPRO para Harbour

Mensagempor bcm » 11 Mai 2016 11:03

bom dia!

Como faço para comprimir os relatórios?
Pois eu compilei os codigo que eu tinha gaspro40 e os relatorios que tinha mais de 100 colunas estão imprimindo em 80 colunas e não estao cabendo na folha.

um abraço
bcm
Usuário Nível 2

Usuário Nível 2
 
Mensagens: 82
Data de registro: 02 Set 2012 00:48
Cidade/Estado: volta redonda/rj
Curtiu: 0 vez
Mens.Curtidas: 2 vezes

Convertendo Sistema do GASPRO para Harbour

Mensagempor Jairo Maia » 14 Mai 2016 13:01

Olá bcm,

Como você está fazendo essa impressão? Usando as funções do Toledo no Gaspro40 ou suas próprias? Se for própria, poste o código. Como uso funções próprias não sei o que pode estar acontecendo.
Abraços, Jairo
Harbour / Clipper 5.2e - Blinker 7
(Não respondo dúvidas por MP ou E-mail. Por favor, não encaminhe via mensagem privada ou e-mail, dúvidas que podem ser compartilhadas com todos no fórum)
Avatar de usuário

Jairo Maia
Colaborador

Colaborador
 
Mensagens: 2733
Data de registro: 16 Ago 2010 13:46
Cidade/Estado: Campinas-SP
Curtiu: 371 vezes
Mens.Curtidas: 305 vezes

Convertendo Sistema do GASPRO para Harbour

Mensagempor bcm » 18 Mai 2016 11:41

bom dia!

estou compilando com o utilitario gas4harbour.exe que inclui na compilação o fonte gasp40hb.prg e getsys.prg.

desde já agradeço
bcm
Usuário Nível 2

Usuário Nível 2
 
Mensagens: 82
Data de registro: 02 Set 2012 00:48
Cidade/Estado: volta redonda/rj
Curtiu: 0 vez
Mens.Curtidas: 2 vezes

Convertendo Sistema do GASPRO para Harbour

Mensagempor bcm » 18 Mai 2016 11:48

estou enviando em anexo o relatorio
Anexos
SIS_R124.PRG
(8.41 KiB) Baixado 113 vezes
bcm
Usuário Nível 2

Usuário Nível 2
 
Mensagens: 82
Data de registro: 02 Set 2012 00:48
Cidade/Estado: volta redonda/rj
Curtiu: 0 vez
Mens.Curtidas: 2 vezes

Convertendo Sistema do GASPRO para Harbour

Mensagempor bcm » 18 Mai 2016 11:49

segue o gasp40hb.prg
Anexos
GASP40HB.PRG
(166.7 KiB) Baixado 153 vezes
bcm
Usuário Nível 2

Usuário Nível 2
 
Mensagens: 82
Data de registro: 02 Set 2012 00:48
Cidade/Estado: volta redonda/rj
Curtiu: 0 vez
Mens.Curtidas: 2 vezes

Convertendo Sistema do GASPRO para Harbour

Mensagempor Toledo » 18 Mai 2016 13:47

bcm escreveu:os relatorios que tinha mais de 100 colunas estão imprimindo em 80 colunas e não estao cabendo na folha.


Amigo, veja esta mensagem:
http://www.pctoledo.com.br/forum/viewtopic.php?f=4&t=11923&p=79321#p79321

Abraços,
Toledo - Clipper On Line
toledo@pctoledo.com.br
Harbour 3.2/MiniGui/HwGui
Faça uma doação para o fórum, clique neste link: http://www.pctoledo.com.br/doacao
Avatar de usuário

Toledo
Administrador

Administrador
 
Mensagens: 3038
Data de registro: 22 Jul 2003 18:39
Cidade/Estado: Araçatuba - SP
Curtiu: 263 vezes
Mens.Curtidas: 258 vezes

Convertendo Sistema do GASPRO para Harbour

Mensagempor bcm » 19 Mai 2016 15:44

Boa tarde!

quero lhe agradecer pela ajuda
deu certo.

um grande abraço
bcm
Usuário Nível 2

Usuário Nível 2
 
Mensagens: 82
Data de registro: 02 Set 2012 00:48
Cidade/Estado: volta redonda/rj
Curtiu: 0 vez
Mens.Curtidas: 2 vezes

Convertendo Sistema do GASPRO para Harbour

Mensagempor bcm » 19 Mai 2016 16:18

Boa tarde!

meu sistema foi desenvolvido em gaspro40 e compilado em harbour 3.0 em modo console.Existe algum a maneira de eu melhorar o visual do meu sistema, mesmo estando em modo console? Alguma biblioteca do tipo clbc?

desde já agradeço
bcm
Usuário Nível 2

Usuário Nível 2
 
Mensagens: 82
Data de registro: 02 Set 2012 00:48
Cidade/Estado: volta redonda/rj
Curtiu: 0 vez
Mens.Curtidas: 2 vezes

Convertendo Sistema do GASPRO para Harbour

Mensagempor bcm » 15 Jan 2017 18:35

Boa tarde a todos!

Converti meu sistema feito em gaspro 4.0 para harbour mas quando vou imprimir uma etiqueta, não está capturando a impressora estalada na maquina como acontece nos relatórios.Poderiam me ajudar?
bcm
Usuário Nível 2

Usuário Nível 2
 
Mensagens: 82
Data de registro: 02 Set 2012 00:48
Cidade/Estado: volta redonda/rj
Curtiu: 0 vez
Mens.Curtidas: 2 vezes

Convertendo Sistema do GASPRO para Harbour

Mensagempor LDOSISTEMAS » 24 Jan 2017 21:04

Boa noite, eu passei por isso ai descobri que a etiqueta tem uma rotina específica para impressão, diferente da opcoes_rhb , presente na gasp40hb, então fiz o seguinte criei uma copia da opcoes_rbh como opcoes_ehb com o seguinte código:
******[LAURO DE OLIVEIRA]*************************************************
FUNC OPCOES_EHB(l_m,c_m,linmin_,colmin_,sos_cod,fil_ini)
LOCAL li_, tpx, i_, op_x:=1, ant_, cr_i, or_i, t_opc:=SAVESCREEN(0,0,MAXROW(),79)
LOCAL aPrinters := WIN_PRINTERLIST()
IF Empty( aPrinters )
  ALERTA(4)
  DBOX("Nenhuma impressora Instalada!",,,,,"ATEN€ŽO, "+usuario)
  RETU .F.
ENDIF
for i=1 to len(aPrinters)
  IF aPrinters[i] == WIN_PRINTERGETDEFAULT()
   //drvprn:=i comentado para deixar sempre a  ultima impressora que escolhe igual ao anterior
   exit
  ENDIF
next

nucop=1
or_i=cpord                     // salva ordenacao inicial
fil_ini=IF(fil_ini=NIL,"",fil_ini)
ant_=STR(qtlin_)+STR(qtcol_)+; // salva situacao atual da etiqueta
     STR(qtcse_)+STR(qtcar_)+qtreg_
DO WHIL op_x>0
cod_sos=sos_cod
msg="Prosseguir|Sa¡da: "        // monta menu de opcoes
IF tps=1 .AND. !EMPTY(drvporta) // se a saida e para prn
  msg+=aPrinters[drvprn] 
ELSE                            // caso contrario
  msg+="Arquivo"                 // coloca a palavra "Arquivo"
ENDI
msg+="|Filtrar|Ordenar"+;
      "|C¢pia(s). ("+TRAN(nucop ,"999")+")"+;
      "|Altura... ("+TRAN(qtlin_,"99")+")"+;
      "|Largura.. ("+TRAN(qtcol_,"999")+")"+;
      "|Separa‡„o ("+TRAN(qtcse_,"99")+")"+;
      "|Carreiras ("+TRAN(qtcar_,"99")+")"+;
      "|Qtde/Reg. ("
msg+=IF(LEN(qtreg_)>30,LEFT(qtreg_,20)+"...",qtreg_)+" )"
RESTSCR(0,0,MAXROW(),79,t_opc)
op_x=DBOX(msg,l_m,c_m,E_MENU,NAO_APAGA,,,,op_x)
DO CASE
  CASE op_x=1                 // prossegue...
   IF tps=1                   // vai para impressora.....
    drvporta:=drvdbf+"TMP"+ide_maq
   
   ENDI
   IF LEN(fil_ini)>0          // se tem filtro inicial
    IF LEN(criterio)>0        // vamos concatenar com filtro feito pelo usuario
     criterio=fil_ini+".AND. ("+criterio+")"
    ELSE
     criterio=fil_ini         // usuario nao fez filtro. Pega o inicial...
    ENDI
   ENDI
   INDTMP()                   // verifica/indexa o arquivo se for necessario
   EXIT

  CASE op_x=2                 // tipo de saida
   tps=TP_SAIDA(IF(l_m=NIL,NIL,l_m+2),IF(c_m=NIL,NIL,c_m+8),.t.)

  CASE op_x=3                 // pega criterio de selecao dos registro
   FILTRA(.f.)                // parametro .f. = nao indexa ao final da selecao

  CASE op_x=4                 // escolhe uma nova ordem
   cpord=or_i                 // inicializa ordenacao
   CLASS(.f.)

  CASE op_x=5                 // numero de copias
   nucop=DBOX("(de 1 a 999)",IF(l_m=NIL,NIL,l_m+2),IF(c_m=NIL,NIL,c_m+8),,,"QUANTIDADE DE C¢PIAS",nucop,"999")
   nucop=IF(nucop<1.OR.LASTKEY()=K_ESC,1,nucop)

  CASE op_x=6                 // modifica numero de linhas
   i_=DBOX("(de"+TRAN(linmin_,"99")+" a 66 linhas)",IF(l_m=NIL,NIL,l_m+2),IF(c_m=NIL,NIL,c_m+8),,,"ALTURA DA ETIQUETA",qtlin_,"99")
   IF i_>=linmin_.AND.i_<=66.AND.LASTKEY()!=K_ESC
    qtlin_=i_
   ENDI

  CASE op_x=7                 // modifica largura da etiqueta
   i_=DBOX("(de"+TRAN(colmin_,"999")+" a 254 caracteres)",IF(l_m=NIL,NIL,l_m+2),IF(c_m=NIL,NIL,c_m+8),,,"LARGURA DA ETIQUETA",qtcol_,"999")
   IF i_>=colmin_.AND.i_<=254.AND.LASTKEY()!=K_ESC
    qtcol_=i_
   ENDI

  CASE op_x=8                 // separacao entre carreiras
   i_=DBOX("(de 1 a 99 caracteres)",IF(l_m=NIL,NIL,l_m+2),IF(c_m=NIL,NIL,c_m+8),,,"SEPARA€ŽO ENTRE AS CARREIRAS",qtcse_,"99")
   IF i_>=1.AND.LASTKEY()!=K_ESC
    qtcse_=i_
   ENDI

  CASE op_x=9                 // num de carreiras do formulario
   i_=DBOX("(de 1 a 30)",IF(l_m=NIL,NIL,l_m+2),IF(c_m=NIL,NIL,c_m+8),,,"CARREIRAS DO FORMULRIO",qtcar_,"99")
   IF i_>=1.AND.i_<=30.AND.LASTKEY()!=K_ESC
    qtcar_=i_
   ENDI

  CASE op_x=10                // numero de qtde por registro
   tpx=qtreg_
   DO WHILE .t.
    cod_sos=59
    SET KEY K_F10 TO ve_campos// F10 monta menu de campos
    tpx=DBOX("F10=Campos do arquivo",IF(l_m=NIL,NIL,l_m+2),IF(c_m=NIL,NIL,c_m+8),,,"QTDE POR REGISTRO",PADR(tpx,100),"@S40")
    SET KEY K_F10 TO
    IF LASTKEY()=K_ESC         // cancelou
     EXIT
    ENDI
    tpx=ALLTRIM(tpx)           // retira brancos do expressao
    i_=TYPE(tpx)               // se a expressao=indeterminada
    IF i_="UI"                 // existe funcao fora da clipper.lib na
     i_=VALTYPE(&tpx.)         // expressao, logo avalia o seu
    ENDI                       // conteudo
    IF i_="N"                  // se o tipo da expressao for
     qtreg_=tpx                // numerico, entao segue em frente
     EXIT
    ENDI                       // expressao e' ilegal avisa
    ALERTA(3)                  // e recebe outra expressao
    DBOX("EXPRESSŽO ILEGAL",15)
   ENDD

ENDC
ENDD
IF ant_!=STR(qtlin_)+;        // se alterou parametros da etiqueta
   STR(qtcol_)+STR(qtcse_)+;  // entao grava na variavel de memoria
   STR(qtcar_)+qtreg_         // monta nome da variavel a publicar
vr_memo="drv"+;              // com "drv" + as ultima 7 letras do
         RIGHT(PROCNAME(1),7) // nome do prg da etiqueta
i_=TRAN(qtlin_,"999")+;      // prepara parametros da etiqueta
    TRAN(qtcol_,"999")+;      // para serem gravados
    TRAN(qtcse_,"999")+;
    TRAN(qtcar_,"999")+qtreg_
PUBL &vr_memo.:=i_           // publica/inicializa variavel
SAVE TO (arqconf) ALL LIKE drv*
REST FROM (arqconf) ADDI     // grava/restaura variaveis
ENDI                          // restaura a tela
RESTSCR(0,0,MAXROW(),79,t_opc)
RETU(op_x=1)                  // retorna .t. se quiser prosseguir

******[PCToledo]****************************************************
FUNC OPCOES_RHB(l_m,c_m,op_rel,sos_cod,fil_ini)
LOCAL li_, op_x, ant_, cr_i, or_i, t_opc:=SAVESCREEN(0,0,MAXROW(),79)
LOCAL aPrinters := WIN_PRINTERLIST()
IF Empty( aPrinters )
  ALERTA(4)
  DBOX("Nenhuma impressora Instalada!",,,,,"ATEN€ŽO, "+usuario)
  RETU .F.
ENDIF
for i=1 to len(aPrinters)
  IF aPrinters[i] == WIN_PRINTERGETDEFAULT()
   //drvprn:=i comentado para deixar sempre a  ultima impressora que escolhe igual ao anterior
   exit
  ENDIF
next
op_x=LRELA(l_m,c_m,op_rel)               // verifica/seleciona relatorios gravados
IF op_x=2                                // leu um relatorio gravado anteriormente
   improk=.t.
   IF tps=1                              // vai para impressora...
      improk=PREPIMP()                   // confima preparacao da impressora
   ENDI
   IF !improk                            // cancelou
      op_x=0
   ELSE
      INDTMP()                           // verifica/indexa o arquivo se for necessario
   ENDI
   RETU .t.                              // retorna
ENDI
fil_ini=IF(fil_ini=NIL,"",fil_ini)
nucop=1
or_i=cpord                               // salva ordenacao inicial
ant_=criterio+cpord+titrel               // salva criterio, ordenacao e titulo atuais
DO WHIL op_x>0
   cod_sos=sos_cod
   msg="Prosseguir|Sa¡da: "                // monta menu de opcoes
   IF tps=1 .AND. !EMPTY(drvporta)         // se a saida e para prn
      msg+=aPrinters[drvprn]          // pega conf atual
   ELSE                                    // caso contrario
      msg+="Arquivo/Video"                   // coloca a palavra "Arquivo/Video"
   ENDI
   msg+="|Filtrar|C¢pia(s) ("+TRAN(nucop,"99")+")"+;
                  "|Ordenar|T¡tulo"
   IF !EMPTY(titrel)                     // se tem titulo coloca-o no menu
      msg+=": "+IF(LEN(titrel)>30,LEFT(titrel,30)+"...",titrel)
   ENDI
   cr_i=criterio+cpord+titrel            // se tem alteracao, liga
   gr_rela=(ant_!=cr_i)                  // flag de gravacao de relatorio
   RESTSCREEN(0,0,MAXROW(),79,t_opc)
   op_x=DBOX(msg,l_m,c_m,.t.,.f.,,,,op_x)
   DO CASE
      CASE op_x=1                        // prossegue...
         IF tps=1                        // vai para impressora.....
            drvporta:=drvdbf+"TMP"+ide_maq
         ENDI
         IF LEN(fil_ini)>0               // se tem filtro inicial
            IF LEN(criterio)>0           // vamos concatenar com filtro feito pelo usuario
               criterio=fil_ini+".AND. ("+criterio+")"
            ELSE
               criterio=fil_ini          // usuario nao fez filtro. Pega o inicial...
            ENDI
         ENDI
         INDTMP()                        // verifica/indexa o arquivo se for necessario
         EXIT

      CASE op_x=2                        // tipo de saida
         tps=TP_SAIDAHB(IF(l_m=NIL,NIL,l_m+2),IF(c_m=NIL,NIL,c_m+8),.t.,aPrinters)

      CASE op_x=3                        // pega criterio de selecao dos registro
         FILTRA(.f.)                     // parametro .f. = nao indexa ao final da selecao

      CASE op_x=4                        // numero de copias a emitir
         nucop=DBOX("(de 1 a 99)",IF(l_m=NIL,NIL,l_m+2),IF(c_m=NIL,NIL,c_m+8),,,"QUANTIDADE DE C¢PIAS",nucop,"99")
         nucop=IF(nucop<1.OR.LASTKEY()=K_ESC,1,nucop)

      CASE op_x=5                        // escolhe uma nova ordem
         cpord=or_i                      // inicializa ordenacao
         CLASS(.f.)

      CASE op_x=6                        // recebe um titulo para o sistema
         msg="Informe, se Desejar:"
         titrel=LEFT(titrel+SPAC(70),70)
         titrel=ALLTRIM(DBOX(msg,,,,,"T¡TULO DO RELAT¢RIO",titrel))
         RESTSCREEN(0,0,MAXROW(),79,t_opc)

   ENDC
ENDD                                     // restaura a tela
RESTSCREEN(0,0,MAXROW(),79,t_opc)
RETU(op_x=1)                             // retorna .t. se quiser prosseguir

nos relatórios da etiqueta também é preciso fazer a seguinte alteração , para não ter que alterar manualmente todos já que pode haver muitas etiquetas inclui os seguintes códigos no gas4harbour.prg
no trecho que contem :
if AT( "IMP_BRW", cBuf ) == 0
  nArqCvt+=1
  @ row()+1,0 say "Ajustando arquivo '"+upper(cArq_CH)+"' ..."
  nEnd := AT( "* \\ Final", cBuf )
  cCH := "//#command INDTMP() => INDTMPHB()"+hb_eol() +;
          "#define opcoes_rel(l_m,c_m,op_rel,sos_cod,fil_ini) OPCOES_RHB(l_m,c_m,op_rel,sos_cod,fil_ini)" + hb_eol() +;
         "#command TP_SAIDA(<l_tp>,<c_tp>,<arq_vid>) => TP_SAIDAHB(<l_tp>,<c_tp>,<arq_vid>)"+hb_eol() ...

inclui esse comando para trocar a opcoes_etq pela que foi listada acima com o seguinte código:

  "#command OPCOES_ETQ(<l_m>,<c_m>,<linmin_>,<colmin_>,<sos_cod>,<fil_ini>) => OPCOES_EHB(<l_m>,<c_m>,<linmin_>,<colmin_>,<sos_cod>,<fil_ini>)"+hb_eol()+;

após o trecho:
    if AT( "lpp_033", cBuf )!= 0.and.AT( "so_um_reg", cBuf )!= 0.and.lcopias //ajusta relatorios meia pagina para 2 copias apos a inserção
     @ row()+1,0 say "Ajustando arquivo '"+upper(cArquivo)+"' ..."
     nArqCvt+=1
     cBuf := StrTran( cBuf, "nucop=1", "nucop=NumeroCopias()" )
     hb_memoWrit( cArquivo, cBuf )
    endif

incluir
if AT( " qtcar_", cBuf )!= 0 //ajusta etiquetas para impressão
     @ row()+1,0 say "Ajustando arquivo '"+upper(cArquivo)+"' ..."
     nArqCvt+=1
     //cBuf := StrTran( cBuf, "SET PRINTER TO (drvporta)", "" )
     cBuf := StrTran( cBuf, "opcoes_etq", "opcoes_ehb" )
     cBuf := StrTran( cBuf, "// mostra o arquivo gravado", "// mostra o arquivo gravado"+hb_eol()+"GRELA(99)" )
     cBuf := StrTran( cBuf, "SET PRINT OFF", "SET PRINT OFF"+HB_EOl()+"SET PRINTER TO "+HB_EOl()+"set devi to scre" )
     cBuf := StrTran( cBuf, "SET PRINT ON",  "SET PRINT ON "+HB_EOL()+"SET DEVI TO PRIN" )
     cBuf := StrTran( cBuf, "EJEC" , "//EJECT " )
     //cBuf := StrTran( cBuf, "SET CONSOLE ON ","SET PRINTER TO (drvporta)")
     //cBuf := StrTran( cBuf, "?? ","@ PROW()+1,0 SAY ")
     //cBuf := StrTran( cBuf, "? ","@ PROW(),0 SAY ")
     hb_memoWrit( cArquivo, cBuf )
    endif

Com essas alterações a etiqueta passou a imprimir corretamente
Espero ter ajudado
Qualquer duvida é só chamar
LAURO DE OLIVEIRA
Analista/Diretor
(37) 3381 32 11
www.ldosistemas.com.br
Imagem
LDOSISTEMAS
Usuário Nível 1

Usuário Nível 1
 
Mensagens: 45
Data de registro: 01 Set 2014 17:04
Cidade/Estado: CLAUDIO/MG
Curtiu: 1 vez
Mens.Curtidas: 2 vezes

Convertendo Sistema do GASPRO para Harbour

Mensagempor bcm » 30 Jan 2017 09:06

Lauro, bom dia!

desde já agradeço pela ajuda irei fazer as alterações e assim que concluir te retorno.

um grande abraço
bcm
Usuário Nível 2

Usuário Nível 2
 
Mensagens: 82
Data de registro: 02 Set 2012 00:48
Cidade/Estado: volta redonda/rj
Curtiu: 0 vez
Mens.Curtidas: 2 vezes

Anterior Próximo



Retornar para Harbour

Quem está online

Usuários vendo este fórum: Google [Bot], Itamar M. Lins Jr. e 5 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