---
id: object/page/973
type: object
title: Page 973 "Time Sheet Card"
summary: Page 973 "Time Sheet Card" in Base Application (Microsoft.Projects.TimeSheet). 3 public procedures, 8 events. Present since at least BC23, still in BC30, changed in BC24-26.
tier: official
language: en
tags:
  - page
  - base application
versions:
  introduced: null
  last_changed: "26"
  deprecated: null
review:
  state: derived
  by: null
  at: null
  flags: []
generated:
  at: "2026-10-11T00:31:51.816Z"
  pipeline: 0.2.0
  prompts: {}
  input_hash: 2eb9e84f682afcde5fa9364e180457dd1293ea3c7495b9485a42ba1072ec1e16
evidence:
  - kind: code
    url: https://github.com/microsoft/BCApps/blob/ea08af5ef2d6a9b5c5af4a029288abbe2c883220/src/Layers/W1/BaseApp/Projects/TimeSheet/TimeSheetCard.Page.al
    title: src/Layers/W1/BaseApp/Projects/TimeSheet/TimeSheetCard.Page.al (releases/29.x)
    date: null
    commit: ea08af5ef2d6a9b5c5af4a029288abbe2c883220
    t: null
    quote: null
  - kind: learn
    url: https://learn.microsoft.com/dynamics365/business-central/projects-how-use-time-sheets
    title: Use time sheets
    date: null
    commit: null
    t: null
    quote: null
links:
  learn:
    - https://learn.microsoft.com/dynamics365/business-central/projects-how-use-time-sheets
  objects: []
  features: []
  topics:
    - topic/business-central/business-functionality/project-management
  localizations: []
  videos: []
  posts: []
  guidelines: []
object_type: page
object_id: 973
name: Time Sheet Card
caption: Time Sheet
namespace: Microsoft.Projects.TimeSheet
app: Base Application
extends: null
first_version: "23"
last_version: "30"
present_in:
  - "23"
  - "24"
  - "25"
  - "26"
  - "27"
  - "28"
  - "29"
  - "30"
changed_in:
  - "24"
  - "25"
  - "26"
source_major: "29"
obsolete: null
countries: []
ms_search_form_ids:
  - docs/learn-smb-docs/business-central/projects-how-use-time-sheets.md
counts:
  fields: 0
  procedures: 21
  events: 8
  subscribers: 0
  controls: 10
  actions: 9
relations:
  out: 1
  referenced_by: 0
  pages: 2
  extended_by: 0
  event_subscribers: 0
  calls: 2
  called_by: 1
  implements: 0
---

# Page 973 "Time Sheet Card"

> Page 973 "Time Sheet Card" in Base Application (Microsoft.Projects.TimeSheet). 3 public procedures, 8 events. Present since at least BC23, still in BC30, changed in BC24-26.

