I have a shipping label that needs to print on a Dymo Label printer with slightly different data on each of 3 pages. Can this be done with just one .rpt so the users only need to print one report, rather than three?
It's been a while since I've used Crystal Reports, but you can setup your .RPT to have three detail sections (A/B/C) and have B and C "print new page before". That way each detail will be on three separate sections.
You shouldn't need to do anything crazy with custom formulas. All you need to do is display each piece of data three times, one on each page, with each page being slightly different.
(Of course you could use a header and just put the changing data in the details section... but that will take more time to get right then just repeating the required data in each data section.)
Confirmed
Open your report
Right-Click on the Details secton
Select "Insert Section Below"
Repeat steps 2 & 3 twice
Confirm that you see three Detail Sections
Use "Section Expert" (or Visual Studio Properties) for sections A & B and select "New Page After". (If using Section Expert, be sure you are on the Paging tab.)
Create the desired content in each Detail Section.
You probably want to Suppress all other sections, including Report/Page Headers & Footers.
.RPT Detail Section Setup
Section Expert
You have two basic methods.
You can use groups and use the option to start a new page for the group when it changes. The other option is to use subreports, but I would avoid this option. If you want me to elaborate, please let me know.
If you can get your data to repeat three times, so each 'record' for your report is duplicated you could do something with multiple details sections (from the section expert create three details sections)
And then use the 'Supress (No Drill-Down)' with a formula to show each version of the label in turn, depending on the record number.
For each details section add the formula (using Basic Syntax)
formula = (Remainder(RecordNumber,3) <> 1)
formula = (Remainder(RecordNumber,3) <> 2)
formula = (Remainder(RecordNumber,3) <> 0)
Then create each slightly different label on each of the thee details sections.
I managed to get the three data rows by doing a cross join like so (in SQL Server) assuming a table with the data called 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;
Related
I am trying to create a sheet to determine the amount of overlapping hours for employees.
I have one table with timeclock data for the Employees.
Table 1
And another with timeclock data for their Support Staff.
Table 2
This is the desired output. Each row from table A has all the date matches from table B. From here I would compute the number of overlapping hours in the final column and then roll that up into another sheet.
Table 3, Desired Output
(apologies for image links, I can't post inline images yet)
Sample sheet here Please let me know if you have any ideas for me!
I know its a combination of QUERY, ARRAYFORMULA, FILTER and more but I just can't find the right combo.
Here's a way of doing this type of join using only built-in functions:
=arrayformula(lambda(employee,support,
lambda(datecomp,
lambda(rows,
{vlookup(index(rows,,1),{row(employee),employee},sequence(1,columns(employee),2),false),
vlookup(index(rows,,2),{row(support),support},sequence(1,columns(support),2),false)})(
split(filter(datecomp,datecomp<>""),"|")))(
flatten(if(index(employee,,1)=transpose(index(support,,1)),row(employee)&"|"&transpose(row(support)),))))(
Employee!A1:D6,Support!A1:E5))
There's a lot going on here, but the basic idea is that we are comparing the date columns of each table against each other in a 2D IF array, and where the dates match we are obtaining the row index of each table. After some manipulations we can use these row indexes on each table in two side-by-side VLOOKUPs to obtain the joined table.
DMac,
I wrote myself a QUERY replacement custom function that uses real SQL select syntax.
For your data it looks something like (You need a tab called employee and a tab called support for this to work) :
=gsSQL("select * from employee full join support on employee.date = support.date")
See my test worksheet: (line 164 on gsSqlTest sheet)
https://docs.google.com/spreadsheets/d/1Zmyk7a7u0xvICrxen-c0CdpssrLTkHwYx6XL00Tb1ws/edit?usp=sharing
You need to add one Apps Script file to your sheet to give you the custom function:
https://github.com/demmings/gsSQL/blob/main/dist/gssql.js
For more help using more features see:
https://github.com/demmings/gsSQL
For example, changing the column titles, it would be like:
select employee.name as name .... (rest of your select).
I am working on web based application using Visual Studio 2019 Preview with SAP Crystal Reports 2016 Support Pack 7.
The report consists of 20 columns in single row. There is a requirement to show two fix headings in details section.
Report Design:
What I want is to set the first heading in first row then list records from database then set other heading and print rest of the records by merging the fields and lines of first and second heading in details sections (similar to excel “Merge Cells Function”). Heading value is set in first column but since the width of first column is too short it is not visible and looks ugly.
Current Output:
Desired Output:
The number of records between first and second heading are not fixed and fetch from database.
In addition, since there are too many columns in single row not all columns are visible in printing. Could anyone advice how to fix them while printing?
Thanks
Group the report based on the logic of how you wish to separate the 2 groups of records.
Then, use a Group Header section to present the information you need at the top of each group.
note: if you are not familiar with Crystal, you Group by using
Insert, Group
or Report, Group Expert
I have a Count query that uses multiple criteria to produce a result looking like:
count ID
1 "abc"
4 "bcd"
5 "def"
1 "cde"
This shows how many times the ID appears in a given database. The datasource is through an odbc connection that updates automatically. So the ID values change everytime it is opened. I would like to try to turn the unique ID or the associated count into a hyperlink that when clicked will return all information involved in the count (*note the database has much more information associated with the ID's than is counted, a date range of the previous three months is applied.) Can this be done simply?
Database format:
ID Instance Device DateBeg DateEnd
Thanks in advance,
LP
The short version -
This should be simple to do using a report (but could also be done using a form I will be explaining how to do a report for this version). You would just make a report that includes all of your fields then call the report on click. It is important to mention that you will need to view the query via a form to make this work.
A more detailed version -
The first step will be to make a form based on your query (you will not be able to do this directly from a query). To do this select your query then click on the create tab then click Multiple Items Form. Adjust as needed.
Then create a report that shows ALL of the records how you want it to display. (I will call it rpt_ViewDetails) (we will limit later)
When you are done adjusting click on the field that contains the "abc" etc. results (if this is a calculated field it will be more complicated.) I will call this field "Criteria" for the example. Go to the events tab on the property sheet (in design view). use the On Dbl Click event and go to code builder.
This is what the code would look like (place in between the private sub.... and the end sub lines of code):
DoCmd.OpenReport "frm_ViewDetails", acViewNormal, , "[Criteria] = " & Me.Critera
Let me know if you have any trouble with this, also let me know if the structure is different than I am assuming, I will need a more detailed report of what the query is doing if this is the case, what the structure of the database is etc.
I have a very large data set (about 16k rows). I have 10 higher level blocks and within each block I have 4 categories (10 rows for each) which use Data Validation lists to show items available in each category. The lists should automatically update based on user input. What I need your help with is that I want to use the same data set for each block and preferably a least calculation/size intensive approach. I have put together a sample file that outlines the issue with examples.
Sample File
Thank you for your help in advance.
Okay, I've found something, but it can be quite time consuming to do.
Select each range of cells. For instance, for the first one, select B3:B18 and right click on the selection. Find 'Name a Range..." and give it the name "_FIN_CNY". Repeat for all the other ranges, changing the name where necessary.
Select the first range of cells to get the data validation, and click on "Data validation", pick the option "Allow: List" (you already have it) and then in the source, put the formula:
=INDIRECT($G$4&"_CNY")
$G$4 is where the user will input. This changes as you change blocks.
_CNY is the category. Change it to _CNY2 for the second category.
Click "OK" and this should be it. Repeat for the other categories.
I have put an updated file on dropbox where you can see I already did it for the data of _FIN for categories CNY, CNY2 and INT and did the one for _GER as well. You'll notice the category of INT for _GER doesn't work, that's because the Named Range _GER_INT doesn't exist yet.
I've been looking around for quite some time, and I'm not entirely sure how to accomplish this in Sharepoint 2007.
I'm trying to create a web part view that takes the entries of a particular data source, groups the entries by the user, and then sums up a calculated column from said source.
I've found similar tutorials online about creating the web part views and making calculated columns; however, I can't figure out how to sum up the columns for each user listed.
Any ideas?
If you are using a List View Web Part, modify your view by selecting "Modify this view" in the view-picker (drop down list at the top right of the web part).
On the view settings page, expand the Group By section and specify which column(s) you will group by. Expand the Totals section and select which aggregations you want to perform on which columns.
Click OK.
The results are overall totals at the top of the column, and group totals above each group.