Добавление столбца в сетку Farpoint Spread

Я никогда раньше не использовал Farpoint Spread, но у меня есть приложение VB.NET, в котором мне нужно добавить столбец в таблицу Spread. В настоящее время есть такой код:

For Each dr As DataRow In g_AdoRS.Rows
    vaSpreadSum.SetText(1, x, dr(0))    'pol_ser
    ...
    vaSpreadSum.SetText(20, x, dr(19))    'renew_pay_cd     
    vaSpreadSum.SetFloat(21, x, dr(20))    'renew_tot_prem
    vaSpreadSum.SetFloat(22, x, dr(21))    'renew_pol_limit
    vaSpreadSum.SetFloat(23, x, dr(22))    'renew_ded_amt

    vaSpreadSum.Col = 28
    x = x + 1
Next dr

Эти вызовы SetFloat() и SetText() идут от 0 до 28. Поэтому, чтобы добавить еще один столбец, я добавил следующую строку кода:

vaSpreadSum.SetText(28, x, dr(27))    'agent name

и изменил vaSpreadSum.Col на 29

vaSpreadSum.Col = 29

Но я не вижу другой колонки в моей сетке. Есть идеи почему? Там не выдается ошибка или что-то в этом роде, просто нет изменений на экране. Я знаю, что, вероятно, для решения этой проблемы требуется больше информации, но даже если кто-то знает основы добавления столбца в сетку Farpoint Spread, это было бы очень полезно. Я нашел это, но не похоже, что мое приложение добавляет столбцы таким образом, я не мог найти какие-либо вызовы метода AddColumns() нигде.

Спасибо за любую помощь!

Я считаю, что это мой метод Form_Load

Private Sub FrmDetailRPC_Load(ByVal eventSender As System.Object, ByVal eventArgs As System.EventArgs) Handles MyBase.Load
    Cursor.Current = Cursors.WaitCursor

    FormInit()
    QryLocation()

    Cursor.Current = Cursors.Default
End Sub

Я также включу FormInit(), потому что, похоже, это связано с тем, что я ищу

Sub FormInit()
    txtBusUnit.Text = svBusUnit
    stmtMktSeg()
    txtProduct.Text = svProduct
    txtSource.Text = svSource
    txtSystem.Text = svSystem
    txtCustSeg.Text = svCustSeg

    stmtProduct()

    txtLocation.Text = svLocation
    If svLocationLabel = "Region" Then
        lblLocation.Text = "Territory"
    Else
        lblLocation.Text = svLocationLabel
    End If

    lblLocation.TextAlign = ContentAlignment.TopRight

    stmtLocation()
    'txtPayType.Text = svPayType
    txtTimePer.Text = TimeName
    stmtTimePer()

End Sub

И QryLocation()

Sub QryLocation()
    Dim producerID As String

    'SetProductSelection()
    stmtLocation()
    stmtGetProductType()
    stmtGetTimePeriodType()
    stmtGetTimePeriod()
    stmtGetProducerID()
    stmtGetProducerType()

    If stmtProducerType = "No Preference" Then
        producerID = "NULL"
    Else
        producerID = "'" & stmtProducerID & "'"
    End If

    g_strSQL = "pc_mis_rpc_getdata_detail " & _
    "'" & stmtLocationType & "'," & _
    "'" & Trim(svLocation) & "'," & _
    "'" & svBusUnit & "'," & _
    "'" & stmtProductType & "'," & _
    "'" & Trim(stmtProductDtl) & "'," & _
    "'" & stmtTimePeriod & "'," & _
    "'" & stmtTimePeriodType & "'," & _
    "'" & stmtProducerType & "'," & _
    producerID & "," & _
    "'Retention'" _
    & FilterQry & "," & _
    "'" & Trim(txtCustSeg.Text) & "'," & _
    "'" & Trim(txtSource.Text) & "'," & _
    "'" & Trim(txtSystem.Text) & "'"


    ProcQry()

End Sub

2 ответа

Вы увеличиваете столбец следующим образом: vaSpreadSum.MaxCols = 29

В вашем Form_Init() вам нужно будет отрегулировать количество столбцов в контроле распространения.

Это должно выглядеть примерно так:

Sub FormInit()
    ' Add a column to the spreadsheet control
    vaSpreadSum.ActiveSheet.AddColumns(29, 1)

    ' Code cut for brevity
End Sub

--или же--

Sub FormInit()
    ' Add a column to the spreadsheet control
    vaSpreadSum.ActiveSheet.Columns.Count = 29

    ' Code cut for brevity
End Sub

Еще один метод для достижения того же - открыть конструктор форм, выбрать элемент управления распространением, отобразить окно свойств (нажмите F4, если оно еще не открыто) и увеличить свойство Cols до 29.

Другие вопросы по тегам