xiaoding721
2024-05-29 6fa6f627b1706561e0d11b44be45dbc35bba5d41
Merge branch 'dev' of http://47.101.211.7:10101/r/VWED into dev
已添加51个文件
已修改7个文件
已删除1个文件
1309 ■■■■■ 文件已修改
_Main/BL/Relations/Relation_LibCal_Calendar_LibCal_SubscriberEventTable_LibCal_SubscriberEventT.qbl 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Relations/Relation_LibCal_SubscriberEventCell_LibCal_SubscriberEventColumn_LibCal_Subs.qbl 26 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Relations/Relation_LibCal_SubscriberEventCell_LibCal_SubscriberEventRow_LibCal_Subscri.qbl 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Relations/Relation_LibCal_SubscriberEventTable_LibCal_SubscriberEventColumn_LibCal_Sub.qbl 26 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Relations/Relation_LibCal_SubscriberEventTable_LibCal_SubscriberEventRow_LibCal_Subscr.qbl 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_LibCal_Calendar/_ROOT_Type_LibCal_Calendar.qbl 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_LibCal_SubscriberEventCell/Attribute_Value.qbl 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_LibCal_SubscriberEventCell/_ROOT_Type_LibCal_SubscriberEventCell.qbl 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_LibCal_SubscriberEventColumn/Attribute_Index.qbl 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_LibCal_SubscriberEventColumn/Attribute_Name.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_LibCal_SubscriberEventColumn/Attribute_Period.qbl 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_LibCal_SubscriberEventColumn/Attribute_RowName.qbl 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_LibCal_SubscriberEventColumn/Function_CalcIndex.qbl 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_LibCal_SubscriberEventColumn/Method_FilterByDatePeriod.qbl 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_LibCal_SubscriberEventColumn/_ROOT_Type_LibCal_SubscriberEventColumn.qbl 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_LibCal_SubscriberEventRow/Attribute_Event.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_LibCal_SubscriberEventRow/Attribute_EventType.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_LibCal_SubscriberEventRow/Attribute_RowNr.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_LibCal_SubscriberEventRow/Attribute_Subscriber.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_LibCal_SubscriberEventRow/Method_FilterBySubscriberAndEventType.qbl 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_LibCal_SubscriberEventRow/_ROOT_Type_LibCal_SubscriberEventRow.qbl 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_LibCal_SubscriberEventTable/Attribute_ID.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_LibCal_SubscriberEventTable/Attribute_Name.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_LibCal_SubscriberEventTable/Method_InitializeDay.qbl 29 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_LibCal_SubscriberEventTable/Method_InitializeMonth.qbl 32 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_LibCal_SubscriberEventTable/Method_InitializeTable.qbl 56 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_LibCal_SubscriberEventTable/Method_InitializeWeek.qbl 32 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_LibCal_SubscriberEventTable/StaticMethod_InitializeTable.qbl 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_LibCal_SubscriberEventTable/_ROOT_Type_LibCal_SubscriberEventTable.qbl 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Response_MacroPlanner_ContextMenuCapacities_MenuCapacitiesUnavailableEvent_O.def 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormCalendarUnavailableEvent/Component_MatrixEditorTable.def 100 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormCalendarUnavailableEvent/Component_PanelCalendarEventTypes.def 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormCalendarUnavailableEvent/Component_PanelCalendarLineList.def 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormCalendarUnavailableEvent/Component_PanelCalendarSearchList.def 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormCalendarUnavailableEvent/Component_PanelCalendarUnavailableEvent.def 35 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormCalendarUnavailableEvent/Component_PanelCalendarUnavailableEventSearchList.def 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormCalendarUnavailableEvent/Component_PanelDate.def 56 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormCalendarUnavailableEvent/Component_PanelExport.def 35 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormCalendarUnavailableEvent/Component_PanelHeader.def 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormCalendarUnavailableEvent/Component_PanelList.def 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormCalendarUnavailableEvent/Component_PanelPeriods.def 29 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormCalendarUnavailableEvent/Component_abpListSubscribers.def 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormCalendarUnavailableEvent/Component_cmSubscribers.def 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormCalendarUnavailableEvent/Component_lstSubscribers.def 61 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormCalendarUnavailableEvent/Component_matrixEditorActionBarPageTable.def 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormCalendarUnavailableEvent/Component_matrixeditorContextMenuTable.def 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormCalendarUnavailableEvent/Component_pnlSubscribers#549.def 49 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormCalendarUnavailableEvent/Method_InitializeSubscribers.def 39 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormCalendarUnavailableEvent/Response_OnCreated.def 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormCalendarUnavailableEvent/Response_PanelDate_DateSelectorEndTime_OnChanged.def 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormCalendarUnavailableEvent/Response_PanelDate_DateSelectorStartTime_OnChanged.def 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormCalendarUnavailableEvent/Response_PanelExport_ButtonHeader_OnClick.def 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormCalendarUnavailableEvent/Response_PanelExport_ButtonInitialize_OnClick.def 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormCalendarUnavailableEvent/Response_PanelPeriods_RadioButtonGroupUseForPlanning_OnChanged.def 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormCalendarUnavailableEvent/Response_lstSubscribers_OnCheckedChanged.def 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormCalendarUnavailableEvent/Response_lstSubscribers_OnSelectionChanged.def 32 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormCalendarUnavailableEvent/Response_lstSubscribers_mnDelete_OnClick.def 26 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_LibCal_dlgMultipleEvent/Component_ListList.def 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Views/Calendar_unavailable_event_view.vw 140 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Relations/Relation_LibCal_Calendar_LibCal_SubscriberEventTable_LibCal_SubscriberEventT.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,23 @@
Quintiq file version 2.0
#parent: #root
Relation LibCal_Calendar_LibCal_SubscriberEventTable_LibCal_SubscriberEventTable_LibCal_Calendar
{
  #keys: '1[415136.0.671975041]'
  DefaultRelationStrategy
  {
  }
  RelationSide.LeftSide LibCal_SubscriberEventTable
  {
    #keys: '3[415136.0.671975043][415136.0.671975042][415136.0.671975044]'
    Cardinality: '1toN'
    ObjectDefinition: LibCal_Calendar
    OwningSide: 'Owned'
  }
  RelationSide.RightSide LibCal_Calendar
  {
    #keys: '3[415136.0.671975046][415136.0.671975045][415136.0.671975047]'
    Cardinality: '0to1'
    ObjectDefinition: LibCal_SubscriberEventTable
    OwningSide: 'Reference'
  }
}
_Main/BL/Relations/Relation_LibCal_SubscriberEventCell_LibCal_SubscriberEventColumn_LibCal_Subs.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,26 @@
Quintiq file version 2.0
#parent: #root
Relation LibCal_SubscriberEventCell_LibCal_SubscriberEventColumn_LibCal_SubscriberEventColumn_LibCal_SubscriberEventCell
{
  #keys: '1[415136.0.671975141]'
  ProceduralSequenceRelationStrategy
  {
    #keys: '13[0.0.0][415136.0.671975193][415136.0.671975187][415136.0.671975194][415136.0.671975188][415136.0.671975195][415136.0.671975189][415136.0.671975196][415136.0.671975190][415136.0.671975197][415136.0.671975191][415136.0.671975198][415136.0.671975192]'
    SequenceElementSuffix: 'CellInColumn'
    SequenceSuffix: 'CellInColumn'
  }
  RelationSide.LeftSide LibCal_SubscriberEventColumn
  {
    #keys: '3[415136.0.671975143][415136.0.671975142][415136.0.671975144]'
    Cardinality: '0to1'
    ObjectDefinition: LibCal_SubscriberEventCell
    OwningSide: 'Reference'
  }
  RelationSide.RightSide LibCal_SubscriberEventCell
  {
    #keys: '3[415136.0.671975146][415136.0.671975145][415136.0.671975147]'
    Cardinality: '1toN'
    ObjectDefinition: LibCal_SubscriberEventColumn
    OwningSide: 'Owned'
  }
}
_Main/BL/Relations/Relation_LibCal_SubscriberEventCell_LibCal_SubscriberEventRow_LibCal_Subscri.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,23 @@
Quintiq file version 2.0
#parent: #root
Relation LibCal_SubscriberEventCell_LibCal_SubscriberEventRow_LibCal_SubscriberEventRow_LibCal_SubscriberEventCell
{
  #keys: '1[415136.0.671975174]'
  DefaultRelationStrategy
  {
  }
  RelationSide.LeftSide LibCal_SubscriberEventRow
  {
    #keys: '3[415136.0.671975176][415136.0.671975175][415136.0.671975177]'
    Cardinality: '0to1'
    ObjectDefinition: LibCal_SubscriberEventCell
    OwningSide: 'Reference'
  }
  RelationSide.RightSide LibCal_SubscriberEventCell
  {
    #keys: '3[415136.0.671975179][415136.0.671975178][415136.0.671975180]'
    Cardinality: '1toN'
    ObjectDefinition: LibCal_SubscriberEventRow
    OwningSide: 'Reference'
  }
}
_Main/BL/Relations/Relation_LibCal_SubscriberEventTable_LibCal_SubscriberEventColumn_LibCal_Sub.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,26 @@
Quintiq file version 2.0
#parent: #root
Relation LibCal_SubscriberEventTable_LibCal_SubscriberEventColumn_LibCal_SubscriberEventColumn_LibCal_SubscriberEventTable
{
  #keys: '1[415136.0.671975067]'
  ProceduralSequenceRelationStrategy
  {
    #keys: '13[0.0.0][415136.0.671975160][415136.0.671975154][415136.0.671975161][415136.0.671975155][415136.0.671975162][415136.0.671975156][415136.0.671975163][415136.0.671975157][415136.0.671975164][415136.0.671975158][415136.0.671975165][415136.0.671975159]'
    SequenceElementSuffix: 'Column'
    SequenceSuffix: 'Column'
  }
  RelationSide.LeftSide LibCal_SubscriberEventColumn
  {
    #keys: '3[415136.0.671975069][415136.0.671975068][415136.0.671975070]'
    Cardinality: '1toN'
    ObjectDefinition: LibCal_SubscriberEventTable
    OwningSide: 'Owned'
  }
  RelationSide.RightSide LibCal_SubscriberEventTable
  {
    #keys: '3[415136.0.671975072][415136.0.671975071][415136.0.671975073]'
    Cardinality: '0to1'
    ObjectDefinition: LibCal_SubscriberEventColumn
    OwningSide: 'Reference'
  }
}
_Main/BL/Relations/Relation_LibCal_SubscriberEventTable_LibCal_SubscriberEventRow_LibCal_Subscr.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,23 @@
Quintiq file version 2.0
#parent: #root
Relation LibCal_SubscriberEventTable_LibCal_SubscriberEventRow_LibCal_SubscriberEventRow_LibCal_SubscriberEventTable
{
  #keys: '1[415136.0.671975080]'
  DefaultRelationStrategy
  {
  }
  RelationSide.LeftSide LibCal_SubscriberEventRow
  {
    #keys: '3[415136.0.671975082][415136.0.671975081][415136.0.671975083]'
    Cardinality: '1toN'
    ObjectDefinition: LibCal_SubscriberEventTable
    OwningSide: 'Owned'
  }
  RelationSide.RightSide LibCal_SubscriberEventTable
  {
    #keys: '3[415136.0.671975085][415136.0.671975084][415136.0.671975086]'
    Cardinality: '0to1'
    ObjectDefinition: LibCal_SubscriberEventRow
    OwningSide: 'Reference'
  }
}
_Main/BL/Type_LibCal_Calendar/_ROOT_Type_LibCal_Calendar.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,6 @@
Quintiq file version 2.0
#root
#parent: #DomainModel
Type LibCal_Calendar #extension
{
}
_Main/BL/Type_LibCal_SubscriberEventCell/Attribute_Value.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,7 @@
Quintiq file version 2.0
#parent: #root
Attribute Value
{
  #keys: '3[415136.0.671975132][415136.0.671975131][415136.0.671975133]'
  ValueType: String
}
_Main/BL/Type_LibCal_SubscriberEventCell/_ROOT_Type_LibCal_SubscriberEventCell.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,10 @@
Quintiq file version 2.0
#root
#parent: #DomainModel
Type LibCal_SubscriberEventCell
{
  #keys: '5[415136.0.671975128][415136.0.671975126][0.0.0][415136.0.671975127][415136.0.671975129]'
  BaseType: Object
  Description: '日历不可用事件表的单元格'
  StructuredName: 'LibCal_SubscriberEventCells'
}
_Main/BL/Type_LibCal_SubscriberEventColumn/Attribute_Index.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,7 @@
Quintiq file version 2.0
#parent: #root
Attribute Index
{
  #keys: '3[415136.0.671975104][415136.0.671975103][415136.0.671975105]'
  ValueType: Number
}
_Main/BL/Type_LibCal_SubscriberEventColumn/Attribute_Name.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute Name
{
  #keys: '3[415136.0.671975094][415136.0.671975093][415136.0.671975095]'
  Description: '名称'
  ValueType: String
}
_Main/BL/Type_LibCal_SubscriberEventColumn/Attribute_Period.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,7 @@
Quintiq file version 2.0
#parent: #root
Attribute Period
{
  #keys: '3[415136.0.703300314][415136.0.703300313][415136.0.703300315]'
  ValueType: Date
}
_Main/BL/Type_LibCal_SubscriberEventColumn/Attribute_RowName.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,7 @@
Quintiq file version 2.0
#parent: #root
Attribute RowName
{
  #keys: '3[415136.0.674522587][415136.0.674522586][415136.0.674522588]'
  ValueType: String
}
_Main/BL/Type_LibCal_SubscriberEventColumn/Function_CalcIndex.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,13 @@
Quintiq file version 2.0
#parent: #root
Function CalcIndex
{
  TextBody:
  [*
    // ç”„兰鸽 May-28-2024 (created)
    value := ifexpr( isnull( this.PreviousColumn() ), 0, this.PreviousColumn().Index() + 1 )
    this.Index( value );
  *]
}
_Main/BL/Type_LibCal_SubscriberEventColumn/Method_FilterByDatePeriod.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,19 @@
Quintiq file version 2.0
#parent: #root
Method FilterByDatePeriod (
  Date start,
  Date end
) declarative remote as Boolean
{
  TextBody:
  [*
    // ç”„兰鸽 May-29-2024 (created)
    value := false;
    info( this.Index(), this.Period(), start, end );
    if( this.Index() < 2  ){
        value := true;
    }
    return value;
  *]
}
_Main/BL/Type_LibCal_SubscriberEventColumn/_ROOT_Type_LibCal_SubscriberEventColumn.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,10 @@
Quintiq file version 2.0
#root
#parent: #DomainModel
Type LibCal_SubscriberEventColumn
{
  #keys: '5[415136.0.671975059][415136.0.671975057][0.0.0][415136.0.671975058][415136.0.671975060]'
  BaseType: Object
  Description: '日历不可用事件表的列'
  StructuredName: 'LibCal_SubscriberEventColumns'
}
_Main/BL/Type_LibCal_SubscriberEventRow/Attribute_Event.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute Event
{
  #keys: '3[415136.0.675350014][415136.0.675350013][415136.0.675350015]'
  Description: '事件'
  ValueType: String
}
_Main/BL/Type_LibCal_SubscriberEventRow/Attribute_EventType.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute EventType
{
  #keys: '3[415136.0.675350024][415136.0.675350023][415136.0.675350025]'
  Description: '事件类型'
  ValueType: String
}
_Main/BL/Type_LibCal_SubscriberEventRow/Attribute_RowNr.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute RowNr
{
  #keys: '3[415136.0.671975114][415136.0.671975113][415136.0.671975115]'
  IsReadOnly: true
  ValueType: Number
}
_Main/BL/Type_LibCal_SubscriberEventRow/Attribute_Subscriber.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute Subscriber
{
  #keys: '3[415136.0.671975222][415136.0.671975221][415136.0.671975223]'
  Description: '产线'
  ValueType: String
}
_Main/BL/Type_LibCal_SubscriberEventRow/Method_FilterBySubscriberAndEventType.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,17 @@
Quintiq file version 2.0
#parent: #root
Method FilterBySubscriberAndEventType (
  LibCal_Calendars subscribers
) declarative remote as Boolean
{
  TextBody:
  [*
    // ç”„兰鸽 May-29-2024 (created)
    value := false;
    if( exists( subscribers, Elements, e, e.CalendarID() = this.Subscriber() ) ){
      value := true;
    }
    return value;
  *]
}
_Main/BL/Type_LibCal_SubscriberEventRow/_ROOT_Type_LibCal_SubscriberEventRow.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,10 @@
Quintiq file version 2.0
#root
#parent: #DomainModel
Type LibCal_SubscriberEventRow
{
  #keys: '5[415136.0.671975064][415136.0.671975062][0.0.0][415136.0.671975063][415136.0.671975065]'
  BaseType: Object
  Description: '日历不可用事件表的行'
  StructuredName: 'LibCal_SubscriberEventRows'
}
_Main/BL/Type_LibCal_SubscriberEventTable/Attribute_ID.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute ID
{
  #keys: '3[415136.0.671975032][415136.0.671975031][415136.0.671975033]'
  IsReadOnly: true
  ValueType: String
}
_Main/BL/Type_LibCal_SubscriberEventTable/Attribute_Name.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute Name
{
  #keys: '3[415136.0.671975022][415136.0.671975021][415136.0.671975023]'
  Description: '名称'
  ValueType: String
}
_Main/BL/Type_LibCal_SubscriberEventTable/Method_InitializeDay.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,29 @@
Quintiq file version 2.0
#parent: #root
Method InitializeDay (
  LibCal_SubscriberEventTable table,
  LibCal_SubscriberEventRow row,
  DateTime starttime,
  DateTime endtime
)
{
  TextBody:
  [*
    // ç”„兰鸽 May-29-2024 (created)
    for(  startTime := starttime; startTime < endtime; startTime := startTime.StartOfNextDay() ){
      time := startTime.Format( 'M/D/Y' );
      column := selectobject( table, LibCal_SubscriberEventColumn, column, column.Name() = time );
      if( isnull( column ) ){
        column := table.LibCal_SubscriberEventColumn( relnew, Name := time, Period := startTime.Date() );
      }
      duration := startTime.StartOfNextDay() - startTime;
      if( startTime.StartOfNextDay() > endtime ){
        duration := endtime - startTime;
      }
    //  info( startTime, column.Name(), duration.AsQUILL(), duration.HoursAsReal() );
      cell := column.LibCal_SubscriberEventCell( relnew, Value := [String]duration.HoursAsReal() );
      row.LibCal_SubscriberEventCell( relinsert, cell );
    }
  *]
}
_Main/BL/Type_LibCal_SubscriberEventTable/Method_InitializeMonth.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,32 @@
Quintiq file version 2.0
#parent: #root
Method InitializeMonth (
  LibCal_SubscriberEventTable table,
  LibCal_SubscriberEventRow row,
  DateTime starttime,
  DateTime endtime
)
{
  TextBody:
  [*
    // ç”„兰鸽 May-29-2024 (created)
    for(  startTime := starttime; startTime < endtime; startTime := startTime.StartOfNextMonth() ){
      time := startTime;
      if( starttime = startTime ){
        time := startTime.StartOfMonth();
      }
      column := selectobject( table, LibCal_SubscriberEventColumn, column, column.Name() = time.Format( 'M/D/Y' ) );
      if( isnull( column ) ){
        column := table.LibCal_SubscriberEventColumn( relnew, Name := time.Format( 'M/D/Y' ), Period := time.Date() );
      }
      duration := startTime.StartOfNextMonth() - startTime;
      if( startTime.StartOfNextMonth() > endtime ){
        duration := endtime - startTime;
      }
    //  info( startTime, column.Name(), duration.AsQUILL(), duration.HoursAsReal() );
      cell := column.LibCal_SubscriberEventCell( relnew, Value := [String]duration.HoursAsReal() );
      row.LibCal_SubscriberEventCell( relinsert, cell );
    }
  *]
}
_Main/BL/Type_LibCal_SubscriberEventTable/Method_InitializeTable.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,56 @@
Quintiq file version 2.0
#parent: #root
Method InitializeTable (
  LibCal_Calendars subscribers,
  LibCal_EventCategory category
)
{
  TextBody:
  [*
    // ç”„兰鸽 May-28-2024 (created)
    rownr                 := this.LibCal_SubscriberEventRow( relsize );
    subscribercolumn      := selectobject( this, LibCal_SubscriberEventColumn, column, column.RowName() = 'Line' );
    if( isnull( subscribercolumn ) ){
      subscribercolumn := this.LibCal_SubscriberEventColumn( relnew, RowName := 'Line' );
    }
    eventcolumn := selectobject( this, LibCal_SubscriberEventColumn, column, column.RowName() = 'Event' );
    if( isnull( eventcolumn ) ){
      eventcolumn := this.LibCal_SubscriberEventColumn( relnew, RowName := 'Event' );
    }
    timezone := this.LibCal_Calendar().GetTimeZone();
    traverse( subscribers, Elements, subscriber ){
    //  info( '------------------------', subscriber.CalendarID(), subscriber.CalendarType() );
    //  traverse( subscriber,Participation.astype( LibCal_Subscription ).LeadingParticipation, participation ){
      traverse( subscriber,Participation.astype( LibCal_Subscription ).LeadingParticipation, participation, participation.Event().EventCategory() = category ){
    //    info( '------------------------', participation.Event().Subject(), '------', participation.Event().EventCategory().Name() );
        event := participation.Event();
        row := selectobject( this, LibCal_SubscriberEventRow, row, row.Subscriber() = subscriber.CalendarID() and row.Event() = event.Subject() and row.EventType() = event.EventType() );
        if( isnull( row ) ){
          row := this.LibCal_SubscriberEventRow( relnew, RowNr := rownr, Subscriber := subscriber.CalendarID(), Event := event.Subject(), EventType := event.EventType() );
          if( counter( this, LibCal_SubscriberEventRow, linerow, linerow.Subscriber() = row.Subscriber() ) = 1 ){
            subscribercell := subscribercolumn.LibCal_SubscriberEventCell( relnew, Value := row.Subscriber() );
            row.LibCal_SubscriberEventCell( relinsert, subscribercell );
          }
          eventcell := eventcolumn.LibCal_SubscriberEventCell( relnew, Value := row.Event() );
          row.LibCal_SubscriberEventCell( relinsert, eventcell );
          rownr := rownr + 1;
        }
        endTime     := participation.EndDate().DateTime( timezone ).AddAsPeriod( timezone, event.EndTimeOfDay() );
        startTime   := participation.StartDate().DateTime( timezone ).AddAsPeriod( timezone, event.StartTimeOfDay() );
    //    info( this.ID(), startTime, endTime );
        if( this.ID() = 'Day' ){
          this.InitializeDay( this, row, startTime, endTime );
        }else if( this.ID() = 'Week' ){
          this.InitializeWeek( this, row, startTime, endTime );
        }else{
          this.InitializeMonth( this, row, startTime, endTime );
        }
      }
    }
  *]
}
_Main/BL/Type_LibCal_SubscriberEventTable/Method_InitializeWeek.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,32 @@
Quintiq file version 2.0
#parent: #root
Method InitializeWeek (
  LibCal_SubscriberEventTable table,
  LibCal_SubscriberEventRow row,
  DateTime starttime,
  DateTime endtime
)
{
  TextBody:
  [*
    // ç”„兰鸽 May-29-2024 (created)
    for(  startTime := starttime; startTime < endtime; startTime := startTime.StartOfNextWeek() ){
      time := startTime;
      if( starttime = startTime ){
        time := startTime.StartOfWeek();
      }
      column := selectobject( table, LibCal_SubscriberEventColumn, column, column.Name() = time.Format( 'M/D/Y' ) );
      if( isnull( column ) ){
        column := table.LibCal_SubscriberEventColumn( relnew, Name := time.Format( 'M/D/Y' ), Period := time.Date() );
      }
      duration := startTime.StartOfNextWeek() - startTime;
      if( startTime.StartOfNextWeek() > endtime ){
        duration := endtime - startTime;
      }
    //  info( startTime, column.Name(), duration.AsQUILL(), duration.HoursAsReal() );
      cell := column.LibCal_SubscriberEventCell( relnew, Value := [String]duration.HoursAsReal() );
      row.LibCal_SubscriberEventCell( relinsert, cell );
    }
  *]
}
_Main/BL/Type_LibCal_SubscriberEventTable/StaticMethod_InitializeTable.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,22 @@
Quintiq file version 2.0
#parent: #root
StaticMethod InitializeTable (
  LibCal_Calendars subscribers,
  LibCal_Calendar owner,
  LibCal_EventCategory category
)
{
  TextBody:
  [*
    // ç”„兰鸽 May-28-2024 (created)
    if( owner.LibCal_SubscriberEventTable( relsize ) < 1 ){
      owner.LibCal_SubscriberEventTable( relnew, ID := 'Day', Name := 'Day' );
      owner.LibCal_SubscriberEventTable( relnew, ID := 'Week', Name := 'Week' );
      owner.LibCal_SubscriberEventTable( relnew, ID := 'Month', Name := 'Month' );
    }
    info('-----------------------------', owner.LibCal_SubscriberEventTable( relsize ), subscribers.Size(), isnull( category ) );
    traverse( owner, LibCal_SubscriberEventTable, table ){
      table.InitializeTable( subscribers, category );
    }
  *]
}
_Main/BL/Type_LibCal_SubscriberEventTable/_ROOT_Type_LibCal_SubscriberEventTable.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,10 @@
Quintiq file version 2.0
#root
#parent: #DomainModel
Type LibCal_SubscriberEventTable
{
  #keys: '5[415136.0.671975018][415136.0.671975016][0.0.0][415136.0.671975017][415136.0.671975019]'
  BaseType: Object
  Description: '日历不可用事件表'
  StructuredName: 'LibCal_SubscriberEventTables'
}
_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Response_MacroPlanner_ContextMenuCapacities_MenuCapacitiesUnavailableEvent_O.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,16 @@
Quintiq file version 2.0
#parent: ContextMenuCapacities/MenuCapacitiesUnavailableEvent
Response OnClick () id:Response_MacroPlanner_ContextMenuCapacities_MenuCapacitiesUnavailableEvent_OnClick
{
  #keys: '[415136.0.667550585]'
  CanBindMultiple: false
  DefinitionID: 'Responsedef_WebMenu_OnClick'
  QuillAction
  {
    Body:
    [*
      ApplicationScope.ViewManager().ResetUserViewById( "Calendar_unavailable_event_view", true);
    *]
    GroupServerCalls: false
  }
}
_Main/UI/MacroPlannerWebApp/Component_FormCalendarUnavailableEvent/Component_MatrixEditorTable.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,100 @@
Quintiq file version 2.0
Component MatrixEditorTable
{
  #keys: '[415136.0.671350612]'
  BaseType: 'WebMatrixEditor'
  Children:
  [
    Component MatrixEditorTableCell
    {
      #keys: '[415136.0.671350613]'
      BaseType: 'WebMatrixEditorCell'
      Children:
      [
        Component DataExtractorTableCell
        {
          #keys: '[415136.0.671350614]'
          BaseType: 'WebDataExtractor'
          Properties:
          [
            DataType: 'LibCal_SubscriberEventTable'
            Source: 'dhTable'
            Taborder: 0
            Transformation: 'LibCal_SubscriberEventColumn.LibCal_SubscriberEventCell'
          ]
        }
      ]
      Properties:
      [
        Attributes: 'Value'
        Column: 'LibCal_SubscriberEventColumn'
        Row: 'LibCal_SubscriberEventRow'
        Taborder: 0
      ]
    }
    Component MatrixEditorTableRows
    {
      #keys: '[415136.0.671350617]'
      BaseType: 'WebMatrixEditorHeaderLevel'
      Children:
      [
        Component DataExtractorTableRows
        {
          #keys: '[415136.0.671350618]'
          BaseType: 'WebDataExtractor'
          Properties:
          [
            DataType: 'LibCal_SubscriberEventTable'
            FilterArguments: 'subscribers:dhSubscribers'
            FixedFilter: 'object.FilterBySubscriberAndEventType( subscribers )'
            Source: 'dhTable'
            Taborder: 0
            Transformation: 'LibCal_SubscriberEventRow'
          ]
        }
      ]
      Properties:
      [
        Legend: 'RowNr'
        SortCriteria: 'RowNr'
        Taborder: 1
      ]
    }
    Component MatrixEditorTableColumns
    {
      #keys: '[415136.0.671350621]'
      BaseType: 'WebMatrixEditorHeaderLevel'
      Children:
      [
        Component DataExtractorTableColumns
        {
          #keys: '[415136.0.671350622]'
          BaseType: 'WebDataExtractor'
          Properties:
          [
            DataType: 'LibCal_SubscriberEventTable'
            FilterArguments: 'starttime:dhStartDate;endtime:dhEndDate'
            Source: 'dhTable'
            Taborder: 0
            Transformation: 'LibCal_SubscriberEventColumn'
          ]
        }
      ]
      Properties:
      [
        Legend: 'Name'
        SortCriteria: 'Index'
        Taborder: 2
      ]
    }
    #child: matrixEditorActionBarPageTable
    #child: matrixeditorContextMenuTable
  ]
  Properties:
  [
    Columns: 'MatrixEditorTableColumns'
    ContextMenu: 'matrixeditorContextMenuTable'
    Rows: 'MatrixEditorTableRows'
    Taborder: 1
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormCalendarUnavailableEvent/Component_PanelCalendarEventTypes.def
@@ -5,6 +5,8 @@
  BaseType: 'WebPanel'
  Properties:
  [
    FixedSize: true
    MinimumColumns: 39
    Taborder: 1
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormCalendarUnavailableEvent/Component_PanelCalendarLineList.def
ÎļþÒÑɾ³ý
_Main/UI/MacroPlannerWebApp/Component_FormCalendarUnavailableEvent/Component_PanelCalendarSearchList.def
@@ -5,12 +5,13 @@
  BaseType: 'WebPanel'
  Children:
  [
    #child: PanelCalendarLineList
    #child: PanelCalendarEventTypes
    #child: pnlSubscribers_549
  ]
  Properties:
  [
    FixedSize: true
    Orientation: 'horizontal'
    Taborder: 0
    Taborder: 2
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormCalendarUnavailableEvent/Component_PanelCalendarUnavailableEvent.def
@@ -7,6 +7,41 @@
  [
    #child: PanelCalendarSearchList
    #child: PanelCalendarUnavailableEventSearchList
    Component dhCalendar
    {
      #keys: '[415136.0.701850574]'
      BaseType: 'WebDataHolder'
      Databinding: 'LibCal_Calendar'
      Children:
      [
        Component deCalendar
        {
          #keys: '[415136.0.701850618]'
          BaseType: 'WebDataExtractor'
          Properties:
          [
            DataType: 'LibCal_CalendarRegistry'
            Source: 'LibCal_GlobalState.dhGlobalCalendarRegistry'
            Taborder: 0
            Transformation: 'CommonCalendar'
          ]
        }
      ]
      Properties:
      [
        Taborder: 0
      ]
    }
    Component dhCategory
    {
      #keys: '[415136.0.701811642]'
      BaseType: 'WebDataHolder'
      Databinding: 'LibCal_EventCategory'
      Properties:
      [
        Taborder: 1
      ]
    }
  ]
  Properties:
  [
_Main/UI/MacroPlannerWebApp/Component_FormCalendarUnavailableEvent/Component_PanelCalendarUnavailableEventSearchList.def
@@ -10,6 +10,6 @@
  ]
  Properties:
  [
    Taborder: 1
    Taborder: 3
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormCalendarUnavailableEvent/Component_PanelDate.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,56 @@
Quintiq file version 2.0
Component PanelDate
{
  #keys: '[415136.0.668311160]'
  BaseType: 'WebPanel'
  Children:
  [
    Component DateSelectorStartTime id:DateSelectorStartTime_806
    {
      #keys: '[415136.0.668311203]'
      BaseType: 'WebDateSelector'
      Properties:
      [
        Label: 'Start time'
        Taborder: 0
      ]
    }
    Component DateSelectorEndTime id:DateSelectorEndTime_819
    {
      #keys: '[415136.0.668311223]'
      BaseType: 'WebDateSelector'
      Properties:
      [
        Date: 9999-12-31
        Label: 'End time'
        Taborder: 1
      ]
    }
    Component dhStartDate id:dhStartDate_529
    {
      #keys: '[415136.0.701820404]'
      BaseType: 'WebDataHolder'
      Databinding: 'Date'
      Properties:
      [
        Taborder: 2
      ]
    }
    Component dhEndDate id:dhEndDate_480
    {
      #keys: '[415136.0.701820426]'
      BaseType: 'WebDataHolder'
      Databinding: 'Date'
      Properties:
      [
        Taborder: 3
      ]
    }
  ]
  Properties:
  [
    FixedSize: true
    Orientation: 'horizontal'
    Taborder: 0
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormCalendarUnavailableEvent/Component_PanelExport.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,35 @@
Quintiq file version 2.0
Component PanelExport
{
  #keys: '[415136.0.668311240]'
  BaseType: 'WebPanel'
  Children:
  [
    Component ButtonHeader id:ButtonHeader_763
    {
      #keys: '[415136.0.668311275]'
      BaseType: 'WebButton'
      Properties:
      [
        Image: 'EXPORT1'
        Taborder: 0
      ]
    }
    Component ButtonInitialize
    {
      #keys: '[415136.0.670072471]'
      BaseType: 'WebButton'
      Properties:
      [
        Image: 'ARROW_CIRCLE'
        Taborder: 1
      ]
    }
  ]
  Properties:
  [
    FixedSize: true
    Orientation: 'horizontal'
    Taborder: 2
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormCalendarUnavailableEvent/Component_PanelHeader.def
@@ -3,8 +3,15 @@
{
  #keys: '[415136.0.658772785]'
  BaseType: 'WebPanel'
  Children:
  [
    #child: PanelPeriods
    #child: PanelDate
    #child: PanelExport
  ]
  Properties:
  [
    FixedSize: true
    Orientation: 'horizontal'
    Taborder: 0
  ]
_Main/UI/MacroPlannerWebApp/Component_FormCalendarUnavailableEvent/Component_PanelList.def
@@ -3,6 +3,21 @@
{
  #keys: '[415136.0.658772810]'
  BaseType: 'WebPanel'
  Children:
  [
    #child: MatrixEditorTable
    Component dhTable
    {
      #keys: '[415136.0.672310139]'
      BaseType: 'WebDataHolder'
      Databinding: 'LibCal_SubscriberEventTable'
      Properties:
      [
        Description: '表'
        Taborder: 0
      ]
    }
  ]
  Properties:
  [
    Taborder: 1
_Main/UI/MacroPlannerWebApp/Component_FormCalendarUnavailableEvent/Component_PanelPeriods.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,29 @@
Quintiq file version 2.0
Component PanelPeriods
{
  #keys: '[415136.0.667550798]'
  BaseType: 'WebPanel'
  Children:
  [
    Component RadioButtonGroupUseForPlanning
    {
      #keys: '[415136.0.667550833]'
      BaseType: 'WebRadioButtonGroup'
      Properties:
      [
        BoundValue: 'Day'
        ButtonLabels: 'Day;Week;Month'
        ButtonValues: 'Day;Week;Month'
        Orientation: 'horizontal'
        Taborder: 0
        Title: 'Periods'
        Tooltip: '<html>Select if the periods are used for planning or merely for visualization.<br>The planning periods define the granularity at which planning is done.<br>In case of overlapping planning periods, the smallest ones are used.<br>The planning periods are shown in the period overview in blue.</html>'
      ]
    }
  ]
  Properties:
  [
    Orientation: 'horizontal'
    Taborder: 1
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormCalendarUnavailableEvent/Component_abpListSubscribers.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,10 @@
Quintiq file version 2.0
Component abpListSubscribers
{
  #keys: '[415136.0.666211731]'
  BaseType: 'listActionBarPage'
  Properties:
  [
    Taborder: 2
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormCalendarUnavailableEvent/Component_cmSubscribers.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,24 @@
Quintiq file version 2.0
Component cmSubscribers
{
  #keys: '[415136.0.666211729]'
  BaseType: 'listContextMenu'
  Children:
  [
    Component mnDelete
    {
      #keys: '[415136.0.666211730]'
      BaseType: 'WebMenu'
      Properties:
      [
        Image: 'DELETE'
        Taborder: 3
        Title: 'Delete'
      ]
    }
  ]
  Properties:
  [
    Taborder: 0
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormCalendarUnavailableEvent/Component_lstSubscribers.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,61 @@
Quintiq file version 2.0
Component lstSubscribers
{
  #keys: '[415136.0.666211726]'
  BaseType: 'WebList'
  Children:
  [
    Component deSubscribers
    {
      #keys: '[415136.0.666211727]'
      BaseType: 'WebDataExtractor'
      Properties:
      [
        DataType: 'structured[LibCal_Calendar]'
        Source: 'dhPotentialSubscribers'
        Taborder: 0
        Transformation: 'Elements'
      ]
    }
    Component dslSubscribers
    {
      #keys: '[415136.0.666211728]'
      BaseType: 'WebDataSetLevel'
      Children:
      [
        #child: cmSubscribers
      ]
      Properties:
      [
        Columns: 'CalendarID'
        ContextMenu: 'cmSubscribers'
        SortCriteria: 'CalendarID'
        Taborder: 1
      ]
    }
    #child: abpListSubscribers
  ]
  Properties:
  [
    SelectionCheckboxes: true
    Taborder: 3
  ]
  ResponseDefinitions:
  [
    DelegatedResponseDefinition OnClick id:Responsedef_lstSubscribers_WebMenu_OnClick
    {
      #keys: '[415136.0.666211718]'
      Initiator: 'WebMenu'
      IsInherited: false
      ResponseType: 'OnClick'
      Arguments:
      [
        ResponseDefinitionArgument selection
        {
          #keys: '[3739.0.1873455]'
          Binding: 'this.Selection()'
        }
      ]
    }
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormCalendarUnavailableEvent/Component_matrixEditorActionBarPageTable.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,10 @@
Quintiq file version 2.0
Component matrixEditorActionBarPageTable
{
  #keys: '[415136.0.671350625]'
  BaseType: 'matrixEditorActionBarPage'
  Properties:
  [
    Taborder: 3
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormCalendarUnavailableEvent/Component_matrixeditorContextMenuTable.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,10 @@
Quintiq file version 2.0
Component matrixeditorContextMenuTable
{
  #keys: '[415136.0.671350628]'
  BaseType: 'matrixeditorContextMenu'
  Properties:
  [
    Taborder: 4
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormCalendarUnavailableEvent/Component_pnlSubscribers#549.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,49 @@
Quintiq file version 2.0
Component pnlSubscribers id:pnlSubscribers_549
{
  #keys: '[415136.0.666211724]'
  BaseType: 'WebPanel'
  Children:
  [
    Component dhPotentialSubscribers
    {
      #keys: '[415136.0.666211725]'
      BaseType: 'WebDataHolder'
      Databinding: 'structured[LibCal_Calendar]*'
      Properties:
      [
        Taborder: 0
      ]
    }
    #child: lstSubscribers
    Component lblIsInitialized
    {
      #keys: '[415136.0.666211733]'
      BaseType: 'WebLabel'
      Properties:
      [
        Taborder: 2
        Text: 'false'
        Visible: false
      ]
    }
    Component dhSubscribers
    {
      #keys: '[415136.0.666211734]'
      BaseType: 'WebDataHolder'
      Databinding: 'structured[LibCal_Calendar]*'
      Properties:
      [
        Taborder: 1
      ]
    }
  ]
  Properties:
  [
    Border: true
    FixedSize: true
    MinimumColumns: 39
    Taborder: 0
    Title: 'Subscribers'
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormCalendarUnavailableEvent/Method_InitializeSubscribers.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,39 @@
Quintiq file version 2.0
#parent: #root
Method InitializeSubscribers () id:Method_FormCalendarUnavailableEvent_InitializeSubscribers
{
  #keys: '[415136.0.666291565]'
  Body:
  [*
    owner_i := LibCal_GlobalState.dhGlobalCalendarRegistry().Data().CommonCalendar();
    category_i := selectobject( owner_i,CalendarRegistry.EventCategory, category, category.Name() = 'Unavaliable' );
    dhCategory.Data(category_i);
    sEvent := owner_i.Event( relshadow,
                             EventID        := [String]Key::NextPersistentKey(),
    //                         StartTimeOfDay := start_i.TimeOfDay( timezone ),
    //                         EndTimeOfDay   := end_i  .TimeOfDay( timezone ),
                             EventCategory  := category_i,
                             IsDefault      := false );
    sLeadPart := owner_i.Participation( relshadow, LibCal_LeadingParticipation,
                                        ParticipationID := [String]Key::NextPersistentKey()
    //                                    ,StartDate       := start_i.Date( timezone ),
    //                                    EndDate         := end_i  .Date( timezone )
                                        );
    calendar             := sLeadPart.Calendar();
    potentialSubscribers := calendar.GetPotentialSubscribers();
    // Remove the calendar of the initiator (cannot subscribe to self).
    initiator := sEvent.Calendar();
    if( potentialSubscribers.Find( initiator ) >= 0 )
    {
      potentialSubscribers.Remove( initiator );
    }
    dhPotentialSubscribers.Data( &potentialSubscribers );
    lstSubscribers.CheckAll();
  *]
}
_Main/UI/MacroPlannerWebApp/Component_FormCalendarUnavailableEvent/Response_OnCreated.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,17 @@
Quintiq file version 2.0
#parent: #root
Response OnCreated () id:Response_FormCalendarUnavailableEvent_OnCreated
{
  #keys: '[415136.0.667561809]'
  CanBindMultiple: false
  DefinitionID: 'Responsedef_WebComponent_OnCreated'
  QuillAction
  {
    Body:
    [*
      this.InitializeSubscribers();
    *]
    GroupServerCalls: false
  }
}
_Main/UI/MacroPlannerWebApp/Component_FormCalendarUnavailableEvent/Response_PanelDate_DateSelectorEndTime_OnChanged.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,16 @@
Quintiq file version 2.0
#parent: PanelDate/DateSelectorEndTime_819
Response OnChanged () id:Response_PanelDate_DateSelectorEndTime_OnChanged
{
  #keys: '[415136.0.701820524]'
  CanBindMultiple: false
  DefinitionID: 'Responsedef_WebDateTimeFieldBase_OnChanged'
  QuillAction
  {
    Body:
    [*
      dhEndDate.Data(this.Date());
    *]
    GroupServerCalls: false
  }
}
_Main/UI/MacroPlannerWebApp/Component_FormCalendarUnavailableEvent/Response_PanelDate_DateSelectorStartTime_OnChanged.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,16 @@
Quintiq file version 2.0
#parent: PanelDate/DateSelectorStartTime_806
Response OnChanged () id:Response_PanelDate_DateSelectorStartTime_OnChanged
{
  #keys: '[415136.0.701820445]'
  CanBindMultiple: false
  DefinitionID: 'Responsedef_WebDateTimeFieldBase_OnChanged'
  QuillAction
  {
    Body:
    [*
      dhStartDate.Data(this.Date());
    *]
    GroupServerCalls: false
  }
}
_Main/UI/MacroPlannerWebApp/Component_FormCalendarUnavailableEvent/Response_PanelExport_ButtonHeader_OnClick.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,16 @@
Quintiq file version 2.0
#parent: PanelExport/ButtonHeader_763
Response OnClick () id:Response_PanelExport_ButtonHeader_OnClick
{
  #keys: '[415136.0.676930317]'
  CanBindMultiple: false
  DefinitionID: 'Responsedef_WebButton_OnClick'
  QuillAction
  {
    Body:
    [*
      info( '--------------------------------', dhStartDate.Data(), dhEndDate.Data() )
    *]
    GroupServerCalls: false
  }
}
_Main/UI/MacroPlannerWebApp/Component_FormCalendarUnavailableEvent/Response_PanelExport_ButtonInitialize_OnClick.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,16 @@
Quintiq file version 2.0
#parent: PanelExport/ButtonInitialize
Response OnClick () id:Response_PanelExport_ButtonInitialize_OnClick
{
  #keys: '[415136.0.670072520]'
  CanBindMultiple: false
  DefinitionID: 'Responsedef_WebButton_OnClick'
  QuillAction
  {
    Body:
    [*
      LibCal_SubscriberEventTable::InitializeTable( dhPotentialSubscribers.Data(), dhCalendar.Data(), dhCategory.Data() );
    *]
    GroupServerCalls: false
  }
}
_Main/UI/MacroPlannerWebApp/Component_FormCalendarUnavailableEvent/Response_PanelPeriods_RadioButtonGroupUseForPlanning_OnChanged.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,22 @@
Quintiq file version 2.0
#parent: PanelPeriods/RadioButtonGroupUseForPlanning
Response OnChanged () id:Response_PanelPeriods_RadioButtonGroupUseForPlanning_OnChanged
{
  #keys: '[415136.0.672310167]'
  CanBindMultiple: false
  DefinitionID: 'Responsedef_WebRadioButtonGroup_OnChanged'
  QuillAction
  {
    Body:
    [*
      owner_i := LibCal_GlobalState.dhGlobalCalendarRegistry().Data().CommonCalendar();
      if( owner_i.LibCal_SubscriberEventTable( relsize ) < 1 ){
        LibCal_SubscriberEventTable::InitializeTable( dhPotentialSubscribers.Data(), dhCalendar.Data(), dhCategory.Data() );
      }
      table := selectobject( owner_i, LibCal_SubscriberEventTable, table, table.ID() = this.BoundValue() );
      dhTable.Data( table );
    *]
    GroupServerCalls: false
  }
}
_Main/UI/MacroPlannerWebApp/Component_FormCalendarUnavailableEvent/Response_lstSubscribers_OnCheckedChanged.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,20 @@
Quintiq file version 2.0
#parent: lstSubscribers
Response OnCheckedChanged (
  structured[LibCal_Calendar] checkeditems
) id:Response_lstSubscribers_OnCheckedChanged
{
  #keys: '[415136.0.666211720]'
  CanBindMultiple: false
  DefinitionID: 'Responsedef_WebList_OnCheckedChanged'
  QuillAction
  {
    Body:
    [*
      subscribers := checkeditems.Copy();
      subscribers.Sort( attribute( LibCal_Calendar, CalendarID ), true );
      dhSubscribers.Data( &subscribers );
    *]
    GroupServerCalls: false
  }
}
_Main/UI/MacroPlannerWebApp/Component_FormCalendarUnavailableEvent/Response_lstSubscribers_OnSelectionChanged.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,32 @@
Quintiq file version 2.0
#parent: lstSubscribers
Response OnSelectionChanged (
  LibCal_Calendar selection
) id:Response_lstSubscribers_OnSelectionChanged
{
  #keys: '[415136.0.666211719]'
  CanBindMultiple: false
  DefinitionID: 'Responsedef_WebList_OnSelectionChanged'
  QuillAction
  {
    Body:
    [*
      // Initialize the list by setting the checkmark for the subscribing calendars when this has not been done before.
      // This should only be done when OnSelectionChanged is executed for the first time.
      //if( lblIsInitialized.Text() = "false" )
      //{
      //  // Get the calendars of the subscriptions.
      //  calendars := selectset( dhEvent.Data(), LeadingParticipation.Subscription.Calendar, calendar, true, true ).Unique();
      //
      //  traverse( calendars, Elements, subscriber )
      //  {
      //    lstSubscribers.ExtendCheckByKey( subscriber.Key() );
      //  }
      //
      //  // Register that the list has been initialized.
      //  lblIsInitialized.Text( "true" );
      //}
    *]
    GroupServerCalls: false
  }
}
_Main/UI/MacroPlannerWebApp/Component_FormCalendarUnavailableEvent/Response_lstSubscribers_mnDelete_OnClick.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,26 @@
Quintiq file version 2.0
#parent: lstSubscribers
Response OnClick (
  structured[LibCal_Subscription] selection
) id:Response_lstSubscribers_mnDelete_OnClick
{
  #keys: '[415136.0.666211722]'
  CanBindMultiple: false
  DefinitionID => /lstSubscribers/Responsedef_lstSubscribers_WebMenu_OnClick
  Initiator: 'mnDelete'
  QuillAction
  {
    Body:
    [*
      traverse( selection, Elements, e ){
        leadingP := e.LeadingParticipation();
        if( leadingP.Subscription( relsize ) > 0 ){
          leadingP.Event().Delete();
          leadingP.Delete();
        }
        e.Delete();
      }
    *]
    GroupServerCalls: false
  }
}
_Main/UI/MacroPlannerWebApp/Component_LibCal_dlgMultipleEvent/Component_ListList.def
@@ -28,7 +28,7 @@
      ]
      Properties:
      [
        Columns: '[{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"Calendar.CalendarID","title":"CalendarID","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"Calendar.CalendarID"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"Event.Subject","title":"Subject","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"Event.Subject"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"StartDate","title":"StartDate","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"StartDate"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"Event.StartTimeOfDay","title":"StartTimeOfDay","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"Event.StartTimeOfDay"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"Event.EndTimeOfDay","title":"EndTimeOfDay","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"Event.EndTimeOfDay"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"Event.Description","title":"Description","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"Event.Description"}}]'
        Columns: '[{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"Calendar.CalendarID","title":"CalendarID","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"Calendar.CalendarID"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"Event.EventType","title":"EventType","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"Event.EventType"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"Event.Subject","title":"Subject","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"Event.Subject"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"StartDate","title":"StartDate","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"StartDate"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"Event.StartTimeOfDay","title":"StartTimeOfDay","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"Event.StartTimeOfDay"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"Event.EndTimeOfDay","title":"EndTimeOfDay","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"Event.EndTimeOfDay"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"Event.Description","title":"Description","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"Event.Description"}}]'
        ContextMenu: 'listContextMenu967'
        Taborder: 2
      ]
_Main/UI/MacroPlannerWebApp/Views/Calendar_unavailable_event_view.vw
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,140 @@
Quintiq file version 2.0
{
  viewcontents
  {
    forms
    {
      form_FormCalendarUnavailableEvent
      {
        title: 'QMacroPlanner::FormCalendarUnavailableEvent'
        shown: true
        componentID: 'QMacroPlanner::FormCalendarUnavailableEvent'
        layout
        {
          mode: 'open'
          rowPosition: 1
          rowSpan: 16
          columnPosition: 1
          columnSpan: 12
        }
        components
        {
          FormCalendarUnavailableEvent_PanelCalendarUnavailableEvent
          {
            sizeRatio: 1
          }
          FormCalendarUnavailableEvent_PanelCalendarSearchList
          {
            sizeRatio: 1
          }
          FormCalendarUnavailableEvent_pnlSubscribers
          {
            sizeRatio: 1
          }
          FormCalendarUnavailableEvent_lstSubscribers
          {
          }
          FormCalendarUnavailableEvent_dslSubscribers
          {
            groupDepth: -1
            column_CalendarID
            {
              columnId: 'CalendarID'
              dataPath: 'CalendarID'
              dataType: 'string'
              index: 0
              subtotals: ''
              width: 150
            }
          }
          FormCalendarUnavailableEvent_PanelCalendarEventTypes
          {
            sizeRatio: 1
          }
          FormCalendarUnavailableEvent_PanelCalendarUnavailableEventSearchList
          {
            sizeRatio: 1
          }
          FormCalendarUnavailableEvent_PanelHeader
          {
            sizeRatio: 1
          }
          FormCalendarUnavailableEvent_PanelDate
          {
            sizeRatio: 1
          }
          FormCalendarUnavailableEvent_PanelPeriods
          {
            sizeRatio: 1
          }
          FormCalendarUnavailableEvent_PanelExport
          {
            sizeRatio: 1
          }
          FormCalendarUnavailableEvent_PanelList
          {
            sizeRatio: 1
          }
          FormCalendarUnavailableEvent_MatrixEditorTable
          {
            gridColor: '#c4c4c4'
            totalHeaderWidth: 37
            attributeHeaderWidthRatio: 0.6
            nameHeaderWidthRatio: 0.4
            columnWidth: 238
            horizontalGrid: true
            verticalGrid: true
            backendState
            {
              componentId: 'QMacroPlanner::FormCalendarUnavailableEvent.MatrixEditorTable'
              state
              {
                cells
                {
                  attributes
                  {
                    attribute_Value
                    {
                      type: 'MatrixEditorWebApiCellDataModelInterest'
                      index: 0
                      rowsubtotal: ''
                      columnsubtotal: ''
                      attribute: 'Value'
                    }
                  }
                }
                columns
                {
                  sorting
                  {
                    criteria: "datamember:'Index'"
                  }
                }
                rows
                {
                  sorting
                  {
                    criteria: "datamember:'RowNr'"
                  }
                }
              }
            }
          }
        }
      }
    }
    userconfigurableinformation
    {
    }
    page: ''
    group: ''
    index: 13
    image: 'CALENDAR_PREFERENCES'
    description: ''
  }
  formatversion: 2
  id: 'Calendar_unavailable_event_view'
  name: 'Calendar unavailable event view'
  isglobal: false
  isroot: true
}