SELECT CASE COM LOOP

COMIKETO 13/10/2011 18:45:22
#386629
ola amigos

tentei de varias formas fazer esse loop, mas acho que minha lógica esta toda furada, pois naum vai de jeito nenhum


se alguem puder ajudar:

o Text1 está em array ou indexado, não como diz, mas são 15 ao todo, sendo assim eu preciso repassar esse select case 15 vezes e coletar os dados dos printer antes de soutar a enddoc, o problema é que só imprimi as informações do Text1.text (index 0) sendo assim presumo que não está acontecendo o loop...

segue o codigo para a analize de vcs.......... thanks

  
For G = 1 To text1.Count

Printer.FontName = [Ô]Webdings[Ô]
Printer.ScaleMode = vbCentimeters

[ô]------------------------------ primeira linha
Select Case text1(Index).Text

Case [Ô]01[Ô]
POSICAO_COLUNA(0) = 0.72 [ô]1
POSICAO_LINHA(0) = 2.23
Printer.CurrentX = POSICAO_COLUNA(G - 1)
Printer.CurrentY = POSICAO_LINHA(G - 1)

Printer.Print [Ô]gg[Ô]

Case [Ô]02[Ô]
POSICAO_COLUNA(1) = 2.01 [ô]2
POSICAO_LINHA(1) = 2.23
Printer.CurrentX = POSICAO_COLUNA(G - 1)
Printer.CurrentY = POSICAO_LINHA(G - 1)

Printer.Print [Ô]gg[Ô]

Case [Ô]03[Ô]
POSICAO_COLUNA(2) = 3.25 [ô]3
POSICAO_LINHA(2) = 2.23
Printer.CurrentX = POSICAO_COLUNA(G - 1)
Printer.CurrentY = POSICAO_LINHA(G - 1)

Printer.Print [Ô]gg[Ô]

Case [Ô]04[Ô]
POSICAO_COLUNA(3) = 4.51 [ô]4
POSICAO_LINHA(3) = 2.23
Printer.CurrentX = POSICAO_COLUNA(G - 1)
Printer.CurrentY = POSICAO_LINHA(G - 1)

Printer.Print [Ô]gg[Ô]

Case [Ô]05[Ô]
POSICAO_COLUNA(4) = 5.8 [ô]5
POSICAO_LINHA(4) = 2.23
Printer.CurrentX = POSICAO_COLUNA(G - 1)
Printer.CurrentY = POSICAO_LINHA(G - 1)

Printer.Print [Ô]gg[Ô]
[ô]-------------------------------------- segunda linha

Case [Ô]06[Ô]
POSICAO_COLUNA(5) = 0.72
POSICAO_LINHA(5) = 2.78
Printer.CurrentX = POSICAO_COLUNA(G - 1)
Printer.CurrentY = POSICAO_LINHA(G - 1)

Printer.Print [Ô]gg[Ô]

Case [Ô]07[Ô]
POSICAO_COLUNA(6) = 2.01
POSICAO_LINHA(6) = 2.78
Printer.CurrentX = POSICAO_COLUNA(G - 1)
Printer.CurrentY = POSICAO_LINHA(G - 1)

Printer.Print [Ô]gg[Ô]

Case [Ô]08[Ô]
POSICAO_COLUNA(7) = 3.25
POSICAO_LINHA(7) = 2.78
Printer.CurrentX = POSICAO_COLUNA(G - 1)
Printer.CurrentY = POSICAO_LINHA(G - 1)

Printer.Print [Ô]gg[Ô]

Case [Ô]09[Ô]
POSICAO_COLUNA(8) = 4.51
POSICAO_LINHA(8) = 2.78
Printer.CurrentX = POSICAO_COLUNA(G - 1)
Printer.CurrentY = POSICAO_LINHA(G - 1)

Printer.Print [Ô]gg[Ô]

Case [Ô]10[Ô]
POSICAO_COLUNA(9) = 5.8
POSICAO_LINHA(9) = 2.78
Printer.CurrentX = POSICAO_COLUNA(G - 1)
Printer.CurrentY = POSICAO_LINHA(G - 1)

Printer.Print [Ô]gg[Ô]
[ô]--------------------------------------- Terceira linha

Case [Ô]11[Ô]
POSICAO_COLUNA(10) = 0.72
POSICAO_LINHA(10) = 3.33
Printer.CurrentX = POSICAO_COLUNA(G - 1)
Printer.CurrentY = POSICAO_LINHA(G - 1)

Printer.Print [Ô]gg[Ô]

