Project scheduling software (scriptable, cross-platform, and open source)
GanttPV Home
Why GanttPV? Help Scripts Server Developer Object Role Modeling

Data overview

The GanttPV data is defined as tables (such as "Project", "Task", and "Holiday") and columns (such as "Name" and "StartDate"). The current name definitions are given in the table below.

Every table contains an "ID" column. Thus, each table row is uniquely identified by the table name and a row ID. In the documentation given here the table itself will be described in "ID" description.

All dates are given in a year, month, day format (like "2004-06-02"). This is used for three reasons. First, it is the same format that MySQL uses internally. Using this format will simplify the addition of multi-user/database features. Second, comparing and sorting dates can be done with a simple string comparison. Third, by displaying the same format that is used internally, it reduced the workload required to introduce GanttPV.

Dates always refer to the beginning of the day. This differs from some other tools that treat end dates differently.

Most columns that can be added to reports are based on table columns. Report column labels are not necessarily the same as the table column names. GanttPV will display the report column label if one is provide, otherwise it will look for the column type label. If that isn't defined, it will display the table column name (or, more accurately, the column type name which is the same as or includes the table column name).

Any database row may have a "zzStatus" column. A value of "deleted" means that the row should be treated as deleted. The row is retained in the database to support undo/redo functions and multi-user enhancements. "Deleted" rows can be removed by a maintenance script (see Purge Deleted Items).

If you add tables or columns to GanttPV and would like to avoid conflict with future official names, use names beginning with "xx" ("xxEmail", "xxPhone", etc).

Data columns

Note that columns marked as "required" must be specified for each record in that table.

---- Project table ----
ID A project is a group of tasks that is treated together for planning purposes. Yes
Name Brief descriptive name of project. Yes
StartDate Project start date. No
TargetEndDate Desired project completion date. No
---- Report table ----
ID Work on a project is divided into tasks in order to be scheduled and assigned. Yes
ProjectID The ID of the Project that owns this task. This is how GanttPV knows which tasks belong to which projects. Yes
Name Brief descriptive name of task. Yes
StartDate Requested task start date. (Task dependencies take precedence over this date.) No
Duration Estimated duration in hours (default = 1 day). No
CalculatedStartDate Start date calculated based on dependencies and durations. No
CalculatedEndDate End date calculated based on dependencies and durations. No
---- Dependency table ----
ID Each dependency pairs a task with prerequisite task that must be accomplished before the former can begin. Yes
TaskID The task that has a prerequisite. Yes
PrerequisiteID The prerequisite task. "Prerequisite" is defined in GanttPV as a synonym for "Task" so this is the Task ID of the Prerequisite Task. Yes
---- Resource table ----
ID People, equipment, etc., that can be assigned to a task. Yes
ShortName Nickname for resource. May be used for condensed description of resource assignments. No
Name Descriptive name of resource. Yes
---- Assignment table ----
ID Assignments of resources to tasks. Yes
TaskID The task that has been assigned a resources. Yes
ResourceID The resource that has been assigned to the task. Yes
---- Holiday table ----
ID Days when the normal number of work hours has been overridden. Yes
Name Descriptive name of holiday. No
Date Date of holiday. Yes
Hours Number of work hours on holiday (default = 0). This allows you to define half-day holidays. No
---- Report table ----
ID A way of organizing data for entry and display. Yes
ReportTypeID ID of Report Type that helps define this report. Yes
Name Descriptive name of report. Yes
ShowHidden Include hidden or deleted data in report display? Default is no. No
FirstColumn ID of first Report Column in this report. (Default is None meaning the report has no columns defined.) No
FirstRow ID of first Report Row in this report. (Default is None meaning the report has no rows.) No
---- ReportType table ----
ID Identifies kind of columns that can be included in a report. Yes
Name Name of report type. (Don't change this. Updates will rely on it.) Yes
Label Name displayed when adding reports. (Okay to change.) No
TableA Primary source of data for report. Yes
TableB Secondary source of data for report. No
---- ReportColumn table ----
ID Describes the information in each column of a report. Yes
ColumnTypeID ID of Column Type that helps define this column. Yes
Label Label displayed at the top of this report column. (Defaults to ColumnType Label.) No
FirstDate Time scale columns only. Specifies that data of the first column displayed. Only if time scale
Width Width of report column. (Defaults to Column Type width.) No
NextColumn ID of next Report Column in this report. (Default is None meaning this is the last column.) No
---- ColumnType table ----
ID Describes the kind of columns that can be inserted into a report. Yes
ReportTypeID Indicates which report type will be able to include this column type. Yes
Name Identifies this column type. (Do not change the column type's name. Upgrades will look for this name.) Yes
Label Label displayed at the top of this report column. Defaults to Name. (Change these labels when you translate ColumnTypes to other languages.) No
DataType * "i" = integer; "f" = float; "t" = text; "d" = date (in "YYYY-MM-DD" format); "u" = time unit (e.g. "2w 3d 1h"); "g" = graphic (gantt chart bars) Yes
AccessType "d" ("Direct") - Data displayed is taken directly from named table;
"i" ("Indirect") - Data displayed is taken from named table via a pointer to that record;
"s" ("Special") - Other approaches, includes display of gantt bars.
T * "A" - Column type refers the primary table of the report type;
"B" - Refers to the secondary table of the report type.
Edit True - allow user to edit data in the column.
False - do not allow user to edit data in this column.
Width An integer that specifies the default width (in pixels) of this column. No
---- ReportRow table ----
ID Saves the sequence and visibility of report rows. Report Row table rows are automatically created by GanttPV when needed. Yes
Hidden Hide this row of the report? Default is no. No
TableName The table in the database that is the main source of data for this row. Yes
TableID The row in the database table that is the main source of data for this row. Yes
NextRow ID of next Report Row in this report. (Default is None meaning this is the last row.) No

* Names marked by an asterisk are tentative and may be changed based on later reflection and feedback. We look forward to you comments and suggestions on names in the GanttPV Forum.