public static void CompleteFields(GOST table, int height, int width) { if (table.Position == 4) { int offset_width = width - GetSortedSet(table.Columns).Last(); int offset_height = height - GetSortedSet(table.Rows).Last(); for (int i = 0; i < table.Fields.Count; ++i) { for (int j = 0; j < table.Fields[i].Count; ++j) { table.Fields[i][j][0] += offset_height; table.Fields[i][j][1] += offset_width; table.Fields[i][j][2] += offset_height; table.Fields[i][j][3] += offset_width; } } } else if (table.Position == 3) { int offset_height = height - GetSortedSet(table.Rows).Last(); for (int i = 0; i < table.Fields.Count; ++i) { for (int j = 0; j < table.Fields[i].Count; ++j) { table.Fields[i][j][0] += offset_height; table.Fields[i][j][2] += offset_height; } } } }
public void AddTable(GOST table) { if (Tables.Count == 0) { Tables.Add(table); Format = table.Format; Orientation = table.Orientation; Columns = new List <int[]>(table.Columns); Rows = new List <int[]>(table.Rows); SetPageDimensions(); } else { if (table.Position > 1) { XMLTools.CompleteFields(table, Height, Width); XMLTools.CreateNormalTable(table, Height, Width); } Tables.Add(table); if (table.Columns != null && table.Rows != null) { (Columns, Rows) = XMLTools.MergeTables(Columns, Rows, table.Columns, table.Rows); } } }
public static GOST LoadConfFile(string config) { GOST newGOST = JsonConvert.DeserializeObject <GOST>(config); newGOST.Data = new List <List <string> >(); newGOST.ElemCol = new ElementCollection(); return(newGOST); }
public void LoadConfigs() { // Add table page(s) if (Table != GOST.Standarts.None) { for (int i = 0; i < GetTablePagesCount(Rvt.Data.ExportElements.Count, ConfFile.Lines[(int)Table]); ++i) { WorkSheet newWS = AddWorkSheet(String.Format("Лист {0}", i + 1)); newWS.AddTable(GOST.LoadConfFile(ConfFile.Conf[(int)Table])); if (Pages == 0) { // Add stamp to page if (Stamp1 != GOST.Standarts.None) { newWS.AddTable(GOST.LoadConfFile(ConfFile.Conf[(int)Stamp1])); } // Add dop to page if (Dop1 != GOST.Standarts.None) { newWS.AddTable(GOST.LoadConfFile(ConfFile.Conf[(int)Dop1])); } } else { // Add stamp to page if (Stamp2 != GOST.Standarts.None) { newWS.AddTable(GOST.LoadConfFile(ConfFile.Conf[(int)Stamp2])); } // Add dop to page if (Dop2 != GOST.Standarts.None) { newWS.AddTable(GOST.LoadConfFile(ConfFile.Conf[(int)Dop2])); } } Pages++; } } // Add title page if (Title != GOST.Standarts.None) { WorkSheet newWS = AddWorkSheet("Титульный лист"); newWS.AddTable(GOST.LoadConfFile(ConfFile.Conf[(int)Title])); } }
public static void CreateNormalTable(GOST table, int height, int width) { // Init new notation arrays (List <int[]> col, List <int[]> row) = (new List <int[]>(), new List <int[]>()); // Update columns if (table.Position == 4) { for (int i = 0; i < table.Columns.Count; ++i) { if (table.Columns[i].Length == 1 && table.Columns[i][0] == 0) { col.Add(new int[] { width }); continue; } col.Add(new int[table.Columns[i].Length + 1]); col.Last()[0] = width - table.Columns[i].Sum(); for (int j = 1; j < col.Last().Length; ++j) { col.Last()[j] = table.Columns[i][j - 1]; } } } if (table.Position == 3) { for (int i = 0; i < table.Columns.Count; ++i) { if (table.Columns[i].Length == 1 && table.Columns[i][0] == 0) { col.Add(new int[] { width }); continue; } col.Add(new int[table.Columns[i].Length + 1]); for (int j = 0; j < col.Last().Length - 1; ++j) { col.Last()[j] = table.Columns[i][j]; } col.Last()[col.Last().Length - 1] = width - table.Columns[i].Sum(); } } // Update rows if (table.Position == 3 || table.Position == 4) { for (int i = 0; i < table.Rows.Count; ++i) { if (table.Rows[i].Length == 1 && table.Rows[i][0] == 0) { row.Add(new int[] { height }); continue; } row.Add(new int[table.Rows[i].Length + 1]); row.Last()[0] = height - table.Rows[i].Sum(); for (int j = 1; j < row.Last().Length; ++j) { row.Last()[j] = table.Rows[i][j - 1]; } } } // Assign table arrays to new arrays (table.Columns, table.Rows) = (col, row); }