private void MakeRefineryItemList() { UInt32 characterID = ((TextItemWithUInt32)TlbCmbCharacter.SelectedItem).Data; ItemAssets container = (ItemAssets)TextItemWithObject.GetData(TlbCmbContainer.SelectedItem); m_SelectedAssets = null; if (character_AllItems != characterID) { AssetFilter assetFilter = 0; if (TlbChkIgnoreContainers.Checked) { assetFilter |= AssetFilter.NoAssembledContainers; } if (TlbChkIgnoreShips.Checked) { assetFilter |= AssetFilter.NoAssembledShips; } if (TlbChkIgnoreAssembled.Checked) { assetFilter |= AssetFilter.NoAssembled; } m_SelectedAssets = m_Assets.GetAssetsList(container, assetFilter); } ItemFilter filter = new ItemFilter(); filter.Published = TristateFilter.Yes; filter.PlainMaterials = TristateFilter.Yes; if (m_SelectedAssets != null) { filter.AssetsFilter = m_SelectedAssets; } SetupListItemsData(m_ItemsDB.FilterItems(filter), m_SelectedAssets); UpdateTotalsRow(); // Optimization: pre-fill all column data (saves around 1 sec) Hashtable columnData = new Hashtable(); foreach (MainListItem listItem in m_ItemList) { Object[] columnValues = GetListItemColumnData(listItem); columnData.Add(listItem.TypeID, columnValues); } CompareItemBase comparer = new CompareColumn(m_SortType, columnData); comparer.SetParameters(m_SortDirection); Array.Sort(m_ItemList, comparer); LstRefinery.VirtualListSize = m_ItemList.Count(); UpdateLstRefinery(); }
public void Check(List <List <object> > table, int tableHeaderRowsCount) { if (table.Count <= 0) { return; } var rowBegin = m_validations.Min(x => x.CellRange.RowBegin); var columnBegin = m_validations.Min(x => x.CellRange.ColumnBegin); var rowEnd = m_validations.Max(x => x.CellRange.RowEnd); var columnEnd = m_validations.Max(x => x.CellRange.ColumnEnd); for (int i = 0; i < table.Count; i++) { if (i < rowBegin || i > rowEnd) { continue; } var row = table[i]; var newRowDic = JudgeColumn == null ? row.ToList().Select((cell, iCell) => new { cell, iCell }).ToDictionary(x => x.iCell, x => x.cell) : JudgeColumn.ExceptCellByColumn(table, i); for (int j = 0; j < row.Count; j++) { if (j < columnBegin || j > columnEnd || (!newRowDic.Keys.Contains(j))) { continue; } var cell = row[j]; var cellText = cell == null ? string.Empty : cell.ToString(); foreach (var validation in m_validations) { if (validation.CellRange.Contains(i, j) && !validation.CellValidation.IsValid(cellText)) { CommUtils.Assert(false, "文档检查错误,第{0}行第{1}列:{2}", i + 1 + tableHeaderRowsCount, j + 1, validation.CellValidation.ErrorMsg); } } } if (CompareColumn != null) { CommUtils.Assert(CompareColumn.CompareColumn(table, i), "文档检查错误, 第{0}行:{1}", i + 1, CompareColumn.ErrorMsg); } } }