| Imports System |
| Imports System.Collections |
| Imports System.ComponentModel |
| Imports System.Data |
| Imports System.Data.OleDb |
| Imports System.Web |
| Imports System.Web.SessionState |
| Imports System.Web.UI |
| Imports System.Web.UI.WebControls |
| Imports System.Web.UI.HtmlControls |
| |
| Imports Telerik.Web.UI |
| Imports System.Drawing |
| Imports CalcolaScontoRiga |
| Imports ITemplateEditColumn |
| |
| Partial Class GestioneAnagrafiche_anagrafiche |
| Inherits System.Web.UI.UserControl |
| |
| Public Event AggiornataGriglia() |
| |
| Private taAnaAcl As New dsRestrizioniTableAdapters.taTabGriglieAnaACL |
| Private taAnaGri As New GriglieTableAdapters.taTabGriglieAna |
| Private taAnaCol As New GriglieTableAdapters.taTabGriglieAnaColonne |
| |
| Private GridSettings As New ParamGriglie.ParamGriglie |
| Private MyUtil As New General.General |
| Private Utility As New genericFunction |
| |
| Private colTemplate As GridTemplateColumn |
| Private colBound As GridBoundColumn |
| Private colButton As GridButtonColumn |
| Private colDateTime As GridDateTimeColumn |
| Private colEdit As GridEditCommandColumn |
| |
| Private DefaultColumnWidth As Integer = 50 |
| |
| Private NomeTabella As String |
| Private SqlRecuperoDati As String |
| Private SqlUpdateDati As String |
| Private ChiaveGriglia As String = "" |
| |
| Dim dtAnaACL As dsRestrizioni.TabGriglieAnaACLDataTable |
| Dim dtAnaGri As Griglie.TabGriglieAnaDataTable |
| Dim dtAnaCol As Griglie.TabGriglieAnaColonneDataTable |
| |
| Public Sub ReloadCarrello() |
| RaiseEvent AggiornataGriglia() |
| End Sub |
| |
| Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load |
| |
| |
| Dim idACL, grInsert, grEdit, grDelete, grEsporta As Integer |
| Dim CampoDb, TestoHeader As String |
| Dim Visibile, Editabile, Larghezza, Filtro, TipoDato, Ordine, IsKey As Integer |
| |
| Dim ds As New Data.DataSet |
| |
| If Not Utility.CheckSession(HttpContext.Current) Then Me.Response.Redirect("~/default.aspx") |
| |
| Me.MyUtil.ConnectionString = GridSettings.DataConn |
| Me.MyUtil.DataBase = GridSettings.dbTypeData |
| |
| dtAnaACL = New dsRestrizioni.TabGriglieAnaACLDataTable |
| dtAnaGri = New Griglie.TabGriglieAnaDataTable |
| dtAnaCol = New Griglie.TabGriglieAnaColonneDataTable |
| |
| 'In base al parametro TAB capisco quale tabella modificare |
| NomeTabella = Request.QueryString("TAB") |
| |
| RadGridAnagrafiche.Columns.Clear() |
| |
| colEdit = New GridEditCommandColumn |
| colEdit.ButtonType = GridButtonColumnType.ImageButton |
| colEdit.UniqueName = "EditCommandColumn" |
| colEdit.EditText = "Modifica riga" |
| colEdit.EditImageUrl = "../Griglie/Immagini/edit.gif" |
| colEdit.UpdateText = "Salva cambiamenti" |
| colEdit.UpdateImageUrl = "../Griglie/Immagini/save.gif" |
| colEdit.CancelText = "Annulla Modifiche" |
| colEdit.CancelImageUrl = "../Griglie/Immagini/cancel.gif" |
| colEdit.ItemStyle.CssClass = "MyImageButton" |
| colEdit.ItemStyle.Width = Unit.Pixel(15) |
| |
| RadGridAnagrafiche.MasterTableView.Columns.Add(colEdit) |
| |
| If (Not String.IsNullOrEmpty(NomeTabella)) Then |
| |
| 'Controllo se l'utente ha i permessi per Visualizzare/Inserire/Modificare i record |
| 'Recupero i parametri della griglia |
| dtAnaACL = taAnaAcl.Get_GriglieAnaACL(NomeTabella, Me.Session("CodDip")) |
| |
| If (dtAnaACL.Rows.Count = 1) Then |
| |
| 'Recupero i permessi associati a questa tabella |
| idACL = dtAnaACL.Rows(0).Item("id") |
| grInsert = dtAnaACL.Rows(0).Item("grInsert") |
| grEdit = dtAnaACL.Rows(0).Item("grEdit") |
| grDelete = dtAnaACL.Rows(0).Item("grDelete") |
| grEsporta = dtAnaACL.Rows(0).Item("grEsporta") |
| |
| 'Recupero i dati della griglia |
| dtAnaGri = taAnaGri.Get_TabGriglieAna(NomeTabella) |
| SqlRecuperoDati = dtAnaGri.Rows(0).Item("SQL") |
| |
| 'Recupero le colonne da visualizzare nella griglia |
| dtAnaCol = taAnaCol.Get_TabColGriglieAna(idACL) |
| If (dtAnaCol.Rows.Count > 0) Then |
| |
| For i = 0 To dtAnaCol.Rows.Count - 1 |
| |
| CampoDb = dtAnaCol.Rows(i).Item("Campodb") |
| TestoHeader = dtAnaCol.Rows(i).Item("Testoheader") |
| IsKey = dtAnaCol.Rows(i).Item("isKey") |
| Visibile = dtAnaCol.Rows(i).Item("Visible") |
| Editabile = dtAnaCol.Rows(i).Item("Editable") |
| Larghezza = dtAnaCol.Rows(i).Item("Widthcol") |
| Filtro = dtAnaCol.Rows(i).Item("Filtro") |
| TipoDato = dtAnaCol.Rows(i).Item("TipoDato") |
| Ordine = dtAnaCol.Rows(i).Item("Ordine") |
| |
| If (IsKey = 1) And (i = 0) Then |
| ChiaveGriglia = CampoDb.ToString |
| ElseIf (IsKey = 1) And (i > 0) Then |
| ChiaveGriglia += "," + CampoDb.ToString |
| End If |
| |
| 'A questo punto, aggiungo le colonne alla griglia |
| RadGridAnagrafiche.AllowSorting = True |
| |
| Select Case TipoDato |
| Case 1 'campo data |
| If Editabile = 0 Then |
| colDateTime = New GridDateTimeColumn |
| colDateTime.ReadOnly = True |
| colDateTime.MaxLength = 10 |
| colDateTime.DataType = System.Type.GetType("System.DateTime") |
| colDateTime.DataFormatString = "{0:dd/MM/yyyy}" |
| colDateTime.HeaderStyle.HorizontalAlign = HorizontalAlign.Center |
| colDateTime.UniqueName = CampoDb |
| colDateTime.HeaderText = TestoHeader |
| 'ordine |
| colDateTime.OrderIndex = Ordine + 1 |
| 'dati |
| colDateTime.DataField = CampoDb |
| 'ordinamento |
| colDateTime.SortExpression = CampoDb |
| 'raggruppamento |
| colDateTime.Groupable = False |
| 'filtro |
| If Filtro = 1 Then |
| colDateTime.AllowFiltering = True |
| Else |
| colDateTime.AllowFiltering = False |
| End If |
| |
| 'larghezza colonna |
| If Larghezza > 0 Then |
| colDateTime.HeaderStyle.Width = Unit.Pixel(Larghezza) |
| colDateTime.ItemStyle.Width = Unit.Pixel(Larghezza) |
| colDateTime.FilterControlWidth = Unit.Pixel(Larghezza - 15) |
| Else |
| colDateTime.HeaderStyle.Width = Unit.Pixel(DefaultColumnWidth) |
| colDateTime.ItemStyle.Width = Unit.Pixel(DefaultColumnWidth) |
| colDateTime.FilterControlWidth = Unit.Pixel(DefaultColumnWidth - 15) |
| End If |
| |
| If (Visibile = 0) Then colDateTime.Visible = False |
| |
| RadGridAnagrafiche.MasterTableView.Columns.Add(colDateTime) |
| |
| Else |
| colTemplate = New Telerik.Web.UI.GridTemplateColumn |
| colTemplate.ReadOnly = False |
| colTemplate.UniqueName = CampoDb |
| colTemplate.HeaderText = TestoHeader |
| colTemplate.OrderIndex = Ordine + 1 |
| colTemplate.SortExpression = CampoDb |
| colTemplate.DataType = System.Type.GetType("System.DateTime") |
| colTemplate.HeaderStyle.HorizontalAlign = HorizontalAlign.Center |
| colTemplate.ItemStyle.HorizontalAlign = HorizontalAlign.Center |
| |
| colTemplate.ItemTemplate = New ITemplateEditColumn(CampoDb, IType._Label, "dd/MM/yyyy") |
| colTemplate.EditItemTemplate = New ITemplateEditColumn(CampoDb, IType._RadDatePicker, "dd/MM/yyyy") |
| |
| RadGridAnagrafiche.MasterTableView.Columns.Add(colTemplate) |
| |
| End If |
| |
| Case Else 'campo stringa |
| If Editabile = 0 Then |
| |
| colBound = New GridBoundColumn |
| colBound.UniqueName = CampoDb |
| colBound.HeaderText = TestoHeader |
| colBound.ReadOnly = True |
| colBound.OrderIndex = Ordine + 1 |
| colBound.DataField = CampoDb |
| colBound.SortExpression = CampoDb |
| If Larghezza > 0 Then |
| colBound.HeaderStyle.Width = Unit.Pixel(Larghezza) |
| colBound.ItemStyle.Width = Unit.Pixel(Larghezza) |
| Else |
| colBound.HeaderStyle.Width = Unit.Pixel(DefaultColumnWidth) |
| colBound.ItemStyle.Width = Unit.Pixel(DefaultColumnWidth) |
| End If |
| |
| If (Visibile = 0) Then colBound.Visible = False |
| RadGridAnagrafiche.MasterTableView.Columns.Add(colBound) |
| |
| Else |
| colTemplate = New Telerik.Web.UI.GridTemplateColumn |
| colTemplate.UniqueName = CampoDb |
| colTemplate.HeaderText = TestoHeader |
| colTemplate.ReadOnly = False |
| colTemplate.OrderIndex = Ordine + 1 |
| colTemplate.DataField = CampoDb |
| colTemplate.SortExpression = CampoDb |
| colTemplate.HeaderStyle.HorizontalAlign = HorizontalAlign.Center |
| colTemplate.ItemStyle.HorizontalAlign = HorizontalAlign.Center |
| |
| colTemplate.ItemTemplate = New ITemplateEditColumn(CampoDb, IType._Label) |
| colTemplate.EditItemTemplate = New ITemplateEditColumn(CampoDb, IType._TextBox) |
| |
| RadGridAnagrafiche.MasterTableView.Columns.Add(colTemplate) |
| End If |
| |
| End Select |
| Next |
| End If |
| |
| |
| |
| End If |
| End If |
| |
| Try |
| RadGridAnagrafiche.MasterTableView.DataKeyNames = New String() {ChiaveGriglia} |
| |
| ds.Tables.Add(MyUtil.getDataTable(CommandType.Text, SqlRecuperoDati, "Contenuto")) |
| RadGridAnagrafiche.DataSource = ds.Tables("Contenuto") |
| Catch ex As Exception |
| |
| End Try |
| |
| End Sub |
| |
| Protected Sub RadGridAnagrafiche_UpdateCommand(ByVal source As Object, ByVal e As Telerik.Web.UI.GridCommandEventArgs) Handles RadGridAnagrafiche.UpdateCommand |
| |
| Dim editedItem As GridEditableItem = CType(e.Item, GridEditableItem) |
| Dim id As String = editedItem.GetDataKeyValue(ChiaveGriglia).ToString() |
| |
| Dim returnValue As Hashtable = New Hashtable |
| e.Item.OwnerTableView.ExtractValuesFromItem(returnValue, editedItem) |
| |
| Dim RigaOrdine As New Data.DataTable |
| Dim myRow As Integer = CType(e.Item.DataSetIndex, Double) |
| |
| Dim CampoDb As String |
| Dim IsKey As Integer |
| Dim Editabile As Integer |
| Dim TipoDato As Integer |
| |
| Dim EditControllo As String |
| Dim StrWhere As String |
| |
| SqlUpdateDati = "UPDATE " + NomeTabella.ToString + " SET DATAMODIFICA=Getdate(), UTENTEMODIFICA=" |
| |
| For i = 0 To dtAnaCol.Rows.Count - 1 |
| |
| CampoDb = dtAnaCol.Rows(i).Item("Campodb") |
| IsKey = dtAnaCol.Rows(i).Item("isKey") |
| Editabile = dtAnaCol.Rows(i).Item("Editable") |
| TipoDato = dtAnaCol.Rows(i).Item("TipoDato") |
| |
| If IsKey = 1 Then |
| StrWhere = " WHERE " + CampoDb.ToString + "='" + id.ToString + "'" |
| Else |
| |
| Select Case TipoDato |
| |
| Case 0 'campo string |
| EditControllo = "MyTxt" + CampoDb.ToString |
| |
| SqlUpdateDati += ", " + CampoDb.ToString + "='" + returnvalue + "' " |
| |
| Case 1 'campo data |
| EditControllo = "MyRTP" + CampoDb.ToString |
| |
| |
| SqlUpdateDati += ", " + CampoDb.ToString + "='" + returnvalue + "' " |
| |
| End Select |
| End If |
| Next |
| |
| End Sub |
| |
| End Class |