Aspose.Tasks for C++
Prj.h
1 #pragma once
2 //-----------------------------------------------------------------------
3 // <copyright file="Prj.cs" company="Aspose Pty Ltd">
4 // Copyright (c) 2002-2025 Aspose Pty Ltd. All Rights Reserved.
5 // </copyright>
6 //-----------------------------------------------------------------------
7 
8 #include <cstdint>
9 
10 #include "aspose.tasks.cpp/aspose_tasks_api_defs.h"
11 
12 namespace Aspose
13 {
14 namespace Tasks
15 {
16 enum class BaselineType;
17 class Calendar;
18 enum class CostAccrualType;
19 enum class CurrencySymbolPositionType;
20 enum class DateFormat;
21 enum class DayType;
22 enum class EarnedValueMethodType;
23 template <typename, typename> class Key;
24 enum class Month;
25 class NullableBool;
26 enum class PrjKey : uint8_t;
27 enum class TaskStartDateType;
28 enum class TaskType;
29 enum class TimeUnitType : int8_t;
30 } // namespace Tasks
31 } // namespace Aspose
32 namespace System
33 {
34 class DateTime;
35 class Guid;
36 template <typename> class SmartPtr;
37 template <typename T0> using SharedPtr = System::SmartPtr<T0>;
38 class String;
39 } // namespace System
40 
41 namespace Aspose {
42 
43 namespace Tasks {
44 
45 /// <summary>
46 /// Represents supported properties of <see cref="Project"></see> object.
47 /// </summary>
48 class ASPOSE_TASKS_SHARED_CLASS Prj
49 {
50  typedef Prj ThisType;
51 
52 public:
53 
54  /// <summary>
55  /// Determines whether all actual works have been synchronized with the project.
56  /// </summary>
57  static ASPOSE_TASKS_SHARED_API Key<NullableBool, PrjKey>& ActualsInSync();
58  /// <summary>
59  /// Determines whether a project is an administrative project.
60  /// </summary>
61  static ASPOSE_TASKS_SHARED_API Key<NullableBool, PrjKey>& AdminProject();
62  /// <summary>
63  /// Determines whether actual costs are editable.
64  /// </summary>
65  static ASPOSE_TASKS_SHARED_API Key<NullableBool, PrjKey>& AreEditableActualCosts();
66  /// <summary>
67  /// The author of a project.
68  /// </summary>
69  static ASPOSE_TASKS_SHARED_API Key<System::String, PrjKey>& Author();
70  /// <summary>
71  /// Determines whether new resources or tasks automatically added to a resource or task pool.
72  /// </summary>
73  static ASPOSE_TASKS_SHARED_API Key<NullableBool, PrjKey>& AutoAddNewResourcesAndTasks();
74  /// <summary>
75  /// Determines whether inserted or moved tasks are auto linked.
76  /// </summary>
77  static ASPOSE_TASKS_SHARED_API Key<NullableBool, PrjKey>& Autolink();
78  /// <summary>
79  /// The specific baseline used to calculate Variance values.
80  /// </summary>
81  static ASPOSE_TASKS_SHARED_API Key<BaselineType, PrjKey>& BaselineForEarnedValue();
82  /// <summary>
83  /// The project calendar.
84  /// </summary>
85  static ASPOSE_TASKS_SHARED_API Key<System::SharedPtr<Aspose::Tasks::Calendar>, PrjKey>& Calendar();
86  /// <summary>
87  /// The category of a project.
88  /// </summary>
89  static ASPOSE_TASKS_SHARED_API Key<System::String, PrjKey>& Category();
90  /// <summary>
91  /// Project's comments.
92  /// </summary>
93  static ASPOSE_TASKS_SHARED_API Key<System::String, PrjKey>& Comments();
94  /// <summary>
95  /// The company where a project was created.
96  /// </summary>
97  static ASPOSE_TASKS_SHARED_API Key<System::String, PrjKey>& Company();
98  /// <summary>
99  /// The date and time when a project was created.
100  /// </summary>
101  /// <remarks>Saved in UTC format in mpp files.
102  /// <see cref="DateTime"></see> type.
103  /// </remarks>
104  static ASPOSE_TASKS_SHARED_API Key<System::DateTime, PrjKey>& CreationDate();
105  /// <summary>
106  /// The number of days to the end of a task when Microsoft Project
107  /// marks that task as a critical task.
108  /// </summary>
109  static ASPOSE_TASKS_SHARED_API Key<int32_t, PrjKey>& CriticalSlackLimit();
110  /// <summary>
111  /// The three letter currency character code as defined in ISO 4217.
112  /// Example of valid values is "USD".
113  /// </summary>
114  static ASPOSE_TASKS_SHARED_API Key<System::String, PrjKey>& CurrencyCode();
115  /// <summary>
116  /// The number of digits after a decimal symbol.
117  /// </summary>
118  static ASPOSE_TASKS_SHARED_API Key<int32_t, PrjKey>& CurrencyDigits();
119  /// <summary>
120  /// The currency symbol used in a project.
121  /// </summary>
122  static ASPOSE_TASKS_SHARED_API Key<System::String, PrjKey>& CurrencySymbol();
123  /// <summary>
124  /// The placement of the currency symbol.
125  /// </summary>
126  static ASPOSE_TASKS_SHARED_API Key<CurrencySymbolPositionType, PrjKey>& CurrencySymbolPosition();
127  /// <summary>
128  /// The system date.
129  /// </summary>
130  static ASPOSE_TASKS_SHARED_API Key<System::DateTime, PrjKey>& CurrentDate();
131  /// <summary>
132  /// Project view date format.
133  /// </summary>
134  static ASPOSE_TASKS_SHARED_API Key<Aspose::Tasks::DateFormat, PrjKey>& DateFormat();
135  /// <summary>
136  /// Project view custom date format. Used to format dates when <see cref="Prj::DateFormat"></see> property is set to <see cref="Tasks::DateFormat::Custom"></see>.
137  /// </summary>
138  static ASPOSE_TASKS_SHARED_API Key<System::String, PrjKey>& CustomDateFormat();
139  /// <summary>
140  /// The number of days per month.
141  /// </summary>
142  static ASPOSE_TASKS_SHARED_API Key<int32_t, PrjKey>& DaysPerMonth();
143  /// <summary>
144  /// The default finish time of new tasks.
145  /// </summary>
146  static ASPOSE_TASKS_SHARED_API Key<System::DateTime, PrjKey>& DefaultFinishTime();
147  /// <summary>
148  /// The default type when fixed costs are accrued.
149  /// </summary>
150  static ASPOSE_TASKS_SHARED_API Key<CostAccrualType, PrjKey>& DefaultFixedCostAccrual();
151  /// <summary>
152  /// The default overtime rate for new resources.
153  /// </summary>
154  static ASPOSE_TASKS_SHARED_API Key<double, PrjKey>& DefaultOvertimeRate();
155  /// <summary>
156  /// The default standard rate for new resources.
157  /// </summary>
158  static ASPOSE_TASKS_SHARED_API Key<double, PrjKey>& DefaultStandardRate();
159  /// <summary>
160  /// The default start time of new tasks.
161  /// </summary>
162  static ASPOSE_TASKS_SHARED_API Key<System::DateTime, PrjKey>& DefaultStartTime();
163  /// <summary>
164  /// The default earned value method for tasks.
165  /// </summary>
166  static ASPOSE_TASKS_SHARED_API Key<EarnedValueMethodType, PrjKey>& DefaultTaskEVMethod();
167  /// <summary>
168  /// The default type of new tasks.
169  /// </summary>
170  static ASPOSE_TASKS_SHARED_API Key<TaskType, PrjKey>& DefaultTaskType();
171  /// <summary>
172  /// The format for expressing the bulk duration.
173  /// </summary>
174  static ASPOSE_TASKS_SHARED_API Key<TimeUnitType, PrjKey>& DurationFormat();
175  /// <summary>
176  /// The default method for calculating earned value.
177  /// </summary>
178  static ASPOSE_TASKS_SHARED_API Key<EarnedValueMethodType, PrjKey>& EarnedValueMethod();
179  /// <summary>
180  /// Date used for calculation and reporting.
181  /// </summary>
182  static ASPOSE_TASKS_SHARED_API Key<System::DateTime, PrjKey>& ExtendedCreationDate();
183  /// <summary>
184  /// The finish date of a project.
185  /// </summary>
186  static ASPOSE_TASKS_SHARED_API Key<System::DateTime, PrjKey>& FinishDate();
187  /// <summary>
188  /// Determines whether the fiscal year numbering is used.
189  /// </summary>
190  static ASPOSE_TASKS_SHARED_API Key<NullableBool, PrjKey>& FiscalYearStart();
191  /// <summary>
192  /// The month when fiscal year is starting.
193  /// </summary>
194  static ASPOSE_TASKS_SHARED_API Key<Month, PrjKey>& FyStartDate();
195  /// <summary>
196  /// Determines whether tasks honor their constraint dates.
197  /// </summary>
198  static ASPOSE_TASKS_SHARED_API Key<NullableBool, PrjKey>& HonorConstraints();
199  /// <summary>
200  /// Project's hyperlink base.
201  /// </summary>
202  static ASPOSE_TASKS_SHARED_API Key<System::String, PrjKey>& HyperlinkBase();
203  /// <summary>
204  /// Determines whether subtasks are calculated as summary tasks.
205  /// </summary>
206  static ASPOSE_TASKS_SHARED_API Key<NullableBool, PrjKey>& InsertedProjectsLikeSummary();
207  /// <summary>
208  /// Determines whether manual tasks must be kept on nearest working time when made as auto scheduled.
209  /// </summary>
210  static ASPOSE_TASKS_SHARED_API Key<NullableBool, PrjKey>& KeepTaskOnNearestWorkingTimeWhenMadeAutoScheduled();
211  /// <summary>
212  /// Project's keywords.
213  /// </summary>
214  static ASPOSE_TASKS_SHARED_API Key<System::String, PrjKey>& Keywords();
215  /// <summary>
216  /// Project's last author.
217  /// </summary>
218  static ASPOSE_TASKS_SHARED_API Key<System::String, PrjKey>& LastAuthor();
219  /// <summary>
220  /// Project's last print time.
221  /// <remarks>Saved in UTC format in mpp files.
222  /// <see cref="DateTime"></see> type.
223  /// </remarks>
224  /// </summary>
225  static ASPOSE_TASKS_SHARED_API Key<System::DateTime, PrjKey>& LastPrinted();
226  /// <summary>
227  /// The date when a project was saved last time.
228  /// <remarks>Saved in UTC format in mpp files.
229  /// <see cref="DateTime"></see> type.
230  /// </remarks>
231  /// </summary>
232  static ASPOSE_TASKS_SHARED_API Key<System::DateTime, PrjKey>& LastSaved();
233  /// <summary>
234  /// The manager of a project.
235  /// </summary>
236  static ASPOSE_TASKS_SHARED_API Key<System::String, PrjKey>& Manager();
237  /// <summary>
238  /// Determines whether a project was created by a Project Server user as opposed to an NT user.
239  /// </summary>
240  static ASPOSE_TASKS_SHARED_API Key<NullableBool, PrjKey>& MicrosoftProjectServerURL();
241  /// <summary>
242  /// The number of minutes per day.
243  /// </summary>
244  static ASPOSE_TASKS_SHARED_API Key<int32_t, PrjKey>& MinutesPerDay();
245  /// <summary>
246  /// The number of minutes per week.
247  /// </summary>
248  static ASPOSE_TASKS_SHARED_API Key<int32_t, PrjKey>& MinutesPerWeek();
249  /// <summary>
250  /// Determines whether the end of completed portions of tasks scheduled to start
251  /// after the status date but started earlier should be moved back to the status date.
252  /// </summary>
253  static ASPOSE_TASKS_SHARED_API Key<NullableBool, PrjKey>& MoveCompletedEndsBack();
254  /// <summary>
255  /// Determines whether the end of completed portions of tasks scheduled
256  /// to have been completed before the status date but begun later
257  /// should be moved up to the status date.
258  /// </summary>
259  static ASPOSE_TASKS_SHARED_API Key<NullableBool, PrjKey>& MoveCompletedEndsForward();
260  /// <summary>
261  /// Determines whether the beginning of remaining portions of tasks scheduled to start
262  /// after the status date but started earlier should be moved back to the status date.
263  /// </summary>
264  static ASPOSE_TASKS_SHARED_API Key<NullableBool, PrjKey>& MoveRemainingStartsBack();
265  /// <summary>
266  /// Determines whether the beginning of remaining portions of tasks
267  /// scheduled to have begun later should be moved up to the status date.
268  /// </summary>
269  static ASPOSE_TASKS_SHARED_API Key<NullableBool, PrjKey>& MoveRemainingStartsForward();
270  /// <summary>
271  /// Determines whether multiple critical paths are calculated.
272  /// </summary>
273  static ASPOSE_TASKS_SHARED_API Key<NullableBool, PrjKey>& MultipleCriticalPaths();
274  /// <summary>
275  /// The name of the project.
276  /// </summary>
277  static ASPOSE_TASKS_SHARED_API Key<System::String, PrjKey>& Name();
278  /// <summary>
279  /// Determines whether new tasks created as manual.
280  /// </summary>
281  static ASPOSE_TASKS_SHARED_API Key<NullableBool, PrjKey>& NewTasksAreManual();
282  /// <summary>
283  /// Determines whether new tasks are effort driven.
284  /// </summary>
285  static ASPOSE_TASKS_SHARED_API Key<NullableBool, PrjKey>& NewTasksEffortDriven();
286  /// <summary>
287  /// Determines whether an estimated duration is shown by default.
288  /// </summary>
289  static ASPOSE_TASKS_SHARED_API Key<NullableBool, PrjKey>& NewTasksEstimated();
290  /// <summary>
291  /// The default start date type for new tasks.
292  /// </summary>
293  static ASPOSE_TASKS_SHARED_API Key<TaskStartDateType, PrjKey>& NewTaskStartDate();
294  /// <summary>
295  /// Determines whether the project was externally edited.
296  /// </summary>
297  static ASPOSE_TASKS_SHARED_API Key<NullableBool, PrjKey>& ProjectExternallyEdited();
298  /// <summary>
299  /// Determines whether all file properties will be removed on save.
300  /// </summary>
301  static ASPOSE_TASKS_SHARED_API Key<NullableBool, PrjKey>& RemoveFileProperties();
302  /// <summary>
303  /// The number of times a project was saved.
304  /// </summary>
305  static ASPOSE_TASKS_SHARED_API Key<int32_t, PrjKey>& Revision();
306  /// <summary>
307  /// The version of Microsoft Office Project from which a project file was saved.
308  /// </summary>
309  static ASPOSE_TASKS_SHARED_API Key<int32_t, PrjKey>& SaveVersion();
310  /// <summary>
311  /// Determines whether to calculate the project schedule forward from the start date.
312  /// </summary>
313  static ASPOSE_TASKS_SHARED_API Key<NullableBool, PrjKey>& ScheduleFromStart();
314  /// <summary>
315  /// Determines whether to display summary information about an entire project on a single row with its own summary task bar at the top of the Gantt Chart view.
316  /// </summary>
317  static ASPOSE_TASKS_SHARED_API Key<bool, PrjKey>& ShowProjectSummaryTask();
318  /// <summary>
319  /// Determines whether in-progress tasks can be split.
320  /// </summary>
321  static ASPOSE_TASKS_SHARED_API Key<NullableBool, PrjKey>& SplitsInProgressTasks();
322  /// <summary>
323  /// Determines whether actual costs are spread to the status date.
324  /// </summary>
325  static ASPOSE_TASKS_SHARED_API Key<NullableBool, PrjKey>& SpreadActualCost();
326  /// <summary>
327  /// Determines whether a percent complete is spread to the status date.
328  /// </summary>
329  static ASPOSE_TASKS_SHARED_API Key<NullableBool, PrjKey>& SpreadPercentComplete();
330  /// <summary>
331  /// The start date of a project.
332  /// </summary>
333  static ASPOSE_TASKS_SHARED_API Key<System::DateTime, PrjKey>& StartDate();
334  /// <summary>
335  /// the status date to display progress or to calculate earned value totals.
336  /// The status date is the same as the current date (today's date) unless a different status date is specified.
337  /// </summary>
338  static ASPOSE_TASKS_SHARED_API Key<System::DateTime, PrjKey>& StatusDate();
339  /// <summary>
340  /// The subject of a project.
341  /// </summary>
342  static ASPOSE_TASKS_SHARED_API Key<System::String, PrjKey>& Subject();
343  /// <summary>
344  /// Determines whether updates to tasks update resources.
345  /// </summary>
346  static ASPOSE_TASKS_SHARED_API Key<NullableBool, PrjKey>& TaskUpdatesResource();
347  /// <summary>
348  /// Project's template.
349  /// </summary>
350  static ASPOSE_TASKS_SHARED_API Key<System::String, PrjKey>& Template();
351  /// <summary>
352  /// The date that the timescale in the view finishes.
353  /// </summary>
354  static ASPOSE_TASKS_SHARED_API Key<System::DateTime, PrjKey>& TimescaleFinish();
355  /// <summary>
356  /// The date that the timescale in the view starts.
357  /// </summary>
358  static ASPOSE_TASKS_SHARED_API Key<System::DateTime, PrjKey>& TimescaleStart();
359  /// <summary>
360  /// The title of a project.
361  /// </summary>
362  static ASPOSE_TASKS_SHARED_API Key<System::String, PrjKey>& Title();
363  /// <summary>
364  /// The unique Id of a project.
365  /// </summary>
366  static ASPOSE_TASKS_SHARED_API Key<System::String, PrjKey>& Uid();
367  /// <summary>
368  /// Determines whether manual tasks must be updated when links were edited.
369  /// </summary>
370  static ASPOSE_TASKS_SHARED_API Key<NullableBool, PrjKey>& UpdateManuallyScheduledTasksWhenEditingLinks();
371  /// <summary>
372  /// First day of a week.
373  /// </summary>
374  static ASPOSE_TASKS_SHARED_API Key<DayType, PrjKey>& WeekStartDay();
375  /// <summary>
376  /// The format used to show the duration of the task.
377  /// </summary>
378  static ASPOSE_TASKS_SHARED_API Key<TimeUnitType, PrjKey>& WorkFormat();
379  /// <summary>
380  /// The GUID of the project.
381  /// </summary>
382  static ASPOSE_TASKS_SHARED_API Key<System::Guid, PrjKey>& Guid();
383  /// <summary>
384  /// Determines whether assignment cost and remaining cost should be auto calculated using assignment's work and resource rates.
385  /// </summary>
386  static ASPOSE_TASKS_SHARED_API Key<bool, PrjKey>& AutoCalculateAssignmentCosts();
387 
388 public:
389  Prj() = delete;
390 };
391 
392 } // namespace Tasks
393 } // namespace Aspose
394 
395 
Definition: Asn.h:12
Represents a property key of a class of the specified type. An instance of this class is used when ge...
Definition: Asn.h:19
Represents a calendar used in a project.
Definition: Calendar.h:279
Represents supported properties of Project object.
Definition: Prj.h:48