Clique abaixo para nos ajudar
Conectar-se

Esqueci minha senha

Estamos no Facebook
Buscar
 
 

Resultados por:
 


Rechercher Busca avançada

Quem está conectado
13 usuários online :: Nenhum usuário registrado, Nenhum Invisível e 13 Visitantes :: 1 Motor de busca

Nenhum

[ Ver toda a lista ]


O recorde de usuários online foi de 468 em 1/3/2012, 10:43
ListBox

23/5/2017, 10:37 por Rosangela Pires

Ola Amigos.

Para se movimentar na grid com as setas colocamos no Metodo AfterChange da grid …

Comentários: 0

TRY BEGIN E FLOCK()

17/4/2017, 10:32 por AJC

Pessoal estou tendo alguns problemas de gravação em rede, estou usando
try begin, mas vi algo na …

Comentários: 0

Exportar Dados Campo Memo Tabela DBF

10/4/2017, 10:28 por fcampos

Olá bom dia.

Estou tentando exportar os dados de algumas tabelas em formato dbf pelo foxpro.
O …

Comentários: 2

Função EVL()

8/4/2017, 12:18 por Clebervfp

Bom dia a todos.
Vim compartilhar de uma Função do próprio VFP que me benefício muito.
Função …

Comentários: 0

COMO BLOQUEAR REGISTRO OU TABELA NO VISUAL FOXPRO PARA GRAVAÇÃO EM REDE

3/4/2017, 10:29 por AJC

Pessoal estou tendo um problema que acontece sempre busco na minha tabela de clientes o ultimo …

Comentários: 2

Estatísticas
Temos 7081 usuários registrados
O último usuário registrado atende pelo nome de DENISON SANTOS DA SILVA

Os nossos membros postaram um total de 49 mensagens em 26 assuntos

Criar relatoiro padrão

Ver o tópico anterior Ver o tópico seguinte Ir em baixo

Resolvido Criar relatoiro padrão

Mensagem por Julio em 4/4/2012, 17:42

Boa tarde pessaol.

Fiz uma pequisa aqui no forum e nao achei nada a respeito.
Preciso desenvolver um relatorio que seja padrão.
Mas em determinadas partes deste relatorio necessito colocar o nome, data e valor e valor por extenso.
Mas este relatorio necessita ficar justificado, pois nem todos os nomes ou valores serão iguais, desta forma não deve deixar espaços entre uma frase e outras.
Este relatorio deve ler uma tabela e ir imprimindo os registros que satisfaça uma situação, por exemplo valores igual e superior a R$ 2.000,00.

Obrigado

Julio

Julio
Usuário 5 Estrelas
Usuário 5 Estrelas


Voltar ao Topo Ir em baixo

Resolvido Justificar da trabalho....

Mensagem por alceu11 em 5/4/2012, 08:15

Em 2009 um usuario publico este artigo.
neste forum sobre justifcar texto.
Aki segue o link leia as anotacoes do autor. principalmente na hora de imprimir.
Link do Justiicar textos

Fiz alguma alteracoes para ke possa ver o texto justificado..
MINHAS ALTERACOES LINK

Qto a imprimir maior >= 2000,00
if suatabela.valor >=2000
faca a acao &&podera ser o preview, podera ser um skip, ai vc decide...
else
nao faca nada
endif

Qto ao recibo em si , pq algo me diz ke isto parece um recibo.

Tem exemplo aki no forum, sim, e no meu blog.....

mas se vc nao pegou o codigo...

Código:
 Set Safety Off
*=valor_extenso(2452.34)
wre=valor_extenso(2452.34)
Create Cursor Tabla1 (Txt C(78))
Insert Into Tabla1 Values ("RECIBO ")
Insert Into Tabla1 Values ("======== ")
Insert Into Tabla1 Values ("Valor R$ 2,452.34")
Insert Into Tabla1 Values (wre)
Insert Into Tabla1 Values ("Recebemos de Softwar Julio  , a importancia acima cidtada,ref.serv.prestados ")

Insert Into Tabla1 Values ("Sao Paulo, 31/2/2010 ")
Insert Into Tabla1 Values (" ")
Insert Into Tabla1 Values ("======== ")

Create Report Reporte1 From Tabla1

Report Form Reporte1 Preview Nowait

A funcao extenso esta, aki e no forum, e no zip desta resposta.
A funcao data por extenso postei na resposta do Bruno Mesquita, e no meu blog.



E Julio Parabens pela 5 estrelas , poucos irao conseguir...

