lazhen
2024-07-22 3e3615ba9b1e68b1046e270f6add5487ad178ab7
Merge branch 'dev' of http://47.101.211.7:10101/r/VWED into dev-zlg

# Conflicts:
# _Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Component_abgSecondDevelopmentPlan.def
已修改6个文件
已添加22个文件
已删除1个文件
416 ■■■■ 文件已修改
_Main/BL/Dataset_InterfaceDataset/Daemon_ShippingActualInterface.qbl 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/InfoMessages.qbl 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Relations/Relation_InterfaceLoginfo_InterfaceDataset_InterfaceDataset_InterfaceLoginfo.qbl 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Relations/Relation_InterfaceLoginfo_ShippingActualData_ShippingActualData_InterfaceLog.qbl 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Relations/Relation_ShippingActualData_InterfaceDataset_InterfaceDataset_ShippingActual.qbl 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_InterfaceLoginfo/Attribute_ExecuteUser.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_InterfaceLoginfo/Attribute_FinishTime.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_InterfaceLoginfo/Attribute_InterfaceDateTime.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_InterfaceLoginfo/Attribute_Last.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_InterfaceLoginfo/Attribute_Message.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_InterfaceLoginfo/Attribute_Name.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_InterfaceLoginfo/Attribute_RequestBody.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_InterfaceLoginfo/Attribute_Response.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_InterfaceLoginfo/Attribute_ReturnMsg.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_InterfaceLoginfo/Attribute_ReturnSuccess.qbl 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_InterfaceLoginfo/Attribute_Success.qbl 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_InterfaceLoginfo/Attribute_TotalRow.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_InterfaceLoginfo/DefaultValue_Message.qbl 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_InterfaceLoginfo/DefaultValue_Name.qbl 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_InterfaceLoginfo/DefaultValue_Response.qbl 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_InterfaceLoginfo/Method_UpdateLast.qbl 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_InterfaceLoginfo/StaticMethod_CallInterface.qbl 52 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_InterfaceLoginfo/StaticMethod_CallToken.qbl 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_InterfaceLoginfo/_ROOT_Type_InterfaceLoginfo.qbl 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_ShippingActualData/StaticMethod_GenerateData.qbl 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_ShippingActualData/StaticMethod_Synchronize.qbl 54 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_LibCal_dlgMultipleEvent/Component_ListList.def 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_LibCal_dlgMultipleEvent/Component_listContextMenu967.def 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_LibCal_dlgMultipleEvent/Response_ListList_MenuDelete_OnClick.def 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Dataset_InterfaceDataset/Daemon_ShippingActualInterface.qbl
@@ -11,6 +11,6 @@
    options := DatasetFindOptions::Construct( 'InterfaceDataset' ).IncludeOffline( true ); //to load we must search offline datasets.
    mdskey := DatasetController::FindUnique( options );
    
    MDSInterfaceDataset::Root( mdskey ) -> ShippingActualData::Synchronize();
    MDSInterfaceDataset::Root( mdskey ) -> ShippingActualData::Synchronize( "Administrator" );
  *]
}
_Main/BL/InfoMessages.qbl
@@ -86,6 +86,26 @@
  {
    DefaultText: 'There are duplicate three digit codes present'
  }
  InfoMessage InterfaceDataset_Address
  {
    DefaultText: 'ds-yunrong-gw.dmp.vwfawedl.mobi'
  }
  InfoMessage InterfaceDataset_ContentType
  {
    DefaultText: 'application/json'
  }
  InfoMessage InterfaceDataset_ShippingActualData_Name
  {
    DefaultText: 'Shipping actual data'
  }
  InfoMessage InterfaceDataset_ShippingActualData_URL
  {
    DefaultText: '/data-service/api/service/post-data/V1.101/f4f94c47c1a2440898b5e1e2c0c5cbc8'
  }
  InfoMessage InterfaceDataset_Token_URL
  {
    DefaultText: '/authorization/token/api/open/token/generateToken?grant_type=client_credentials&client_id=19KxoxPF25cy96K8TL&client_secret=514390007906041965'
  }
  InfoMessage MP_ChangeLossSetting_CheckNull
  {
    DefaultText: 'The required field is blank.'
@@ -142,6 +162,10 @@
  {
    DefaultText: 'The Event type of binding Event exists.'
  }
  InfoMessage MP_LibCal_Event_ValidDate
  {
    DefaultText: 'This date is not within the planned cycle!'
  }
  InfoMessage MP_Routing_IllegalDateRange
  {
    DefaultText: 'The start date cannot be longer than the end date.'
_Main/BL/Relations/Relation_InterfaceLoginfo_InterfaceDataset_InterfaceDataset_InterfaceLoginfo.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,23 @@
Quintiq file version 2.0
#parent: #root
Relation InterfaceLoginfo_InterfaceDataset_InterfaceDataset_InterfaceLoginfo
{
  #keys: '1[415136.0.917964687]'
  DefaultRelationStrategy
  {
  }
  RelationSide.LeftSide InterfaceDataset
  {
    #keys: '3[415136.0.917964689][415136.0.917964688][415136.0.917964690]'
    Cardinality: '0to1'
    ObjectDefinition: InterfaceLoginfo
    OwningSide: 'Reference'
  }
  RelationSide.RightSide InterfaceLoginfo
  {
    #keys: '3[415136.0.917964692][415136.0.917964691][415136.0.917964693]'
    Cardinality: '1toN'
    ObjectDefinition: InterfaceDataset
    OwningSide: 'Owned'
  }
}
_Main/BL/Relations/Relation_InterfaceLoginfo_ShippingActualData_ShippingActualData_InterfaceLog.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,23 @@
Quintiq file version 2.0
#parent: #root
Relation InterfaceLoginfo_ShippingActualData_ShippingActualData_InterfaceLoginfo
{
  #keys: '1[415136.0.917964760]'
  DefaultRelationStrategy
  {
  }
  RelationSide.LeftSide ShippingActualData
  {
    #keys: '3[415136.0.917964762][415136.0.917964761][415136.0.917964763]'
    Cardinality: '1toN'
    ObjectDefinition: InterfaceLoginfo
    OwningSide: 'Owned'
  }
  RelationSide.RightSide InterfaceLoginfo
  {
    #keys: '3[415136.0.917964765][415136.0.917964764][415136.0.917964766]'
    Cardinality: '0to1'
    ObjectDefinition: ShippingActualData
    OwningSide: 'Reference'
  }
}
_Main/BL/Relations/Relation_ShippingActualData_InterfaceDataset_InterfaceDataset_ShippingActual.qbl
ÎļþÒÑɾ³ý
_Main/BL/Type_InterfaceLoginfo/Attribute_ExecuteUser.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute ExecuteUser
{
  #keys: '3[415136.0.917964722][415136.0.917964721][415136.0.917964723]'
  Description: '执行人'
  ValueType: String
}
_Main/BL/Type_InterfaceLoginfo/Attribute_FinishTime.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute FinishTime
{
  #keys: '3[415136.0.917964701][415136.0.917964700][415136.0.917964702]'
  Description: '完成时间'
  ValueType: DateTime
}
_Main/BL/Type_InterfaceLoginfo/Attribute_InterfaceDateTime.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute InterfaceDateTime
{
  #keys: '3[415136.0.917964734][415136.0.917964733][415136.0.917964735]'
  Description: '触发时间'
  ValueType: DateTime
}
_Main/BL/Type_InterfaceLoginfo/Attribute_Last.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute Last
{
  #keys: '3[415136.0.917964713][415136.0.917964712][415136.0.917964714]'
  Description: '是否是最新的接口数据'
  ValueType: Boolean
}
_Main/BL/Type_InterfaceLoginfo/Attribute_Message.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute Message
{
  #keys: '3[415136.0.917964728][415136.0.917964727][415136.0.917964729]'
  Description: '接口信息'
  ValueType: String
}
_Main/BL/Type_InterfaceLoginfo/Attribute_Name.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute Name
{
  #keys: '3[415136.0.917964704][415136.0.917964703][415136.0.917964705]'
  Description: '接口名称'
  ValueType: String
}
_Main/BL/Type_InterfaceLoginfo/Attribute_RequestBody.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute RequestBody
{
  #keys: '3[415136.0.917964731][415136.0.917964730][415136.0.917964732]'
  Description: '接口入参'
  ValueType: String
}
_Main/BL/Type_InterfaceLoginfo/Attribute_Response.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute Response
{
  #keys: '3[415136.0.917964710][415136.0.917964709][415136.0.917964711]'
  Description: '接口返回数据'
  ValueType: String
}
_Main/BL/Type_InterfaceLoginfo/Attribute_ReturnMsg.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute ReturnMsg
{
  #keys: '3[415136.0.917964719][415136.0.917964718][415136.0.917964720]'
  Description: '返回信息'
  ValueType: String
}
_Main/BL/Type_InterfaceLoginfo/Attribute_ReturnSuccess.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,7 @@
Quintiq file version 2.0
#parent: #root
Attribute ReturnSuccess
{
  #keys: '3[415136.0.917964737][415136.0.917964736][415136.0.917964738]'
  ValueType: Boolean
}
_Main/BL/Type_InterfaceLoginfo/Attribute_Success.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,7 @@
Quintiq file version 2.0
#parent: #root
Attribute Success
{
  #keys: '3[415136.0.917964716][415136.0.917964715][415136.0.917964717]'
  ValueType: Boolean
}
_Main/BL/Type_InterfaceLoginfo/Attribute_TotalRow.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute TotalRow
{
  #keys: '3[415136.0.917964725][415136.0.917964724][415136.0.917964726]'
  Description: '总行数'
  ValueType: Number
}
_Main/BL/Type_InterfaceLoginfo/DefaultValue_Message.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,6 @@
Quintiq file version 2.0
#parent: #root
DefaultValue
{
  TargetAttribute: Message
}
_Main/BL/Type_InterfaceLoginfo/DefaultValue_Name.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,6 @@
Quintiq file version 2.0
#parent: #root
DefaultValue
{
  TargetAttribute: Name
}
_Main/BL/Type_InterfaceLoginfo/DefaultValue_Response.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,6 @@
Quintiq file version 2.0
#parent: #root
DefaultValue
{
  TargetAttribute: Response
}
_Main/BL/Type_InterfaceLoginfo/Method_UpdateLast.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,15 @@
Quintiq file version 2.0
#parent: #root
Method UpdateLast
{
  TextBody:
  [*
    // ç”„兰鸽 Jul-22-2024 (created)
    if( this.Success() and this.ReturnSuccess() ){
      traverse( this,InterfaceDataset.InterfaceLoginfo,item,item.Last() = true and item.Name() = this.Name()){
        item.Last(false);
      }
      this.Last(true);
    }
  *]
}
_Main/BL/Type_InterfaceLoginfo/StaticMethod_CallInterface.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,52 @@
Quintiq file version 2.0
#parent: #root
StaticMethod CallInterface (
  InterfaceDataset owner,
  InterfaceLoginfo loginfo
) as owning JSON
{
  TextBody:
  [*
    // ç”„兰鸽 Jul-22-2024 (created)
    address       := Translations::InterfaceDataset_Address();
    httpinterface := HTTPInterface::Create( address,80);
    if( loginfo.Name() = Translations::InterfaceDataset_ShippingActualData_Name() ){//发运实际数据
      httpinterface.URL( Translations::InterfaceDataset_ShippingActualData_URL() );
      httpinterface.MediaType( Translations::InterfaceDataset_ContentType() );
      httpinterface.PostMethod( true );
      try{
        httpinterface.AddHeader("Authorization",InterfaceLoginfo::CallToken())
        httpinterface.Call( loginfo.RequestBody() );
        result := httpinterface.Result();
        loginfo.Response( result );
        loginfo.Success( true );
      }onerror{
        loginfo.ReturnMsg( e.GeneralInformation() );
      }
    }
    //后续公共处理
    loginfo.FinishTime( DateTime::ActualTime() );
    data             := JSON::Null().Build();
    if( loginfo.Success() ){
      resultJson     := JSON::Parse( loginfo.Response() );
      code           := resultJson.Get( "code" ).AsString();
      msg            := resultJson.Get( "message" ).AsString();
      data           := resultJson.Get( "data" );
      loginfo.ReturnMsg( msg );
      if( code = "200" ){
        total        := resultJson.Get( "dataSize" ).GetNumber();
        loginfo.ReturnSuccess( true );
        loginfo.TotalRow( total );
        loginfo.UpdateLast();
      }
    }
    return &data;
  *]
}
_Main/BL/Type_InterfaceLoginfo/StaticMethod_CallToken.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,21 @@
Quintiq file version 2.0
#parent: #root
StaticMethod CallToken () as String
{
  TextBody:
  [*
    // ç”„兰鸽 Jul-22-2024 (created)
    address       := Translations::InterfaceDataset_Address();
    httpinterface := HTTPInterface::Create( address,80);
    httpinterface.URL( Translations::InterfaceDataset_Token_URL() );
    httpinterface.MediaType( Translations::InterfaceDataset_ContentType() );
    httpinterface.Call();
    result := httpinterface.Result();
    resultJson     := JSON::Parse( result );
    token          := resultJson.Get( "access_token" ).AsString();
    return token;
  *]
}
_Main/BL/Type_InterfaceLoginfo/_ROOT_Type_InterfaceLoginfo.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,9 @@
Quintiq file version 2.0
#root
#parent: #DomainModel
Type InterfaceLoginfo
{
  #keys: '5[415136.0.917964684][415136.0.917964682][0.0.0][415136.0.917964683][415136.0.917964685]'
  BaseType: Object
  StructuredName: 'InterfaceLoginfos'
}
_Main/BL/Type_ShippingActualData/StaticMethod_GenerateData.qbl
@@ -1,7 +1,7 @@
Quintiq file version 2.0
#parent: #root
StaticMethod GenerateData (
  InterfaceDataset owner,
  InterfaceLoginfo owner,
  StringToDateTime cnv1,
  StringToDate cnv,
  JSON item
_Main/BL/Type_ShippingActualData/StaticMethod_Synchronize.qbl
@@ -1,33 +1,41 @@
Quintiq file version 2.0
#parent: #root
StaticMethod Synchronize (
  InterfaceDataset owner
  InterfaceDataset owner,
  String executor
)
{
  TextBody:
  [*
    //// ç”„兰鸽 Jul-17-2024 (created)
    column := owner.ShippingActualColumn( relnew, StartDate := Date::ActualDate(), Index := owner.ShippingActualColumn( relsize ) );
    date    := Date::ActualDate();
    loginfo := owner.InterfaceLoginfo( relnew, ExecuteUser := executor
                                       , Name := Translations::InterfaceDataset_ShippingActualData_Name()
                                       , InterfaceDateTime := DateTime::ActualTime()
                                       , Message := '发运实际数据'
                                       , RequestBody := ShippingActualData::GetRequestBody( date ) );
    // vwedadmin Jul-18-2024 (created)
    address := "ds-yunrong-gw.dmp.vwfawedl.mobi";
    //address := "ds-yunrong-gw.dmp.vwfawedl.mobi";
    //
    //           /// http://ds-yunrong-gw.dmp.vwfawedl.mobi/data-service/api/service/post-data/V1.101/f4f94c47c1a2440898b5e1e2c0c5cbc8
    //httpinterface := HTTPInterface::Create( address,80);
    //                httpinterface.URL("/data-service/api/service/post-data/V1.101/f4f94c47c1a2440898b5e1e2c0c5cbc8");
    //httpinterface.MediaType("application/json");
    ////httpinterface.SSL(true);
    ////httpinterface.SSLKeystore("MyKeystore");
    //httpinterface.PostMethod(true);
    ////str :='{
    ////    "inParam":
    ////        {
    ////            "dday" : "2024-07-11"
    ////        }
    ////}'
    //httpinterface.AddHeader("Authorization","MTlLeG94UEYyNWN5OTZLOFRMXzUyNzA4ODkwNzg1NTA2OTIxNV9wcml2YXRlS2V5XzE3MjEzMDM4Nzc0NTE=")
    //httpinterface.Call( ShippingActualData::GetRequestBody( column.StartDate() ) ); //Sends request with the header Authorization: 538baa9045a84c0e889f å¯ä»¥ä¼ é€’动态token çš„吧
    //result := httpinterface.Result();
    
               /// http://ds-yunrong-gw.dmp.vwfawedl.mobi/data-service/api/service/post-data/V1.101/f4f94c47c1a2440898b5e1e2c0c5cbc8
    httpinterface := HTTPInterface::Create( address,80);
                    httpinterface.URL("/data-service/api/service/post-data/V1.101/f4f94c47c1a2440898b5e1e2c0c5cbc8");
    httpinterface.MediaType("application/json");
    //httpinterface.SSL(true);
    //httpinterface.SSLKeystore("MyKeystore");
    httpinterface.PostMethod(true);
    //str :='{
    //    "inParam":
    //        {
    //            "dday" : "2024-07-11"
    //        }
    //}'
    httpinterface.AddHeader("Authorization","MTlLeG94UEYyNWN5OTZLOFRMXzUyNzA4ODkwNzg1NTA2OTIxNV9wcml2YXRlS2V5XzE3MjEzMDM4Nzc0NTE=")
    httpinterface.Call( ShippingActualData::GetRequestBody( column.StartDate() ) ); //Sends request with the header Authorization: 538baa9045a84c0e889f å¯ä»¥ä¼ é€’动态token çš„吧
    result := httpinterface.Result();
    data := InterfaceLoginfo::CallInterface( owner, loginfo );
    if( not isnull( data ) ){
    cnv1 := StringToDateTime::StandardConverter();
    cnv1.SetCustomConversion();
    cnv1.CustomFormatString( 'yyyy-MM-dd HH:mm:ss' );
@@ -35,13 +43,12 @@
    cnv2 := StringToDate::StandardConverter();
    cnv2.SetCustomConversion();
    cnv2.CustomFormatString( 'yyyy-MM-dd' );
    data := InterfaceDataset::GetResponseJsonData( result );
      column  := owner.ShippingActualColumn( relnew, StartDate := date, Index := owner.ShippingActualColumn( relsize ) );
    
    sadatalist := construct( ShippingActualDatas );
    for( seq := 0;seq < data.Size();seq++){
      item := data.Get(seq);
      sadata := ShippingActualData::GenerateData( owner, cnv1, cnv2, item );
        sadata := ShippingActualData::GenerateData( loginfo, cnv1, cnv2, item );
      sadatalist.Add( sadata );
    }
    beforerowsize := owner.ShippingActualRow( relsize );
@@ -62,5 +69,6 @@
        nr := nr + 1;
      }
    }
    }
  *]
}
_Main/UI/MacroPlannerWebApp/Component_LibCal_dlgMultipleEvent/Component_ListList.def
@@ -29,8 +29,9 @@
      ]
      Properties:
      [
        Columns: '[{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"StartDate","title":"StartDate","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":""}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"Participation.Calendar.CalendarID","title":"CalendarID","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"Participation.Calendar.CalendarID"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"Participation.Event.EventType.Name","title":"Name","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"Participation.Event.EventType.Name"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"Participation.Event.Subject","title":"Subject","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"Participation.Event.Subject"}},{"attribute":{"classtype":"WebApiDefinitionAttributeExpression","columnid":"StartDate","title":"StartDate","subtotals":"","tooltip":"","width":-1,"display":"shown","expressionbody":"object.Start().Date()"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"Participation.Event.StartTimeOfDay","title":"StartTimeOfDay","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"Participation.Event.StartTimeOfDay"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"Participation.Event.EndTimeOfDay","title":"EndTimeOfDay","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"Participation.Event.EndTimeOfDay"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"Participation.Event.Description","title":"Description","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"Participation.Event.Description"}}]'
        Columns: '[{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"Participation.Calendar.CalendarID","title":"产线","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"Participation.Calendar.CalendarID"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"Participation.Event.EventType.Name","title":"事件类型","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"Participation.Event.EventType.Name"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"Participation.Event.Subject","title":"事件","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"Participation.Event.Subject"}},{"attribute":{"classtype":"WebApiDefinitionAttributeExpression","columnid":"StartDate","title":"日期","subtotals":"","tooltip":"","width":-1,"display":"shown","expressionbody":"object.Start().Date()"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"Participation.Event.StartTimeOfDay","title":"开始时间","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"Participation.Event.StartTimeOfDay"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"Participation.Event.EndTimeOfDay","title":"结束时间","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"Participation.Event.EndTimeOfDay"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"Participation.Event.Description","title":"备注","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"Participation.Event.Description"}}]'
        ContextMenu: 'listContextMenu967'
        SortCriteria: 'desc:Start'
        Taborder: 2
      ]
    }
