Impressão de um Grid

Projeto MiniGui - Biblioteca visual para Harbour/xHarbour

Moderador: Moderadores

Paulo_CPV
Usuário Nível 3
Usuário Nível 3
Mensagens: 178
Registrado em: 07 Mar 2013 10:27
Localização: Jacarei/SP

Impressão de um Grid

Mensagem por Paulo_CPV »

Boa tarde!

Gostaria de saber dos colegas do Forum como eu faço para imprimir dados de um comando Grid? Pois eu tenho n dados num Grid e gostaria de imprimi-los e não estou conseguindo, pois sempre me atrapalho em rotinas que tem Arrays. Uso a Miniprint.

Desde já agradeço a atenção de dos colegas para me dar uma dica de como posso fazer isto.

[]'s
Paulo - Jacareí/SP
Editado pela última vez por Pablo César em 11 Abr 2013 10:59, em um total de 1 vez.
Razão: Tópicos reunidos por tratar do mesmo assunto
esgici
Usuário Nível 1
Usuário Nível 1
Mensagens: 34
Registrado em: 27 Ago 2012 14:51
Localização: Turkiye
Contato:

Impressão de um Grid

Mensagem por esgici »

Saudação
Esgici
Viva Clipper !
Avatar do usuário
Pablo César
Usuário Nível 7
Usuário Nível 7
Mensagens: 5312
Registrado em: 31 Mai 2006 10:22
Localização: Curitiba - Paraná

Impressão de um Grid

Mensagem por Pablo César »

Paulo_CPV escreveu:sempre me atrapalho em rotinas que tem Arrays
Quais são as suas dúvidas com respeito a Arrays, matrizes ou vetores, como quiser chamar ? Você Paulo precisa tratar essa sua dificuldade. Arrays no nosso meio são hiper-importantes ! Aqui no fórum tem vários tópicos sobre matrizes, faça uma pesquisa no fórum.

Very nice example, amigo Esgici ! From our good friend Rathigiri, thanks to him too !
Um clip-abraço !

Pablo César Arrascaeta
Compartilhe suas dúvidas e soluções com todos os colegas aqui do fórum.
Evite enviar as dúvidas técnicas por MPs ou eMails, assim todos iremos beneficiar-nos.
Paulo_CPV
Usuário Nível 3
Usuário Nível 3
Mensagens: 178
Registrado em: 07 Mar 2013 10:27
Localização: Jacarei/SP

Como imprimir dados de uma Grid

Mensagem por Paulo_CPV »

Boa noite!

Colegas do grupo estou com dificuldade em imprimir dados de uma Grid. Pois eu tenho duas Grids, uma com 2 colunas e outra com 3 colunas, como imprimir os dados das colunas das Grids com o Miniprint da Minigui. Layout da impressão:


Cabeçalho
Titulo do Relatório
Dados da Grid 1 Dados da Grid 2

n Linhas

Rodapé

Se alguém tiver uma ideia ficarei grato e desde já agradeço a todos para ajudar a resolver a minha dúvida.

[]'s
Paulo - Jacareí/SP
Avatar do usuário
Pablo César
Usuário Nível 7
Usuário Nível 7
Mensagens: 5312
Registrado em: 31 Mai 2006 10:22
Localização: Curitiba - Paraná

Como imprimir dados de uma Grid

Mensagem por Pablo César »

Oi Paulo, sei que a sua dificuldade maior é dominar a questão de vetores. Mas é justamente por ai que você vai conseguir compor o relatório, juntando os dados das duas grids. Assim sem código algum é muito dificil de indicar um código exemplo, pois como você mesmo viu a grid pode estar acessando dados direto do dbf, pode ser com set navegation ou não, enfim, você já sabe que sem código não há milagres. Basicamente, você vai ter que ter uma função para ler o conteúdo de cada grid, lendo linha por linha (registro por registro) e compor em outra matriz para deixar disponível para impressão. O exemplo que o colega Esgici deu que pertence ao Rathinagiri é muito bom. Mas tem que apresentar algum código, senão dá impressão que você quer que façam o programa para você e não creio que seja assim, não é mesmo ?
Ao final, você conseguiu resolver a impressão que você mencionou neste tópico ?
Um clip-abraço !

