Добавление столбца в сетку 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.