@@ -39,4 +40,22 @@
  [
    Taborder: 0
  ]
  ResponseDefinitions:
  [
    DelegatedResponseDefinition OnClick id:Responsedef_ListList_WebMenu_OnClick
    {
      #keys: '[415136.0.905460388]'
      Initiator: 'WebMenu'
      IsInherited: false
      ResponseType: 'OnClick'
      Arguments:
      [
        ResponseDefinitionArgument selection
        {
          #keys: '[1197.0.10345066]'
          Binding: 'this.Selection()'
        }
      ]
    }
  ]
}
_Main/UI/MacroPlannerWebApp/Component_LibCal_dlgMultipleEvent/Component_listContextMenu967.def
@@ -3,6 +3,20 @@
{
  #keys: '[415136.0.657740261]'
  BaseType: 'listContextMenu'
  Children:
  [
    Component MenuDelete
    {
      #keys: '[415136.0.905460274]'
      BaseType: 'WebMenu'
      Properties:
      [
        Image: 'DELETE'
        Taborder: 3
        Title: 'Delete'
      ]
    }
  ]
  Properties:
  [
    Taborder: 0
_Main/UI/MacroPlannerWebApp/Component_LibCal_dlgMultipleEvent/Response_ListList_MenuDelete_OnClick.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,21 @@
Quintiq file version 2.0
#parent: ListList
Response OnClick (
  structured[ExplicitTimeInterval] selection
) id:Response_ListList_MenuDelete_OnClick
{
  #keys: '[415136.0.905460576]'
  CanBindMultiple: false
  DefinitionID => /ListList/Responsedef_ListList_WebMenu_OnClick
  Initiator: 'MenuDelete'
  QuillAction
  {
    Body:
    [*
      traverse( selection, Elements, e ){
        e.Delete();
      }
    *]
    GroupServerCalls: false
  }
}