public void ProcessData(IMatrixData mdata, Parameters param, ref IMatrixData[] supplTables,
                                ref IDocumentData[] documents, ProcessInfo processInfo)
        {
            Relation[] relations = PerseusUtils.GetRelationsNumFilter(param, out string errString, out int[] colInds, out bool and);
            if (errString != null)
            {
                processInfo.ErrString = errString;
                return;
            }

            double[][] rows      = GetRows(mdata, colInds);
            List <int> valids    = new List <int>();
            List <int> notvalids = new List <int>();

            for (int i = 0; i < rows.Length; i++)
            {
                bool valid = PerseusUtils.IsValidRowNumFilter(rows[i], relations, and);

                if (!valid)
                {
                    notvalids.Add(i);
                }
            }
            if (param.GetParam <int>("Filter mode").Value == 2)
            {
                supplTables = new[] { PerseusPluginUtils.CreateSupplTabSplit(mdata, notvalids.ToArray()) };
            }
            PerseusPluginUtils.FilterRowsNew(mdata, param, GetValids(mdata, colInds, relations, and));
        }
Beispiel #2
0
 public void ProcessData(IMatrixData mdata, Parameters param, ref IMatrixData[] supplTables,
                         ref IDocumentData[] documents, ProcessInfo processInfo)
 {
     Relation[] relations = PerseusUtils.GetRelationsNumFilter(param, out string errString, out int[] colInds, out bool and);
     if (errString != null)
     {
         processInfo.ErrString = errString;
         return;
     }
     PerseusPluginUtils.FilterRows(mdata, param, GetValids(mdata, colInds, relations, and));
 }