Duvida Indice NTX

Fórum sobre a linguagem CA-Clipper.

Moderador: Moderadores

Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Duvida Indice NTX

Mensagem por JoséQuintas »

Procurei não alterar muito seu estilo.
Mas não resisti a mexer um pouco mais no fonte.
Já que seu relatório mostrava contas sem cadastro, o problema desta forma é não mostrar lançamentos sem conta.

E se realmente for pra mostrar uma única data, melhor criar um arquivo temporário com o que vai ser impresso.

Código: Selecionar todos

   CLEAR

   DO WHILE .T.
      @ 10, 10 SAY 'INFORME DATA DO MOVIMENTO'
      @ 10, 36 GET mdata PICTURE ' / / '
      READ
      IF mdata = CToD( ' / / ' )
         @ 20, 1 SAY 'DATA EM BRANCO'
         WAIT ', ENTER'
         LOOP
      ENDIF
      EXIT
   ENDDO

   SELECT 0
   USE CLIENTES
   INDEX ON nome TO Temp1 
   SELECT 0
   USE MOVIM
   INDEX ON Conta + Dtos( Data ) TO Temp2
   SELECT 0
   USE HISTOR INDEX IHISTOR

   SET PRINTER TO TESTE.TXT
   SET DEVICE TO PRINT
   @ 0, 0 SAY Chr( 27 ) + Chr( 15 )
   mlinha = 66
   mfolha = 1
   mtotcre = 0.00
   mtotdeb = 0.00
   mtotvap = 0.00
   mtotvales = 0.00
   mtotodeb = 0.00
   mtotrest = 0.00
   mdata = CToD( ' / / ' )
   mtotven = 0.00
   SELECT clientes
   GOTO TOP
   DO WHILE .NOT. Eof() // clientes em ordem alfabética
      SELECT movim
      SET SOFTSEEK ON // pra encontrar data igual ou acima (apesar que parece usar data única)
      SEEK clientes->Conta + Dtos( mData )
      SET SOFTSEEK OFF
      DO WHILE movim->Conta == clientes->Conta .AND. .NOT. Eof() // movimentos referentes ao cliente
         // IF movim->Dat_Lanc < mData // Pra que isto, se o SEEK já pulou datas menores?
         //    SKIP
         //    LOOP
         // ENDIF
         IF movim->Dat_Lanc > mdata 
            EXIT
         ENDIF
         IF mlinha > 58
            DO CCCABP20 WITH mfolha, mdata, mlinha
         ENDIF
         @ mlinha, 4  SAY clientes->Conta
         @ mlinha, 10 SAY clientes->Nome
         @ mlinha, 44 SAY clientes->Tipo
         SELECT histor
         SEEK movim->CT
         IF Eof()
            @ mlinha, 66 SAY '*******'
         ELSE
            @ mlinha, 66 SAY histor->Historico
         ENDIF
         SELECT movim
         @ mlinha, 78 SAY movim->Doc
         IF movim->CT < 10
            mtotdeb += movim->Valor
            DO CASE
            CASE movim->CT = 01 ; mtotvap   += movim->Valor
            CASE movim->CT = 02 ; mtotvales += movim->Valor
            CASE movim->CT = 06 ; mtotrest  += movim->Valor
            OTHERWISE           ; mtotodeb  += movim->Valor
            ENDCASE
            @ mlinha, 94 SAY movim->Valor PICTURE '9,999,999,999.99'
         ELSE
            mtotcre += movim->Valor
            @ mlinha, 111 SAY movim->Valor PICTURE '9,999,999,999.99'
         ENDIF
         mlinha += 1
         SKIP
      ENDDO
      SELECT clientes // retorna pra clientes, que é com o que este do while externo trabalha
      SKIP
   ENDDO   
   IF mlinha > 55
      DO CCCABP20 WITH mfolha, mdata, mlinha
   ENDIF
   mlinha += 1
   @ mlinha, 10 SAY 'TOTAL DE VENDAS A PRAZO = >'
   @ mlinha, 94 SAY mtotvap PICTURE '9,999,999,999.99'
   mlinha += 1
   @ mlinha, 10 SAY 'TOTAL DE VALES ....... = >'
   @ mlinha, 94 SAY mtotvales PICTURE '9,999,999,999.99'
   mlinha += 1
   @ mlinha, 10 SAY 'TOTAL DE RESTAURANTE  = >'
   @ mlinha, 94 SAY mtotrest PICTURE '9,999,999,999.99'
   mlinha += 1
   @ mlinha, 10 SAY 'TOTAL DE OUTROS DEBITOS = >'
   @ mlinha, 94 SAY mtotodeb PICTURE '9,999,999,999.99'
   mlinha += 1
   @ mlinha, 35 SAY 'T O T A L  = >'
   @ mlinha, 94 SAY mtotdeb PICTURE '9,999,999,999.99'
   @ mlinha, 111 SAY mtotcre PICTURE '9,999,999,999.99'

   @ pRow() + 1, 0 SAY Chr( 27 ) + Chr( 15 )

   EJECT

   @ 0, 0 SAY Chr( 27 ) + '@'
   SET DEVICE TO SCREEN
   SET PRINTER TO
   CLOSE ALL
   fErase( "temp1.ntx" )
   fErase( "temp2.ntx" )
   CLEAR
   RETURN
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Taciane
Usuário Nível 1
Usuário Nível 1
Mensagens: 28
Registrado em: 14 Nov 2015 16:28
Localização: Buritizeiro/MG

Duvida Indice NTX