Base Application · Microsoft.Projects.TimeSheet · captioned "Time Sheet" · BC23-30 · [source at ea08af5e](https://github.com/microsoft/BCApps/blob/ea08af5ef2d6a9b5c5af4a029288abbe2c883220/src/Layers/W1/BaseApp/Projects/TimeSheet/TimeSheetCard.Page.al) · facts from BC29

## Properties

| Property | Value |
|---|---|
| Caption | Time Sheet |
| SourceTable | Time Sheet Header |
| PageType | Document |

## Fields on this page

Layout controls in source order, grouped by the container they sit in. Shows: the table field a control is bound to (or its expression as written); ToolTip: the control's own, else the bound field's (marked).

| Group | Control | Shows | ToolTip |
|---|---|---|---|
| General | No. | [No.](../table/950.md#fields) | Specifies the number of the involved entry or record, according to the specified number series. <small>from the table field</small> |
|  | Starting Date | [Starting Date](../table/950.md#fields) | Specifies the starting date for a time sheet. <small>from the table field</small> |
|  | Ending Date | [Ending Date](../table/950.md#fields) | Specifies the ending date for a time sheet. <small>from the table field</small> |
|  | Resource No. | [Resource No.](../table/950.md#fields) | Specifies the number of the resource for the time sheet. <small>from the table field</small> |
|  | Resource Name | [Resource Name](../table/950.md#fields) | Specifies the name of the resource for the time sheet. <small>from the table field</small> |
|  | Description | [Description](../table/950.md#fields) | Specifies the description for the time sheet. |
| Content | TimeSheetLines | part [Page 974 "Time Sheet Lines Subform"](../page/974.md) | — |
| FactBoxes | Time Sheet Status | part [Page 957 "Time Sheet Status FactBox"](../page/957.md) | — |
|  | Actual/Budgeted Summary | part [Page 956 "Actual/Sched. Summary FactBox"](../page/956.md) | — |
|  | TimeSheetLineDetailsFactBox | part [Page 948 "TimeSheet Line Details FactBox"](../page/948.md) | — |

## Actions

| Group | Action | ToolTip | Runs |
|---|---|---|---|
| Navigation | Comments | View comments about the time sheet. | [Page 955 "Time Sheet Comment Sheet"](../page/955.md) |
| Processing | Submit | Submit all open time sheet lines for approval. Each line must have a Type defined. For dedicated line approval select the Submit action on the lines section. |  |
|  | Reopen | Reopen all submitted or rejected time sheet lines. Each line must have a Type defined. For dedicated line reopen select the Reopen action on the lines section. |  |
|  | Approve | Approve all submitted time sheet lines. Each line must have a Type defined. For dedicated line approval select the Approve action on the lines section. |  |
|  | Reopen | Reopen all approved or rejected time sheet lines. Each line must have a Type defined. For dedicated line reopen select the Reopen action on the lines section. |  |
|  | Reject | Reject all submitted time sheet lines. Each line must have a Type defined. For dedicated line rejection select the Reject action on the lines section. |  |
| Functions | Copy lines from time sheet | Copy information from the selected time sheet, such as type and description, and then modify the lines. If a line is related to a project, the project number is copied. |  |
|  | Copy lines from time sheet with comments | Copy information from the selected time sheet, such as type and description, and then modify the lines. If a line is related to a project, the project number is copied. Comments will be copied as well. |  |
|  | Create lines from project planning | Create time sheet lines that are based on project planning lines. |  |

## Events published

- `OnProcessOnAfterTimeSheetLinesFiltered(var TimeSheetLine: Record "Time Sheet Line"; ActionType: Option Submit,ReopenSubmitted,Approve,ReopenApproved,Reject)` (integration)
- `OnAfterProcess(var TimeSheetHeader: Record "Time Sheet Header"; ActionType: Option Submit,ReopenSubmitted,Approve,ReopenApproved,Reject)` (integration)
- `OnAfterOnOpenPage(var TimeSheetHeader: Record "Time Sheet Header")` (integration)
- `OnBeforeReopenLines(var TimeSheetHeader: Record "Time Sheet Header"; var IsHandled: Boolean)` (integration)
- `OnBeforeSubmitLines(var TimeSheetHeader: Record "Time Sheet Header"; var IsHandled: Boolean)` (integration)
- `OnBeforeApproveLines(var TimeSheetHeader: Record "Time Sheet Header"; var IsHandled: Boolean)` (integration)
- `OnBeforeRejectLines(var TimeSheetHeader: Record "Time Sheet Header"; var IsHandled: Boolean)` (integration)
- `OnBeforeOnOpenPage(var TimeSheetHeader: Record "Time Sheet Header"; var IsHandled: Boolean)` (integration)

## Procedures

- `SetManagerTimeSheetMode()`
- `Process(ActionType: Option Submit,ReopenSubmitted,Approve,ReopenApproved,Reject)` (protected)
- `FilterAllLines(var TimeSheetLine: Record "Time Sheet Line"; ActionType: Option Submit,ReopenSubmitted,Approve,ReopenApproved,Reject)` (protected)

Plus 10 local procedures.

## Triggers

OnOpenPage, OnAfterGetCurrRecord

## Relations

- source table [Table 950 "Time Sheet Header"](../table/950.md)

## Pages and codeunits on this table

- [Page 951 "Time Sheet List"](../page/951.md) (card page)
- [Page 953 "Manager Time Sheet List"](../page/953.md) (card page)

## Calls

From the extracted call graph of BC29 (graphify-al on the snapshot checkout): calls whose target is known from a declared type or an `Object::"Name"` argument. Interface dispatch and calls through events are not counted, so the list is not complete.

- [Codeunit 951 "Time Sheet Approval Management"](../codeunit/951.md) (7 calls: `ApproveLines → ConfirmAction`, `Process → NoTimeSheetLinesToProcess`, `Process → ProcessAction`, …)
- [Codeunit 950 "Time Sheet Management"](../codeunit/950.md) (3 calls: `CheckSetDefaultOwnerFilter → FilterTimeSheets`, `FilterAllLines → FilterAllTimeSheetLines`, `GetDataCaption → GetTimeSheetDataCaption`)

## Called by

- [Page 9155 "My Time Sheets"](../page/9155.md) (1 call: `EditTimeSheet → (object)`)

## Across versions

- Present in: BC23-30
- Changed (declaration) in: BC24-26

## Documented on Microsoft Learn

- [Use time sheets](https://learn.microsoft.com/dynamics365/business-central/projects-how-use-time-sheets)

Source: AL metadata extracted from the code (names, ids, signatures, properties); no code bodies (D10).

## Ask your agent

Procedure bodies are not stored here (D10). The call sections above are our own, per object, from the BC29 call graph. For a procedure body or the calls of one procedure, ask bc-code-atlas (external, by Stefan Maron, MIT; default corpus w1-28), which the bc-observatory plugin connects: `bcatlas_resolve_node(object_type: "page", object_name: "Time Sheet Card")`, then `bcatlas_get_procedure_body` or `bcatlas_get_neighbors` on the returned id.
