// получить список мегаточек в нужной последовательности public static void SetMptList(Rastr rst1, TMpt Mpt1, Rastr rst2, TMpt Mpt2) { ASTRALib.table t1 = (ASTRALib.table)rst1.Tables.Item("MltPntSettings"); ASTRALib.col c1 = (ASTRALib.col)t1.Cols.Item("AbsTime"); Double mpt1StartDate = (Double)c1.get_Z(0); ASTRALib.table t2 = (ASTRALib.table)rst2.Tables.Item("MltPntSettings"); ASTRALib.col c2 = (ASTRALib.col)t2.Cols.Item("AbsTime"); Double mpt2StartDate = (Double)c2.get_Z(0); if (mpt1StartDate < mpt2StartDate) { MPTList.Add(Mpt1); MPTList.Add(Mpt2); } else { MPTList.Add(Mpt2); MPTList.Add(Mpt1); } }
// постройка дерева из таблиц с их типами private void button2_Click(object sender, EventArgs e) { trvTables.BeginUpdate(); ASTRALib.Tables t = (ASTRALib.Tables)rst1.Tables; for (int i = 0; i < t.Count; i++) { ASTRALib.table tblAstra = (ASTRALib.table)t.Item(i); TreeNode newNode = new TreeNode(); newNode.Text = String.Format("{0} ({1})", tblAstra.Name, tblAstra.Cols.Count); for (int j = 0; j < tblAstra.Cols.Count; j++) { ASTRALib.col col = (ASTRALib.col)tblAstra.Cols.Item(j); TreeNode ColumnNode = new TreeNode(); int ColumnTypeId = Int32.Parse(col.get_Prop(ASTRALib.PropType.FL_TIP).ToString()); ColumnNode.Text = String.Format("{0}({1})", col.Name, Helper.GetTypeNameById(ColumnTypeId)); newNode.Nodes.Add(ColumnNode); } trvTables.Nodes.Add(newNode); } trvTables.CollapseAll(); trvTables.EndUpdate(); }
// получить номер точки начала расчета public int GetStartColPOint(Rastr rst) { ASTRALib.table t = (ASTRALib.table)rst.Tables.Item("MltPntSettings"); ASTRALib.col c = (ASTRALib.col)t.Cols.Item("StartCalcPoint"); return((int)c.get_Z(0)); }
// вычисление по формуле (0) ? public void RastrCalc(Rastr rst) { ASTRALib.table tableRst = (ASTRALib.table)rst.Tables.Item("MultiPntConfig"); ASTRALib.col colRst = (ASTRALib.col)tableRst.Cols.Item("Significance"); colRst.Calc("0"); }