diff --git a/AppData/DS_App.Designer.cs b/AppData/DS_App.Designer.cs index f13ed10..a038c08 100644 --- a/AppData/DS_App.Designer.cs +++ b/AppData/DS_App.Designer.cs @@ -5514,7 +5514,9 @@ namespace AppData.DS_AppTableAdapters { this._commandCollection = new global::System.Data.SqlClient.SqlCommand[7]; this._commandCollection[0] = new global::System.Data.SqlClient.SqlCommand(); this._commandCollection[0].Connection = this.Connection; - this._commandCollection[0].CommandText = "SELECT *\r\nFROM v_BatchList"; + this._commandCollection[0].CommandText = "SELECT BatchID, Takt, DueDate, NestingReq, NestingResp, STATUS, Position, " + + "TotalTime, ApprovDate, ApprovUser, NumOrders, NumItems, NumStacks, NumSheets\r\nFR" + + "OM v_BatchList"; this._commandCollection[0].CommandType = global::System.Data.CommandType.Text; this._commandCollection[1] = new global::System.Data.SqlClient.SqlCommand(); this._commandCollection[1].Connection = this.Connection; @@ -5854,7 +5856,7 @@ namespace AppData.DS_AppTableAdapters { [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] private void InitCommandCollection() { - this._commandCollection = new global::System.Data.SqlClient.SqlCommand[4]; + this._commandCollection = new global::System.Data.SqlClient.SqlCommand[7]; this._commandCollection[0] = new global::System.Data.SqlClient.SqlCommand(); this._commandCollection[0].Connection = this.Connection; this._commandCollection[0].CommandText = "SELECT *\r\nFROM v_StackList"; @@ -5867,16 +5869,35 @@ namespace AppData.DS_AppTableAdapters { this._commandCollection[1].Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@BatchID", global::System.Data.SqlDbType.Int, 4, global::System.Data.ParameterDirection.Input, 10, 0, null, global::System.Data.DataRowVersion.Current, false, null, "", "", "")); this._commandCollection[2] = new global::System.Data.SqlClient.SqlCommand(); this._commandCollection[2].Connection = this.Connection; - this._commandCollection[2].CommandText = "dbo.stp_Stacks_getByKey"; + this._commandCollection[2].CommandText = "dbo.stp_Stacks_getByDtmx"; this._commandCollection[2].CommandType = global::System.Data.CommandType.StoredProcedure; this._commandCollection[2].Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@RETURN_VALUE", global::System.Data.SqlDbType.Int, 4, global::System.Data.ParameterDirection.ReturnValue, 10, 0, null, global::System.Data.DataRowVersion.Current, false, null, "", "", "")); - this._commandCollection[2].Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@StackID", global::System.Data.SqlDbType.Int, 4, global::System.Data.ParameterDirection.Input, 10, 0, null, global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._commandCollection[2].Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@StackDtmx", global::System.Data.SqlDbType.NVarChar, 50, global::System.Data.ParameterDirection.Input, 0, 0, null, global::System.Data.DataRowVersion.Current, false, null, "", "", "")); this._commandCollection[3] = new global::System.Data.SqlClient.SqlCommand(); this._commandCollection[3].Connection = this.Connection; - this._commandCollection[3].CommandText = "dbo.stp_Stacks_getNextByBatch"; + this._commandCollection[3].CommandText = "dbo.stp_Stacks_getByKey"; this._commandCollection[3].CommandType = global::System.Data.CommandType.StoredProcedure; this._commandCollection[3].Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@RETURN_VALUE", global::System.Data.SqlDbType.Int, 4, global::System.Data.ParameterDirection.ReturnValue, 10, 0, null, global::System.Data.DataRowVersion.Current, false, null, "", "", "")); - this._commandCollection[3].Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@BatchID", global::System.Data.SqlDbType.Int, 4, global::System.Data.ParameterDirection.Input, 10, 0, null, global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._commandCollection[3].Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@StackID", global::System.Data.SqlDbType.Int, 4, global::System.Data.ParameterDirection.Input, 10, 0, null, global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._commandCollection[4] = new global::System.Data.SqlClient.SqlCommand(); + this._commandCollection[4].Connection = this.Connection; + this._commandCollection[4].CommandText = "dbo.stp_Stacks_getCurrByBatch"; + this._commandCollection[4].CommandType = global::System.Data.CommandType.StoredProcedure; + this._commandCollection[4].Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@RETURN_VALUE", global::System.Data.SqlDbType.Int, 4, global::System.Data.ParameterDirection.ReturnValue, 10, 0, null, global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._commandCollection[4].Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@BatchID", global::System.Data.SqlDbType.Int, 4, global::System.Data.ParameterDirection.Input, 10, 0, null, global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._commandCollection[5] = new global::System.Data.SqlClient.SqlCommand(); + this._commandCollection[5].Connection = this.Connection; + this._commandCollection[5].CommandText = "dbo.stp_Stacks_getNextByBatch"; + this._commandCollection[5].CommandType = global::System.Data.CommandType.StoredProcedure; + this._commandCollection[5].Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@RETURN_VALUE", global::System.Data.SqlDbType.Int, 4, global::System.Data.ParameterDirection.ReturnValue, 10, 0, null, global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._commandCollection[5].Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@BatchID", global::System.Data.SqlDbType.Int, 4, global::System.Data.ParameterDirection.Input, 10, 0, null, global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._commandCollection[6] = new global::System.Data.SqlClient.SqlCommand(); + this._commandCollection[6].Connection = this.Connection; + this._commandCollection[6].CommandText = "dbo.stp_Stacks_updatePos"; + this._commandCollection[6].CommandType = global::System.Data.CommandType.StoredProcedure; + this._commandCollection[6].Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@RETURN_VALUE", global::System.Data.SqlDbType.Int, 4, global::System.Data.ParameterDirection.ReturnValue, 10, 0, null, global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._commandCollection[6].Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@StackID", global::System.Data.SqlDbType.Int, 4, global::System.Data.ParameterDirection.Input, 10, 0, null, global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._commandCollection[6].Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Position", global::System.Data.SqlDbType.Int, 4, global::System.Data.ParameterDirection.Input, 10, 0, null, global::System.Data.DataRowVersion.Current, false, null, "", "", "")); } [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] @@ -5924,8 +5945,25 @@ namespace AppData.DS_AppTableAdapters { [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] [global::System.ComponentModel.DataObjectMethodAttribute(global::System.ComponentModel.DataObjectMethodType.Select, false)] - public virtual DS_App.StackListDataTable getByKey(global::System.Nullable StackID) { + public virtual DS_App.StackListDataTable getByDtmx(string StackDtmx) { this.Adapter.SelectCommand = this.CommandCollection[2]; + if ((StackDtmx == null)) { + this.Adapter.SelectCommand.Parameters[1].Value = global::System.DBNull.Value; + } + else { + this.Adapter.SelectCommand.Parameters[1].Value = ((string)(StackDtmx)); + } + DS_App.StackListDataTable dataTable = new DS_App.StackListDataTable(); + this.Adapter.Fill(dataTable); + return dataTable; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] + [global::System.ComponentModel.DataObjectMethodAttribute(global::System.ComponentModel.DataObjectMethodType.Select, false)] + public virtual DS_App.StackListDataTable getByKey(global::System.Nullable StackID) { + this.Adapter.SelectCommand = this.CommandCollection[3]; if ((StackID.HasValue == true)) { this.Adapter.SelectCommand.Parameters[1].Value = ((int)(StackID.Value)); } @@ -5941,8 +5979,8 @@ namespace AppData.DS_AppTableAdapters { [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] [global::System.ComponentModel.DataObjectMethodAttribute(global::System.ComponentModel.DataObjectMethodType.Select, false)] - public virtual DS_App.StackListDataTable getNextByBatch(global::System.Nullable BatchID) { - this.Adapter.SelectCommand = this.CommandCollection[3]; + public virtual DS_App.StackListDataTable getCurrByBatch(global::System.Nullable BatchID) { + this.Adapter.SelectCommand = this.CommandCollection[4]; if ((BatchID.HasValue == true)) { this.Adapter.SelectCommand.Parameters[1].Value = ((int)(BatchID.Value)); } @@ -5953,6 +5991,57 @@ namespace AppData.DS_AppTableAdapters { this.Adapter.Fill(dataTable); return dataTable; } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] + [global::System.ComponentModel.DataObjectMethodAttribute(global::System.ComponentModel.DataObjectMethodType.Select, false)] + public virtual DS_App.StackListDataTable getNextByBatch(global::System.Nullable BatchID) { + this.Adapter.SelectCommand = this.CommandCollection[5]; + if ((BatchID.HasValue == true)) { + this.Adapter.SelectCommand.Parameters[1].Value = ((int)(BatchID.Value)); + } + else { + this.Adapter.SelectCommand.Parameters[1].Value = global::System.DBNull.Value; + } + DS_App.StackListDataTable dataTable = new DS_App.StackListDataTable(); + this.Adapter.Fill(dataTable); + return dataTable; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] + public virtual int updatePos(global::System.Nullable StackID, global::System.Nullable Position) { + global::System.Data.SqlClient.SqlCommand command = this.CommandCollection[6]; + if ((StackID.HasValue == true)) { + command.Parameters[1].Value = ((int)(StackID.Value)); + } + else { + command.Parameters[1].Value = global::System.DBNull.Value; + } + if ((Position.HasValue == true)) { + command.Parameters[2].Value = ((int)(Position.Value)); + } + else { + command.Parameters[2].Value = global::System.DBNull.Value; + } + global::System.Data.ConnectionState previousConnectionState = command.Connection.State; + if (((command.Connection.State & global::System.Data.ConnectionState.Open) + != global::System.Data.ConnectionState.Open)) { + command.Connection.Open(); + } + int returnValue; + try { + returnValue = command.ExecuteNonQuery(); + } + finally { + if ((previousConnectionState == global::System.Data.ConnectionState.Closed)) { + command.Connection.Close(); + } + } + return returnValue; + } } /// diff --git a/AppData/DS_App.xsd b/AppData/DS_App.xsd index 3c5ec7c..4e775df 100644 --- a/AppData/DS_App.xsd +++ b/AppData/DS_App.xsd @@ -12,8 +12,8 @@ - SELECT * -FROM v_BatchList + SELECT BatchID, Takt, DueDate, NestingReq, NestingResp, STATUS, Position, TotalTime, ApprovDate, ApprovUser, NumOrders, NumItems, NumStacks, NumSheets +FROM v_BatchList @@ -141,6 +141,17 @@ FROM v_StackList + + + + dbo.stp_Stacks_getByDtmx + + + + + + + @@ -152,6 +163,17 @@ FROM v_StackList + + + + dbo.stp_Stacks_getCurrByBatch + + + + + + + @@ -163,6 +185,18 @@ FROM v_StackList + + + + dbo.stp_Stacks_updatePos + + + + + + + + @@ -644,7 +678,7 @@ SELECT MatID, MatExtCode, MatDesc, ApprovDate, ApprovUser, L_mm, W_mm, T_mm, Mat - + @@ -676,7 +710,7 @@ SELECT MatID, MatExtCode, MatDesc, ApprovDate, ApprovUser, L_mm, W_mm, T_mm, Mat - + @@ -698,7 +732,7 @@ SELECT MatID, MatExtCode, MatDesc, ApprovDate, ApprovUser, L_mm, W_mm, T_mm, Mat - + @@ -753,7 +787,7 @@ SELECT MatID, MatExtCode, MatDesc, ApprovDate, ApprovUser, L_mm, W_mm, T_mm, Mat - + @@ -825,7 +859,7 @@ SELECT MatID, MatExtCode, MatDesc, ApprovDate, ApprovUser, L_mm, W_mm, T_mm, Mat - + @@ -833,7 +867,7 @@ SELECT MatID, MatExtCode, MatDesc, ApprovDate, ApprovUser, L_mm, W_mm, T_mm, Mat - + @@ -894,7 +928,7 @@ SELECT MatID, MatExtCode, MatDesc, ApprovDate, ApprovUser, L_mm, W_mm, T_mm, Mat - + @@ -961,9 +995,9 @@ SELECT MatID, MatExtCode, MatDesc, ApprovDate, ApprovUser, L_mm, W_mm, T_mm, Mat - - - + + + \ No newline at end of file diff --git a/AppData/DS_App.xss b/AppData/DS_App.xss index af94e78..85a9b7a 100644 --- a/AppData/DS_App.xss +++ b/AppData/DS_App.xss @@ -4,18 +4,18 @@ Changes to this file may cause incorrect behavior and will be lost if the code is regenerated. --> - + - - - - - - - + + + + + + + - + 396 @@ -27,7 +27,7 @@ - + 594 @@ -39,7 +39,7 @@ - + 989 diff --git a/AppData/DataLayer.cs b/AppData/DataLayer.cs index b43fa65..1e70714 100644 --- a/AppData/DataLayer.cs +++ b/AppData/DataLayer.cs @@ -78,6 +78,7 @@ namespace AppData public decodedData decodeBcode(string bcValue) { decodedData answ = new decodedData(); + answ.rawData = bcValue; if (bcValue.StartsWith("MT")) { answ.codeType = codeType.Material; @@ -87,14 +88,14 @@ namespace AppData answ.codeInt = codeInt; answ.description = $"Material: {answ.code}"; } - else if (bcValue.StartsWith("ST")) + else if (bcValue.StartsWith("BK")) { answ.codeType = codeType.Stack; - answ.code = bcValue.Replace("ST", ""); + answ.code = bcValue.Replace("BK", ""); int codeInt = 0; int.TryParse(answ.code, NumberStyles.HexNumber, CultureInfo.InvariantCulture, out codeInt); answ.codeInt = codeInt; - answ.description = $"Stack: {answ.code}"; + answ.description = $"BUNK: {answ.code}"; } //else if (bcValue.StartsWith("SH")) //{ diff --git a/AppData/Utils.cs b/AppData/Utils.cs index 6cd0282..5f33277 100644 --- a/AppData/Utils.cs +++ b/AppData/Utils.cs @@ -170,6 +170,10 @@ public class decodedData /// Descrizione associata /// public string description { get; set; } = ""; + /// + /// Dato letto RAW + /// + public string rawData { get; set; } = ""; } /// /// Tipi di barcode gestiti diff --git a/NKC_WF/MachineLoad.aspx.cs b/NKC_WF/MachineLoad.aspx.cs index a6ab17c..bdc99ad 100644 --- a/NKC_WF/MachineLoad.aspx.cs +++ b/NKC_WF/MachineLoad.aspx.cs @@ -7,8 +7,6 @@ namespace NKC_WF protected void Page_Load(object sender, EventArgs e) { cmp_stackLoading.eh_doRefresh += Cmp_stackLoading_eh_doRefresh; - - // da impostare gestione lettura Barcode: quando VALIDO e IN SEQUENZA --> position passa a 5... } private void Cmp_stackLoading_eh_doRefresh(object sender, EventArgs e) diff --git a/NKC_WF/WebUserControls/cmp_stackLoading.ascx b/NKC_WF/WebUserControls/cmp_stackLoading.ascx index edd9d09..2152715 100644 --- a/NKC_WF/WebUserControls/cmp_stackLoading.ascx +++ b/NKC_WF/WebUserControls/cmp_stackLoading.ascx @@ -11,19 +11,26 @@ <%: traduci("StackLoaded") %> -
+
- Takt: + Takt: +
- BatchID: + TOT BUNK: +
<%: traduci("StackReading") %> +
+ TOT SHEETS: +
- Due Date: + Due Date: +
- TOTAL BUNK: + TOT ITEMS: +
@@ -34,6 +41,6 @@
- +
diff --git a/NKC_WF/WebUserControls/cmp_stackLoading.ascx.cs b/NKC_WF/WebUserControls/cmp_stackLoading.ascx.cs index 6cf69c5..127cdb1 100644 --- a/NKC_WF/WebUserControls/cmp_stackLoading.ascx.cs +++ b/NKC_WF/WebUserControls/cmp_stackLoading.ascx.cs @@ -62,6 +62,7 @@ namespace NKC_WF.WebUserControls } private void Cmp_barcode_eh_doRefresh(object sender, EventArgs e) { + bool doRaiseEv = false; // processo evento.. lastCmd = cmp_barcode.inputAcquired.ToUpper(); // processiamo barcode letto @@ -85,19 +86,37 @@ namespace NKC_WF.WebUserControls DS_App.StackListDataTable tabStack = DataLayer.man.taSTL.getByKey(decoData.codeInt); if (tabStack.Count == 0) { - cmp_barcode.showOutput("badge badge-danger", $"STACK NOT FOUND, {decoData.description}"); + cmp_barcode.showOutput("badge badge-danger", $"BUNK NOT FOUND, {decoData.description}"); } else { // controllo sia quello RICHIESTO, eventualemtne permetteremo TUTTI quelli del giorno in ogni ordine... if (decoData.codeInt == cmp_stackNextloading.StackIdReq) { - cmp_barcode.showOutput("badge badge-success", $"STACK OK, {decoData.description}"); + cmp_barcode.showOutput("badge badge-success", $"BUNK OK, {decoData.rawData}"); ComLib.taktMLCurrStack = decoData.code; + // processo DB e salvbo che lo stack รจ stato caricato in MACHINE LOAD + int stackId = 0; + try + { + var tabStacks = DataLayer.man.taSTL.getByDtmx(decoData.rawData); + if (tabStack.Count == 1) + { + stackId = tabStack[0].StackID; + } + } + catch + { } + // SE HO uno stackId valido (>0)... + if (stackId > 0) + { + DataLayer.man.taSTL.updatePos(stackId, 5); + doRaiseEv = true; + } } else { - cmp_barcode.showOutput("badge badge-danger", $"WRONG STACK, {decoData.description}"); + cmp_barcode.showOutput("badge badge-danger", $"WRONG BUNK, {decoData.rawData}"); } } //DS_App.SheetListDataTable nextTbl = DataLayer.man.taSHL.getNextByStack(StackId); @@ -134,6 +153,11 @@ namespace NKC_WF.WebUserControls cmp_barcode.inputAcquired = ""; // aggiorno... doUpdate(); + // se richiesto faccio raiseEvent + if(doRaiseEv) + { + raiseEvent(); + } } protected void checkVisibility() diff --git a/NKC_WF/WebUserControls/cmp_stackNextloading.ascx b/NKC_WF/WebUserControls/cmp_stackNextloading.ascx index ce85635..42eaeca 100644 --- a/NKC_WF/WebUserControls/cmp_stackNextloading.ascx +++ b/NKC_WF/WebUserControls/cmp_stackNextloading.ascx @@ -2,42 +2,46 @@ -
-
- CURRENT BUNK: - 1/2 | 2 sheets -
-
- Code: ST00000002 -
-
- <%--Prt / Wrk: / --%> - Printed: 1 | Worked: 1 -
-
- - + -
-
- NEXT BUNK: - /2 - | - sheets +
+
+ CURRENT BUNK: + (/2)
- Required: - + Sheets: | printed: | worked:
-
- <%--Prt / Wrk: / --%> - <%--Prt / Wrk: 1 / 1--%> - Printed: 0 | Worked: 0 +
+ Items:
- + + + + +
+
+ NEXT BUNK: + (/2) +
+
+ Sheets: | printed: | worked: +
+
+ Items: +
+
+
+
+ + + + + + diff --git a/NKC_WF/WebUserControls/cmp_stackNextloading.ascx.cs b/NKC_WF/WebUserControls/cmp_stackNextloading.ascx.cs index 6c3d170..6addda1 100644 --- a/NKC_WF/WebUserControls/cmp_stackNextloading.ascx.cs +++ b/NKC_WF/WebUserControls/cmp_stackNextloading.ascx.cs @@ -26,7 +26,8 @@ namespace NKC_WF.WebUserControls public void doUpdate() { - frmView.DataBind(); + frmViewCurr.DataBind(); + frmViewNext.DataBind(); } public int StackIdReq @@ -34,7 +35,7 @@ namespace NKC_WF.WebUserControls get { int answ = 0; - int.TryParse(frmView.SelectedValue.ToString(), out answ); + int.TryParse(frmViewNext.SelectedValue.ToString(), out answ); return answ; } } diff --git a/NKC_WF/WebUserControls/cmp_stackNextloading.ascx.designer.cs b/NKC_WF/WebUserControls/cmp_stackNextloading.ascx.designer.cs index 2a55f84..51a8e58 100644 --- a/NKC_WF/WebUserControls/cmp_stackNextloading.ascx.designer.cs +++ b/NKC_WF/WebUserControls/cmp_stackNextloading.ascx.designer.cs @@ -22,21 +22,39 @@ namespace NKC_WF.WebUserControls { protected global::System.Web.UI.WebControls.HiddenField hfBatchID; /// - /// Controllo frmView. + /// Controllo frmViewCurr. /// /// /// Campo generato automaticamente. /// Per la modifica, spostare la dichiarazione di campo dal file di progettazione al file code-behind. /// - protected global::System.Web.UI.WebControls.FormView frmView; + protected global::System.Web.UI.WebControls.FormView frmViewCurr; /// - /// Controllo ods. + /// Controllo frmViewNext. /// /// /// Campo generato automaticamente. /// Per la modifica, spostare la dichiarazione di campo dal file di progettazione al file code-behind. /// - protected global::System.Web.UI.WebControls.ObjectDataSource ods; + protected global::System.Web.UI.WebControls.FormView frmViewNext; + + /// + /// Controllo odsCurr. + /// + /// + /// Campo generato automaticamente. + /// Per la modifica, spostare la dichiarazione di campo dal file di progettazione al file code-behind. + /// + protected global::System.Web.UI.WebControls.ObjectDataSource odsCurr; + + /// + /// Controllo odsNext. + /// + /// + /// Campo generato automaticamente. + /// Per la modifica, spostare la dichiarazione di campo dal file di progettazione al file code-behind. + /// + protected global::System.Web.UI.WebControls.ObjectDataSource odsNext; } }