Quintiq file version 2.0 
 | 
#parent: #root 
 | 
Method InitializeTable ( 
 | 
  LibCal_Calendars subscribers 
 | 
) 
 | 
{ 
 | 
  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' ); 
 | 
    } 
 | 
     
 | 
    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().Name() = 'Unavailable' and participation.Event().Subject() = '测试' ){ 
 | 
    //    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().Name()  
 | 
                             ); 
 | 
         
 | 
        if( isnull( row ) ){ 
 | 
          row := this.LibCal_SubscriberEventRow( relnew, RowNr := rownr, Subscriber := subscriber.CalendarID(),  
 | 
                                                 Event := event.Subject(),  
 | 
                                                 EventType := event.EventType().Name() ); 
 | 
           
 | 
          subscribercell := subscribercolumn.LibCal_SubscriberEventCell( relnew, Value := row.Subscriber() ); 
 | 
          if( counter( this, LibCal_SubscriberEventRow, linerow, linerow.Subscriber() = row.Subscriber() ) <> 1 ){ 
 | 
            subscribercell.Value( '' ); 
 | 
          } 
 | 
          row.LibCal_SubscriberEventCell( relinsert, subscribercell ); 
 | 
           
 | 
          eventcell := eventcolumn.LibCal_SubscriberEventCell( relnew, Value := row.Event() ); 
 | 
          row.LibCal_SubscriberEventCell( relinsert, eventcell ); 
 | 
          rownr := rownr + 1; 
 | 
        } 
 | 
         
 | 
        traverse( participation, ExplicitTimeInterval, eti ){ 
 | 
          info( eti.Start(), eti.End(), eti.DefinitionName() ); 
 | 
          if( this.ID() = 'Day' ){ 
 | 
            this.InitializeDay( this, row, eti.Start(), eti.End(), event.Description() ); 
 | 
          }else if( this.ID() = 'Week' ){ 
 | 
            this.InitializeWeek( this, row, eti.Start(), eti.End(), event.Description() ); 
 | 
          }else{ 
 | 
            this.InitializeMonth( this, row, eti.Start(), eti.End(), event.Description() ); 
 | 
          } 
 | 
        } 
 | 
         
 | 
         
 | 
    // 
 | 
    //    endTime     := participation.EndDate().DateTime( timezone ).AddAsPeriod( timezone, event.EndTimeOfDay() ); 
 | 
    //    startTime   := participation.StartDate().DateTime( timezone ).AddAsPeriod( timezone, event.StartTimeOfDay() ); 
 | 
     
 | 
      } 
 | 
    } 
 | 
     
 | 
    //traverse( this, LibCal_SubscriberEventColumn, column ){ 
 | 
    //  traverse( this, LibCal_SubscriberEventRow, row ){ 
 | 
    //    if( not exists( column, LibCal_SubscriberEventCell, cell, cell.LibCal_SubscriberEventRow() = row ) ) { 
 | 
    //      cell := column.LibCal_SubscriberEventCell( relnew, Value := '' ); 
 | 
    //      row.LibCal_SubscriberEventCell( relinsert, cell ); 
 | 
    //    } 
 | 
    //  } 
 | 
    //} 
 | 
  *] 
 | 
} 
 |