Yes it is, and there is a little trick to do it. It has to do with the syntax of a compound statement.
In a compound statement the declare section has to be up front. So then how do you declare something that references something else before it is known? Simple, coumpound statements can contain other compound statements, so create an internal coumpound statement.
Try it this way:
DECLARE GLOBAL TEMPORARY TABLE SESSION.TMP_WORKLIST AS
(SELECT Timesheet.* FROM DB2ADMIN.Timesheet ) DEFINITION ONLY WITH REPLACE ON COMMIT PRESERVE ROWS NOT LOGGED;
begin atomic
DECLARE worklist_Cursor CURSOR WITH HOLD FOR
(SELECT WeekEnding, UserID, ClientID, ProjectID, Task, Subtask, Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday, Comments
FROM SESSION.TMP_WORKLIST );
....
end;
HTH
Andy