Convertendo Sistema do GASPRO para Harbour
Moderador: Moderadores
Convertendo Sistema do GASPRO para Harbour
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?
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?
Convertendo Sistema do GASPRO para Harbour
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?
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?
- Itamar M. Lins Jr.
- Administrador

- Mensagens: 7928
- Registrado em: 30 Mai 2007 11:31
- Localização: Ilheus Bahia
- Curtiu: 1 vez
Convertendo Sistema do GASPRO para Harbour
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.
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.
Saudações,
Itamar M. Lins Jr.
Itamar M. Lins Jr.
- Jairo Maia
- Moderador
- Mensagens: 2785
- Registrado em: 16 Ago 2010 13:46
- Localização: Campinas-SP
Convertendo Sistema do GASPRO para Harbour
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.
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)
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)
Convertendo Sistema do GASPRO para Harbour
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
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
- Jairo Maia
- Moderador
- Mensagens: 2785
- Registrado em: 16 Ago 2010 13:46
- Localização: Campinas-SP
Convertendo Sistema do GASPRO para Harbour
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.
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)
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)
Convertendo Sistema do GASPRO para Harbour
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
estou compilando com o utilitario gas4harbour.exe que inclui na compilação o fonte gasp40hb.prg e getsys.prg.
desde já agradeço
Convertendo Sistema do GASPRO para Harbour
estou enviando em anexo o relatorio
- Anexos
-
SIS_R124.PRG- (8.41 KiB) Baixado 158 vezes
Convertendo Sistema do GASPRO para Harbour
segue o gasp40hb.prg
- Anexos
-
GASP40HB.PRG- (166.7 KiB) Baixado 192 vezes
- Toledo
- Administrador

- Mensagens: 3133
- Registrado em: 22 Jul 2003 18:39
- Localização: Araçatuba - SP
- Contato:
Convertendo Sistema do GASPRO para Harbour
Amigo, veja esta mensagem:bcm escreveu:os relatorios que tinha mais de 100 colunas estão imprimindo em 80 colunas e não estao cabendo na folha.
https://pctoledo.org/forum/viewto ... 321#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
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
Convertendo Sistema do GASPRO para Harbour
Boa tarde!
quero lhe agradecer pela ajuda
deu certo.
um grande abraço
quero lhe agradecer pela ajuda
deu certo.
um grande abraço
Convertendo Sistema do GASPRO para Harbour
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
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
Convertendo Sistema do GASPRO para Harbour
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?
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?
-
LDOSISTEMAS
- Usuário Nível 1

- Mensagens: 48
- Registrado em: 01 Set 2014 17:04
- Localização: CLAUDIO/MG
- Contato:
Convertendo Sistema do GASPRO para Harbour
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:
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 :
inclui esse comando para trocar a opcoes_etq pela que foi listada acima com o seguinte código:
após o trecho:
incluir
Com essas alterações a etiqueta passou a imprimir corretamente
Espero ter ajudado
Qualquer duvida é só chamar
Código: Selecionar todos
******[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 FORMULRIO",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
no trecho que contem :
Código: Selecionar todos
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() ...Código: Selecionar todos
"#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:
Código: Selecionar todos
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
Código: Selecionar todos
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 )
endifEspero ter ajudado
Qualquer duvida é só chamar
Convertendo Sistema do GASPRO para Harbour
Lauro, bom dia!
desde já agradeço pela ajuda irei fazer as alterações e assim que concluir te retorno.
um grande abraço
desde já agradeço pela ajuda irei fazer as alterações e assim que concluir te retorno.
um grande abraço

