2010-12-02 19 views
4

J'ai une étiquette d'expédition qui doit imprimer sur une imprimante Dymo Label avec des données légèrement différentes sur chacune des 3 pages. Cela peut-il être fait avec un seul .rpt afin que les utilisateurs ont seulement besoin d'imprimer un rapport, plutôt que trois?Crystal Reports 11 - Comment imprimer différentes données sur plusieurs pages

http://imgur.com/5UUl4

+0

Désolé, mais Imgur est ov er capacité, de sorte que votre lien ne fonctionne pas. –

+0

bienvenue à SO. vous n'avez pas besoin de lier à des serveurs d'image externes ici. Un bouton permet à SO d'héberger l'image et de l'afficher dans la question. – PowerUser

Répondre

2

Cela fait un moment que je l'ai utilisé Crystal Reports , mais vous pouvez configurer votre .RPT pour avoir trois sections de détail (A/B/C) et avoir B et C "imprimer une nouvelle page avant". De cette façon, chaque détail sera sur trois sections distinctes.

Vous ne devriez pas avoir besoin de faire quelque chose de fou avec des formules personnalisées. Tout ce que vous devez faire est d'afficher chaque élément de données trois fois, un sur chaque page, chaque page étant légèrement différente.

(Bien sûr, vous pouvez utiliser un en-tête et il suffit de mettre les données changeantes dans la section des détails ... mais prendra plus de temps pour obtenir le droit alors que répéter les données requises dans chaque section de données.)

Confirmed

  1. Ouvrez votre rapport
  2. clic droit sur les détails Secton
  3. Sélectionnez "Insérer la section ci-dessous"
  4. Répétez les étapes 2 & 3 deux fois
  5. Confirmez que vous voyez trois sections de détail
  6. Utilisation "Expert" (ou propriétés Visual Studio) pour les sections A & B et sélectionnez "Nouvelle page Après". (Si vous utilisez Section Expert, assurez-vous d'être sur l'onglet Paging.
  7. Créez le contenu souhaité dans chaque section Détail.
  8. Vous souhaitez probablement supprimer toutes les autres sections, y compris les en-têtes de rapport/page & Footers.

.RPT Détail section Configuration

Report Setup

Expert Section

Section Expert

+0

Semble plus élégant mais cela fonctionnera-t-il avec les étiquettes? –

+0

Sauf si j'ai mal compris les exigences, je ne vois pas pourquoi pas. L'OP voulait que trois étiquettes soient imprimées pour chaque exécution .RPT. Chaque page est une étiquette. Il devrait donc y avoir 3 étiquettes imprimées chaque fois que le .RPT est exécuté. (Cela suppose que CR indiquera à l'imprimante le flux de pages après chaque page.) – beach

+0

Les étiquettes dymo supposées étaient similaires aux étiquettes Avery, je ne suis pas sûr que cela soit correct - j'espère que ma solution sera utile dans cette étiquette Avery scénario. –

0

Vous avez deux méthodes de base.
Vous pouvez utiliser des groupes et utiliser l'option pour démarrer une nouvelle page pour le groupe lorsqu'il change. L'autre option consiste à utiliser des sous-rapports, mais j'éviterais cette option. Si vous voulez que je développe, s'il vous plaît faites le moi savoir.

+0

Merci Mark. Quand vous dites "... quand ça change", voulez-vous dire que les données changent? Juste pour que nous soyons clairs, les trois étiquettes devraient toutes être imprimées en même temps. – tlascek

+0

Par exemple, si vous définissez une colonne nommée Grouper et que vous placez les valeurs a, b et c dans les bons enregistrements, vous pouvez faire en sorte que le rapport commence une nouvelle page lorsque la valeur de Grouper change. –

0

Si vous pouvez obtenir vos données à répéter trois fois, de sorte que chaque « record » pour votre rapport est que vous dupliqué pouvez faire quelque chose avec plusieurs sections de détails (de l'expert de la section créer trois sections de détails)

Et puis utilisez le 'Supress (No Drill-Down)' avec une formule pour montrer chaque version de l'étiquette à son tour, en fonction du numéro d'enregistrement. alt text

Pour chaque section des détails ajouter la formule (en utilisant la syntaxe de base)

  1. formula = (Remainder(RecordNumber,3) <> 1)
  2. formula = (Remainder(RecordNumber,3) <> 2)
  3. formula = (Remainder(RecordNumber,3) <> 0)

Ensuite, créez chaque étiquette un peu différent sur chacun des te détails sections.

j'ai réussi à obtenir les trois lignes de données en faisant une jointure croisée comme si (dans SQL Server) en supposant une table avec les données appelées ReportData

;with cte as 
(
select 1 as ver 
union 
select 2 as ver 
union 
select 3 as ver 
) 
select * from 
cte cross join ReportData 
order by OrderNumber, ver;