Add Row in Table

HI

I am trying to add row in Table.
I am able to add the row in direction from bottom to top and I have used below code for that.

But i want to add row from top to bottom direction.
Please help..


Option Strict Off
Imports System
Imports NXOpen
Imports NXOpen.UF
Imports Insert_View_SH
Imports System.Threading
Imports System.Reflection
Imports System.Collections.Generic
Imports NXOpen.Annotations
Module module11
Dim theSession As Session
Dim ufsession As UFSession
Dim workPart As NXOpen.Part
Dim displayPart As NXOpen.Part
Dim dwgSheet As Drawings.DrawingSheet
Dim dwgShtBld As Drawings.DrawingSheetBuilder
Dim OH As Double
Dim dwgSheetList As New List(Of String)
Dim myTabNotes As New List(Of Annotations.TableSection)
Dim myTabularNoteTags As New List(Of Tag)
Dim numCols As Integer
Dim numRows As Integer
Dim cellTag As NXOpen.Tag
Dim rowTag As NXOpen.Tag
Dim theCellPrefs As UFTabnot.CellPrefs
Dim colTag As Tag
Dim startcellTag As Tag
Dim endcellTag As Tag
Dim RowHeight1() As Double
Dim RowHeight2() As Double

Sub Main()

theSession = Session.GetSession()
workPart = theSession.Parts.Work
ufsession = ufsession.GetUFSession()
displayPart = theSession.Parts.Display

dwgShtBld = workPart.DrawingSheets.DrawingSheetBuilder(workPart.DrawingSheets.CurrentDrawingSheet)

' ----------------------------------------------

If FindTabularNotes(myTabularNoteTags) = 0 Then
'no tabular notes to process
Return
End If

Dim k As Integer

'--------------Get row height of each row------3columns
For Each tableNote As Tag In myTabularNoteTags
tableNote = myTabularNoteTags.Item(0)
ufsession.Tabnot.AskNmRows(tableNote, numRows)
ReDim RowHeight2(numRows)
RowHeight2(0) = 7
For i As Integer = 0 To numRows - 1
ufsession.Tabnot.AskNthRow(tableNote, i, rowTag)
ufsession.Tabnot.AskRowHeight(rowTag, RowHeight2(i + 1))
Next
Exit For
Next

' -------------------------------------------------------------
For Each tableNote As Tag In myTabularNoteTags
tableNote = myTabularNoteTags.Item(0)
For k = 0 To 0
If k = 0 Then
Dim numRows As Integer
ufsession.Tabnot.AskNmRows(tableNote, numRows)
Dim numCols As Integer
ufsession.Tabnot.AskNmColumns(tableNote, numCols)

'------------------------------------------------------------
'For First row
'-------------------------------------------------------------
For i As Integer = 0 To 0
Dim rowTag As Tag
ufsession.Tabnot.AskNthRow(tableNote, i, rowTag)
ufsession.Tabnot.CreateRow(7, rowTag)
ufsession.Tabnot.AddRow(tableNote, rowTag, 0) 'UFConstants.UF_TABNOT_APPEND) '----- Adds at the top

For j As Integer = 0 To numCols - 1
ufsession.Tabnot.AskNthColumn(tableNote, j, colTag)
ufsession.Tabnot.AskCellAtRowCol(rowTag, colTag, cellTag)
If j = 0 Then
startcellTag = cellTag
ElseIf j = numCols - 1 Then
endcellTag = cellTag
End If
'get the current cell preferences
ufsession.Tabnot.AskCellPrefs(cellTag, theCellPrefs)
theCellPrefs.text_aspect_ratio = 0.68
'change the font preference setting
Dim fntMonoBT As Integer = workPart.Fonts.AddFont("Monospac821 BT", FontCollection.Type.Standard)
theCellPrefs.text_font = 8
theCellPrefs.text_height = 3.2
theCellPrefs.horiz_just = UFTabnot.Just.JustMiddle
theCellPrefs.vert_just = UFTabnot.Just.JustCenter

Dim LineType() As Integer = {4, 1, 5} '------To change the linetype of border (Doted type)
theCellPrefs.bottom_line_cfw = LineType
theCellPrefs.right_line_cfw = LineType
'apply the new settings to the cell
ufsession.Tabnot.SetCellPrefs(cellTag, theCellPrefs)
ufsession.Tabnot.SetRowHeadCfw(rowTag, LineType) '----Sets only the extreme left border of a row -----

theCellPrefs.horiz_just = UFTabnot.Just.JustMiddle
theCellPrefs.vert_just = UFTabnot.Just.JustCenter
ufsession.Tabnot.SetCellPrefs(cellTag, theCellPrefs)
Next
Next
End If
Next
Next