Pablo César Arrascaeta
Compartilhe suas dúvidas e soluções com todos os colegas aqui do fórum.
Evite enviar as dúvidas técnicas por MPs ou eMails, assim todos iremos beneficiar-nos.
Paulo_CPV
Usuário Nível 3
Usuário Nível 3
Mensagens: 178
Registrado em: 07 Mar 2013 10:27
Localização: Jacarei/SP

Rotina de impressao travando

Mensagem por Paulo_CPV »

Bom tarde!
Estou desenvolvendo uma rotina para impressão dos dados de uma Grid, mas ela está travando o sistema, aonde eu estou errando? Espero que os colegas me ajudem.

[]'s
Paulo - Jacareí/SP

Código: Selecionar todos

 FUNCTION RELTEMPO()

LOCAL cImpressora , nOrientacao , nQualidade , nPapel
LOCAL nPag := nLin := 0 , nCentra
LOCAL nGrid := Form_1.Grid_1.ItemCount , aDados1 , aDados2

cImpressora := GetIni(SEC_IMPRESSORAS,IMPRESSORA_MODELO,PAR_DEFAULT,INI_ARQ)
nOrientacao := GetIni(SEC_IMPRESSORAS,IMPRESSORA_POSICAO,PAR_DEFAULT,INI_ARQ)
nQualidade  := GetIni(SEC_IMPRESSORAS,IMPRESSORA_QUALIDADE,PAR_DEFAULT,INI_ARQ)
nPapel      := GetIni(SEC_IMPRESSORAS,IMPRESSORA_PAPEL,PAR_DEFAULT,INI_ARQ)

// configurando impressora padrao

SELECT PRINTER cImpressora ;
ORIENTATION nOrientacao ;
PAPERSIZE nPapel ;
QUALITY nPapel ;
PREVIEW ;

START PRINTDOC NAME "RelTempo"
START PRINTPAGE

nCentra := CENTRA("SIMULAÇÃO PARA SIMPLES CONFERENCIA")

nLin := 58

WHILE .T.

  IF nLin = 58

        @ 00,00  PRINT IMAGE BMP_CABECALHO WIDTH 211 HEIGHT 34
        @ 40,04  PRINT LINE TO 40,192
        @ 43,10  PRINT "Página: " + STRZERO(nPag + 1,6)
        @ 43,75  PRINT "Data: " + DTOC(DATE())
        @ 49,04  PRINT LINE TO 49,192
        @ 52,nCentra PRINT "SIMULAÇÃO PARA SIMPLES CONFERENCIA" FONT "Arial" SIZE 12 BOLD

        @ 58,15   PRINT "Data Inicial "  FONT "Arial" SIZE 10
        @ 58,36   PRINT "Data Final "    FONT "Arial" SIZE 10
        @ 58,130  PRINT "Ano "           FONT "Arial" SIZE 10
        @ 58,160  PRINT "Mês "           FONT "Arial" SIZE 10
        @ 58,190  PRINT "Dia "           FONT "Arial" SIZE 10
        @ 58,220  PRINT "Total "         FONT "Arial" SIZE 10

        @ 64,04   PRINT LINE TO 64,192 PENWIDTH 0.1

        nLin := 58
        nPag++

      ENDIF

      FOR x = 1 TO nGrid

        aDados1 := Form_1.Grid_1.Item(x)
        aDados2 := Form_1.Grid_2.Item(x)

        @ nLin+8,15  PRINT DTOC(aDados2[1]) FONT "Arial" SIZE 10
        @ nLin+8,36  PRINT DTOC(aDados2[2]) FONT "Arial" SIZE 10
        @ nLin+8,130 PRINT IF(aDados1[1] < 10,STRZERO(aDados1[1],2),STR(aDados1[1])) FONT "Arial" SIZE 10
        @ nLin+8,160 PRINT IF(aDados1[2] < 10,STRZERO(aDados1[2],2),STR(aDados1[2])) FONT "Arial" SIZE 10
        @ nLin+8,190 PRINT IF(aDados1[3] < 10,STRZERO(aDados1[3],2),STR(aDados1[3])) FONT "Arial" SIZE 10
        @ nLin+8,220 PRINT IF(aDados1[1] < 10,STRZERO(aDados1[1],2),STR(aDados1[1]))+" "+IF(aDados1[2] < 10,STRZERO(aDados1[2],2),STR(aDados1[2]))+" "+IF(aDados1[3] < 10,STRZERO(aDados1[3],2),STR(aDados1[3])) FONT "Arial" SIZE 10

        nLin := nLin + 5

      NEXT

      IF nLin > 240

        @ 256,02 PRINT LINE TO 256,192
        @ 257,00 PRINT IMAGE BMP_RODAPE WIDTH 211 HEIGHT 34

        nLin := 58
        END PRINTPAGE

        IF ! nGrid = 0

          START PRINTPAGE

        ENDIF

  ENDIF

