Ir para conteúdo

POWERED BY:

Arquivado

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

FlavioTorres

Impressão de etiquetas onde o cada uma pode ser impressa mais de uma v

Recommended Posts

Estou montando um relatório que utiliza uma impressora Brother própria para impressão de Etiquetas.Durante a impressão das etiquetas cada uma delas pode ser impressa mais de uma vez.O banco de dados que contém as informações a serem impressas também contém o numero de vezes que a mesma vai ser impressa.Não estou conseguindo montar o relatório.Alguém tem alguma sugestão.Tks

Compartilhar este post


Link para o post
Compartilhar em outros sites

Marcio resolvi da seguinte forma:1- coloquei no meu formulario do quickrep os seguinte componentes - rbDetail com haschild true. - o ChildBand1 criado tem parentBand o detailband1 e tambem tem haschild true - o childband2 criado tem parenteBand o ChildBand1 e tem o haschild false. Ou seja criei uma lista com RbDetail->ChildBand1->ChildBand2 os tres tem o campo ForceNewPage=true No evento OnStartPage do Formulario do QuickRep Coloquei o codigovoid __fastcall TQuickReportComp::QuickReportCompStartPage( TQuickRep *Sender){if (Composicao->DBGridComp->Fields[6]->AsInteger < 2) // Se numero de etiquetas <2 não imprime childBand1ChildBand1->Enabled = false;elseChildBand1->Enabled = true;if (Composicao->DBGridComp->Fields[6]->AsInteger < 3)// Se numero de etiquetas <3 não imprime childBand2 também.ChildBand2->Enabled = false;elseChildBand2->Enabled = true;} Finalmente fui em Report Settings do Formulario do QuickRep e mudei o tamanho da folha para Custom Size e deixei a largura do formulario em 63mm e o comprimento em 25mm que é o tamanho de uma unica etiqueta. Para criar a rbDetail e as duas childBand o comprimento era de 75mm, mas para executar deixei o tamanho de apenas uma etiqueta e a propriedade ForceNewPage em true. Eu utilizo um rolo continuo da brother e a impresso tem corte automatico. A impressora imprime a primeira etiqueta e corta, pula para a segunda pagina no evento OnStartPage testa o codigo acima para ver se imprime a segunda etiqueta, e por ai vai.... Espero que não tenha ficado muito confusa a explicação...a proposito a minha dificuldade atual esta em ler o registro corrente. Você viu a declaração: if (Composicao->DBGridComp->Fields[6]->AsInteger < 2) O resultado da query é apresentado em um DBGrid e é essa a forma que eu encontrei para ler o campo que contem o numero de etiquetas a serem impressas.. Eu já tentei as seguintas formas:DataModule1->QueryKanban->NumKan->Value ou então DataModule1->QueryKanban->QueryKanbanNumKanOnde NumKan é o nome do campo e QueryKanbanNumKan é o nome da variavel que aparece em FieldsEditor quando eu dou um duplo click sobre a querykanban.Gostaria de utilizar SetData GetData ou Value mais aparece o seguinte erro:[C++Error] PrintLabel.cpp(26): 'QueryKanbanNumKan' is not a member of 'Dbtables::TQuery'.Gostaria de fazer o teste do if diretamente sem ter que ir buscar na declaração abaixo:KanbanForm->DBGrid1->Fields[6]->AsIntegerTKS

Compartilhar este post


Link para o post
Compartilhar em outros sites

Outra forma que poderia ter, é uma tabela temporária, onde teria os registros que deveriam de ser impressos, a idéia seria esta tabela ter todos os campos que precisa para a impressão, quando mandar imprimir seria efetuado um while sobre a query e verificado o n° de vezes que aquele registro deveria de ser impresso, e então o mesmo ser carregado na tabela temporária, sendo que o QRP iria usar esta tbl temporária para fazer a impressão, digamos que no grid você teria:NOME - N° VEZES IMPRIMIRREGISTRO_FULANO1 - 2REGISTRO_FULANO2 - 1REGISTRO_FULANO3 - 2Carregando na tabela ficaria:REGISTRO_FULANO1REGISTRO_FULANO1REGISTRO_FULANO2REGISTRO_FULANO3REGISTRO_FULANO3Caso não consiga entender a idéia, pode perguntar...

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.