Mensagem por Taciane »

Olá, JoséQuintas

O Relatório não esta gerando nenhuma informação, declarei a variável mdata antes do GET inicial.

Comentei as linhas que apagam os ntx temporários para ver pelo DBU o que estava sendo gerado e esta tudo certo com eles.

No GET a data esta informada dd/mm/aa e no indice esta como dd/mm/aaaa.
Avatar do usuário
Jairo Maia
Moderador
Moderador
Mensagens: 2785
Registrado em: 16 Ago 2010 13:46
Localização: Campinas-SP

Duvida Indice NTX

Mensagem por Jairo Maia »

Olá Taciane,

No exemplo do José, após a linha CLEAR coloque estas linhas:

Código: Selecionar todos

Set Century On   // ano com 4 digitos
Set Date Brit    // data no formato dd/mm/yyyy
Altere também esta linha do GET:

Código: Selecionar todos

@ 10, 36 GET mdata PICTURE ' / / '
Para:

Código: Selecionar todos

@ 10, 36 GET mdata PICTURE '@D'
Veja se vai gerar o relatório.
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 do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Duvida Indice NTX

Mensagem por JoséQuintas »

Realmente.
E o motivo é porque ao digitar 01/10/15:

Sem SET DATE BRITISH, isso pode ser interpretado como 10 de janeiro
Sem SET CENTURY ON, isso pode ser interpretado como ano 1915

Lembrando que na hora de conferir a informação do DBF convém reparar nisso também.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar do usuário
asimoes
Colaborador
Colaborador
Mensagens: 4919
Registrado em: 26 Abr 2007 16:48
Localização: RIO DE JANEIRO-RJ

Duvida Indice NTX

Mensagem por asimoes »

Completando:

Usando o SET EPOCH TO 1950

Determina a interpretação de valores de data sem dígitos do século.

? CtoD("05/27/1910") // Result: 05/27/1910
? CtoD("05/27/69") // Result: 05/27/1969
? CtoD("05/27/06") // Result: 05/27/2006
►Harbour 3.x | Minigui xx-x | HwGui◄
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
Taciane
Usuário Nível 1
Usuário Nível 1
Mensagens: 28
Registrado em: 14 Nov 2015 16:28
Localização: Buritizeiro/MG

Duvida Indice NTX

Mensagem por Taciane »

Olá,

Agora sim esta funcionando perfeitamente com os dois exemplos passados.

Fico muito grata Jairo Maia e JoséQuintas pelo apoio.
Taciane
Usuário Nível 1
Usuário Nível 1
Mensagens: 28
Registrado em: 14 Nov 2015 16:28
Localização: Buritizeiro/MG

Duvida Indice NTX

Mensagem por Taciane »

Olá,

Pensei em aposentar minha Fx1050 e passar minha USB HP1102W.

Olhando o tópico Harbour achei vários tópicos relacionados e estou testando, o relatório acima é gerado e enviado a impressora mas não imprime.

Neste link tem esta que me pareceu ser simples a dica do Itamar, mas não é. viewtopic.php?f=4&t=12841

Código: Selecionar todos

SET PRINTER TO seurelatorio.prn
SET DEVICE TO PRINTER
...
@ prow() ... say chr(27)+chr(14) ....
@ prow()+1,15 say 'DOCUMENTO AUXILIAR DE VENDA - v1.1'
...
SET DEVICE TO
SET PRINTER TO
...
Win_PrinteFileaw(cPrint,"seurelatorio.prn","DOC AUX VDA")
Pesquisando no Forum da HP achei este post do link abaixo mencionando " Esse produto é um equipamento que chamamos de Host Based. Não suporta o envio de linguagens de impressão nem fonts, pois todo gerenciamento de impressão é baseado no Host(PC)"

http://h30487.www3.hp.com/t5/Impress%C3 ... d-p/275648

Olhando a pasta HB32 testei os prg´s da pasta Crontib e estou muito pior que o Jairo no primeiro post do link acima.

Achei um post do sygecom com um prg ( PrintFileRAW() ) que seria apenas anexar ao arquivo hbp e pronto, mas para que foi feito xharbour, e não deu certo usando o Harbour 3.2

Bem era só para aliviar o "stress" depois vou criar um tópico na sala Harbour,
Avatar do usuário
Jairo Maia
Moderador
Moderador
Mensagens: 2785
Registrado em: 16 Ago 2010 13:46
Localização: Campinas-SP

Duvida Indice NTX

Mensagem por Jairo Maia »

Taciane escreveu:Olhando a pasta HB32 testei os prg´s da pasta Crontib e estou muito pior que o Jairo no primeiro post do link acima.
Taciane, nem tente concorrer comigo como pior iniciante em Harbour... Acho que você não vai conseguir... rs...
Taciane escreveu:[...] depois vou criar um tópico na sala Harbour
Muito bom... Esperamos você lá.
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 do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Duvida Indice NTX

Mensagem por JoséQuintas »

Só pra adiantar, mas não faz parte do post sobre índice NTX.
O texto:
" Esse produto ...Não suporta o envio de linguagens de impressão nem fonts, pois todo gerenciamento de impressão é baseado no Host(PC)"
Numa tradução do "nem fontes":
A impressora é "analfabeta", ela não sabe o que é letra, ela só sabe desenhar.
Então não adianta o programa mandar texto, o programa precisa enviar tudo em forma de desenho.

A solução não tem a ver nem com Clipper e nem com NTX, então ficará para o post que mencionou fazer.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Responder