From 180d8d74c2a67a693047e1a587007c734e4f62fb Mon Sep 17 00:00:00 2001
From: lazhen <17772815105@139.com>
Date: 星期二, 23 七月 2024 14:49:29 +0800
Subject: [PATCH] 日历不可用事件添加查询按钮
---
_Main/UI/MacroPlannerWebApp/Component_FormCalendarUnavailableEvent/Component_MatrixEditorTable.def | 24 ++---
_Main/UI/MacroPlannerWebApp/Component_FormCalendarUnavailableEvent/Response_PanelExport_ButtonHeader_OnClick.def | 4
_Main/UI/MacroPlannerWebApp/Component_FormCalendarUnavailableEvent/Response_PanelExport_ButtonSearch_OnClick.def | 26 ++++++
/dev/null | 22 -----
_Main/UI/MacroPlannerWebApp/Component_FormCalendarUnavailableEvent/Component_PanelExport.def | 14 +++
_Main/UI/MacroPlannerWebApp/Component_FormCalendarUnavailableEvent/Response_OnCreated.def | 10 ++
_Main/UI/MacroPlannerWebApp/Views/Calendar_unavailable_event_view.vw | 4
_Main/BL/Type_LibCal_SubscriberEventTable/StaticMethod_Export.qbl | 101 ++++++++++++++-----------
_Main/UI/MacroPlannerWebApp/Component_FormCalendarUnavailableEvent/Component_PanelList.def | 14 +++
_Main/BL/Type_LibCal_SubscriberEventTable/StaticMethod_GetDefaultName.qbl | 10 ++
10 files changed, 141 insertions(+), 88 deletions(-)
diff --git a/_Main/BL/Type_LibCal_SubscriberEventTable/StaticMethod_Export.qbl b/_Main/BL/Type_LibCal_SubscriberEventTable/StaticMethod_Export.qbl
index 77d0846..7cdbcf7 100644
--- a/_Main/BL/Type_LibCal_SubscriberEventTable/StaticMethod_Export.qbl
+++ b/_Main/BL/Type_LibCal_SubscriberEventTable/StaticMethod_Export.qbl
@@ -1,66 +1,79 @@
Quintiq file version 2.0
#parent: #root
StaticMethod Export (
- LibCal_SubscriberEventTable table
+ LibCal_SubscriberEventColumns columns,
+ LibCal_SubscriberEventRows rows
) as BinaryValue
{
TextBody:
[*
// 鐢勫叞楦� May-30-2024 (created)
// lihongji Jun-8-2023 (created)
- returnBinaryData := BinaryData::Construct();
- tableGroupHandle := TableGroupHandle::Create( "" );
+ xmlDOMI := XMLDOMImplementation::Create();
+ xmlDOM := xmlDOMI.CreateDocumentFromString( '<?xml version="1.0" encoding="UTF-16"?><table><name>' + LibCal_SubscriberEventTable::GetDefaultName() + '</name></table>' );
- xmlImpl := XMLDOMImplementation::Create();
- xmlDoc := xmlImpl.CreateDocument();
- xmlSeri := xmlImpl.CreateSerializer();
+ tableElement := xmlDOM.GetElementByTagName( "table", 0 );
+
+ //浜х嚎
+ subscribercolumnelement := xmlDOM.CreateElement( "column" );
+ subscribernameelement := xmlDOM.CreateElement( "name" );
+ subscribertypeelement := xmlDOM.CreateElement( "type" );
+ subscribernameelement.TextContent( '浜х嚎' );
+ subscribertypeelement.TextContent( "String" );
+ subscribercolumnelement.AppendChild( subscribernameelement );
+ subscribercolumnelement.AppendChild( subscribertypeelement );
+ //浜嬩欢
+ eventcolumnelement := xmlDOM.CreateElement( "column" );
+ eventnameelement := xmlDOM.CreateElement( "name" );
+ eventtypeelement := xmlDOM.CreateElement( "type" );
+ eventnameelement.TextContent( '浜嬩欢' );
+ eventtypeelement.TextContent( "String" );
+ eventcolumnelement.AppendChild( eventnameelement );
+ eventcolumnelement.AppendChild( eventtypeelement );
+
+ tableElement.AppendChild( subscribercolumnelement );
+ tableElement.AppendChild( eventcolumnelement );
- xmlTable := xmlDoc.CreateElement( "table" );
- xmlTableName := xmlDoc.CreateElement( "name" );
- xmlTableName.TextContent( table.Name() );
- xmlTable.AppendChild( xmlTableName );
+ traverse ( columns, Elements, column ) {
+ columnelement := xmlDOM.CreateElement( "column" );
+ nameelement := xmlDOM.CreateElement( "name" );
+ typeelement := xmlDOM.CreateElement( "type" );
+ nameelement.TextContent( column.Name() );
+ typeelement.TextContent( "String" );
+ columnelement.AppendChild( nameelement );
+ columnelement.AppendChild( typeelement );
- traverse ( table, LibCal_SubscriberEventColumn, column ) {
- xmlColumn := xmlDoc.CreateElement( "column" );
- xmlColumnName := xmlDoc.CreateElement( "name" );
- if( column.Index() = 0 ){
- xmlColumnName.TextContent( '浜х嚎' );
- }else if(column.Index() = 1 ){
- xmlColumnName.TextContent( '浜嬩欢' );
- }else{
- xmlColumnName.TextContent( column.Name() );
- }
- xmlColumn.AppendChild( xmlColumnName );
- xmlColumnType := xmlDoc.CreateElement( "type" );
- xmlColumnType.TextContent( "String" );
- xmlColumn.AppendChild( xmlColumnType );
-
- rowTotal := table.LibCal_SubscriberEventRow( relsize );
- for ( i := 0; i < rowTotal; i++ ) {
- cell := select( column, LibCal_SubscriberEventCell, cell, cell.LibCal_SubscriberEventRow().RowNr() = i );
- row := cell.LibCal_SubscriberEventRow();
- xmlCell := xmlDoc.CreateElement( "cell" );
+ cells := selectsortedset( column, LibCal_SubscriberEventCell, cell, rows.Find( cell.LibCal_SubscriberEventRow() ) > -1, cell.LibCal_SubscriberEventRow().RowNr() );
+
+ traverse ( cells, Elements, c ) {
if( column.Index() = 0 ){
- xmlCell.SetAttribute( "value", row.Subscriber() );
- }else if(column.Index() = 1 ){
- xmlCell.SetAttribute( "value", row.Event() );
- }else{
- xmlCell.SetAttribute( "value", cell.Value() );
+ row := c.LibCal_SubscriberEventRow();
+ //subscriber
+ subscribercellElement := xmlDOM.CreateElement( "cell" );
+ subscribercellElement.SetAttribute( "value", row.Subscriber() );
+ subscribercolumnelement.AppendChild( subscribercellElement );
+ //event
+ eventcellElement := xmlDOM.CreateElement( "cell" );
+ eventcellElement.SetAttribute( "value", row.Event() );
+ eventcolumnelement.AppendChild( eventcellElement );
}
- xmlColumn.AppendChild( xmlCell );
+ cellElement := xmlDOM.CreateElement( "cell" );
+ cellElement.SetAttribute( "value", c.Value() );
+ columnelement.AppendChild( cellElement );
}
-
- xmlTable.AppendChild( xmlColumn );
+ tableElement.AppendChild( columnelement );
}
- xmlDoc.AppendChild( xmlTable );
- xmlStr := xmlSeri.WriteToString( xmlDoc );
- tableHandle := TableHandle::ImportXML( BinaryValue::Construct( xmlStr ) );
+ xmlString := xmlDOMI.CreateSerializer().WriteToString( xmlDOM )
+
+ //info( xmlString );
+
+ tableGroupHandle := TableGroupHandle::Create( LibCal_SubscriberEventTable::GetDefaultName() );
+ tableHandle := TableHandle::ImportXML( BinaryValue::Construct( xmlString ) );
tableGroupHandle.Add( tableHandle );
- //}
- returnBinaryData := XLS::SaveTableGroupToBinaryData( tableGroupHandle, true );
+ binaryData := XLS::SaveTableGroupToBinaryData( tableGroupHandle, true );
- return returnBinaryData.AsBinaryValue();
+ return binaryData.AsBinaryValue();
*]
}
diff --git a/_Main/BL/Type_LibCal_SubscriberEventTable/StaticMethod_GetDefaultName.qbl b/_Main/BL/Type_LibCal_SubscriberEventTable/StaticMethod_GetDefaultName.qbl
new file mode 100644
index 0000000..ab03a51
--- /dev/null
+++ b/_Main/BL/Type_LibCal_SubscriberEventTable/StaticMethod_GetDefaultName.qbl
@@ -0,0 +1,10 @@
+Quintiq file version 2.0
+#parent: #root
+StaticMethod GetDefaultName () as String
+{
+ TextBody:
+ [*
+ // 鐢勫叞楦� Jul-23-2024 (created)
+ return 'Calendar unavailable event';
+ *]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormCalendarUnavailableEvent/Component_MatrixEditorTable.def b/_Main/UI/MacroPlannerWebApp/Component_FormCalendarUnavailableEvent/Component_MatrixEditorTable.def
index 4612e07..67028e6 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_FormCalendarUnavailableEvent/Component_MatrixEditorTable.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormCalendarUnavailableEvent/Component_MatrixEditorTable.def
@@ -17,10 +17,10 @@
BaseType: 'WebDataExtractor'
Properties:
[
- DataType: 'LibCal_SubscriberEventTable'
- Source: 'dhTable'
+ DataType: 'structured[LibCal_SubscriberEventColumn]'
+ Source: 'dhColumns'
Taborder: 0
- Transformation: 'LibCal_SubscriberEventColumn.LibCal_SubscriberEventCell'
+ Transformation: 'Elements.LibCal_SubscriberEventCell'
]
}
]
@@ -44,12 +44,10 @@
BaseType: 'WebDataExtractor'
Properties:
[
- DataType: 'LibCal_SubscriberEventTable'
- FilterArguments: 'subscribers:dhSubscribers;eventtypes:dhEventTypes'
- FixedFilter: 'object.FilterBySubscriberAndEventType( subscribers, eventtypes )'
- Source: 'dhTable'
+ DataType: 'structured[LibCal_SubscriberEventRow]'
+ Source: 'dhRows'
Taborder: 0
- Transformation: 'LibCal_SubscriberEventRow'
+ Transformation: 'Elements'
]
}
]
@@ -72,13 +70,11 @@
BaseType: 'WebDataExtractor'
Properties:
[
- DataType: 'LibCal_SubscriberEventTable'
+ DataType: 'structured[LibCal_SubscriberEventColumn]'
Description: 'object.FilterByDatePeriod( Date::MinDate(), Date::MaxDate() )'
- FilterArguments: 'period:dhDate'
- FixedFilter: 'object.FilterByDatePeriod( period.Start(), period.End() )'
- Source: 'dhTable'
+ Source: 'dhColumns'
Taborder: 0
- Transformation: 'LibCal_SubscriberEventColumn'
+ Transformation: 'Elements'
]
}
]
@@ -110,6 +106,6 @@
Columns: 'MatrixEditorTableColumns'
ContextMenu: 'matrixeditorContextMenuTable'
Rows: 'MatrixEditorTableRows'
- Taborder: 1
+ Taborder: 2
]
}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormCalendarUnavailableEvent/Component_PanelExport.def b/_Main/UI/MacroPlannerWebApp/Component_FormCalendarUnavailableEvent/Component_PanelExport.def
index 15a8928..4178267 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_FormCalendarUnavailableEvent/Component_PanelExport.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormCalendarUnavailableEvent/Component_PanelExport.def
@@ -12,7 +12,7 @@
Properties:
[
Image: 'EXPORT1'
- Taborder: 0
+ Taborder: 1
]
}
Component ButtonInitialize
@@ -22,7 +22,17 @@
Properties:
[
Image: 'ARROW_CIRCLE'
- Taborder: 1
+ Taborder: 2
+ ]
+ }
+ Component ButtonSearch
+ {
+ #keys: '[415136.0.922435407]'
+ BaseType: 'WebButton'
+ Properties:
+ [
+ Label: 'Search'
+ Taborder: 0
]
}
]
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormCalendarUnavailableEvent/Component_PanelList.def b/_Main/UI/MacroPlannerWebApp/Component_FormCalendarUnavailableEvent/Component_PanelList.def
index 3a1f26f..23f141e 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_FormCalendarUnavailableEvent/Component_PanelList.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormCalendarUnavailableEvent/Component_PanelList.def
@@ -6,14 +6,24 @@
Children:
[
#child: MatrixEditorTable
- Component dhTable
+ Component dhColumns
{
#keys: '[415136.0.672310139]'
BaseType: 'WebDataHolder'
- Databinding: 'LibCal_SubscriberEventTable'
+ Databinding: 'structured[LibCal_SubscriberEventColumn]*'
Properties:
[
Description: '琛�'
+ Taborder: 1
+ ]
+ }
+ Component dhRows
+ {
+ #keys: '[415136.0.922436014]'
+ BaseType: 'WebDataHolder'
+ Databinding: 'structured[LibCal_SubscriberEventRow]*'
+ Properties:
+ [
Taborder: 0
]
}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormCalendarUnavailableEvent/Response_OnCreated.def b/_Main/UI/MacroPlannerWebApp/Component_FormCalendarUnavailableEvent/Response_OnCreated.def
index 04b4ca1..0d64dac 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_FormCalendarUnavailableEvent/Response_OnCreated.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormCalendarUnavailableEvent/Response_OnCreated.def
@@ -11,6 +11,16 @@
[*
this.InitializeSubscribers();
+
+ columns := construct( LibCal_SubscriberEventColumns );
+ rows := construct( LibCal_SubscriberEventRows );
+
+ traverse( dhCalendar.Data(), LibCal_SubscriberEventTable, table, table.ID() = RadioButtonGroupUseForPlanning.BoundValue() ){
+ columns := selectset( table, LibCal_SubscriberEventColumn, column, true );
+ rows := selectset( table, LibCal_SubscriberEventRow, row, true );
+ }
+ dhColumns.Data( &columns );
+ dhRows.Data( &rows );
*]
GroupServerCalls: false
}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormCalendarUnavailableEvent/Response_PanelExport_ButtonHeader_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_FormCalendarUnavailableEvent/Response_PanelExport_ButtonHeader_OnClick.def
index 73a9922..63682a2 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_FormCalendarUnavailableEvent/Response_PanelExport_ButtonHeader_OnClick.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormCalendarUnavailableEvent/Response_PanelExport_ButtonHeader_OnClick.def
@@ -9,9 +9,9 @@
{
Body:
[*
- binaryValue := LibCal_SubscriberEventTable::Export( dhTable.Data() );
+ binaryValue := LibCal_SubscriberEventTable::Export( dhColumns.Data(), dhRows.Data() );
- Application.Download( "Unavailable events.xlsx", binaryValue.AsBinaryData() );
+ Application.Download( LibCal_SubscriberEventTable::GetDefaultName() + ".xlsx", binaryValue.AsBinaryData() );
*]
GroupServerCalls: false
}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormCalendarUnavailableEvent/Response_PanelExport_ButtonSearch_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_FormCalendarUnavailableEvent/Response_PanelExport_ButtonSearch_OnClick.def
new file mode 100644
index 0000000..43d167d
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormCalendarUnavailableEvent/Response_PanelExport_ButtonSearch_OnClick.def
@@ -0,0 +1,26 @@
+Quintiq file version 2.0
+#parent: PanelExport/ButtonSearch
+Response OnClick () id:Response_PanelExport_ButtonSearch_OnClick
+{
+ #keys: '[415136.0.922435443]'
+ CanBindMultiple: false
+ DefinitionID: 'Responsedef_WebButton_OnClick'
+ QuillAction
+ {
+ Body:
+ [*
+ columns := construct( LibCal_SubscriberEventColumns );
+ rows := construct( LibCal_SubscriberEventRows );
+ subscribers := dhSubscribers.Data();
+ eventtypes := dhEventTypes.Data();
+ date := dhDate.Data();
+ traverse( dhCalendar.Data(), LibCal_SubscriberEventTable, table, table.ID() = RadioButtonGroupUseForPlanning.BoundValue() ){
+ columns := selectset( table, LibCal_SubscriberEventColumn, column, column.FilterByDatePeriod( date.Start(), date.End() ) );
+ rows := selectset( table, LibCal_SubscriberEventRow, row, row.FilterBySubscriberAndEventType( subscribers, eventtypes ) );
+ }
+ dhColumns.Data( &columns );
+ dhRows.Data( &rows );
+ *]
+ GroupServerCalls: false
+ }
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormCalendarUnavailableEvent/Response_PanelPeriods_RadioButtonGroupUseForPlanning_OnChanged.def b/_Main/UI/MacroPlannerWebApp/Component_FormCalendarUnavailableEvent/Response_PanelPeriods_RadioButtonGroupUseForPlanning_OnChanged.def
deleted file mode 100644
index 29c6ed7..0000000
--- a/_Main/UI/MacroPlannerWebApp/Component_FormCalendarUnavailableEvent/Response_PanelPeriods_RadioButtonGroupUseForPlanning_OnChanged.def
+++ /dev/null
@@ -1,22 +0,0 @@
-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 := dhCalendar.Data();
- if( owner_i.LibCal_SubscriberEventTable( relsize ) < 1 ){
- LibCal_SubscriberEventTable::InitializeTable( dhPotentialSubscribers.Data(), dhCalendar.Data() );
- }
- table := selectobject( owner_i, LibCal_SubscriberEventTable, table, table.ID() = this.BoundValue() );
-
- dhTable.Data( table );
- *]
- GroupServerCalls: false
- }
-}
diff --git a/_Main/UI/MacroPlannerWebApp/Views/Calendar_unavailable_event_view.vw b/_Main/UI/MacroPlannerWebApp/Views/Calendar_unavailable_event_view.vw
index 4b625b8..6ec090a 100644
--- a/_Main/UI/MacroPlannerWebApp/Views/Calendar_unavailable_event_view.vw
+++ b/_Main/UI/MacroPlannerWebApp/Views/Calendar_unavailable_event_view.vw
@@ -107,10 +107,10 @@
FormCalendarUnavailableEvent_MatrixEditorTable
{
gridColor: '#c4c4c4'
- totalHeaderWidth: 37
+ totalHeaderWidth: 231
attributeHeaderWidthRatio: 0.6
nameHeaderWidthRatio: 0.4
- columnWidth: 238
+ columnWidth: 74
horizontalGrid: true
verticalGrid: true
backendState
--
Gitblit v1.9.3