public void TestColumnOrderJson() { TableHeader co = new TableHeader(); TColumnInfo s = new TColumnInfo(); s.Field = DeclarationField.NameOrRelativeType; co.Add(s); JsonWriter.WriteJson("co.json", co); }
static void FixBadColumnName02(ColumnOrdering c) { //move NameAndOccupationOrRelativeType to NameOrRelativeType if Occupation is present if (c.ContainsField(DeclarationField.NameAndOccupationOrRelativeType) && c.ContainsField(DeclarationField.Occupation) ) { TColumnInfo s = c.ColumnOrder[DeclarationField.NameAndOccupationOrRelativeType]; s.Field = DeclarationField.NameOrRelativeType; c.Add(s); c.Delete(DeclarationField.NameAndOccupationOrRelativeType); } }
static void FixBadColumnName01_Template(ColumnOrdering c, DeclarationField naturalText, DeclarationField country, DeclarationField square, DeclarationField type) { //move MixedColumnWithNaturalText to MixedRealEstateType if (!c.ContainsField(naturalText)) { return; } if (c.ContainsField(country) && c.ContainsField(square) ) { TColumnInfo s = c.ColumnOrder[naturalText]; s.Field = type; c.Add(s); c.Delete(naturalText); } }
static void AddColumn(ColumnOrdering ordering, DeclarationField field, Cell cell) { TColumnInfo s = new TColumnInfo(); s.BeginColumn = cell.Col; s.EndColumn = cell.Col + cell.MergedColsCount; s.ColumnPixelWidth = cell.CellWidth; //s.ColumnPixelStart is unknown and initialized in FinishOrderingBuilding s.Field = field; if (field == DeclarationField.DeclaredYearlyIncome) { string dummy = ""; ColumnDetector.GetValuesFromTitle(cell.GetText(), ref dummy, ref ordering.YearFromIncome, ref dummy); } ordering.Add(s); }
static void FixMissingSubheadersForVehicle(IAdapter adapter, ColumnOrdering columnOrdering) { if (!columnOrdering.ContainsField(DeclarationField.Vehicle)) { return; } TColumnInfo dummy; var headerCell = adapter.GetDeclarationFieldWeak(columnOrdering, columnOrdering.HeaderBegin.Value, DeclarationField.Vehicle, out dummy); if (headerCell.MergedColsCount != 2) { return; } var subCells = FindSubcellsUnder(adapter, headerCell); if (subCells.Count == 1) { return; } string cleanHeader = headerCell.Text.ToLower().Replace(" ", ""); if (cleanHeader.Contains("транспортныесредства") && cleanHeader.Contains("марка") && cleanHeader.Contains("вид")) { TColumnInfo columnVehicleType = new TColumnInfo(); columnVehicleType.BeginColumn = headerCell.Col; columnVehicleType.EndColumn = headerCell.Col + 1; columnVehicleType.ColumnPixelWidth = headerCell.CellWidth / 2; columnVehicleType.Field = DeclarationField.VehicleType; columnOrdering.Add(columnVehicleType); TColumnInfo columnVehicleModel = new TColumnInfo(); columnVehicleModel.BeginColumn = headerCell.Col + 1; columnVehicleModel.EndColumn = headerCell.Col + 2; columnVehicleModel.ColumnPixelWidth = headerCell.CellWidth / 2; columnVehicleModel.Field = DeclarationField.VehicleModel; columnOrdering.Add(columnVehicleModel); columnOrdering.Delete(DeclarationField.Vehicle); } }
// напрямую используется, пока ColumnOrdering еще не построен // во всех остальных случаях надо использовать Row.GetDeclarationField virtual public Cell GetDeclarationFieldWeak(ColumnOrdering columnOrdering, int row, DeclarationField field, out TColumnInfo colSpan) { if (!columnOrdering.ColumnOrder.TryGetValue(field, out colSpan)) { throw new SmartParserFieldNotFoundException(String.Format("Field {0} not found, row={1}", field.ToString(), row)); } var exactCell = GetCell(row, colSpan.BeginColumn); if (exactCell == null) { var rowData = GetCells(row); throw new SmartParserFieldNotFoundException(String.Format("Field {0} not found, row={1}, col={2}. Row.Cells.Count = {3}", field.ToString(), row, colSpan.BeginColumn, rowData.Count )); } return(exactCell); }