Case [Ô]12[Ô]
POSICAO_COLUNA(11) = 2.01
POSICAO_LINHA(11) = 3.33
Printer.CurrentX = POSICAO_COLUNA(G - 1)
Printer.CurrentY = POSICAO_LINHA(G - 1)

Printer.Print [Ô]gg[Ô]

Case [Ô]13[Ô]
POSICAO_COLUNA(12) = 3.25
POSICAO_LINHA(12) = 3.33
Printer.CurrentX = POSICAO_COLUNA(G - 1)
Printer.CurrentY = POSICAO_LINHA(G - 1)

Printer.Print [Ô]gg[Ô]

Case [Ô]14[Ô]
POSICAO_COLUNA(13) = 4.51
POSICAO_LINHA(13) = 3.33
Printer.CurrentX = POSICAO_COLUNA(G - 1)
Printer.CurrentY = POSICAO_LINHA(G - 1)

Printer.Print [Ô]gg[Ô]

Case [Ô]15[Ô]
POSICAO_COLUNA(14) = 5.8
POSICAO_LINHA(14) = 3.33
Printer.CurrentX = POSICAO_COLUNA(G - 1)
Printer.CurrentY = POSICAO_LINHA(G - 1)

Printer.Print [Ô]gg[Ô]
[ô]------------------------------------------- Quarta linha

Case [Ô]16[Ô]
POSICAO_COLUNA(15) = 0.72
POSICAO_LINHA(15) = 3.88
Printer.CurrentX = POSICAO_COLUNA(G - 1)
Printer.CurrentY = POSICAO_LINHA(G - 1)

Printer.Print [Ô]gg[Ô]

Case [Ô]17[Ô]
POSICAO_COLUNA(16) = 2.01
POSICAO_LINHA(16) = 3.88
Printer.CurrentX = POSICAO_COLUNA(G - 1)
Printer.CurrentY = POSICAO_LINHA(G - 1)

Printer.Print [Ô]gg[Ô]

Case [Ô]18[Ô]
POSICAO_COLUNA(17) = 3.25
POSICAO_LINHA(17) = 3.88
Printer.CurrentX = POSICAO_COLUNA(G - 1)
Printer.CurrentY = POSICAO_LINHA(G - 1)

Printer.Print [Ô]gg[Ô]

Case [Ô]19[Ô]
POSICAO_COLUNA(18) = 4.51
POSICAO_LINHA(18) = 3.88
Printer.CurrentX = POSICAO_COLUNA(G - 1)
Printer.CurrentY = POSICAO_LINHA(G - 1)

Printer.Print [Ô]gg[Ô]

Case [Ô]20[Ô]
POSICAO_COLUNA(19) = 5.8
POSICAO_LINHA(19) = 3.88
Printer.CurrentX = POSICAO_COLUNA(G - 1)
Printer.CurrentY = POSICAO_LINHA(G - 1)

Printer.Print [Ô]gg[Ô]
[ô]------------------------------------------ Quinta linha

Case [Ô]21[Ô]
POSICAO_COLUNA(20) = 0.72
POSICAO_LINHA(20) = 4.33
Printer.CurrentX = POSICAO_COLUNA(G - 1)
Printer.CurrentY = POSICAO_LINHA(G - 1)

Printer.Print [Ô]gg[Ô]

Case [Ô]22[Ô]
POSICAO_COLUNA(21) = 2.01
POSICAO_LINHA(21) = 4.33
Printer.CurrentX = POSICAO_COLUNA(G - 1)
Printer.CurrentY = POSICAO_LINHA(G - 1)

Printer.Print [Ô]gg[Ô]

Case [Ô]23[Ô]
POSICAO_COLUNA(22) = 3.25
POSICAO_LINHA(22) = 4.33
Printer.CurrentX = POSICAO_COLUNA(22)
Printer.CurrentY = POSICAO_LINHA(22)

Printer.Print [Ô]gg[Ô]

Case [Ô]24[Ô]
POSICAO_COLUNA(23) = 4.51
POSICAO_LINHA(23) = 4.33
Printer.CurrentX = POSICAO_COLUNA(G - 1)
Printer.CurrentY = POSICAO_LINHA(G - 1)

Printer.Print [Ô]gg[Ô]

Case [Ô]25[Ô]
POSICAO_COLUNA(24) = 5.8
POSICAO_LINHA(24) = 4.33
Printer.CurrentX = POSICAO_COLUNA(G - 1)
Printer.CurrentY = POSICAO_LINHA(G - 1)

Printer.Print [Ô]gg[Ô]

End Select



Next G


Printer.EndDoc
MARCELO.TREZE 13/10/2011 20:42:58
#386639
Muda somente isto

