Página 1 de 1

Etiquetas de estoque

Enviado: 06 Ago 2008 00:10
por rbonotto
Olá,

Pareceia tão fácil....mas me embananei....

Tenho uma tabela de estoque com os campos:
- descricao
- codigo
- preco
- qtde

o meu chefe pediu para fazer etiquetas ( cinco colunas ), e o faceiro aqui disse: xá comigo !

Eu fiz...mas só sai uma etiqueta por produto, algo do tipo assim:

Código: Selecionar todos

WHILE !EOF()

   gera_var() ** esta funcao pegua a descricao, codigo e valor dos primeiros cincos registros, onde desc=descricao, cCod=codigo e nPrc=preco

   @ PROW+X1, COLUM1 SAY cDesc1
   @ PROW     , COLUM2 SAY cDesc2
   @ PROW     , COLUM3 SAY cDesc3
   @ PROW     , COLUM3 SAY cDesc4
   @ PROW     , COLUM3 SAY cDesc5

   @ PROW+x2, COLUM1 SAY cCod1
   @ PROW     , COLUM2 SAY cCod2
   @ PROW     , COLUM3 SAY cCod3
   @ PROW     , COLUM3 SAY cCod4
   @ PROW     , COLUM3 SAY cCod5

   @ PROW+X3,  COLUM1 SAY nPrc1
   @ PROW      , COLUM2 SAY nPrc2
   @ PROW      , COLUM3 SAY nPrc3
   @ PROW      , COLUM3 SAY nPrc4
   @ PROW      , COLUM3 SAY nPrc5
END
O resultado foi uma etiqueta por item de estoque.....mãããããããããsssss o que o chefe
quer é que saiam o numero de etiquetas de cada produto de acordo com a quantidade
deste no estoque.

Por exemplo:

Lapis numero 15 preto tem 25 no estoque
Caneta azul tem 33 no estoque
estojo lapis de cor tem 48 no estoque

Se fosse um a um seria fácil, mas ele quer marcar com X os items a sairem e o programa faz a impressão de todas as etiquetas, imprime
15 do lapis preto, depois 33 da caneta, depois 48 do estojo e ai por diante....

Alguém ja teve experiencia em gerar etiquetas assim, ou poderia me dar alguma luz ? estou a mais de uma semana
quebrando a cuca...

Desde já, obrigado.

Enviado: 06 Ago 2008 01:04
por Maligno
Não entendi bem onde está o problema, mas se o seu chefe quer imprimir etiquetas apenas dos ítens selecionados, o primeiro passo é justamente oferecer esse recurso a ele. Pelo que você comenta, isso não parece ser o problema. Ou é?

Uma vez que o "alvo" esteja definido e separado, você terá de fazer exatamente o que faz: usar uma função que recupere as informações das cinco primeiras etiquetas para imprimir as linhas.

Outra dúvida: se o seu chefe vai marcar o que será impresso, o que tem a ver a quantidade em estoque com a impressão em si? Acho que o estoque nesse caso seria irrelevante, não?

Re: Etiquetas de estoque

Enviado: 06 Ago 2008 02:11
por rbonotto
Obrigado pela atenção !

Acho que me expressei mal, o recurso de oferecer a seleção está ok.

O problema é que tem que imprimir o número de etiquetas que esta no campo QTDE do banco de dados, mas não só de um
item, de todos os que ele selecionou. Ficaria algo assim:

Imagine que tnha no banco de dados:

codigo descricao valor qtde
0001 caneta 1,50 4
0028 lapis 0,98 3
0032 estojo 2,25 2

Caneta Caneta Caneta Caneta Lapis
cod.0001 cod.0001 cod.001 cod.0001 cod.0028
r$ 1,150 r$ 1,50 r$ 1,50 r$ 1,50 r$ 0,98

Lapis Lapis Estojo Estojo
cod.0028 cod.0028 cod.0032 cod.0032
r$ 0,98 r$ 0,98 r$ 2,25 r$ 2,25


Acho que me expilquei melhor agora.

Dificil de solucionar ??

Enviado: 06 Ago 2008 04:03
por Maligno
Agora entendi.
Acho que o melhor caminho é você povoar uma matriz com as repetições necessárias e imprimir de 5 em 5 elementos dessa matriz. Sua função Gera_Var() pode fazer isso. Assim que ler um ítem que foi selecionado, ela repete as informações tantas vezes quanto forem necessárias, incluindo os elementos que forem necessários. Se a quantidade de ítens*repetições não se tornar um problema (pode ficar grande) será bem simples de fazer.
Há uma outra forma que imagino, mas aí seria bem mais complexo, embora não acarrete qualquer problema com relação ao volume da matriz de trabalho. Mas veja se dá pra seguir a dica que expus. Se não for possível assim, podemos discutir essa outra forma.

Re: Etiquetas de estoque

Enviado: 06 Ago 2008 09:42
por rbonotto
Ok, sem querer abusar...ja abusando...seria possivel um exemplo de como preencher esta matriz ? são tres linhas em cada etiqueta(descricao, codigo e valor), como fazer tres linhas em uma matriz ?

Abs

Re: Etiquetas de estoque

Enviado: 06 Ago 2008 22:54
por rubens
Imagino que se voce criar um loop tb resolve o problema...

While !eof()
nQtde := qtde
For x = 1 to nQtde
@ prow()+1,coluna say codigo
@ prow()+1,coluna say descricao
@ prow()+1,coluna say qtde
next
dbskip()
Enddo

Aí voce incrementa com quantas colunas quer...

Re: Etiquetas de estoque

Enviado: 07 Ago 2008 11:16
por rochinha
Amiguinho,

Veja:

Código: Selecionar todos

USE estoque
SET FILTER TO ItensEscolhidos
do while !eof()
    nQtde := qtde
    For x = 1 to nQtde
          aadd( aMatriz, { codigo, descricao, valor } )
    next
    dbskip()
Enddo
Como usar:

Código: Selecionar todos

For x = 1 to len( aMatriz )
     @ prow()+1,coluna say aMatriz[ 1 ]
     @ prow()+1,coluna say aMatriz[ 2 ]
     @ prow()+1,coluna say aMatriz[ 3 ]
next

Re: Etiquetas de estoque

Enviado: 07 Ago 2008 11:34
por rbonotto
Beleza ! valeu pessoal !

Problema resolvido, com direito a tapinha nas costas do chefe hehehe, este forum é 100 % show de bola. :{ :-Y