2010-12-02 4 views
4

Ich habe ein Versandetikett, das auf einem Dymo Etikettendrucker mit leicht unterschiedlichen Daten auf jeder der 3 Seiten drucken muss. Kann dies mit nur einem .rpt erfolgen, sodass die Benutzer nur einen Bericht statt drei drucken müssen?Crystal Reports 11 - So drucken Sie verschiedene Daten auf mehreren Seiten

http://imgur.com/5UUl4

+0

Sorry, aber Imgur ist ov Kapazität, so dass die Verbindung nicht funktioniert. –

+0

Willkommen in SO. Sie müssen hier keine Verbindung zu externen Bildservern herstellen. Es gibt eine Schaltfläche, mit der SO das Bild hosten und in der Frage anzeigen kann. – PowerUser

Antwort

2

Es ist eine Weile her, seit ich Crystal Reports verwendet haben , aber Sie können Ihre .RPT so einrichten, dass sie drei Detailbereiche (A/B/C) hat und B und C "Neue Seite vorher drucken". Auf diese Weise wird jedes Detail in drei separate Abschnitte unterteilt.

Sie sollten mit benutzerdefinierten Formeln nichts Verrücktes tun müssen. Alles, was Sie tun müssen, ist, jedes Datenelement dreimal auf jeder Seite anzuzeigen, wobei jede Seite ein wenig anders ist.

(Natürlich können Sie einen Header verwenden und setzen nur die sich ändernden Daten im Detailbereich ... aber das wird mehr Zeit in Anspruch nehmen Recht erhalten dann nur die erforderlichen Daten in jedem Datenabschnitt zu wiederholen.)

Bestätigt

  1. Öffnen Sie Ihren Bericht
  2. Rechtsklick auf die Details secton
  3. Wählen Sie "Einfügen unten im Abschnitt"
  4. Wiederholen Sie die Schritte 2 & 3 zweimal
  5. Bestätigen Sie, dass Sie drei Detailbereiche
  6. Use "Abschnitt Expert" (oder Visual Studio Eigenschaften) für die Abschnitte A & B und wählen Sie "Neue Seite After" zu sehen. (Wenn Sie Section Expert verwenden, vergewissern Sie sich, dass Sie sich auf der Registerkarte "Paging" befinden.)
  7. Erstellen Sie den gewünschten Inhalt in jedem Detailabschnitt.
  8. Sie möchten wahrscheinlich alle anderen Abschnitte unterdrücken, einschließlich Bericht/Seitenüberschriften & Fußzeilen.

.RPT Details Abschnitt Setup-

Report Setup

Abschnitt Expert

Section Expert

+0

Scheint eleganter, aber wird es mit Etiketten funktionieren? –

+0

Wenn ich die Anforderungen nicht missverstanden habe, sehe ich nicht warum nicht. Das OP wollte drei Etiketten für jeden .RPT-Lauf drucken. Jede Seite ist ein Label. Daher sollten bei jeder Ausführung von .RPT 3 Etiketten gedruckt werden. (Dies setzt voraus, dass CR den Drucker nach jeder Seite erfolgreich zum Seitenvorschub anweist.) – beach

+0

Ich erkannte, dass dymo-Etiketten Avery-Etiketten ähnelten, ich bin mir nicht sicher, ob das richtig war - hoffentlich wird meine Lösung in diesem Avery-Etikett nützlich sein Szenario. –

0

Sie haben zwei grundlegende Methoden.
Sie können Gruppen verwenden und die Option verwenden, um eine neue Seite für die Gruppe zu erstellen, wenn sich diese ändert. Die andere Möglichkeit ist die Verwendung von Unterberichten, aber ich würde diese Option vermeiden. Wenn Sie möchten, dass ich es ausführlicher erzähle, lassen Sie es mich wissen.

+0

Danke Mark. Wenn Sie "... wenn es sich ändert" sagen, meinen Sie die Datenänderung? Nur damit wir klar sind, müssten alle drei Etiketten jedes Mal auf einmal gedruckt werden. – tlascek

+0

Wenn Sie z. B. eine Spalte mit dem Namen Grouper einrichten und die Werte a, b und c in die richtigen Datensätze eingeben, können Sie veranlassen, dass der Bericht eine neue Seite startet, wenn sich der Wert von Grouper ändert. –

0

Wenn Sie Ihre Daten erhalten können dreimal zu wiederholen, so dass jeder ‚Record‘ für Ihren Bericht wird dupliziert Sie etwas mit mehreren Details Abschnitte tun konnte (aus dem Abschnitt Experten drei Detailbereiche erstellen)

Und dann verwenden die 'Unterdrücken (Kein Drill-Down)' mit einer Formel, um jede Version des Etiketts der Reihe nach anzuzeigen, abhängig von der Datensatznummer. alt text

Für jeden Abschnitt Details fügen Sie die Formel (mit Basic-Syntax)

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

dann jeden etwas anderes Etikett auf jedem der dich erschaffen Detailabschnitte.

habe ich es geschafft, die drei Datenzeilen zu erhalten, indem (in SQL Server) wie so ein Kreuz verbinden dabei eine Tabelle mit den Daten namens report

unter der Annahme
;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;