示例#1
0
        void bkwDataLoader_DoWork(object sender, DoWorkEventArgs e)
        {
            Dictionary <List <string>, ManualResetEvent>   handle = (Dictionary <List <string>, ManualResetEvent>)((object[])e.Argument)[0];
            Dictionary <ManualResetEvent, List <RowData> > Filler = (Dictionary <ManualResetEvent, List <RowData> >)((object[])e.Argument)[1];
            List <string> exportFieldList = (List <string>)((object[])e.Argument)[2];

            foreach (List <string> splitList in handle.Keys)
            {
                try
                {
                    if (ExportPackage != null)
                    {
                        ExportPackageEventArgs args = new ExportPackageEventArgs();
                        foreach (string var in splitList)
                        {
                            args.List.Add(var);
                        }
                        foreach (string var in exportFieldList)
                        {
                            if (_ExportableFields.Contains(var))
                            {
                                args.ExportFields.Add(var);
                            }
                        }
                        ExportPackage.Invoke(this, args);
                        Filler[handle[splitList]].AddRange(args.Items);
                    }
                }
                catch (Exception ex)
                {
                    //CurrentUser user = CurrentUser.Instance;
                    //SmartSchool.ExceptionHandler.BugReporter.ReportException("SmartSchool", user.SystemVersion, ex, false);
                }
                finally
                {
                    handle[splitList].Set();
                }
            }
        }
 /// <summary>
 /// 填入這個Package的RowData
 /// </summary>
 public List <RowData> GetExportData(IEnumerable <string> idInPackage, IEnumerable <string> selectedFields)
 {
     if (ExportPackage != null)
     {
         ExportPackageEventArgs args = new ExportPackageEventArgs();
         foreach (string var in idInPackage)
         {
             args.List.Add(var);
         }
         foreach (string var in selectedFields)
         {
             if (_ExportableFields.Contains(var))
             {
                 args.ExportFields.Add(var);
             }
         }
         ExportPackage.Invoke(this, args);
         return(args.Items);
     }
     else
     {
         return(new List <RowData>());
     }
 }