For Each tableNote As Tag In myTabularNoteTags
tableNote = myTabularNoteTags.Item(1) '---For three columns table
ufsession.Tabnot.AskNmRows(tableNote, numRows)
For i = 0 To numRows - 1 ' - 2
ufsession.Tabnot.AskNthRow(tableNote, i, rowTag)
ufsession.Tabnot.SetRowHeight(rowTag, RowHeight2(i))
Next
Exit For
Next

dwgShtBld.Commit()
dwgShtBld.Destroy()

End Sub

Function FindTabularNotes(ByRef theTabNotes As List(Of Tag)) As Integer '----For after adding the table
'myTabularNoteTags

Dim tmpTabNote As NXOpen.Tag = NXOpen.Tag.Null
Dim type As Integer
Dim subtype As Integer

theSession = Session.GetSession()
workPart = theSession.Parts.Work
ufsession = ufsession.GetUFSession()
displayPart = theSession.Parts.Display

Do
ufsession.Obj.CycleObjsInPart(workPart.Tag, UFConstants.UF_tabular_note_type, tmpTabNote)
If tmpTabNote = NXOpen.Tag.Null Then
Continue Do
End If
If tmpTabNote <> NXOpen.Tag.Null Then
ufsession.Obj.AskTypeAndSubtype(tmpTabNote, type, subtype)
If subtype = UFConstants.UF_tabular_note_subtype Then
theTabNotes.Add(tmpTabNote)
End If
End If
Loop Until tmpTabNote = NXOpen.Tag.Null

Return theTabNotes.Count

End Function

End Module

The code that you posted adds a row to the top of the tabular note. If you want to add a row to the bottom of the note, use the "UF_TABNOT_APPEND" constant.

Option Strict Off
Imports System
Imports NXOpen
Imports NXOpen.UF
Imports System.Collections.Generic
Imports NXOpen.Annotations
Module module11
Dim theSession As Session
Dim ufsession As UFSession
Dim workPart As NXOpen.Part
Dim displayPart As NXOpen.Part
Dim myTabularNoteTags As New List(Of Tag)
Dim numCols As Integer
Dim numRows As Integer
Dim rowTag As NXOpen.Tag
Dim RowHeight2() As Double

Sub Main()

theSession = Session.GetSession()
workPart = theSession.Parts.Work
ufsession = ufsession.GetUFSession()
displayPart = theSession.Parts.Display

' ----------------------------------------------

If FindTabularNotes(myTabularNoteTags) = 0 Then
'no tabular notes to process
Return
End If

'--------------Get row height of each row------3columns
For Each tableNote As Tag In myTabularNoteTags
tableNote = myTabularNoteTags.Item(0)
ufsession.Tabnot.AskNmRows(tableNote, numRows)
ReDim RowHeight2(numRows)
RowHeight2(0) = 7
For i As Integer = 0 To numRows - 1
ufsession.Tabnot.AskNthRow(tableNote, i, rowTag)
ufsession.Tabnot.AskRowHeight(rowTag, RowHeight2(i + 1))
Next
Exit For
Next

' -------------------------------------------------------------
For Each tableNote As Tag In myTabularNoteTags
tableNote = myTabularNoteTags.Item(0)

Dim numRows As Integer
ufsession.Tabnot.AskNmRows(tableNote, numRows)
Dim numCols As Integer
ufsession.Tabnot.AskNmColumns(tableNote, numCols)

'------------------------------------------------------------
'For First row
'-------------------------------------------------------------
For i As Integer = 0 To 0
Dim rowTag As Tag
ufsession.Tabnot.AskNthRow(tableNote, i, rowTag)
ufsession.Tabnot.CreateRow(7, rowTag)
ufsession.Tabnot.AddRow(tableNote, rowTag, UFConstants.UF_TABNOT_APPEND) 'UFConstants.UF_TABNOT_APPEND) '----- Adds at the top

Next
Next

End Sub

Function FindTabularNotes(ByRef theTabNotes As List(Of Tag)) As Integer '----For after adding the table
'myTabularNoteTags

Dim tmpTabNote As NXOpen.Tag = NXOpen.Tag.Null
Dim type As Integer
Dim subtype As Integer

theSession = Session.GetSession()
workPart = theSession.Parts.Work
ufsession = ufsession.GetUFSession()
displayPart = theSession.Parts.Display

Do
ufsession.Obj.CycleObjsInPart(workPart.Tag, UFConstants.UF_tabular_note_type, tmpTabNote)
If tmpTabNote = NXOpen.Tag.Null Then
Continue Do
End If
If tmpTabNote <> NXOpen.Tag.Null Then
ufsession.Obj.AskTypeAndSubtype(tmpTabNote, type, subtype)
If subtype = UFConstants.UF_tabular_note_subtype Then
theTabNotes.Add(tmpTabNote)
End If
End If
Loop Until tmpTabNote = NXOpen.Tag.Null

Return theTabNotes.Count

End Function

End Module

Hi
Thanks for the solution.

Bhavik S.