LISTVIEW - LIMITE IMPRESSAO COLUNA VB6

LUISLPC 05/02/2014 03:48:31
#434272
Boa noite amigos..

uso a rotina abaixo para impressao do listview que funciona bem..

Citação:

Dim i%, LVWidth%, NewTab%, j%
Dim itmX As ListItem
Dim ContaLinha%

LVWidth = 0
For i = 1 To LV.ColumnHeaders.Count
LVWidth = LVWidth + LV.ColumnHeaders(i).Width
Next
NewTab = 0
[ô]imprime o cabeçalho
Printer.Print [Ô][Ô]
Printer.Print [Ô][Ô]

Printer.Print Tab(70); [Ô]MONTANA AUTO PEÇAS - COMPRAS PENDENTES[Ô]
imprime_linha
Printer.Print Tab(70); [Ô] Relatório Impresso em: [Ô] & Date & [Ô] - Horário: [Ô] & Time; [Ô][Ô]
[ô]Printer.PaintPicture logo1.Picture, 3500, 0, 5000, 2000 [ô]posiciona a foto
[ô]Printer.FontName = [Ô]Courier[Ô]
[ô]Printer.FontBold = True
Printer.FontSize = 10

imprime_linha
Printer.Print [Ô][Ô]


For i = 1 To LV.ColumnHeaders.Count
NewTab = NewTab + CInt(LV.ColumnHeaders(i).Width * Printer.ScaleWidth / LVWidth)
Printer.Print [Ô] [Ô] & LV.ColumnHeaders(i).Text;
Printer.CurrentX = NewTab
Next
[ô]imprime uma linha de separação
Printer.Print
imprime_linha
Printer.Print
[ô]se o numero de linhas do ListView for menor que o de linhas a
[ô]a imprimir então imprime o conteúdo total de Listview
If Lines < LV.ListItems.Count And Lines <> 0 Then
ContaLinha = Lines
Else
ContaLinha = LV.ListItems.Count
End If
[ô]imprime os itens e subitens
For i = 1 To ContaLinha

NewTab = 0
Set itmX = LV.ListItems(i)
Printer.Print Tab(2); itmX.Text;
For j = 1 To LV.ColumnHeaders.Count - 1
NewTab = NewTab + CInt(LV.ColumnHeaders(j).Width * Printer.ScaleWidth / LVWidth)
Printer.CurrentX = NewTab
Printer.Print itmX.SubItems(j);
Next
Printer.Print

Next
[ô]envia os dados para impressora
imprime_linha
[ô]Printer.Print vbCrLf & [Ô]Total descontos R$ [Ô] & totaldescontos & [Ô] - [Ô] & [Ô]Total R$[Ô] & totalorca.Text; [Ô][Ô]

[ô][ô] Printer.Print vbCrLf & [Ô]Total Dinheiro R$ [Ô] & vdinheiro.Text; [Ô][Ô]
[ô][ô]Printer.Print [Ô]Total Boleto R$ [Ô] & vboleto.Text; [Ô][Ô]
[ô][ô] Printer.Print [Ô]Total Cheque R$ [Ô] & vcheque.Text; [Ô][Ô]
[ô][ô]Printer.Print [Ô]Total Cartão R$ [Ô] & vcartao.Text; [Ô][Ô]
[ô][ô]Printer.Print [Ô]Total Carteira R$ [Ô] & vcarteira.Text; [Ô][Ô]
[ô][ô] Printer.Print [Ô]____________________[Ô]; [Ô][Ô]
[ô][ô] Printer.ForeColor = &HFF&
[ô][ô] Printer.Print [Ô]Total Geral R$ [Ô] & vtotal.Text; [Ô][Ô]
[ô][ô] Printer.ForeColor = &H80000012



porem o problema eh q nao consigo limitar quantos carecteres pode ter em determinada coluna, e isto quando o texto eh grande na mesma acaba atingindo a outra coluna..pra mim ja resolveria apenas restrigir o numero de caracteres...

sera q eh possivel?

obrigado!
FILMAN 05/02/2014 20:22:59
#434325
Dê uma olhada nesse LINK acho que vai te ajudar
Faça seu login para responder