IMPRIMIR DADOS DO MSFLEXGRID
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?
Precisava percorrer o grid desde a primeira linha onde ficam os nomes das colunas, até o final.
Tem como fazer isso?
Dim i As Integer
For i = 1 To MSFlexGrid1.Rows - 1
Print .Printer; MSFlexGrid1.TextMatrix(i, 0) [ô]impressão da coluna 0
Next i
For i = 1 To MSFlexGrid1.Rows - 1
Print .Printer; MSFlexGrid1.TextMatrix(i, 0) [ô]impressão da coluna 0
Next i
Isso será que vai sair os dados da linha do jeito que esta sendo exibido? com os tamanhos das colunas ja e tal?
Não...
Isso apenas lê os dados do FlexGrid... Você deve formatar o relatório comforme deseja.
Isso apenas lê os dados do FlexGrid... Você deve formatar o relatório comforme deseja.
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?
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?
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
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
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
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
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
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
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
pergunto isso porque vc pode imprimir a imagem do flexgrid assim
Printer.PaintPicture MSFlexgrid.Picture, 1500, 4000
Printer.EndDoc
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.
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.
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
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.
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.
Tópico encerrado , respostas não são mais permitidas