Veja ke ondi tem <PJ> e justificado.

[Você precisa estar registrado e conectado para ver esta imagem.]
avatar
alceu11
Usuário 5 Estrelas
Usuário 5 Estrelas


Voltar ao Topo Ir em baixo

Resolvido Re: Criar relatoiro padrão

Mensagem por Julio em 5/4/2012, 10:39

Bom Dia Alceu, como sempre, pronto para ajudar.
Muito obrigado.

Bem nao se trata de um recibo do tipo de pagamento, na verdade é uma carta que temos que encaminhar menssalmente para os usuários/pacientes, constanto o que foi feito e o periodo do tratamento.
Quando a separar pelo valor ja tinha pensado fazer um select e criar um cursor somente com os valores superiores.

Vou ver os exemplos e posto um retorno depois de verificar.

Vou fazer um busca por "RECIBO" tambem para ver se o que encontro.

Fiquei surpreso uns tempos atras quando acessei o forum e vi a quinta estrela.


Obrigado

Julio
Usuário 5 Estrelas
Usuário 5 Estrelas


Voltar ao Topo Ir em baixo

Resolvido Re: Criar relatoiro padrão

Mensagem por Julio em 5/4/2012, 16:53

Quanto a este relatorio Alceu, ja fiz quase todo, para dizer a verdade o texto ja esta pronto so falta o cabeçalho, e enfeitart o pe do "pavão".
O que ta pegando é que minha tabela tem 73 registros e isto pode variar q cada mes, e o relatorio so ta imprimindo o primeiro registro, estou tentando fazer os ajustes aqui, para que ela leia toda a minha tabela.

Julio
Usuário 5 Estrelas
Usuário 5 Estrelas


Voltar ao Topo Ir em baixo

Resolvido Re: Criar relatoiro padrão

Mensagem por Julio em 9/4/2012, 10:28

Alceu
Quando voce coloca esta linha:
Código:
wre = valor_extenso(2452.34)

O valor entre parenteses é númerico ou caracter.

Esta dando erro nesta linha.

No meu eu fiz assim:
Código:
SET PROCEDURE TO VALOR_EXTENSO ADDITIVE
SELECT carta
GO TOP
DO WHILE NOT EOF()
  m.nomepac = ALLTRIM(nomepac)
  m.dt_inter = ALLTRIM(dt_inter)
  m.dt_saida = ALLTRIM(dt_saida)
  m.procedimento = ALLTRIM(procedimento)
  m.valorc = ALLTRIM(valorc)
  wre = valor_extenso(m.valorc)
 
  depois os comando para gravar na tabela DUMMY
 
  select carta
  skip
enddo

Julio
Usuário 5 Estrelas
Usuário 5 Estrelas


Voltar ao Topo Ir em baixo

Resolvido Re: Criar relatoiro padrão

Mensagem por alceu11 em 9/4/2012, 13:29

Esta linha estou mandando executar uma funcao, dentro var , wre
wre = valor_extenso(2452.34) && E numerico, mas poderia ser uma var numerica
wait windo wre
Mais vc nao precisa desta linha pode exluir ela. wre= valor_extenso(2452.34)

O ideal seria vc postar um form, com o report, com o texto justificado, com informacoes ficticias.
Para ke este assunto, no futuro, algum dia, alguem leia tenha o exemplo,
Obrigado, se poder postar.

Código:
 **Teste e veja o resultado
FUNCTION valor_extenso
lPARAMETERS pvalor
local vextenso, flagbilhao, flagmilhao,flagcentavos
DIMENSION unidade[10], dez[10], dezena[10], centena[11]
STORE .F. TO flagbilhao,flagmilhao,flagcentavos
unidade[1] = ""
unidade[2] = "Um "
unidade[3] = "Dois "
unidade[4] = "Três "
unidade[5] = "Quatro "
unidade[6] = "Cinco "
unidade[7] = "Seis "
unidade[8] = "Sete "
unidade[9] = "Oito "
unidade[10] = "Nove "

dez[1] = "Dez "
dez[2] = "Onze "
dez[3] = "Doze "
dez[4] = "Treze "
dez[5] = "Quatorze "
dez[6] = "Quinze "
dez[7] = "Dezesseis "
dez[8] = "Dezessete "
dez[9] = "Dezoito "
dez[10] = "Dezenove "

dezena[1] = ""
dezena[2] = "Dez "
dezena[3] = "Vinte "
dezena[4] = "Trinta "
dezena[5] = "Quarenta "
dezena[6] = "Cinqüenta "
dezena[7] = "Sessenta "
dezena[8] = "Setenta "
dezena[9] = "Oitenta "
dezena[10] = "Noventa "

