Bu çok eski bir konu ama bu geç aşamada benim görüşüme atladı ve ben sadece yazma özellikleri için bir dava yapmaya çalışırken bazı yorumlar istiyorum ...
Ben örnek ActiveReport
ve bir dizi kullanıcı seçimleri sonra postback üzerinde çalışan bir Web sitesinin bir parçası olan sınıflar bir dizi var.
VB kodu şuna benzer:
Public Class SomeReport
Private greader As New GenericReporting.CommonReader("AStoredProcedure",
{New SqlParameter("budget_id", 0)})
Public WriteOnly Property BudgetID As Integer
Set(value As Integer)
greader.Parameters("budget_id").Value = value
End Set
End Property
Public Sub New(Optional budget_id As Integer = 0)
' This call is required by the designer.
InitializeComponent()
' Add any initialization after the InitializeComponent() call.
BudgetID = budget_id
End Sub
End Class
Bu raporlar genel bağırsaklar kullanır, CommonReader
saklı yordamlar ve SqlParameter
her biri rapor tasarımına bağlı olarak, örneklemede bir parametre olarak iletilebilen veya daha önce örneklemeden sonra kullanıcı tarafından ayarlanabilen ilişkili WriteOnly özelliğine sahip bir dizi varsayılan s alır. raporlar Run
yöntemini çağırma .
'''''''''''''''''''''''
' Parameter taken from a user selected row of a GridView
'
Dim SomeBudgetID As Integer = gvBudgets.SelectedDataKey.Values(budget_id)
'''''''''''''''''''''''
' On Instantiation
'
Dim R as ActiveReport = New SomeReport(SomeBudgetID)
R.Run()
'''''''''''''''''''''''
' Or On Instantiation using "With" syntax
'
Dim R as ActiveReport = New SomeReport() With {.BudgetID = SomeBudgetID}
R.Run()
'''''''''''''''''''''''
' Or After
'
Dim R as ActiveReport = New SomeReport()
R.BudgetID = SomeBudgetID
R.Run()
Gördüğüm gibi, bu durumda sadece yazma özelliğine sahip olmak
SqlParameter
S genel türden olduğundan daha güçlü yazım denetimi sağlar
- Raporun oluşturulmasında daha fazla esneklik, tüm parametrelerin kullanılabilir olması veya kullanılabilir hale geldikten sonra eklenmesi durumunda rapor hemen başlatılabilir.
- Özellikler, örneklemede "İle" sözdizimini destekler
- Parametreler kullanıcı tarafından bilindiği ve Rapor tarafından değiştirilmediği için "alıcı" gerçekten gerekli mi?
- Yana
SqlParameter
s sınıflar ve ilkel değil değerlerdir, writeonly Özellikleri ayar parametreleri için daha basit bir arayüz için izin
Bu benim düşüncelerim.
Bunun yerine bir yönteme dönüştürebilir miyim? emin ama arayüz ... daha az hoş görünüyor
R2.BudgetID = SomeBudgetID
karşı
R2.SetBudgetID(SomeBudgetID)