436 lines
No EOL
18 KiB
VB.net
436 lines
No EOL
18 KiB
VB.net
|
|
Option Strict On
|
|
Imports System
|
|
Imports System.Web.UI.WebControls
|
|
Imports System.ComponentModel
|
|
Imports BaseClasses
|
|
Imports BaseClasses.Utils
|
|
Imports BaseClasses.Web.UI.WebControls
|
|
|
|
Imports Persons.Business
|
|
Imports Persons.Data
|
|
|
|
Namespace Persons.UI
|
|
|
|
' Code-behind class for the ThemeButton user control.
|
|
Public Partial Class ThemeButton
|
|
Inherits BaseApplicationUserControl
|
|
Implements IThemeButton
|
|
#Region "Section 1: Place your customizations here."
|
|
|
|
Public Sub LoadData()
|
|
' LoadData reads database data and assigns it to UI controls.
|
|
' Customize by adding code before or after the call to LoadData_Base()
|
|
' or replace the call to LoadData_Base().
|
|
LoadData_Base()
|
|
End Sub
|
|
|
|
#Region "Ajax Functions"
|
|
|
|
' <Services.WebMethod()> _
|
|
' Public Shared Function GetRecordFieldValue(ByVal tableName As String, _
|
|
' ByVal recordID As String, _
|
|
' ByVal columnName As String, _
|
|
' ByVal title As String, _
|
|
' ByVal persist As Boolean, _
|
|
' ByVal popupWindowHeight As Integer, _
|
|
' ByVal popupWindowWidth As Integer, _
|
|
' ByVal popupWindowScrollBar As Boolean _
|
|
' ) As Object()
|
|
' ' GetRecordFieldValue gets the pop up window content from the column specified by
|
|
' ' columnName in the record specified by the recordID in data base table specified by tableName.
|
|
' ' Customize by adding code before or after the call to GetRecordFieldValue_Base()
|
|
' ' or replace the call to GetRecordFieldValue_Base().
|
|
' Return GetRecordFieldValue_Base(tableName, recordID, columnName, title, persist, popupWindowHeight, popupWindowWidth, popupWindowScrollBar)
|
|
' End Function
|
|
|
|
<Services.WebMethod()> _
|
|
Public Shared Function GetImage(ByVal tableName As String, _
|
|
ByVal recordID As String, _
|
|
ByVal columnName As String, _
|
|
ByVal title As String, _
|
|
ByVal persist As Boolean, _
|
|
ByVal popupWindowHeight As Integer, _
|
|
ByVal popupWindowWidth As Integer, _
|
|
ByVal popupWindowScrollBar As Boolean _
|
|
) As Object()
|
|
' GetImage gets the Image url for the image in the column "columnName" and
|
|
' in the record specified by recordID in data base table specified by tableName.
|
|
' Customize by adding code before or after the call to GetImage_Base()
|
|
' or replace the call to GetImage_Base().
|
|
Return GetImage_Base(tableName, recordID, columnName, title, persist, popupWindowHeight, popupWindowWidth, popupWindowScrollBar)
|
|
End Function
|
|
|
|
|
|
|
|
|
|
#End Region
|
|
|
|
' Page Event Handlers - buttons, sort, links
|
|
|
|
Public Sub Button_Click(ByVal sender As Object, ByVal args As EventArgs)
|
|
|
|
' Click handler for Button.
|
|
' Customize by adding code before the call or replace the call to the Base function with your own code.
|
|
Button_Click_Base(sender, args)
|
|
' NOTE: If the Base function redirects to another page, any code here will not be executed.
|
|
End Sub
|
|
|
|
|
|
|
|
Protected Overloads Overrides Sub BasePage_PreRender(ByVal sender As Object, ByVal e As EventArgs)
|
|
MyBase.BasePage_PreRender(sender, e)
|
|
Base_RegisterPostback()
|
|
End Sub
|
|
<Services.WebMethod()> _
|
|
Public Shared Function GetRecordFieldValue(ByVal tableName As String, _
|
|
ByVal recordID As String, _
|
|
ByVal columnName As String, _
|
|
ByVal fieldName As String, _
|
|
ByVal title As String, _
|
|
ByVal persist As Boolean, _
|
|
ByVal popupWindowHeight As Integer, _
|
|
ByVal popupWindowWidth As Integer, _
|
|
ByVal popupWindowScrollBar As Boolean _
|
|
) As Object()
|
|
' GetRecordFieldValue gets the pop up window content from the column specified by
|
|
' columnName in the record specified by the recordID in data base table specified by tableName.
|
|
' Customize by adding code before or after the call to GetRecordFieldValue_Base()
|
|
' or replace the call to GetRecordFieldValue_Base().
|
|
Return GetRecordFieldValue_Base(tableName, recordID, columnName, fieldName, title, persist, popupWindowHeight, popupWindowWidth, popupWindowScrollBar)
|
|
End Function
|
|
Public Overrides Sub SetChartControl(ByVal chartCtrlName As String)
|
|
Me.SetChartControl_Base(chartCtrlName)
|
|
End Sub
|
|
Public Sub Page_PreRender(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.PreRender
|
|
Me.Page_PreRender_Base(sender,e)
|
|
End Sub
|
|
Protected Overrides Function SaveViewState() As Object
|
|
Return SaveViewState_Base()
|
|
End Function
|
|
Protected Overrides Sub LoadViewState(ByVal savedState As Object)
|
|
LoadViewState_Base(savedState)
|
|
End Sub
|
|
Protected Overrides Sub ClearControlsFromSession()
|
|
ClearControlsFromSession_Base()
|
|
End Sub
|
|
Protected Overrides Sub SaveControlsToSession()
|
|
SaveControlsToSession_Base()
|
|
End Sub
|
|
Public Sub Page_InitializeEventHandlers(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.Init
|
|
' Handles MyBase.Init.
|
|
' Register the Event handler for any Events.
|
|
Me.Page_InitializeEventHandlers_Base(sender,e)
|
|
End Sub
|
|
Private Function EvaluateFormula(ByVal formula As String, ByVal dataSourceForEvaluate as BaseClasses.Data.BaseRecord, ByVal format As String, ByVal variables As System.Collections.Generic.IDictionary(Of String, Object), ByVal includeDS as Boolean) As String
|
|
Return EvaluateFormula_Base(formula, dataSourceForEvaluate, format, variables, includeDS)
|
|
End Function
|
|
#End Region
|
|
|
|
#Region "Section 2: Do not modify this section."
|
|
|
|
Protected Sub Page_InitializeEventHandlers_Base(ByVal sender As Object, ByVal e As System.EventArgs)
|
|
|
|
|
|
' the following code for accordion is necessary or the Me.{ControlName} will return Nothing
|
|
|
|
' Register the Event handler for any Events.
|
|
|
|
|
|
' Setup the pagination events.
|
|
|
|
AddHandler Me.Button.Click, AddressOf Button_Click
|
|
|
|
Me.ClearControlsFromSession()
|
|
End Sub
|
|
|
|
Private Sub Base_RegisterPostback()
|
|
|
|
End Sub
|
|
|
|
|
|
|
|
' Handles MyBase.Load. Read database data and put into the UI controls.
|
|
' If you need to, you can add additional Load handlers in Section 1.
|
|
Protected Overridable Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
|
|
|
|
|
|
If (Not Me.IsPostBack) Then
|
|
|
|
End If
|
|
|
|
|
|
' Load data only when displaying the page for the first time or if postback from child window
|
|
If (Not Me.IsPostBack OrElse Me.Request("__EVENTTARGET") = "ChildWindowPostBack") Then
|
|
' Read the data for all controls on the page.
|
|
' To change the behavior, override the DataBind method for the individual
|
|
' record or table UI controls.
|
|
Me.LoadData()
|
|
End If
|
|
|
|
|
|
End Sub
|
|
|
|
Public Shared Function GetRecordFieldValue_Base(ByVal tableName As String, _
|
|
ByVal recordID As String, _
|
|
ByVal columnName As String, _
|
|
ByVal fieldName As String, _
|
|
ByVal title As String, _
|
|
ByVal persist As Boolean, _
|
|
ByVal popupWindowHeight As Integer, _
|
|
ByVal popupWindowWidth As Integer, _
|
|
ByVal popupWindowScrollBar As Boolean _
|
|
) As Object()
|
|
If Not IsNothing(recordID) Then
|
|
recordID = System.Web.HttpUtility.UrlDecode(recordID)
|
|
End If
|
|
Dim content as String = BaseClasses.Utils.MiscUtils.GetFieldData(tableName, recordID, columnName)
|
|
|
|
content = NetUtils.EncodeStringForHtmlDisplay(content)
|
|
|
|
'returnValue is an array of string values.
|
|
'returnValue(0) represents title of the pop up window
|
|
'returnValue(1) represents content of the pop up window
|
|
' retrunValue(2) represents whether pop up window should be made persistant
|
|
' or it should closes as soon as mouse moved out.
|
|
' returnValue(5) represents whether pop up window should contain scroll bar.
|
|
' returnValue(3), (4) represents pop up window height and width respectivly
|
|
' (0),(2),(3),(4) and (5) is initially set as pass through attribute.
|
|
' They can be modified by going to Attribute tab of the properties window of the control in aspx page.
|
|
Dim returnValue(6) As Object
|
|
returnValue(0) = title
|
|
returnValue(1) = content
|
|
returnValue(2) = persist
|
|
returnValue(3) = popupWindowWidth
|
|
returnValue(4) = popupWindowHeight
|
|
returnValue(5) = popupWindowScrollBar
|
|
Return returnValue
|
|
End Function
|
|
|
|
|
|
Public Shared Function GetImage_Base(ByVal tableName As String, _
|
|
ByVal recordID As String, _
|
|
ByVal columnName As String, _
|
|
ByVal title As String, _
|
|
ByVal persist As Boolean, _
|
|
ByVal popupWindowHeight As Integer, _
|
|
ByVal popupWindowWidth As Integer, _
|
|
ByVal popupWindowScrollBar As Boolean _
|
|
) As Object()
|
|
Dim content As String = "<IMG alt =""" & title & """ src =" & """../Shared/ExportFieldValue.aspx?Table=" & tableName & "&Field=" & columnName & "&Record=" & recordID & """/>"
|
|
'returnValue is an array of string values.
|
|
'returnValue(0) represents title of the pop up window.
|
|
'returnValue(1) represents content ie, image url.
|
|
' retrunValue(2) represents whether pop up window should be made persistant
|
|
' or it should closes as soon as mouse moved out.
|
|
' returnValue(3), (4) represents pop up window height and width respectivly
|
|
' returnValue(5) represents whether pop up window should contain scroll bar.
|
|
' (0),(2),(3),(4) and (5) is initially set as pass through attribute.
|
|
' They can be modified by going to Attribute tab of the properties window of the control in aspx page.
|
|
Dim returnValue(6) As Object
|
|
returnValue(0) = title
|
|
returnValue(1) = content
|
|
returnValue(2) = persist
|
|
returnValue(3) = popupWindowWidth
|
|
returnValue(4) = popupWindowHeight
|
|
returnValue(5) = popupWindowScrollBar
|
|
Return returnValue
|
|
End Function
|
|
|
|
Public Sub SetChartControl_Base(ByVal chartCtrlName As String)
|
|
' Load data for each record and table UI control.
|
|
|
|
End Sub
|
|
|
|
|
|
|
|
|
|
Protected Sub SaveControlsToSession_Base()
|
|
MyBase.SaveControlsToSession()
|
|
|
|
End Sub
|
|
|
|
|
|
Protected Sub ClearControlsFromSession_Base()
|
|
MyBase.ClearControlsFromSession()
|
|
|
|
End Sub
|
|
|
|
Protected Sub LoadViewState_Base(ByVal savedState As Object)
|
|
MyBase.LoadViewState(savedState)
|
|
|
|
End Sub
|
|
|
|
|
|
Protected Function SaveViewState_Base() As Object
|
|
|
|
Return MyBase.SaveViewState()
|
|
End Function
|
|
|
|
|
|
Public Sub Page_PreRender_Base(ByVal sender As Object, ByVal e As System.EventArgs)
|
|
|
|
' Load data for each record and table UI control.
|
|
|
|
' Data bind for each chart UI control.
|
|
|
|
End Sub
|
|
|
|
|
|
' Load data from database into UI controls.
|
|
' Modify LoadData in Section 1 above to customize. Or override DataBind() in
|
|
' the individual table and record controls to customize.
|
|
Public Sub LoadData_Base()
|
|
Try
|
|
|
|
If (Not Me.IsPostBack OrElse Me.Request("__EVENTTARGET") = "ChildWindowPostBack") Then
|
|
' Must start a transaction before performing database operations
|
|
DbUtils.StartTransaction()
|
|
End If
|
|
|
|
|
|
|
|
Me.DataBind()
|
|
|
|
' Load and bind data for each record and table UI control.
|
|
|
|
|
|
' Load data for chart.
|
|
|
|
|
|
' initialize aspx controls
|
|
|
|
|
|
|
|
Catch ex As Exception
|
|
' An error has occured so display an error message.
|
|
Utils.RegisterJScriptAlert(Me, "Page_Load_Error_Message", ex.Message)
|
|
Finally
|
|
If (Not Me.IsPostBack OrElse Me.Request("__EVENTTARGET") = "ChildWindowPostBack") Then
|
|
' End database transaction
|
|
DbUtils.EndTransaction()
|
|
End If
|
|
End Try
|
|
End Sub
|
|
|
|
Public EvaluateFormulaDelegate As BaseClasses.Data.DataSource.EvaluateFormulaDelegate = New BaseClasses.Data.DataSource.EvaluateFormulaDelegate(AddressOf Me.EvaluateFormula)
|
|
|
|
Public Overridable Function EvaluateFormula_Base(ByVal formula As String, ByVal dataSourceForEvaluate As BaseClasses.Data.BaseRecord, ByVal format As String, ByVal variables As System.Collections.Generic.IDictionary(Of String, Object), ByVal includeDS As Boolean) As String
|
|
Dim e As FormulaEvaluator = New FormulaEvaluator()
|
|
|
|
' add variables for formula evaluation
|
|
If variables IsNot Nothing Then
|
|
Dim enumerator As System.Collections.Generic.IEnumerator(Of System.Collections.Generic.KeyValuePair(Of String, Object)) = variables.GetEnumerator()
|
|
While enumerator.MoveNext()
|
|
e.Variables.Add(enumerator.Current.Key, enumerator.Current.Value)
|
|
End While
|
|
End If
|
|
|
|
If includeDS
|
|
|
|
End If
|
|
|
|
|
|
e.CallingControl = Me
|
|
|
|
e.DataSource = dataSourceForEvaluate
|
|
|
|
|
|
Dim resultObj As Object = e.Evaluate(formula)
|
|
If resultObj Is Nothing Then
|
|
Return ""
|
|
End If
|
|
|
|
If Not String.IsNullOrEmpty(format) AndAlso (String.IsNullOrEmpty(formula) OrElse formula.IndexOf("Format(") < 0) Then
|
|
Return FormulaUtils.Format(resultObj, format)
|
|
Else
|
|
Return resultObj.ToString()
|
|
End If
|
|
End Function
|
|
|
|
Public Function EvaluateFormula(ByVal formula As String, ByVal dataSourceForEvaluate As BaseClasses.Data.BaseRecord, ByVal format As String, ByVal variables As System.Collections.Generic.IDictionary(Of String, Object)) As String
|
|
Return EvaluateFormula(formula, dataSourceForEvaluate, format, variables, True)
|
|
End Function
|
|
|
|
|
|
Private Function EvaluateFormula(ByVal formula As String, ByVal dataSourceForEvaluate As BaseClasses.Data.BaseRecord) As String
|
|
Return EvaluateFormula(formula, dataSourceForEvaluate, Nothing, Nothing, True)
|
|
End Function
|
|
|
|
Public Function EvaluateFormula(ByVal formula As String, ByVal includeDS As Boolean) As String
|
|
Return EvaluateFormula(formula, Nothing, Nothing, Nothing, includeDS)
|
|
End Function
|
|
|
|
Public Function EvaluateFormula(ByVal formula As String) As String
|
|
Return EvaluateFormula(formula, Nothing, Nothing, Nothing, True)
|
|
End Function
|
|
|
|
|
|
|
|
' Write out the Set methods
|
|
|
|
|
|
' Write out the DataSource properties and methods
|
|
|
|
|
|
' Write out event methods for the page events
|
|
|
|
' event handler for LinkButton
|
|
Public Sub Button_Click_Base(ByVal sender As Object, ByVal args As EventArgs)
|
|
|
|
Try
|
|
|
|
Catch ex As Exception
|
|
Ctype(Me.Page, BaseApplicationPage).ErrorOnPage = True
|
|
|
|
' Report the error message to the end user
|
|
Utils.MiscUtils.RegisterJScriptAlert(Me, "BUTTON_CLICK_MESSAGE", ex.Message)
|
|
|
|
Finally
|
|
|
|
End Try
|
|
|
|
End Sub
|
|
|
|
#Region "Interface Properties"
|
|
|
|
<Bindable(True), _
|
|
Category("Behavior"), _
|
|
DefaultValue(""), _
|
|
NotifyParentProperty(True), _
|
|
DesignerSerializationVisibility(DesignerSerializationVisibility.Content)> _
|
|
Public ReadOnly Property Button() As System.Web.UI.WebControls.LinkButton Implements IThemeButton.Button
|
|
Get
|
|
Return CType(BaseClasses.Utils.MiscUtils.FindControlRecursively(Me, "_Button"), System.Web.UI.WebControls.LinkButton)
|
|
End Get
|
|
End Property
|
|
|
|
Public Overrides Property Visible() As Boolean Implements IThemeButton.Visible
|
|
|
|
Get
|
|
Return MyBase.Visible
|
|
End Get
|
|
Set(ByVal value As Boolean)
|
|
MyBase.Visible = value
|
|
End Set
|
|
End Property
|
|
|
|
#End Region
|
|
|
|
Public Shadows ReadOnly Property Page() As BaseApplicationPage
|
|
Get
|
|
Return DirectCast(MyBase.Page, BaseApplicationPage)
|
|
End Get
|
|
End Property
|
|
|
|
|
|
|
|
#End Region
|
|
|
|
|
|
|
|
End Class
|
|
|
|
End Namespace
|
|
|
|
|