centena[1] = ""
centena[2] = "Cento "
centena[3] = "Duzentos "
centena[4] = "Trezentos "
centena[5] = "Quatrocentos "
centena[6] = "Quinhentos "
centena[7] = "Seiscentos "
centena[8] = "Setecentos "
centena[9] = "Oitocentos "
centena[10] = "Novecentos "
centena[11] = "Cem "

valorstr = STR(INT(pvalor * 100),14,0)
vextenso = " "
FOR i=1 TO 14
IF SUBSTR(valorstr,i,1) != " "
num = VAL(SUBSTR(valorstr,i,1))
DO CASE
* --- Bilhao
CASE i = 1
IF num = 1 .AND. VAL(SUBSTR(valorstr,i+1,2)) = 0
vextenso = centena[11]
ELSE
vextenso = centena[Num+1] + IIF(SUBSTR(valorstr,i+1,2) = "00" OR num=0, "", "e ")
ENDIF
flagbilhao = .T.
CASE i = 2
IF num != 1
vextenso = vextenso + dezena[Num+1] + IIF(SUBSTR(valorstr,i+1,1) = "0" .OR. num=0, "", "e ")
flagbilhao = .T.
ELSE
i=i+1
num = VAL(SUBSTR(valorstr,i,1))
vextenso = vextenso + dez[Num+1] + "Bilhões" + IIF(VAL(SUBSTR(valorstr,4))>0,", "," ")
ENDIF
CASE i = 3
IF !(flagbilhao)
flagbilhao = IIF(num>1,.T.,.F.)
ENDIF
vextenso = vextenso + unidade[Num+1] + IIF(flagbilhao,"Bilhões","Bilhão") + IIF(VAL(SUBSTR(valorstr,4))>0,", "," ")

*---- Milhao
CASE i = 4
IF num = 1 .AND. VAL(SUBSTR(valorstr,i+1,2)) = 0
vextenso = vextenso + centena[11]
ELSE
vextenso = vextenso + centena[Num+1] + IIF(SUBSTR(valorstr,i+1,2) = "00" OR num=0, "", "e ")
ENDIF
flagmilhao = .T.
CASE i = 5
IF num != 1
vextenso = vextenso + dezena[Num+1] + IIF(SUBSTR(valorstr,i+1,1) = "0" .OR. num=0, "", "e ")
flagmilhao = .T.
ELSE
i=i+1
num = VAL(SUBSTR(valorstr,i,1))
vextenso = vextenso + dez[Num+1] + "Milhões" + IIF(VAL(SUBSTR(valorstr,7))>0,", "," ")
ENDIF
CASE i = 6
IF !(flagmilhao)
flagmilhao = IIF(num>1,.T.,.F.)
ENDIF
vextenso = vextenso + unidade[Num+1] + IIF(flagmilhao,"Milhões","Milhão") + IIF(VAL(SUBSTR(valorstr,7))>0,", "," ")

*--- MILHAR
CASE i = 7
IF num = 1 .AND. VAL(SUBSTR(valorstr,i+1,2)) = 0
vextenso = vextenso + centena[11]
ELSE
vextenso = vextenso + centena[Num+1] + IIF(SUBSTR(valorstr,i+1,2) = "00" OR num=0, "", "e ")
ENDIF
CASE i = 8
IF num != 1
vextenso = vextenso + dezena[Num+1] + IIF(SUBSTR(valorstr,i+1,1) = "0" .OR. num=0, "", "e ")
ELSE
i=i+1
num = VAL(SUBSTR(valorstr,i,1))
vextenso = vextenso + dez[Num+1] + "Mil" + IIF(VAL(SUBSTR(valorstr,10))>0,", "," ")
ENDIF
CASE i = 9
vextenso = vextenso + unidade[Num+1] + "Mil" + IIF(VAL(SUBSTR(valorstr,10))>0,", "," ")

