Quintiq file version 2.0
#parent: btnExport
Response OnClick () id:Response_LibCal_pnlExportButton_btnExport_OnClick
{
  #keys: '[131094.0.2075445445]'
  CanBindMultiple: false
  DefinitionID: 'Responsedef_WebButton_OnClick'
  Precondition:
  [*
    return LibCal_GlobalState.HasImportExportImplemented();
  *]
  QuillAction
  {
    Body:
    [*
      // Trigger the export of the calendars to XLS.
      // The Server will store the data that must we written to the file in attribute ExportData
      // of the ExportSource (a subtype of LibCal_ImportExport).
      // Attribute ExportID of the ExportSource is 'monitored' by lblExportID using databinding.
      // When the value of the attribute changes, the label will trigger the writing of the data to file
      // iff the ExportID matches the value that is provided to the Server by this method.
      // So the assignment of exportID to attribute ExportID acts as a callback from the Server to the
      // Client that the ExportData is ready to be retrieved.
      
      // Get the calendars that will be exported.
      calendars := LibCal_pnlExportButton.GetCalendars();
      
      // Generate an exportID and register it so that there can be recognized later on that the ExportData is for this Client.
      exportID := Key::NextPersistentKey();
      lblMyExportID.Text( [String]exportID );
      
      // Trigger the export, providing the exportID and the calendars-to-be-exported.
      exportSource := LibCal_pnlExportButton.GetExportSource();
      if( not isnull( exportSource ) )
      {
        exportSource.Export( exportID, calendars );
      }
    *]
    GroupServerCalls: false
  }
}
