Ideally you should create a view that truncates both tables (assuming you are using an SQL based data source), it will need to be something like:
CREATE VIEW MYVIEWNAME
AS
SELECT 'Project' AS [TypeName],
Somefield,
SomeOtherField
FROM MyProjectTable
UNION ALL
SELECT 'Expense' AS [TypeName],
Somefield,
SomeOtherField
FROM MyExpenseTable
Then once you add this as a source in Crystal you can group by TypeName
first then group by the project/Expense.
If you want different details displayed, create a new details section and add the suppression formula {Mytable.TypeName}="Project"
to the Expense section and vise versa for the Project section.