*--- Reais
CASE i = 10
IF num = 1 .AND. VAL(SUBSTR(valorstr,i+1,2)) = 0
vextenso = vextenso + centena[11]
ELSE
vextenso = vextenso + centena[Num+1] + IIF(SUBSTR(valorstr,i+1,2) = "00" OR num=0, "", "e ")
ENDIF
CASE i = 11
IF num != 1
vextenso = vextenso + dezena[Num+1] + IIF(SUBSTR(valorstr,i+1,1) = "0" .OR. num=0, "", "e ")
ELSE
i=i+1
num = VAL(SUBSTR(valorstr,i,1))
vextenso = vextenso + dez[Num+1] + "Reais" + IIF(VAL(SUBSTR(valorstr,13))>0," e "," ")
ENDIF
CASE i = 12
vextenso=vextenso+unidade[Num+1]+ IIF(EMPTY(vextenso) AND num=1,"Real","Reais") +IIF(VAL(SUBSTR(valorstr,13))>0," e "," ")

*---- CENTAVOS
CASE i = 13
IF num != 1
vextenso = vextenso + dezena[Num+1]
flagcentavos = IIF(num>1,.T.,.F.)
ELSE
i=i+1
num = VAL(SUBSTR(valorstr,i,1))
vextenso = vextenso + dez[Num+1] + "Centavos"
flagcentavos = .T.
ENDIF
CASE i = 14
IF !(flagcentavos)
flagcentavos = IIF(num>1,.T.,.F.)
ENDIF
IF flagcentavos
vextenso = vextenso + unidade[Num+1] + IIF(flagcentavos,"Centavos","")
ELSE
IF num>0
vextenso = vextenso + unidade[Num+1] + "Centavo"
ENDIF
ENDIF
ENDCASE
ENDIF
ENDFOR
*WAIT WINDOW 'vc digitou 2452.34 '+ALLTRIM(vextenso) TIMEOUT 0.2
RETURN ALLTRIM(vextenso)
**


qto ao outro erro nao entendi
avatar
alceu11
Usuário 5 Estrelas
Usuário 5 Estrelas


Voltar ao Topo Ir em baixo

Resolvido Re: Criar relatoiro padrão

Mensagem por Julio em 9/4/2012, 13:48

Alceu

Bem, quaqnto ao extenso consegui resolver.

Quanto o relatorio imprimir todos os registros da tabela DUMMY tambem consegui resolver.

O unico problema é que não esta justificando, no exemplo que voce me passou funciona, mas no que eu fiz nao justifica. so estou tentando rsolver este problema de justificar, ai ate posso deixar um exemplo por aqui.

Julio
Usuário 5 Estrelas
Usuário 5 Estrelas


Voltar ao Topo Ir em baixo

Resolvido Re: Criar relatoiro padrão

Mensagem por Julio em 11/4/2012, 10:06

Pessoal, obrigado por quem ajudou, esta RESOLVIDO o topico.

Vou postar aqui o exemplo que fiz, em relação ao link que o Alceu deixou acima (5/4/2012, 08:15) referente ao link justificar texto.
Fiz algumas alterações, pq naquele exemplo so era possivel imprimir apenas um registro da tabela, caso a tabela clientes tivesse mais de um registro apenas o primeiro registro era gerado o texto justificado e inserido no cursor DUMMY.

No exemplo que posto aqui, realizei alguns ajustes da minha maneira e que resolveu o meu caso neste momento.

No formulario teste_carta observesem que o click do botão imprimir eu fiz alterações em relação ao original, e criei um metodo chamado MONTA_CARTA, onde leio a minha tabela e seleciono os registros que desejo imprimir conforme minha necessidade. Existe tambem a rotina de extenso que acabei não utilizando a que o Alceu postou aqui, mas uma outra dentro do proprio formulario criando o metedo EXTENSO. Apos gravo no cursor DUMMY para que ao ler o cursor imprima todos os registros.

Alguns dados foram excluidos / alterados por se tratar de dados reais, apenas deixei 11 registros para exemplo e podem ver que so imprimi 5 registros, que é o que satisfaz a minha seleção no inicio do metodo MONTA_CARTA.

Vou parar por aqui, se não a resposta vai ficar extensa, mas em todos os metodos do meu formulario deixei explicado, como utilizei para criar a impressão justificado.

Clique aqui para download do arquivo

Julio
Usuário 5 Estrelas
Usuário 5 Estrelas


Voltar ao Topo Ir em baixo

Resolvido Re: Criar relatoiro padrão

Mensagem por edikoston em 27/6/2015, 01:34

Grato pelo sua colaboração Julio e a tados, me ajudou bastante, e bem documentado.
funcionou perfeitamente aqui.
avatar
edikoston
Participa Pouco
Participa Pouco


Voltar ao Topo Ir em baixo

Ver o tópico anterior Ver o tópico seguinte Voltar ao Topo


 
Permissão deste fórum:
Você não pode responder aos tópicos neste fórum