using System;
using System.Data;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Collections.Generic;
///
/// Gestisce il report di proposta con la versione iniziale basata sul file .xml.///
///
public partial class reportPianificazione : System.Web.UI.Page
{
private Cliente _cliente;
public string pathNav;
private int rowId = 1;
private int cellId = 1;
private Table mainTable;
private TableRow row;
private CTable tbl;
private string[] rowStyles;
private string catName = "";
private int relativeChildNodeIdx;
public tvElementsPianificazione[] rowElements = new tvElementsPianificazione[300];
public string[] indiceSezioneAttiva = new string[300];
public int totNodesPerElement;
public int totNodesPerElementNoRadioButtons;
private int rootParentID;
public int idReport = 7; //indica il modello (fixed) COMPLETO di QUESTO report da cui costruire la treeview iniziale
//private string sUtente;
public string codiceFiscale;
public static int tpReportPianificazione = 2; //valore proprietario (fixed) di QUESTO report //DA VALUTARE!!
public static int idReportModelloPianificazione = 7; //valore proprietario (fixed) di QUESTO report //DA VALUTARE!!
public string codiceRete;
public string codicePB;
public int lastSavedReportId;
public static string nomeReportPianificazione = "PIANIFICAZIONE"; //valore proprietario (fixed) di QUESTO report
public static string nomeReportBasePianificazione = "Pianificazione base"; //valore proprietario (fixed) di QUESTO report
public static string nomeReportCompletoPianificazione = "Pianificazione completo"; //valore proprietario (fixed) di QUESTO report
public int reportIdToPass;
public int reportIdToLoadBack = -1;
public string endOfjob = "0";
private string token;
private string nomeReportPerLabel;
private string descrizioneReportPerLabel;
public string ambiente;
public string[] sectionIDs;
public int idCounter;
public string lastReportPrinted;
public string nomeInizialeReport;
public string descrizioneInizialeReport;
public string baseCompleto;
private bool reportNominativo = false;
protected void Page_Load(object sender, EventArgs e)
{
this.btn_Stampa.Attributes.Add("onclick", "DisableButtons(true);" + ClientScript.GetPostBackEventReference(btn_Stampa, null));
token = Request.QueryString.Get("token");
codiceRete = Request.QueryString.Get("tipoRete");
codicePB = Request.QueryString.Get("codPB");
ambiente = Request.QueryString.Get("ambiente");
lastReportPrinted = Request.QueryString.Get("lastReportPrinted");
nomeInizialeReport = Request.QueryString.Get("nomeInizialeReport");
descrizioneInizialeReport = Request.QueryString.Get("descrizioneInizialeReport");
baseCompleto = Request.QueryString.Get("baseCompleto");
codiceFiscale = Request.QueryString.Get("codCliente");
pathNav = Request.QueryString.Get("pathNav");
string loadingReport = Request.QueryString.Get("idReportToLoad");
_cliente = Cliente.getCliente(codiceRete + codicePB, codiceFiscale);
tbl = new CTable();
tbl.LoadDati(codiceFiscale, codicePB, codiceRete);
this.lbl_message.Text = "";
if (!Page.IsPostBack)
{
#region Nuova gestione privacy
if (_cliente.SottoscrizioneContrattoSei)
{
rbl_Privacy.Items[0].Selected = true;
rbl_Privacy.Items[0].Enabled = true;
rbl_Privacy.Items[1].Enabled = true;
}
else
{
rbl_Privacy.Items[1].Selected = true;
rbl_Privacy.Items[0].Enabled = false;
this.lbl_Privacy.Visible = true;
lbl_Privacy.Text = "La reportistica nominativa può essere stampata per i clienti che hanno sottoscritto la consulenza evoluta SEI";
}
#endregion
fillModelli();
if (loadingReport != null)
{
if (loadingReport == "loadBASE")
{
rbl_scelte.Items[0].Selected = true;
reportIdToLoadBack = getIdReportBASE_ByReportName();
}
else reportIdToLoadBack = Convert.ToInt32(loadingReport);
}
if (reportIdToLoadBack == -1) //vuol dire che devo caricare l'ultimo report da modello "salvato"
{
reportIdToLoadBack = loadLastSavedUserModel(); //da attivare x sapere quale modello e' stato usato per ultimo da quell'operatore x quel cliente
reportIdToPass = reportIdToLoadBack;
}
}
string reportName = "";
if (reportIdToLoadBack != -1)
{
reportName = getReportName_ByReportID(reportIdToLoadBack);
}
if (reportName != "")
{
this.lbl_message.ForeColor = System.Drawing.Color.Black;
//this.lbl_message.Text = "Nome del REPORT corrente in uso: " + reportName;
this.lbl_message.Text = "";
if (reportName == nomeReportBasePianificazione) this.rbl_scelte.Items[0].Selected = true;
else if (reportName == nomeReportCompletoPianificazione) this.rbl_scelte.Items[1].Selected = true;
if (nomeReportPerLabel != "Pianificazione base" && nomeReportPerLabel != "Pianificazione completo")
{
this.txb_nomeModello.Text = nomeReportPerLabel;
this.txb_descrizione.Text = descrizioneReportPerLabel;
}
//this.txb_descrizione.Text = descrizioneReportPerLabel;
//this.txb_nomeModello.Text = nomeReportPerLabel;
}
initReport();
if (!Page.IsPostBack)
{
if (reportIdToLoadBack > 0 && lastReportPrinted == null)
{
this.lbl_message.ForeColor = System.Drawing.Color.Black;
loadChoosenProfileNew(reportIdToLoadBack, null);
if (nomeReportPerLabel != "Pianificazione base" && nomeReportPerLabel != "Pianificazione completo")
{
this.txb_nomeModello.Text = nomeReportPerLabel;
this.txb_descrizione.Text = descrizioneReportPerLabel;
}
if (nomeInizialeReport != null)
{
selezionaModelloNellaCombo(nomeInizialeReport);
}
else if (nomeReportPerLabel != null) selezionaModelloNellaCombo(nomeReportPerLabel);
this.lbl_message.Text = "";
setControlsOnTV();
}
else if (lastReportPrinted != "" && lastReportPrinted != null)
{
this.lbl_message.ForeColor = System.Drawing.Color.Black;
loadChoosenProfileNew(Convert.ToInt32(lastReportPrinted), null);
this.txb_descrizione.Text = descrizioneInizialeReport;
this.txb_nomeModello.Text = nomeInizialeReport;
if (baseCompleto == "1") rbl_scelte.Items[0].Selected = true;
else if (baseCompleto == "2") rbl_scelte.Items[1].Selected = true;
if (nomeInizialeReport != "" && nomeInizialeReport != null) selezionaModelloNellaCombo(nomeInizialeReport);
this.lbl_message.Text = "";
setControlsOnTV();
}
else
{
//carico il report di base
//bool rc = getReportSectionIds_ByName("Diagnosi base");
this.lbl_message.ForeColor = System.Drawing.Color.Black;
bool rc = getReportSectionIds_ByNameNew("Pianificazione base");
rbl_scelte.Items[0].Selected = true;
this.lbl_message.Text = "";
setControlsOnTV();
}
}
}
//=====================================================================
private void selezionaModelloNellaCombo(string nomeReportPerLabel)
{
int x = 0;
if (nomeReportPerLabel != null)
{
foreach (ListItem itm in ddl_Modello.Items)
{
if (nomeReportPerLabel.Equals(itm.Text))
{
this.ddl_Modello.Enabled = true;
//ddl_Modello.SelectedIndex = itm.Text;
ddl_Modello.SelectedIndex = x;
rbl_scelte.Items[2].Selected = true;
break;
}
x++;
}
}
}
//=======================================================
private int getIdReportBASE_ByReportName()
{
int rc = 0;
List parametri = new List();
Parametro parametro = new Parametro();
parametro.DbType = DbType.String;
parametro.Value = nomeReportBasePianificazione;
parametro.ParameterName = "pReportName";
parametri.Add(parametro);
DataTable dt = DataAccess.ExecuteDataTableStoredProcedure(DBProvider.SqlServer, "sp_getReportID_ByReportName", parametri);
if (dt.Rows.Count > 0) rc = (int)dt.Rows[0]["IdReport"];
return rc;
}
//=======================================================
private string getReportName_ByReportID(int idRep)
{
string rc = "";
List parametri = new List();
Parametro parametro = new Parametro();
parametro.DbType = DbType.Int32;
parametro.Value = idRep;
parametro.ParameterName = "pIdReport";
parametri.Add(parametro);
DataTable dt = DataAccess.ExecuteDataTableStoredProcedure(DBProvider.SqlServer, "sp_getReportName_ByReportID", parametri);
if (dt.Rows.Count > 0)
{
rc = dt.Rows[0]["Nome"].ToString();
nomeReportPerLabel = dt.Rows[0]["nome"].ToString();
descrizioneReportPerLabel = dt.Rows[0]["descrizione"].ToString();
}
return rc;
}
private int loadLastSavedUserModel()
{
int rc = 0;
int idCliente = _cliente.IdCliente_SEIReport;
List parametri = new List();
Parametro parametro = new Parametro();
parametro.DbType = DbType.Int32;
parametro.Value = idReportModelloPianificazione;
parametro.ParameterName = "pIdReportModello";
parametri.Add(parametro);
parametro = new Parametro();
parametro.DbType = DbType.String;
if ((_cliente.CodiceRete + _cliente.CodicePB).Length > 0)
parametro.Value = _cliente.CodiceRete + _cliente.CodicePB;
else
parametro.Value = System.DBNull.Value;
parametro.ParameterName = "pUtente";
parametri.Add(parametro);
parametro = new Parametro();
parametro.DbType = DbType.Int32;
parametro.Value = tpReportPianificazione;
parametro.ParameterName = "pTpReport";
parametri.Add(parametro);
parametro = new Parametro();
parametro.DbType = DbType.Int32;
parametro.Value = idCliente;
parametro.ParameterName = "idCliente";
parametri.Add(parametro);
DataTable dt = DataAccess.ExecuteDataTableStoredProcedure(DBProvider.SqlServer, "sp_getLastSavedUserModelNew", parametri);
if (dt.Rows.Count > 0)
{
rc = Convert.ToInt32(dt.Rows[0]["IdReport"].ToString());
nomeReportPerLabel = dt.Rows[0]["nome"].ToString();
descrizioneReportPerLabel = dt.Rows[0]["descrizione"].ToString();
}
return rc;
}
private void fillModelli()
{
this.ddl_Modello.Items.Clear();
List parametri = new List();
Parametro parametro = new Parametro();
parametro.ParameterName = "pIdReportModello";
parametro.Value = idReportModelloPianificazione;
parametro.DbType = DbType.Int32;
parametri.Add(parametro);
parametro = new Parametro();
parametro.ParameterName = "pUtente";
if ((_cliente.CodiceRete + _cliente.CodicePB).Length > 0)
parametro.Value = _cliente.CodiceRete + _cliente.CodicePB;
else
parametro.Value = System.DBNull.Value;
parametro.DbType = DbType.String;
parametri.Add(parametro);
DataTable dt = DataAccess.ExecuteDataTableStoredProcedure(DBProvider.SqlServer, "sp_getReport_ByUtenteAndModello", parametri);
ddl_Modello.Items.Add("Selezione Modelli");
if (dt.Rows.Count > 0)
{
foreach (DataRow dr in dt.Rows)
{
string nome = dr["Nome"].ToString();
if (nome.IndexOf("LAST USED CONFIG") == -1)
{
ListItem li = new ListItem(dr["Nome"].ToString(), dr["IdReport"].ToString());
this.ddl_Modello.Items.Add(li);
}
}
//string nome = dt.Rows[0]["Nome"].ToString();
//if (nome.IndexOf("LAST USED CONFIG") == -1)
//{
// ListItem li = new ListItem(dt.Rows[0]["Nome"].ToString(), dt.Rows[0]["IdReport"].ToString());
// this.ddl_Modello.Items.Add(li);
//}
}
}
//==================================================
private void PopulateNodes(DataTable dt, int currentDepthLevel)
{
string[][] rowAttributes;
string[][] cellAttributes;
string completeExpandCommand = "";
string completeCheckBoxCommand = "";
int cellsPerRow = 0;
int maxCells = 7; //numero massimo di colonne della tv
foreach (DataRow dr in dt.Rows)
{
//valori delle righe da agganciare alla table
int parentid = Convert.ToInt32(dr["IdSezione"]);
int isMandatory = 0;
if (dr["IsMandatory"] != System.DBNull.Value)
{
isMandatory = Convert.ToInt32(dr["IsMandatory"]);
}
int isBold = 0;
if (dr["IsBold"] != System.DBNull.Value)
{
isBold = Convert.ToInt32(dr["IsBold"]);
}
int numberOfChildren = Convert.ToInt32((dr["childnodecount"]));
string idPadre = dr["IdSezionePadre"].ToString();
string descrizione = dr["Descrizione"].ToString();
string tpSezione = dr["TpSezione"].ToString();
string nomeControlloGruppo = dr["NomeControlloGruppo"].ToString();
string isDefault = dr["isDefault"].ToString(); //indica se il radio button e' checked o meno.
if (isDefault == "") isDefault = "false";
int idSezione = Convert.ToInt32(dr["idSezione"]);
string internalSectionCode = dr["internalSectionCode"].ToString();
////patch per disabilitazione PRIVACY
//if (this.rbl_Privacy.Items[0].Selected == true) privacy = "1";
//else privacy = "0";
//dt.Columns["IdReport"].DefaultValue = reportIdToPass;
//if (internalSectionCode == "ESNOCL" && privacy == "0")
//{
// isMandatory = 1;
//}
//if (internalSectionCode == "COINGL" && privacy == "0")
//{
// isMandatory = 1;
//}
////end of patch
//memorizzo i dati del controllo "chiave" della n-esima riga
rowElements[rowId - 1].descrizione = descrizione;
rowElements[rowId - 1].tipoControllo = tpSezione;
rowElements[rowId - 1].idSezione = idSezione;
if (numberOfChildren > 0) //se ha dei figli...
{
rowAttributes = tbl.setRowAttributes(null, null);
//solo i livelli "root" devono essere espandibili epertanto solo per questi attivo la routine che crea il javascript per aprire e chiudere.
if (idPadre == "")
{
relativeChildNodeIdx = 0;
rootParentID = parentid;
completeExpandCommand = prepareOpenCloseJavascriptCommand(parentid);
row = tbl.addRowToTable(mainTable, "r" + rowId.ToString(), rowStyles[0], rowAttributes);
}
else //aggiungo la categoria
{
catName = "cat" + rootParentID.ToString() + relativeChildNodeIdx++;
row = tbl.addRowToTable(mainTable, catName, rowStyles[1], rowAttributes);
}
//aggiungo celle vuote se serve per l'allineamento
for (int p = 1; p < currentDepthLevel; p++)
{
cellAttributes = tbl.setCellAttributes("empty", "0", null);
tbl.addCellToRowThenToTable(mainTable, row, "c" + rowId.ToString() + cellId++.ToString(), null, cellAttributes, null, null, null, null, false, 0, null, 0, 0);
cellsPerRow++;
}
//un oggetto "root" ha SEMPRE il checkbox
//if (idPadre == "") //SE vuoi che SOLO i "root" comandino le checkbox figli scommenta questa istruzione...
//{
completeCheckBoxCommand = prepareCheckBoxJavascriptCommand(parentid, idSezione);
//}
cellAttributes = tbl.setCellAttributes("parentCheckbox", "0", completeCheckBoxCommand);
//rowElements[rowId - 1].nomeControllo = "cxb" + cxbId.ToString();
rowElements[rowId - 1].nomeControllo = "cxb" + idSezione.ToString();
//string ctrlName = "cxb" + cxbId++.ToString();
string ctrlName = "cxb" + idSezione.ToString();
tbl.addCellToRowThenToTable(mainTable, row, "c" + rowId.ToString() + cellId++.ToString(), null, cellAttributes, "checkbox", null, ctrlName, ctrlName, Convert.ToBoolean(isDefault), isMandatory, internalSectionCode, tpReportPianificazione, 0);
cellsPerRow++;
}
else
{
//la categoria e' una label che serve in fase di apertura/chiusura
catName = "cat" + rootParentID.ToString() + relativeChildNodeIdx++;
rowAttributes = tbl.setRowAttributes("expandibleRow", catName);
row = tbl.addRowToTable(mainTable, null, rowStyles[1], rowAttributes);
completeCheckBoxCommand = prepareCheckBoxJavascriptCommand(parentid, idSezione);
////questa cella blank "rimpiazza" l'assenza della casella col "+"
//cellAttributes = tbl.setCellAttributes("empty", "0", null);
//tbl.addCellToRowThenToTable(mainTable, row, "c" + rowId.ToString() + cellId++.ToString(), null, cellAttributes, null, null, null, null, false, 0, null, 0, 0);
//cellsPerRow++;
if (currentDepthLevel == 1)
{
cellAttributes = tbl.setCellAttributes("empty", "0", null);
tbl.addCellToRowThenToTable(mainTable, row, "c" + rowId.ToString() + cellId++.ToString(), null, cellAttributes, null, null, null, null, false, 0, null, 0, 0);
cellsPerRow++;
}
//aggiungo celle vuote se serve per l'allineamento
for (int p = 1; p < currentDepthLevel; p++)
{
cellAttributes = tbl.setCellAttributes("empty", "0", null);
tbl.addCellToRowThenToTable(mainTable, row, "c" + rowId.ToString() + cellId++.ToString(), null, cellAttributes, null, null, null, null, false, 0, null, 0, 0);
cellsPerRow++;
}
//aggiungo celle specializzate tipo checkboxes o radiobuttons
switch (tpSezione)
{
case "1"://checkbox
completeCheckBoxCommand = prepareCheckBoxJavascriptCommand(parentid, idSezione);
cellAttributes = tbl.setCellAttributes("childCheckbox", "0", completeCheckBoxCommand);
//cellAttributes = tbl.setCellAttributes("childCheckbox", "0", null);
//rowElements[rowId - 1].nomeControllo = "cxb" + cxbId.ToString();
rowElements[rowId - 1].nomeControllo = "cxb" + idSezione.ToString();
//string ctrlName = "cxb" + cxbId++.ToString();
string ctrlName = "cxb" + idSezione.ToString();
tbl.addCellToRowThenToTable(mainTable, row, "c" + rowId.ToString() + cellId++.ToString(), null, cellAttributes, "checkbox", null, ctrlName, ctrlName, Convert.ToBoolean(isDefault), isMandatory, internalSectionCode, tpReportPianificazione, 0);
cellsPerRow++;
break;
case "2"://radiobutton
bool isChecked = false;
if (isDefault == "1") isChecked = true;
cellAttributes = tbl.setCellAttributes("childRadioButton", "0", null);
//rowElements[rowId - 1].nomeControllo = "rb" + rbId.ToString();
rowElements[rowId - 1].nomeControllo = "rb" + idSezione.ToString();
//tbl.addCellToRowThenToTable(mainTable, row, "c" + rowId.ToString() + cellId++.ToString(), null, cellAttributes, "radiobutton", null, nomeControlloGruppo, "rb" + rbId++.ToString(), isChecked, 0, internalSectionCode, tpReportPianificazione);
tbl.addCellToRowThenToTable(mainTable, row, "c" + rowId.ToString() + cellId++.ToString(), null, cellAttributes, "radiobutton", null, nomeControlloGruppo, "rb" + idSezione.ToString(), isChecked, 0, internalSectionCode, tpReportPianificazione, 0);
cellsPerRow++;
break;
}
}
cellsPerRow++;
int colspan = maxCells - cellsPerRow;
//aggiungo la descrizione che e' sempre l'ultima cella
//se e' una label metto lo stile corretto. comuunque qui si puo' customizzare la cella
string cssStyle = null;
if (tpSezione == "3") cssStyle = rowStyles[3];
else if (tpSezione == "0") cssStyle = rowStyles[0];
//else if (tpSezione == "1") cssStyle = rowStyles[1];
else cssStyle = rowStyles[3];
cellAttributes = tbl.setCellAttributes("text", colspan.ToString(), null);
tbl.addCellToRowThenToTable(mainTable, row, "c" + rowId.ToString() + cellId++.ToString(), descrizione, cellAttributes, "testo", cssStyle, null, null, false, 0, internalSectionCode, tpReportPianificazione, isBold);
if (idPadre == "") //solo se e' un oggetto della root va espanso...
{
cellAttributes = tbl.setCellAttributes("expandible", "0", completeExpandCommand);
tbl.addCellToRowThenToTable(mainTable, row, "c" + rowId.ToString() + cellId++.ToString(), " -", cellAttributes, null, null, null, null, false, 0, null, 0, 0);
cellsPerRow++;
}
else //inserisco cella vuota
{
cellAttributes = tbl.setCellAttributes("empty", "0", null);
tbl.addCellToRowThenToTable(mainTable, row, "c" + rowId.ToString() + cellId++.ToString(), null, cellAttributes, null, null, null, null, false, 0, null, 0, 0);
cellsPerRow++;
}
//fine riga: reset delle variabili relative alla riga
cellsPerRow = 0;
rowId++;
cellId = 1;
//routine ricorsiva che esamina i figli dell'n-esimo padre
if (numberOfChildren > 0) //dati dei figli...
{
PopulateSubLevel(parentid, currentDepthLevel);
}
}
}
//-------------------------------------------------------------------------
private string prepareCheckBoxJavascriptCommand(int parentid, int idSezione)
{
sectionIDs = null;
idCounter = 0;
sectionIDs = new string[100];
countNodes(parentid);
string command;
// per ogni nuova riga che ha figli devo preparare il comando relativo alla gestione dei checkbox
int k = idSezione;
command = "javascript:ActivateCheck(cxb" + k.ToString() + ","; //inserisco il padre dei checkbox
k++;
for (int j = 0; j < totNodesPerElementNoRadioButtons; j++)
{
//command += "cxb" + j.ToString() + ",";
command += "cxb" + sectionIDs[j] + ",";
}
command = command.Remove(command.LastIndexOf(","));
command += ");";
totNodesPerElement = 0;
totNodesPerElementNoRadioButtons = 0;
return command;
}
//------------------------------------------------------------------------
private string prepareOpenCloseJavascriptCommand(int parentid)
{
sectionIDs = null;
idCounter = 0;
sectionIDs = new string[100];
countNodes(parentid);
string command;
// per ogni nuova riga che ha figli devo preparare il comando di apertura/chiusura nodi
// quindi devo sapere quanti nodi "figli" ha un dato padre...
command = "javascript:";
for (int k = 0; k < totNodesPerElement; k++)
{
command += "EspandiRacchiudi(this,'cat" + rootParentID.ToString() + k.ToString() + "');";
}
totNodesPerElement = 0;
totNodesPerElementNoRadioButtons = 0;
return command;
}
//-------------------------------------------------------------------------
private void countNodes(int parentID)
{
List parametri = new List();
Parametro parametro = new Parametro();
parametro.DbType = DbType.Int32;
parametro.Value = parentID;
parametro.ParameterName = "pID";
parametri.Add(parametro);
parametro = new Parametro();
parametro.DbType = DbType.Int32;
parametro.Value = idReport;
parametro.ParameterName = "idReport";
parametri.Add(parametro);
DataTable dt = DataAccess.ExecuteDataTableStoredProcedure(DBProvider.SqlServer, "sp_getTVElements_ByParentID", parametri);
totNodesPerElement += dt.Rows.Count;
totNodesPerElementNoRadioButtons += dt.Rows.Count;
foreach (DataRow dr in dt.Rows)
{
//solo i radiobuttons hanno valorizzato questo campo e devo escludere anche le labels
if (dr["NomeControlloGruppo"].ToString() != "" || dr["TpSezione"].ToString() == "3")
{
totNodesPerElementNoRadioButtons--;
}
if (dr["TpSezione"].ToString() != "3" && dr["TpSezione"].ToString() != "2")
{
sectionIDs[idCounter++] = dr["IdSezione"].ToString();
}
int numberOfChildren = Convert.ToInt32((dr["childnodecount"]));
if (numberOfChildren > 0)
{
int innerPID = Convert.ToInt32(dr["IdSezione"]);
countNodes(innerPID);
}
}
}
//------------------------------------------------------------------------
private void PopulateSubLevel(int parentid, int currentDepthLevel)
{
currentDepthLevel++; //indica il livello di profondita' relativo del nodo corrente
List parametri = new List();
Parametro parametro = new Parametro();
parametro.DbType = DbType.Int32;
parametro.Value = parentid;
parametro.ParameterName = "pID";
parametri.Add(parametro);
parametro = new Parametro();
parametro.DbType = DbType.Int32;
parametro.Value = idReport;
parametro.ParameterName = "idReport";
parametri.Add(parametro);
DataTable dt = DataAccess.ExecuteDataTableStoredProcedure(DBProvider.SqlServer, "sp_getTVElements_ByParentID", parametri);
PopulateNodes(dt, currentDepthLevel);
}
//==================================================
private void initReport()
{
int maxStyles = 10; //indica il massimo numero di stili (CssClass) associabili alla singola riga (row)
string[][] tableAttributes;
//row styles
rowStyles = new string[maxStyles];
rowStyles[0] = "stateTitle";
rowStyles[1] = "lblSchede";
rowStyles[2] = "lblLabels";
rowStyles[3] = "lblTestoDescrizione";
tbl = new CTable(); //THE TABLE object
if (codiceFiscale == null || codiceFiscale == "")
{
HttpCookie ck_codiceFiscale = new HttpCookie("codiceFiscale");
ck_codiceFiscale = System.Web.HttpContext.Current.Request.Cookies["codiceFiscale"];
if (ck_codiceFiscale != null) codiceFiscale = ck_codiceFiscale.Value.ToString();
}
if (token == null || token == "")
{
HttpCookie ck_token = new HttpCookie("token");
ck_token = System.Web.HttpContext.Current.Request.Cookies["token"];
if (ck_token != null) token = ck_token.Value.ToString();
}
//set variabili per abilitare pulsanti
//tbl.Pianif_CustomerIsProspect = tbl.Pianificazione_CustomerIsProspect(codiceFiscale, codiceRete + codicePB);
//tbl.Pianif_CustomerIsProspectAndHasNoWalletByOtherInstitutes = tbl.Pianificazione_CustomerIsProspectAndHasNoWalletByOtherInstitutes(codiceFiscale, codiceRete + codicePB);
tbl.LoadDati(codiceFiscale, codicePB, codiceRete);
tbl.Pianif_CustomerHasNoPianificazione = tbl.CustomerHasNoPianificazione();
tbl.Pianif_CustomerHasNoRischio = tbl.Pianificazione_CustomerHasNoRischio(codiceFiscale, codicePB, codiceRete, token);
tbl.Pianif_CustomerHasNoWalletAtAll = tbl.Pianificazione_CustomerHasNoWalletAtAll();
tbl.Pianif_CustomerHasNoBFWallet = tbl.Pianificazione_CustomerHasNoBFWallet();
tbl.Pianif_CustomerHasNoPiramideModello = tbl.Pianificazione_CustomerHasNoPiramideModello();
tbl.Pianif_CustomerHaSoloCCPressoBF = tbl.Pianificazione_CustomerHaSoloCCPressoBF();
tbl.Pianif_CustomerHaPianificazioneRISERVA = tbl.Pianificazione_CustomerHaPianificazioneRISERVA();
tbl.Pianif_CustomerHaPianificazioneINVESTIMENTO = tbl.Pianificazione_CustomerHaPianificazioneINVESTIMENTO();
reportNominativo = this.rbl_Privacy.Items[0].Selected ? true : false;
tableAttributes = tbl.setTableAttributes();
mainTable = tbl.createTable("mainTable", tableAttributes);
List parametri = new List();
Parametro parametro = new Parametro();
parametro.DbType = DbType.Int32;
parametro.Value = idReport;
parametro.ParameterName = "idReport";
parametri.Add(parametro);
DataTable dt = DataAccess.ExecuteDataTableStoredProcedure(DBProvider.SqlServer, "sp_getTVElements", parametri);
int currentDepthLevel = 1;
PopulateNodes(dt, currentDepthLevel);
Page.Controls.Add(mainTable);
pnl_tv.Controls.Add(mainTable);
}
//==================================================
protected void btn_Salva_Click(object sender, EventArgs e)
{
int idReport;
bool rc = false;
if (txb_nomeModello.Text == "")
{
this.lbl_message.ForeColor = System.Drawing.Color.Red;
this.lbl_message.Text = "Attenzione. Immettere il nome del modello da salvare.";
}
else if (txb_nomeModello.Text.ToUpper() == "BASE" || txb_nomeModello.Text.ToUpper() == "COMPLETO")
{
this.lbl_message.ForeColor = System.Drawing.Color.Red;
this.lbl_message.Text = "Attenzione. Non è possibile salvare un modello con questo nome, cambiare nome e riprovare con il salvataggio.";
}
else
{
string nomeModello = txb_nomeModello.Text;
nomeModello = nomeModello.Trim();
int idCliente = _cliente.IdCliente_SEIReport;
idReport = scriviNuovoModelloReportIntoDB(nomeModello, idCliente);
//aggiungo il cookie con ReportToPass
if (idReport != 0)
{
HttpCookie ck_reportIdToPass = new HttpCookie("reportIdToPass");
ck_reportIdToPass.Value = idReport.ToString();
Response.Cookies.Add(ck_reportIdToPass);
}
fillModelli();
//deletePreviousLastConfigRecordsFromDB(idReport);
if (idReport != -1)
{
CheckBox crtlCheckBox;
RadioButton ctrlRadio;
//int idx = 1;
foreach (tvElementsPianificazione elem in rowElements)
{
if (elem.descrizione == null) break;
if (elem.tipoControllo == "1" || elem.tipoControllo == "0") //checkbox
{
crtlCheckBox = (CheckBox)this.mainTable.FindControl(elem.nomeControllo);
if (crtlCheckBox.Checked == true)
rc = scriviDettaglioSezioniDelReportIntoDB(elem.idSezione, idReport);
if (rc) break;
//else idx++;
}
else if (elem.tipoControllo == "2")
{
ctrlRadio = (RadioButton)this.mainForm.FindControl(elem.nomeControllo);
if (ctrlRadio.Checked == true)
rc = scriviDettaglioSezioniDelReportIntoDB(elem.idSezione, idReport);
if (rc) break;
//else idx++;
}
else if (elem.tipoControllo == "3") //labels
{
//idx++;
}
}
}
else this.lbl_message.Text = "Errore nel salvataggio del modello " + nomeModello + ".";
if (!rc)
{
this.lbl_message.ForeColor = System.Drawing.Color.Black;
this.lbl_message.Text = "Il Modello " + nomeModello + " e' stato salvato correttamente.";
}
else this.lbl_message.Text = "Errore nel salvataggio del modello " + nomeModello + ".";
selezionaModelloNellaCombo(nomeModello);
}
}
//===========================================================================
private bool scriviDettaglioSezioniDelReportIntoDB(int idSezione, int idReport)
{
List parametri = new List();
Parametro parametro = new Parametro();
parametro.DbType = DbType.Int32;
parametro.Value = idSezione;
parametro.ParameterName = "idSezione";
parametri.Add(parametro);
parametro = new Parametro();
parametro.DbType = DbType.Int32;
parametro.Value = idReport;
parametro.ParameterName = "idReport";
parametri.Add(parametro);
parametro = new Parametro();
parametro.DbType = DbType.String;
parametro.Value = _cliente.CodiceRete + _cliente.CodicePB;
parametro.ParameterName = "utente";
parametri.Add(parametro);
int rc = DataAccess.ExecuteNonQueryStoredProcedure(DBProvider.SqlServer, "sp_insertCustomSezioniReport", parametri);
return false;
}
//========================================================
private int scriviNuovoModelloReportIntoDB(string reportName, int idCliente)
{
int rc = -1;
List parametri = new List();
Parametro parametro = new Parametro();
parametro.DbType = DbType.String;
parametro.Value = reportName;
parametro.ParameterName = "nome";
parametri.Add(parametro);
parametro = new Parametro();
parametro.DbType = DbType.String;
parametro.Value = this.txb_descrizione.Text;
parametro.ParameterName = "descrizione";
parametri.Add(parametro);
parametro = new Parametro();
parametro.DbType = DbType.Boolean;
parametro.Value = false;
parametro.ParameterName = "flgModello";
parametri.Add(parametro);
parametro = new Parametro();
parametro.DbType = DbType.Int16;
parametro.Value = idReportModelloPianificazione;
parametro.ParameterName = "idReportModello";
parametri.Add(parametro);
parametro = new Parametro();
parametro.DbType = DbType.Int16;
parametro.Value = tpReportPianificazione;
parametro.ParameterName = "tpReport";
parametri.Add(parametro);
parametro = new Parametro();
parametro.DbType = DbType.String;
parametro.Value = _cliente.CodiceRete + _cliente.CodicePB;
parametro.ParameterName = "utente";
parametri.Add(parametro);
parametro = new Parametro();
parametro.DbType = DbType.Int32;
parametro.Value = idCliente;
parametro.ParameterName = "idCliente";
parametri.Add(parametro);
parametro = new Parametro();
parametro.DbType = DbType.Int16;
parametro.Value = rbl_Privacy.SelectedIndex;
parametro.ParameterName = "Privacy";
parametri.Add(parametro);
rc = DataAccess.ExecuteNonQueryStoredProcedure(DBProvider.SqlServer, "sp_insertNewReportModelNew", parametri);
return rc;
}
protected void btn_GestioneModelli_Click(object sender, EventArgs e)
{
if (reportIdToPass == 0)
{
HttpCookie ck_reportIdToPass = new HttpCookie("reportIdToPass");
ck_reportIdToPass = System.Web.HttpContext.Current.Request.Cookies["reportIdToPass"];
if (ck_reportIdToPass != null)
{
reportIdToPass = Convert.ToInt32(ck_reportIdToPass.Value);
Response.Cookies.Add(ck_reportIdToPass);
}
}
nomeInizialeReport = this.txb_nomeModello.Text;
descrizioneInizialeReport = this.txb_descrizione.Text;
if (reportIdToPass == 0) reportIdToPass = getIdReport_ByReportName(this.ddl_Modello.SelectedItem.Text);
reportNominativo = this.rbl_Privacy.Items[0].Selected ? true : false;
Response.Redirect("archivioModelli.aspx?codCliente=" + codiceFiscale + "&tipoRete=" + codiceRete + "&codPB=" + codicePB + "&pathNav=" + pathNav + "&tpReport=" + tpReportPianificazione + "&utente=" + _cliente.CodiceRete + _cliente.CodicePB + "&caller=" + nomeReportPianificazione + "&idReport=" + reportIdToPass + "&nomeInizialeReport=" + nomeInizialeReport + "&descrizioneInizialeReport=" + descrizioneInizialeReport + "&checkPrivacy=" + reportNominativo + "&token=" + token);
}
//=======================================================
private int getIdReport_ByReportName(string name)
{
int rc = 0;
List parametri = new List();
Parametro parametro = new Parametro();
parametro.DbType = DbType.String;
parametro.Value = name;
parametro.ParameterName = "pReportName";
parametri.Add(parametro);
DataTable dt = DataAccess.ExecuteDataTableStoredProcedure(DBProvider.SqlServer, "sp_getReportID_ByReportName", parametri);
if (dt.Rows.Count > 0) rc = (int)dt.Rows[0]["IdReport"];
return rc;
}
//==========================================================
protected void rbl_scelte_SelectedIndexChanged(object sender, EventArgs e)
{
this.txb_nomeModello.Text = "";
this.txb_descrizione.Text = "";
if (rbl_scelte.SelectedValue == "")
{
ddl_Modello.Enabled = true;
}
else
{
ddl_Modello.Enabled = false;
ddl_Modello.SelectedIndex = 0;
}
bool rc;
switch (rbl_scelte.SelectedItem.Value)
{
case "Completo":
//load profilo "completo" x quel report (uno x tutti)
rc = getReportSectionIds_ByNameNew("Pianificazione completo");
if (!rc)
{
setControlsOnTV();
this.lbl_message.ForeColor = System.Drawing.Color.Black;
this.lbl_message.Text = "";
}
else this.lbl_message.Text = "Attenzione. Errori nel caricamento del modello COMPLETO.";
break;
case "Base":
//load profilo "base" x quel report (uno x tutti)
rc = getReportSectionIds_ByNameNew("Pianificazione base");
if (!rc)
{
setControlsOnTV();
this.lbl_message.ForeColor = System.Drawing.Color.Black;
this.lbl_message.Text = "";
}
else this.lbl_message.Text = "Attenzione. Errori nel caricamento del modello BASE.";
break;
}
}
//==========================================================
private bool getReportSectionIds_ByNameNew(string nomeReport)
{
bool rc = false;
int repId = 0;
if (nomeReport == "Pianificazione completo") repId = 7;
else if (nomeReport == "Pianificazione base") repId = 8;
List parametri = new List();
Parametro parametro = new Parametro();
parametro.DbType = DbType.Int32;
parametro.Value = repId;
parametro.ParameterName = "idReport";
parametri.Add(parametro);
DataTable dt = DataAccess.ExecuteDataTableStoredProcedure(DBProvider.SqlServer, "sp_getSezioniReport_ByIdReportNew", parametri);
int idx = 0;
reportIdToPass = Convert.ToInt32(dt.Rows[0]["idReport"]);
//aggiungo il cookie con ReportToPass
if (reportIdToPass != 0)
{
HttpCookie ck_reportIdToPass = new HttpCookie("reportIdToPass");
ck_reportIdToPass.Value = reportIdToPass.ToString();
Response.Cookies.Add(ck_reportIdToPass);
}
////patch per la privacy
//if (this.rbl_Privacy.Items[0].Selected == true) privacy = "1";
//else privacy = "0";
//dt.Columns["IdReport"].DefaultValue = reportIdToPass;
//if (privacy == "0") //aggiungo ESNOCL
//{
// DataRow[] esnocl = dt.Select("internalSectionCode = 'ESNOCL'");
// DataRow[] coingl = dt.Select("internalSectionCode = 'COINGL'");
// if (esnocl.Length == 0) //se non c'e' aggiungo
// {
// DataRow esnoclRow = dt.NewRow();
// esnoclRow["internalSectionCode"] = "ESNOCL";
// esnoclRow["IdSezione"] = "77"; //valore fixed nel DB
// dt.Rows.Add(esnoclRow);
// }
// if (coingl.Length == 0) //se non c'e' aggiungo
// {
// DataRow coinglRow = dt.NewRow();
// coinglRow["internalSectionCode"] = "COINGL";
// coinglRow["IdSezione"] = "75"; //valore fixed nel DB
// dt.Rows.Add(coinglRow);
// }
//}
foreach (DataRow dr in dt.Rows) //ricavo l'indice (e' posizionale) del controllo da attivare.
{
//isc = dr["internalSectionCode"].ToString();
//found = enableDisableControl(isc);
//if (!found) indiceSezioneAttiva[idx++] = dr["IdSezione"].ToString();
//else found = false;
indiceSezioneAttiva[idx++] = dr["IdSezione"].ToString();
}
return rc;
}
//=========================================================
private bool enableDisableControl(string isc)
{
bool found = false;
if (tbl.Pianif_CustomerHasNoPiramideModello)
{
switch (isc)
{
case "CFPMPA":
found = true;
break;
}
}
if (tbl.Pianif_CustomerHasNoBFWallet)
{
switch (isc)
{
case "DTGPRD":
case "INCPRF":
found = true;
break;
}
}
//if (tbl.Pianif_CustomerIsProspect)
//{
// switch (isc)
// {
// case "CFPMPA":
// found = true;
// break;
// }
//}
//if (tbl.Pianif_CustomerIsProspectAndHasNoWalletByOtherInstitutes)
//{
// switch (isc)
// {
// case "ANRSPF":
// found = true;
// break;
// }
//}
if (tbl.Pianif_CustomerHasNoPianificazione)
{
switch (isc)
{
case "PIANIF":
case "PNFVRT":
case "PMPIAN":
case "CFPMPP":
case "CFPAPP":
case "PNFORZ":
case "INDSNT":
case "PBEVRC":
case "INCSCM":
case "INCSSP":
case "INSTIN":
case "DSASSC":
case "MASSCL":
case "ASSCLA":
case "INCSC2":
case "PBEVR2":
case "INCSM2":
case "INCSP2":
case "INSTI2":
case "DSASS2":
case "MASSC2":
case "ASSCL2":
found = true;
break;
}
}
if (tbl.Pianif_CustomerHasNoRischio && tbl.Pianif_CustomerHasNoWalletAtAll)
{
switch (isc)
{
case "ANRSPF":
found = true;
break;
}
}
if (tbl.Pianif_CustomerHasNoRischio)
{
switch (isc)
{
case "PRFRSC":
found = true;
break;
}
}
if (tbl.Pianif_CustomerHasNoWalletAtAll)
{
switch (isc)
{
case "DIAGNO":
case "PATCMP":
case "DTGPRD":
case "INCPRF":
found = true;
break;
}
}
return found;
}
//==========================================================
private bool getReportSectionIds_ByName(string nomeReport)
{
bool rc = false;
List parametri = new List();
Parametro parametro = new Parametro();
parametro.DbType = DbType.String;
parametro.Value = nomeReport;
parametro.ParameterName = "pReportName";
parametri.Add(parametro);
DataTable dt = DataAccess.ExecuteDataTableStoredProcedure(DBProvider.SqlServer, "sp_getSezioniReport_ByReportName", parametri);
int idx = 0;
reportIdToPass = Convert.ToInt32(dt.Rows[0]["idReport"]);
foreach (DataRow dr in dt.Rows) //ricavo l'indice (e' posizionale) del controllo da attivare.
{
indiceSezioneAttiva[idx++] = dr["IdSezione"].ToString();
}
return rc;
}
//==========================================================
protected void btn_Stampa_Click(object sender, EventArgs e)
{
bool rcode = checkPianificazioneEnabled(); //verifico la possibilita' di generare la stampa per QUEL cliente
if (rcode == true)
{
bool rc = false;
//salviamo la configurazione mandata in stampa come "LAST USED CONFIG"
int idCliente = _cliente.IdCliente_SEIReport;
if (idCliente != -1)
{
idReport = scriviNuovoModelloReportIntoDB("LAST USED CONFIG" + "_" + idCliente.ToString(), idCliente);
//salvo la ultima configurazione USATA dall'operatore anche se NON salvata in un modello specifico
if (idReport != -1)
{
CheckBox crtlCheckBox;
RadioButton ctrlRadio;
bool statusOfCopertina = true;
bool escludi = false;
//int idx = 1;
foreach (tvElementsPianificazione elem in rowElements)
{
if (elem.descrizione == null) break;
if (elem.tipoControllo == "1" || elem.tipoControllo == "0") //checkbox
{
crtlCheckBox = (CheckBox)this.mainTable.FindControl(elem.nomeControllo);
if (elem.nomeControllo == "cxb75" && rbl_Privacy.Items[1].Selected == true) crtlCheckBox.Checked = true;
if (elem.nomeControllo == "cxb76") statusOfCopertina = crtlCheckBox.Checked;
if (elem.nomeControllo == "cxb77" && !statusOfCopertina) escludi = true;
if (elem.nomeControllo == "cxb77" && statusOfCopertina)
{
if (rbl_Privacy.Items[1].Selected == true) crtlCheckBox.Checked = true;
}
if (crtlCheckBox.Checked == true && !escludi) rc = scriviDettaglioSezioniDelReportIntoDB(elem.idSezione, idReport);
escludi = false;
if (rc) break;
}
else if (elem.tipoControllo == "2")
{
ctrlRadio = (RadioButton)this.mainForm.FindControl(elem.nomeControllo);
if (ctrlRadio.Checked == true)
rc = scriviDettaglioSezioniDelReportIntoDB(elem.idSezione, idReport);
if (rc) break;
}
else if (elem.tipoControllo == "3") //labels
{
//do nothing
}
}
//inizializzo il cookie che segnala la possibilita' di mostrare la pagina di inserimento note (reportStampa.aspx)
HttpCookie ck_endOfJob = new HttpCookie("endOfJob");
ck_endOfJob.Value = "0";
Response.Cookies.Add(ck_endOfJob);
#region MODIFICA PER GESTIONE STAMPA e POOL SU CLIENT
nomeInizialeReport = this.txb_nomeModello.Text;
descrizioneInizialeReport = this.txb_descrizione.Text;
if (rbl_scelte.Items[0].Selected == true)
{
baseCompleto = "1";
}
else if (rbl_scelte.Items[1].Selected == true)
{
baseCompleto = "2";
}
reportNominativo = this.rbl_Privacy.Items[0].Selected ? true : false;
string command = "generaPDF(\"Generator.aspx\",\"tipoReport=PIANIFICAZIONE&action=createPianificazione&codicePB=" + codicePB + "&codiceFiscale=" + codiceFiscale + "&token=" + token + "&codiceRete=" + codiceRete + "&idReport=" + idReport + "&ambiente=" + ambiente + "&nomeInizialeReport=" + nomeInizialeReport + "&descrizioneInizialeReport=" + descrizioneInizialeReport + "&baseCompleto=" + baseCompleto + "&checkPrivacy=" + reportNominativo + "\");";
ClientScript.RegisterStartupScript(typeof(string), "pppppp",
"");
#endregion FINE MODIFICA PER GESTIONE STAMPA e POOL SU CLIENT
}
else this.lbl_message.Text = "Attenzione. Errore nel recupero del codice Cliente.";
}
}
else this.lbl_message.Text = "Attenzione. Non è possibile procedere con la stampa: per il cliente in sessione non è attiva nessuna pianificazione.";
}
private bool checkPianificazioneEnabled()
{
//HttpCookie ck_codiceFiscale = new HttpCookie("codiceFiscale");
//ck_codiceFiscale = System.Web.HttpContext.Current.Request.Cookies["codiceFiscale"];
//if (codiceFiscale == null || codiceFiscale == "")
//{
// if (ck_codiceFiscale != null) codiceFiscale = ck_codiceFiscale.Value.ToString();
//}
//DataTable dt = SectionManager.GetDataSection("reportPianificazione_checkPianificazioneEnabled", codicePB, codiceFiscale, codiceRete);
//return dt.Rows.Count > 0;
return !tbl.CustomerHasNoPianificazione();
}
private int saveLastUsedConfigIntoDB(int idCliente, int idReport)
{
List parametri = new List();
Parametro parametro = new Parametro();
parametro.DbType = DbType.Int32;
parametro.Value = idReport;
parametro.ParameterName = "idReport";
parametri.Add(parametro);
parametro = new Parametro();
parametro.DbType = DbType.Int32;
parametro.Value = idCliente;
parametro.ParameterName = "idCliente";
parametri.Add(parametro);
return DataAccess.ExecuteNonQueryStoredProcedure(DBProvider.SqlServer, "sp_updateClienteReportLastAccess", parametri);
}
//=========================================================================
protected void ddl_Modello_SelectedIndexChanged(object sender, EventArgs e)
{
if (ddl_Modello.SelectedItem.Text != "Selezione Modelli")
{
int idReportSelezionato = Convert.ToInt32(this.ddl_Modello.SelectedItem.Value); //indica l'id del report personalizzato prescelto
reportIdToPass = idReportSelezionato;
//aggiungo il cookie con ReportToPass
if (reportIdToPass != 0)
{
HttpCookie ck_reportIdToPass = new HttpCookie("reportIdToPass");
ck_reportIdToPass.Value = reportIdToPass.ToString();
Response.Cookies.Add(ck_reportIdToPass);
}
//loadChoosenProfile(idReportSelezionato, null);
loadChoosenProfileNew(idReportSelezionato, null);
this.txb_descrizione.Text = descrizioneReportPerLabel;
this.txb_nomeModello.Text = nomeReportPerLabel;
setControlsOnTV();
this.lbl_message.ForeColor = System.Drawing.Color.Black;
//this.lbl_message.Text = "Modello " + ddl_Modello.SelectedItem.Text + " caricato correttamente";
this.lbl_message.Text = "";
}
}
//========================================================================
private void setControlsOnTV()
{
CheckBox crtlCheckBox;
RadioButton ctrlRadio;
//reset all TV elements
foreach (tvElementsPianificazione elem in rowElements)
{
if (elem.descrizione == null) break;
if (elem.tipoControllo == "1" || elem.tipoControllo == "0") //checkbox
{
crtlCheckBox = (CheckBox)this.mainTable.FindControl(elem.nomeControllo);
crtlCheckBox.Checked = false;
}
else if (elem.tipoControllo == "2") //radio
{
ctrlRadio = (RadioButton)this.mainForm.FindControl(elem.nomeControllo);
ctrlRadio.Checked = false;
}
}
//set TV elements
foreach (string elem in indiceSezioneAttiva)
{
if (elem == null) break;
int offset = getOffset();
int pos = Convert.ToInt32(elem) - offset; //l'array rowElements dovrebbe essere riempito con indici UGUALI all'id della Sezione e non da base 0!
if (rowElements[pos].tipoControllo == "1" || rowElements[pos].tipoControllo == "0") //checkbox
{
crtlCheckBox = (CheckBox)this.mainTable.FindControl(rowElements[pos].nomeControllo);
crtlCheckBox.Checked = true;
}
else if (rowElements[pos].tipoControllo == "2") //radio
{
ctrlRadio = (RadioButton)this.mainForm.FindControl(rowElements[pos].nomeControllo);
ctrlRadio.Checked = true;
}
}
}
//=====================================================================
private int getOffset()
{
List parametri = new List();
Parametro parametro = new Parametro();
parametro.DbType = DbType.Int32;
parametro.Value = idReport;
parametro.ParameterName = "pIdReport";
parametri.Add(parametro);
return (int)DataAccess.ExecuteScalarStoredProcedure(DBProvider.SqlServer, "sp_getOffset_ByIdReport", parametri);
}
//========================================================================
private void loadChoosenProfileNew(int idReportSelezionato, string pUtente)
{
List parametri = new List();
Parametro parametro = new Parametro();
parametro.DbType = DbType.Int32;
parametro.Value = idReportSelezionato;
parametro.ParameterName = "idReport";
parametri.Add(parametro);
DataTable dt = DataAccess.ExecuteDataTableStoredProcedure(DBProvider.SqlServer, "sp_getSezioniReport_ByIdReportNew", parametri);
////patch per la privacy
//if (this.rbl_Privacy.Items[0].Selected == true) privacy = "1";
//else privacy = "0";
//dt.Columns["IdReport"].DefaultValue = reportIdToPass;
//if (privacy == "0") //aggiungo ESNOCL
//{
// DataRow[] esnocl = dt.Select("internalSectionCode = 'ESNOCL'");
// DataRow[] coingl = dt.Select("internalSectionCode = 'COINGL'");
// if (esnocl.Length == 0) //se non c'e' aggiungo
// {
// DataRow esnoclRow = dt.NewRow();
// esnoclRow["internalSectionCode"] = "ESNOCL";
// esnoclRow["IdSezione"] = "77"; //valore fixed nel DB
// dt.Rows.Add(esnoclRow);
// }
// if (coingl.Length == 0) //se non c'e' aggiungo
// {
// DataRow coinglRow = dt.NewRow();
// coinglRow["internalSectionCode"] = "COINGL";
// coinglRow["IdSezione"] = "75"; //valore fixed nel DB
// dt.Rows.Add(coinglRow);
// }
//}
int idx = 0;
foreach (DataRow dr in dt.Rows) //ricavo l'indice (e' posizionale) del controllo da attivare.
{
//isc = dr["internalSectionCode"].ToString();
//found = enableDisableControl(isc);
//if (!found) indiceSezioneAttiva[idx++] = dr["IdSezione"].ToString();
//else found = false;
indiceSezioneAttiva[idx++] = dr["IdSezione"].ToString();
}
//recupero il nome del report
getReportName_ByReportID(idReportSelezionato);
}
//========================================================================
private void loadChoosenProfile(int idReportSelezionato, string pUtente)
{
List parametri = new List();
Parametro parametro = new Parametro();
parametro.DbType = DbType.Int32;
parametro.Value = idReportSelezionato;
parametro.ParameterName = "pIdReport";
parametri.Add(parametro);
parametro = new Parametro();
parametro.DbType = DbType.String;
if (pUtente != null) parametro.Value = pUtente;
else parametro.Value = System.DBNull.Value;
parametro.ParameterName = "pUtente";
parametri.Add(parametro);
DataTable dt = DataAccess.ExecuteDataTableStoredProcedure(DBProvider.SqlServer, "sp_getSezioniReport_ByIdReport", parametri);
int idx = 0;
foreach (DataRow dr in dt.Rows) //ricavo l'indice (e' posizionale) del controllo da attivare.
{
indiceSezioneAttiva[idx++] = dr["IdSezione"].ToString();
nomeReportPerLabel = dr["nome"].ToString();
descrizioneReportPerLabel = dr["descrizione"].ToString();
}
}
protected void txb_descrizione_TextChanged(object sender, EventArgs e)
{
}
//===========================================================================
protected void rbl_OnLoad(object sender, EventArgs e)
{
rbl_Privacy.Items[0].Attributes.Add("onclick", "privacyDisable();");
rbl_Privacy.Items[1].Attributes.Add("onclick", "privacyEnable();");
}
//=========================================================================
protected void rbl_Privacy_SelectedIndexChanged(object sender, EventArgs e)
{
}
#region Web Form Designer generated code
override protected void OnInit(EventArgs e)
{
try
{
//
// CODEGEN: This call is required by the ASP.NET Web Form Designer.
//
InitializeComponent();
base.OnInit(e);
}
catch (Exception)
{
}
}
///
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
///
private void InitializeComponent()
{
}
#endregion
}
//==========================================================================
public struct tvElementsPianificazione
{
public string nomeControllo;
public string tipoControllo;
public string descrizione;
public int idSezione;
}