• Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 303
  • Last Modified:

New and Previous Value in Crystal Report

In my report, I have to have 2 fields, one that's called previous department and the other is called new department for an employee.
 That database stores this value in a field called A_Value.
 Ex:
 Emp       Dept
 12345    91204
 12345    93000

 My question is how can I have all this information displayed on 1 line?
 Expected result:

 Emp     Old Dept      New Dept
 12345  93000           91204


 Thanks for all you help guys
0
metalteck
Asked:
metalteck
  • 4
  • 3
2 Solutions
 
mlmccCommented:
Are you bringing in all the records?

Does anyone have more than 2 records?


Group on the Employee ID
In the group footer add a formula
Name - OldDept
If Not(PreviousIsNull({EmployeeID})) AND Previous({EmployeeID}) = {EmployeeID then
    Previous({DeptField})   

Open in new window


mlmcc
0
 
metalteckAuthor Commented:
Hi mlmcc,

Yes, I'm bringing in all records.
And yes, employees can have more than 2 records.

I used your code and its working, but there is just one issue.
The starting previous value is always null on the first line. The other values are correct.
How can I get that value populated?

example

Employee       Previous Value     New Value
12345                                             90601
12345              90601                    54007
0
 
mlmccCommented:
The first record for an employee can't have a previous value since it is the first record.

mlmcc
0
Free Tool: SSL Checker

Scans your site and returns information about your SSL implementation and certificate. Helpful for debugging and validating your SSL configuration.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

 
metalteckAuthor Commented:
I understand that.
But for auditing purposes, I can't have a blank value there.
I need to have the starting value listed.
0
 
mlmccCommented:
Try this

If Not(PreviousIsNull({EmployeeID})) AND Previous({EmployeeID}) = {EmployeeID then
    Previous({DeptField})  
ELse
   {DeptField}

Open in new window


mlmcc
0
 
metalteckAuthor Commented:
mlmcc,

I tried using your code, but if I use the deptfield in the else clause, that gives me the current department.
Would I be able to do this if I used variables or in sql?
0
 
mlmccCommented:
For the first record of an employee, there is no previous department.  

You can put whatever you want there.

It should either be blank to indicate there is no previous department a fixed value like No Prev Dept

mlmcc
0
 
James0628Commented:
If you don't want to use something like "No previous dept", and you want to display "the starting value", like you mentioned before, then I think the question is, how do you define "starting value"?

 For "previous dept" and "new dept" to make sense, I would assume that the records were somehow sorted in department assignment order, so that the first record for an emp has their first department, and the last record has their last department.  But, from what you've said, that is not the case.

 Or are you maybe doing something like only including specific dates in the report, and the "starting value" that you're looking for is from older records that aren't included in the report?

 Either way, how would you identify their first department?

 James
0

Featured Post

Free Tool: Port Scanner

Check which ports are open to the outside world. Helps make sure that your firewall rules are working as intended.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

  • 4
  • 3
Tackle projects and never again get stuck behind a technical roadblock.
Join Now