END

END PRINTPAGE
END PRINTDOC

RETURN NIL
Avatar do usuário
Pablo César
Usuário Nível 7
Usuário Nível 7
Mensagens: 5312
Registrado em: 31 Mai 2006 10:22
Localização: Curitiba - Paraná

Rotina de impressao travando

Mensagem por Pablo César »

Já compilou com depuração ? Para ver onde está empacando ?
Um clip-abraço !

Pablo César Arrascaeta
Compartilhe suas dúvidas e soluções com todos os colegas aqui do fórum.
Evite enviar as dúvidas técnicas por MPs ou eMails, assim todos iremos beneficiar-nos.
luiz antonio da silva
Usuário Nível 3
Usuário Nível 3
Mensagens: 161
Registrado em: 21 Nov 2006 22:12
Localização: serrana-sp

Rotina de impressao travando

Mensagem por luiz antonio da silva »

Olá Paulo !

Não encontrei uma saida "exit" para o seu "while .t.", provavelmente seja esse o motivo do travamento, quando termina o for que le o grid começa tudo novamente.

luiz.
HMG 3.4.4 - SQL SERVER - ORACLE
Avatar do usuário
Pablo César
Usuário Nível 7
Usuário Nível 7
Mensagens: 5312
Registrado em: 31 Mai 2006 10:22
Localização: Curitiba - Paraná

Rotina de impressao travando

Mensagem por Pablo César »

Isso ai Luiz !
Um clip-abraço !

Pablo César Arrascaeta
Compartilhe suas dúvidas e soluções com todos os colegas aqui do fórum.
Evite enviar as dúvidas técnicas por MPs ou eMails, assim todos iremos beneficiar-nos.
luiz antonio da silva
Usuário Nível 3
Usuário Nível 3
Mensagens: 161
Registrado em: 21 Nov 2006 22:12
Localização: serrana-sp

Rotina de impressao travando

Mensagem por luiz antonio da silva »

Olá Pablo !

Você sabiamente diz sempre...."com o código tudo fica mais simples".

Abraço.
Luiz.
HMG 3.4.4 - SQL SERVER - ORACLE
Paulo_CPV
Usuário Nível 3
Usuário Nível 3
Mensagens: 178
Registrado em: 07 Mar 2013 10:27
Localização: Jacarei/SP

Rotina de impressao travando

Mensagem por Paulo_CPV »

Bom dia!

Obrigado a todos pela dica, coloquei o EXIT e agora está funcionando tudo.

[]'s
Paulo - Jacareí/SP
Responder