Record each of your 4 screens for a basic row of data. Put each screen into a separate Reusable action. DD can be non-Reusable if you'd like, since it's where you start, but I would make a Parent action that clears fields, resets the application, etc., that also calls each row and begins by calling the DD Reusable action, if it were my script.
Now, you can either teach your parent action how to figure out what action to call each time, or put the action sequence in the DataTable.
The first option means using combinations of If..Then statements to figure out which action to call next:
If SomeCondition Then
Or something like that. Depending on the decision process, this can be fairly complicated, but you can rest assured that your main application (the one you're testing) has been programmed to figure this out, so you should be able to figure this out within QTP.
That's how I would do it.
The other option I mentioned is that you can simply add rows to your DataTable that contain the script sequence.
So DataTable("FirstAction", dtLocalSheet) will either contain DS or DSl. DataTable("SecondAction", dtLocalSheet) will either be DS or DSl or DSu. DataTable("ThirdAction", dtLocalSheet) would be DSu or DSl or null. And DataTable("FirstAction", dtLocalSheet) is null or DSu.
Then your parent action uses If..ElseIf..EndIf constructs to read these columns and call the right actions.
The first option requires you to figure out how to write your decision logic so that QTP will follow the correct path every time. This will be a bit of a struggle to figure out, but once you've got it, it applies to all 1,000 rows of data and is easily maintained.
The second option requires you to update these values in 1,000 rows of data and maintain them over time (in case future updates change the flow, or add steps, or whatever). This is much easier to figure out, but requires a lot of typing to set it up and can require a lot of maintenance over the life of your application.
"The last 10% of any software project will take 90% of the budgeted time. The first 90% will take the other 90%"