Exemplo n.º 1
0
        public void TestColumnOrderJson()
        {
            TableHeader co = new TableHeader();
            TColumnInfo s  = new TColumnInfo();

            s.Field = DeclarationField.NameOrRelativeType;
            co.Add(s);
            JsonWriter.WriteJson("co.json", co);
        }
Exemplo n.º 2
0
 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);
     }
 }
Exemplo n.º 3
0
 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);
     }
 }
Exemplo n.º 4
0
        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);
        }
Exemplo n.º 5
0
        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);
            }
        }
Exemplo n.º 6
0
        // напрямую используется, пока 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);
        }