IMPRIMIR DADOS DO MSFLEXGRID

SACOFRITO 24/03/2011 09:06:09
#368988
Bom dia galera, como faço pra imprimir os dados de um msflexgrid que esta preenchido.
Precisava percorrer o grid desde a primeira linha onde ficam os nomes das colunas, até o final.

Tem como fazer isso?
FEDERHEN 24/03/2011 09:15:52
#368990
Dim i As Integer
For i = 1 To MSFlexGrid1.Rows - 1
Print .Printer; MSFlexGrid1.TextMatrix(i, 0) [ô]impressão da coluna 0

Next i
SACOFRITO 24/03/2011 09:18:39
#368992
Isso será que vai sair os dados da linha do jeito que esta sendo exibido? com os tamanhos das colunas ja e tal?
FEDERHEN 24/03/2011 09:50:08
#369001
Não...
Isso apenas lê os dados do FlexGrid... Você deve formatar o relatório comforme deseja.
SACOFRITO 24/03/2011 09:59:28
#369004
Voce pode me dar um exemplo simples?
Estava lendo algumas coisas, mas por exemplo os dados da segunda coluna podem ser um maior que o outro, isso iria bagunçar naa impressao...
Voce tem alguma dica pra deixar tudo alinhhado?
SACOFRITO 24/03/2011 10:45:34
#369018
Eu uso sim, o crystal...
Estava querendo saber pois receio que oq eu preciso fazer nao de para fazer no Crystal.

Entao vou aproveitar o topico e pedir uma ajuda.
Preciso fazer um relatorio financeiro, mas uma das colunas precisa ser o quanto em dinheiro tinha antes da primeira data da pesquisa, entao ira sendo feito o calculo - totalanterior + entrada ou totalanterior - saida .. e a coluna total ira sendo alterada registro por registro

tipo

total em caixa = 1000

data historico entrada saida total
x yyyyyyy 10 1010
z xxxxxxx 10 1000


FEDERHEN 24/03/2011 11:38:50
#369031
Se você vai criar uma tabela temporária, insere um registro com:
data = inicio de movimentação
histórico = SALDO ANTERIOR
total = valor do saldo

tipo :

data historico entrada saida total
x saldo ant 1000
x yyyyyyy 10 1010
z xxxxxxx 10 1000
SACOFRITO 27/03/2011 18:36:08
#369365
Caro amigo, sua suposta soluçao nao consegui usar.
Fiz a query certinha para somar tudo como eu queria.
Mas o problema é que no Crystal Reports nao consegui fazer funcionar apartir do segundo registro
Pois fica assim

fmlTotal = tabelaauxiliar + movimento.valor

Certo.. mas a cada registro ele vai executar essa acao, pegando sempre o valor fixo da tabela auxiliar.
Tentei usar duas formulas e passar parametro da formula total para uma auxiliar... tipo assim
Passar o valor total para uma formula auxiliar e depois fazer isso :
if movimento.tipo = [ô]E[ô] then
auxiliar = auxiliar + movimento.valor
else
auxiliar = auxiliar - movimento.valor

Mas deu erro na formula pois nao consigo editar o que tem dentro dela...
Uma coisa bem simples mas esta tirando meu cabelos, alguem tem alguma sugestao para resolver isso ou mesmo uma outra soluçao?

Obrigado

MARCELO.TREZE 28/03/2011 06:04:21
#369382
colega qual o tipo da impressora, matricial, jato de tinta, termica?

pergunto isso porque vc pode imprimir a imagem do flexgrid assim


Printer.PaintPicture MSFlexgrid.Picture, 1500, 4000
Printer.EndDoc
SACOFRITO 28/03/2011 09:18:01
#369402
A impressora será jato de tinta..tipo aquelas HP residencial mesmo...


Serio que consigo imprimir a imagem do flexgrid? Foi essa pergunta que fiz logo acima querendo saber como imprimir o flexgrid inteiro..

Fiz o relatorio e o calculo da soma de entrada, saida
total = total + entrada - saida

Mas receio que vao querer registro por registro.
E ja tenho o formulario que faz isso montado e funcionando.

MARCELO.TREZE 28/03/2011 14:27:38
#369476
então tá para imprimir do jeito que deseja terá de criar tabulações

ou seja o metodo varia, vc poderia usar .currentX e CurrentY, porém eu acho que desta forma vc teria de passar muitas coordenadas

então vamos criar uma função pra determinar o tamnho da colunas, porém para ficar perfeitamente alinhado, vc terá de usar a Font [Ô]Courier New[Ô].

Function TabCol(NomeCol As String,Tamanho As Integer) As String
TabCol = Space(Tamanho - Len(NomeCol))
End Function

Agora para Imprimir seu flexgrid ficaria assim

Printer.FontName = [Ô]Courier New[Ô]
With MSFlexgrid1
For f = 1 .Rows -1
Printer.Print .TextMatrix(f, 0) & TabCol(.TextMatrix(f, 0),10) & .TextMatrix(f, 1) & TabCol(.TextMatrix(f, 1),10) & .TextMatrix(f, 2)
Next f
End With



repare que coloquei apenas 3 colunas(0 ao 2)

estas colunas serão impressas uma em baixo da outra alinhadamente, eu determinei que o tamanho delas seja 10, este tamanho vc pode determinar por coluna.

repare como utilizo a função tabcol veja exemplo:

TextoA = [Ô]Marcelo[Ô]
TextoB = [Ô]Sacofrito[Ô]

resultado = TextoA & TabCol(TextA,20) & TextoB

o texto colocado será sempre o anterior.
Página 1 de 2 [15 registro(s)]
Tópico encerrado , respostas não são mais permitidas