Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Julinho

Imprimir Listbox

Recommended Posts

http://forum.imasters.com.br/public/style_emoticons/default/blush.gif E aii pessoal tenhu um pequeno problema ...

alguem pode me ajuda

 

eu fiz uma programa que faz um listbox recebe uns dados ...e esse listbox tem varias colunas 6 pra se exato

 

so que na hora que eu vo imprimi ele nao imprime de acordo com a vizualização que eu tenhu quando rodo o programa

 

lembrando que eu to fazendo ele imrpime direto da imrpessora padrao

 

minha linha de codigo é essa

Dim itens As Integer

For itens = 0 To lstLista.ListCount - 1

Printer.Print lstLista.List(itens) ' armazena no buffer o conteudo a ser impresso

Next itens

Printer.EndDoc ' inicia a impressao

 

entao alguem pode me ajuda tenhu que coloca os espaços sertinhos entre uma coluna e outra

Compartilhar este post


Link para o post
Compartilhar em outros sites

Experimente assim:

 

   qtporcoluna = 8    qtcolunas = 6    Printer.Font.Name = "Courier New"    For i = 0 To qtcolunas        Printer.Print List1.List(i) & Space(3) & List1.List(i + qtporcoluna) & Space(3) & List1.List(i + qtporcoluna * 2) & Space(3) & List1.List(i + qtporcoluna * 3) & Space(3) & List1.List(i + qtporcoluna * 4) & Space(3) & List1.List(i + qtporcoluna * 5) & Space(3)    Next i    Printer.EndDoc

Note que nesse caso você tem que especificar quantos itens cabem em uma coluna (quantas linhas por coluna, em "qtporcoluna") e qual a quantidade de colunas existentes ("qtcolunas").

 

Certo? ;)

 

Graymalkin

Compartilhar este post


Link para o post
Compartilhar em outros sites

http://forum.imasters.com.br/public/style_emoticons/default/ermm.gif entao tipo consegui coloca um espaço legal entre as colunas mais ainda continua os dados da list box nao dando muito espaço

 

tipo assim na impressao :

 

class Nome do Atleta Categoria Clube Patrocinador sexo pontos

 

1 Julio Fernandes A Inter J F acabamentos M 9

2 Rodrigo de souza Cruz A Multi Esportes Pinheiros M 7

3 Learndro de Souza Barollo A Tumiaru M 6

 

entendeu a sequencia ??

ele nao fika com o espaço certu com os titulos e os nomes embaixo certinho

Compartilhar este post


Link para o post
Compartilhar em outros sites

http://forum.imasters.com.br/public/style_emoticons/default/ermm.gif   entao tipo consegui coloca um espaço legal entre as colunas mais ainda continua os dados da list box nao dando muito espaço

 

tipo assim na impressao :

 

class    Nome do Atleta  Categoria          Clube      Patrocinador    sexo pontos   

 

1        Julio Fernandes A            Inter    J F acabamentos              M      9

2 Rodrigo de souza Cruz            A          Multi Esportes    Pinheiros        M    7

3 Learndro de Souza Barollo                  A            Tumiaru          M      6

 

entendeu a sequencia ??

ele nao fika com o espaço certu com os titulos  e  os nomes embaixo certinho

<{POST_SNAPBACK}>

Sim, você vai ter que criar uma função para isso. Eu utilizo essa daqui:

 

Public Function Ajusta(ByVal texto As String, ByVal tamanho As Integer)    Dim retorno As String    retorno = String(tamanho, " ")    LSet retorno = texto    Ajusta = retornoEnd Function
Coloque-a em um módulo e depois altere a linha (do código anterior)...

 

Printer.Print List1.List(i) & Space(3) & List1.List(i + qtporcoluna) & Space(3) & List1.List(i + qtporcoluna * 2) & Space(3) & List1.List(i + qtporcoluna * 3) & Space(3) & List1.List(i + qtporcoluna * 4) & Space(3) & List1.List(i + qtporcoluna * 5)
... para:

 

Printer.Print Ajusta(List1.List(i), 10) & Space(1) & Ajusta(List1.List(i + qtporcoluna), 10) & Space(1) & Ajusta(List1.List(i + qtporcoluna * 2), 10) & Space(1) & Ajusta(List1.List(i + qtporcoluna * 3), 10) & Space(1) & Ajusta(List1.List(i + qtporcoluna * 4), 10) & Space(1) & Ajusta(List1.List(i + qtporcoluna * 5), 10)
Note que eu coloquei o tamanho de 10 caracteres para cada coluna, mas você pode mudar isso.

 

Abraços,

 

Graymalkin

Compartilhar este post


Link para o post
Compartilhar em outros sites

http://forum.imasters.com.br/public/style_emoticons/default/blush.gif Entao ainda nao consegui coloquei no modulo do listbox isso :

 

Private Declare Function SendMessage Lib "user32" Alias _

"SendMessageA" (ByVal hwnd As Long, _

ByVal wMsg As Long, ByVal wParam As Long, _

lParam As Any) As Long

Private Const LB_SETTABSTOPS = &H192

 

Public Sub ListColumns2(lListHandle As Long)

Dim iNumColumns As Long

 

'Coloque o nº de colunas que o ListBox

'terá -1 no array a seguir:

Dim iListTabs(6) As Long

Dim Ret As Long

 

'O ListBox terá 3 colunas

iNumColumns = 7

 

 

iListTabs(0) = 4 '

iListTabs(1) = 25 '

iListTabs(2) = 135 '

iListTabs(3) = 175 '

iListTabs(4) = 235 '

iListTabs(5) = 315 '

iListTabs(6) = 335 '

 

 

 

Ret = SendMessage(lListHandle, _

LB_SETTABSTOPS, iNumColumns, iListTabs(0))

End Sub

 

isso é no modulo , entao com essas informações como faço pra imprimi com os espacos ccertinhu

 

pq esse numero no vissual fiko perfeito !!!

na impressao ainda continua a mesma coisa

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.