| Quintiq file version 2.0 | 
| #parent: #root | 
| Method InitializeTable ( | 
|   LibCal_Calendars subscribers | 
| ) | 
| { | 
|   TextBody: | 
|   [* | 
|     // 甄兰鸽 May-28-2024 (created) | 
|     rownr                 := this.LibCal_SubscriberEventRow( relsize ); | 
|      | 
|     traverse( subscribers, Elements, subscriber ){ | 
|      | 
|       traverse( subscriber,Participation.astype( LibCal_Subscription ).LeadingParticipation, participation, participation.Event().EventCategory().Name() = 'Unavailable' ){ | 
|         event := participation.Event(); | 
|          | 
|         row := selectobject( this, LibCal_SubscriberEventRow, row, row.Subscriber() = subscriber.CalendarID()  | 
|                              and row.Event() = event.Subject()  | 
|                              and row.EventType() = guard( event.EventType().Name(), '' ) | 
|                              ); | 
|          | 
|         if( isnull( row ) ){ | 
|           row := this.LibCal_SubscriberEventRow( relnew, RowNr := rownr, Subscriber := subscriber.CalendarID(),  | 
|                                                  Event := event.Subject(),  | 
|                                                  EventType := guard( event.EventType().Name(), '' ) ); | 
|            | 
|           rownr := rownr + 1; | 
|         } | 
|          | 
|         traverse( participation, ExplicitTimeInterval, eti ){ | 
|           row.InitializeDate( this, eti.Start(), eti.End(), event.Description() ); | 
|         } | 
|      | 
|       } | 
|     } | 
|     //info( '----------------------1------------------------', this.LibCal_SubscriberEventColumn( relsize ) ); | 
|     //traverse( this, LibCal_SubscriberEventColumn, column ){ | 
|     //  info( '------------------------', column.Name(), column.Period(), column.TimeUnit() ); | 
|     //} | 
|              | 
|     Transaction::Transaction().Propagate( attribute( LibCal_SubscriberEventTable, MaxDayDate ) ); | 
|     Transaction::Transaction().Propagate( attribute( LibCal_SubscriberEventTable, MaxWeekDate ) ); | 
|     Transaction::Transaction().Propagate( attribute( LibCal_SubscriberEventTable, MaxMonthDate ) ); | 
|     Transaction::Transaction().Propagate( attribute( LibCal_SubscriberEventTable, MinDayDate ) ); | 
|     Transaction::Transaction().Propagate( attribute( LibCal_SubscriberEventTable, MinWeekDate ) ); | 
|     Transaction::Transaction().Propagate( attribute( LibCal_SubscriberEventTable, MinMonthDate ) ); | 
|     this.ProcessColumnDay(); | 
|     this.ProcessColumnWeek(); | 
|     this.ProcessColumnMonth(); | 
|     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 ); | 
|         } | 
|       } | 
|     } | 
|   *] | 
| } |