For G = 1 To text1.[txt-color=#0000f0]Ubound[/txt-color]

Printer.FontName = [Ô]Webdings[Ô]
Printer.ScaleMode = vbCentimeters

[ô]------------------------------ primeira linha
Select Case text1([txt-color=#0000f0]G[/txt-color]).Text
...

o que está em azul é o que deve ser alterado
COMIKETO 13/10/2011 20:59:22
#386645
Marcelo, mais uma vez obrigado...


agora ja imprime alguma coisa mas ainda não tá à 100%...


agora a rotina insiste em imprimir somente 7 numeros da sequencia de 15... que coisa

MARCELO.TREZE 13/10/2011 21:36:52
#386647
Colega irei te enviar por email um exemplo que criei, modifique conforme sua necessidade
EDERMIR 16/10/2011 23:23:37
#386825
Percebi que você carrega um array com as posições de impressão para depois imprimir nesta posição dependendo do INDEX em text1.

Modifiquei para a seguinte forma:
    Printer.FontName = [Ô]Webdings[Ô]
Printer.ScaleMode = vbCentimeters
[ô]------------------------------ primeira linha
POSICAO_COLUNA(0) = 0.72 [ô]1
POSICAO_LINHA(0) = 2.23
POSICAO_COLUNA(1) = 2.01 [ô]2
POSICAO_LINHA(1) = 2.23
POSICAO_COLUNA(2) = 3.25 [ô]3
POSICAO_LINHA(2) = 2.23
POSICAO_COLUNA(3) = 4.51 [ô]4
POSICAO_LINHA(3) = 2.23
POSICAO_COLUNA(4) = 5.8 [ô]5
POSICAO_LINHA(4) = 2.23
[ô]-------------------------------------- segunda linha
POSICAO_COLUNA(5) = 0.72
POSICAO_LINHA(5) = 2.78
POSICAO_COLUNA(6) = 2.01
POSICAO_LINHA(6) = 2.78
POSICAO_COLUNA(7) = 3.25
POSICAO_LINHA(7) = 2.78
POSICAO_COLUNA(8) = 4.51
POSICAO_LINHA(8) = 2.78
POSICAO_COLUNA(9) = 5.8
POSICAO_LINHA(9) = 2.78
[ô]--------------------------------------- Terceira linha
POSICAO_COLUNA(10) = 0.72
POSICAO_LINHA(10) = 3.33
POSICAO_COLUNA(11) = 2.01
POSICAO_LINHA(11) = 3.33
POSICAO_COLUNA(12) = 3.25
POSICAO_LINHA(12) = 3.33
POSICAO_COLUNA(13) = 4.51
POSICAO_LINHA(13) = 3.33
POSICAO_COLUNA(14) = 5.8
POSICAO_LINHA(14) = 3.33
[ô]------------------------------------------- Quarta linha
POSICAO_COLUNA(15) = 0.72
POSICAO_LINHA(15) = 3.88
POSICAO_COLUNA(16) = 2.01
POSICAO_LINHA(16) = 3.88
POSICAO_COLUNA(17) = 3.25
POSICAO_LINHA(17) = 3.88
POSICAO_COLUNA(18) = 4.51
POSICAO_LINHA(18) = 3.88
POSICAO_COLUNA(19) = 5.8
POSICAO_LINHA(19) = 3.88
[ô]------------------------------------------ Quinta linha
POSICAO_COLUNA(20) = 0.72
POSICAO_LINHA(20) = 4.33
POSICAO_COLUNA(21) = 2.01
POSICAO_LINHA(21) = 4.33
POSICAO_COLUNA(22) = 3.25
POSICAO_LINHA(22) = 4.33
POSICAO_COLUNA(23) = 4.51
POSICAO_LINHA(23) = 4.33
POSICAO_COLUNA(24) = 5.8
POSICAO_LINHA(24) = 4.33
For G = 1 To text1.ubound
Printer.CurrentX = POSICAO_COLUNA(G - 1)
Printer.CurrentY = POSICAO_LINHA(G - 1)
Printer.Print [Ô]gg[Ô]
Next G
Printer.EndDoc


Primeiro carrego a matriz, depois imprimo conforme a quantidade de íntens em TEXT1.

é uma pequena mudança em seu código e respeitando a indicação do MARCELO.

Para imprimir o conteúdo de text1, altere para:
    For G = 1 To text1.ubound
Printer.CurrentX = POSICAO_COLUNA(G - 1)
Printer.CurrentY = POSICAO_LINHA(G - 1)
Printer.Print TEXT1.TEXT
Next G
Tópico encerrado , respostas não são mais permitidas