** RESOLVIDO **Imprimir etiquetas conforme quantidade em estoque

Bom dia a todos!

Tem como imprimir etiquetas de acordo com a quantidade em estoque?

Exemplo;

produto 01.0001 tem 20 em estoque e o 01.0002 tem 15

imprimir as 20 do 01.0001 e na sequencia imprimir as 15 do 01.0002

Agradeço desde já

Tem sim, é só criar uma lógica que antes de gerar as etiquetas ele busque através de um “Select” o produto, passando como parâmetro a quantidade em estoque para a geração (quantidade) de etiquetas. Pra isso você tem que estudar um laço em cima das informações (campos) da tabela de produtos. Colocar isso em um botão RUM chamando o relatório!

Tem como me ajudar postando um exemplo?

Preciso saber como esta sua tabela no BD… pra poder montar um select, depois criar um formulário formato livre com o layout das etiquetas, não faço nada em PDFReport. Tudo em HTML.


– Estrutura da tabela produtos

CREATE TABLE IF NOT EXISTS produtos (
idprd int(11) NOT NULL AUTO_INCREMENT,
codigo varchar(7) NOT NULL,
descricao varchar(50) NOT NULL,
codbarra varchar(25) NOT NULL,
parcelamento varchar(25) NOT NULL,
tamanho varchar(5) NOT NULL,
numero int(11) DEFAULT NULL,
precounitario double(10,2) DEFAULT NULL,
PRIMARY KEY (idprd),
UNIQUE KEY idprd (idprd)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=14 ;

Preciso na etiqueta os campos, codbarra, descricao, parcelamento, tamanho e precounitario.

Agradeço desde já sua ajuda.

Resolvi criar uma segunda tabela em tempo de execução tendo como parametro na inserção a quantidade em estoque, dai poderei imprimir as etiquetas normalmente, porém so ta pegando o primeiro registro, se alguem puder me ajudar segue o codigo:

//apaga a tabela caso ela exista
sc_exec_sql(“DROP TABLE IF EXISTS produtoscbarra”);

//recria a tabela
sc_exec_sql(“CREATE TABLE IF NOT EXISTS produtoscbarra (
idprd int(11) NOT NULL AUTO_INCREMENT,
codigo varchar(7) NOT NULL,
descricao varchar(50) NOT NULL,
unidade varchar(5) NOT NULL,
precounitario double(10,2) DEFAULT NULL,
quantidade int(11) DEFAULT NULL,
codbarra varchar(25) NOT NULL,
parcelamento varchar(25) NOT NULL,
tamanho varchar(5) NOT NULL,
prateleira varchar(3) DEFAULT NULL,
armario int(11) DEFAULT NULL,
numero int(11) DEFAULT NULL,
PRIMARY KEY (idprd),
UNIQUE KEY idprd (idprd)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;”);

//seleciona os registros para inserção na nova tabela
sc_lookup (dataset,“SELECT idprd, codigo, descricao, unidade, precounitario,
quantidade, codbarra, parcelamento, tamanho,
prateleira, armario, numero FROM produtos
WHERE quantidade > 0”);
//if (isset({dataset[0][0]}))// Row found
// {
// faz a contagem dos registros da tabela e guarda numa variavel
sc_lookup(dtset, “SELECT COUNT(*) FROM PRODUTOS WHERE quantidade > 0”);
$numreg = {dtset[0][0]};
$j = 0;
while ($j <= $numreg) {
//$id = {dataset[0][0]};
$cod = {dataset[0][1]};
$desc = {dataset[0][2]};
$unid = {dataset[0][3]};
$preco = {dataset[0][4]};
$quant = {dataset[0][5]};
$cbarra = {dataset[0][6]};
$parc = {dataset[0][7]};
$tam = {dataset[0][8]};
$prat = {dataset[0][9]};
$arm = {dataset[0][10]};
$num = {dataset[0][11]};
$i = 1;
if ($quant > 1) {
while ($i <= $quant) {
sc_exec_sql(“INSERT INTO produtoscbarra(codigo,descricao,unidade,precounitario,quantidade,codbarra,
parcelamento,tamanho,prateleira,armario,numero)
VALUES (’$cod’, ‘$desc’,’$unid’,’$preco’, ‘$quant’,’$cbarra’,
‘$parc’,’$tam’,’$prat’,’$arm’,’$num’)”);
$i++;
}
}
sc_exec_sql(“INSERT INTO produtoscbarra(codigo,descricao,unidade,precounitario,quantidade,codbarra,
parcelamento,tamanho,prateleira,armario,numero)
VALUES (’$cod’, ‘$desc’,’$unid’,’$preco’, ‘$quant’,’$cbarra’,
‘$parc’,’$tam’,’$prat’,’$arm’,’$num’)”);
$j++;
}
//}

em partes descobri a falha : basta alterar onde tiver {dataset[0] [0]} para {dataset[$j] [0]}, porem ainda aparece um erro

ERRO
Undefined offset: 8

mas ta funcionando legal todos os registros foram repetidos de acordo com a quantidade. To fuçando.

Passei para postar o codigo ja corrigido, porém ainda permanece esse aviso ao abrir a grid, lembrando que este código está dentro do evento applicationinit.
ERRO
Undefined offset: 8

se alguem souber alguma forma de pelo menos suprimir esta mensagem ao abrir a grid, pois quando avança a página o mesmo desaparece.

//apaga a tabela caso ela exista
sc_exec_sql(“DROP TABLE IF EXISTS produtoscbarra”);

//recria a tabela
sc_exec_sql(“CREATE TABLE IF NOT EXISTS produtoscbarra (
idprd int(11) NOT NULL AUTO_INCREMENT,
codigo varchar(7) NOT NULL,
descricao varchar(50) NOT NULL,
unidade varchar(5) NOT NULL,
precounitario double(10,2) DEFAULT NULL,
quantidade int(11) DEFAULT NULL,
codbarra varchar(25) NOT NULL,
parcelamento varchar(25) NOT NULL,
tamanho varchar(5) NOT NULL,
prateleira varchar(3) DEFAULT NULL,
armario int(11) DEFAULT NULL,
numero int(11) DEFAULT NULL,
PRIMARY KEY (idprd),
UNIQUE KEY idprd (idprd)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;”);

//seleciona os registros para inserção na nova tabela
sc_lookup (dataset,“SELECT idprd, codigo, descricao, unidade, precounitario,
quantidade, codbarra, parcelamento, tamanho,
prateleira, armario, numero FROM produtos
WHERE quantidade > 0”);
// faz a contagem dos registros da tabela e guarda numa variavel
sc_lookup(dtset, “SELECT COUNT(*) FROM PRODUTOS WHERE quantidade > 0”);
$numreg = {dtset[0][0]};
$j = 0;
while ($j <= $numreg)
{
$id = {dataset[$j][0]};
$cod = {dataset[$j][1]};
$desc = {dataset[$j][2]};
$unid = {dataset[$j][3]};
$preco = {dataset[$j][4]};
$quant = {dataset[$j][5]};
$cbarra = {dataset[$j][6]};
$parc = {dataset[$j][7]};
$tam = {dataset[$j][8]};
$prat = {dataset[$j][9]};
$arm = {dataset[$j][10]};
$num = {dataset[$j][11]};
$i = 1;
if ($quant > 1)
{
while ($i <= $quant)
{
sc_exec_sql(“INSERT INTO produtoscbarra(codigo,descricao,unidade,precounitario,quantidade,codbarra,
parcelamento,tamanho,prateleira,armario,numero)
VALUES (’$cod’, ‘$desc’,’$unid’,’$preco’, ‘$quant’,’$cbarra’,
‘$parc’,’$tam’,’$prat’,’$arm’,’$num’)”);
$i++;
}
}
else {
sc_exec_sql(“INSERT INTO produtoscbarra(codigo,descricao,unidade,precounitario,quantidade,codbarra,
parcelamento,tamanho,prateleira,armario,numero)
VALUES (’$cod’, ‘$desc’,’$unid’,’$preco’, ‘$quant’,’$cbarra’,
‘$parc’,’$tam’,’$prat’,’$arm’,’$num’)”);
}
$j++;
}

Boa tarde gente,

Para resolver, criei um report pdf de etiquetas e configurei certinho de acordo com o formulario, coloquei o código acima dentro do evento OnApplicationInit e boas.

Obrigado a todos.