Página 1 de 1
Impressão de um Grid
Enviado: 15 Mar 2013 16:16
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
Impressão de um Grid
Enviado: 15 Mar 2013 17:00
por esgici
Impressão de um Grid
Enviado: 15 Mar 2013 18:10
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 !
Como imprimir dados de uma Grid
Enviado: 17 Mar 2013 22:58
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
Como imprimir dados de uma Grid
Enviado: 18 Mar 2013 10:45
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 ?
Rotina de impressao travando
Enviado: 18 Mar 2013 15:17
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
Rotina de impressao travando
Enviado: 18 Mar 2013 18:34
por Pablo César
Já compilou com depuração ? Para ver onde está empacando ?
Rotina de impressao travando
Enviado: 18 Mar 2013 21:33
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.
Rotina de impressao travando
Enviado: 18 Mar 2013 21:57
por Pablo César
Isso ai Luiz !
Rotina de impressao travando
Enviado: 18 Mar 2013 22:07
por luiz antonio da silva
Olá Pablo !
Você sabiamente diz sempre...."com o código tudo fica mais simples".
Abraço.
Luiz.
Rotina de impressao travando
Enviado: 19 Mar 2013 09:37
por Paulo_CPV
Bom dia!
Obrigado a todos pela dica, coloquei o EXIT e agora está funcionando tudo.
[]'s
Paulo - Jacareí/SP