void unifica(bool stepForward){ string dataMember = DetailGrid.DataMember; CurrencyManager cm = DetailGrid.BindingContext[DS, dataMember] as CurrencyManager; if (cm == null) return; DataView view = cm.List as DataView; if (view == null) { MessageBox.Show(this, "Selezionare una anagrafica"); return; } int numRigheSel; DataRow RowSelected; RowSelected = null; object idregSelected; idregSelected = DBNull.Value; numRigheSel = 0; for (int i = 0; i < view.Count; i++) { if (DetailGrid.IsSelected(i)) { DataRow R = GetGridRow(i); if (R == null) continue; numRigheSel++; RowSelected = R; } } if (!(numRigheSel == 1)) { MessageBox.Show(this, "Selezionare un'anagrafica"); return; } if (!(RowSelected == null)) { idregSelected = RowSelected["idreg"]; } for (int i = 0; i < view.Count; i++) { object idreg = view[i].Row["idreg"]; string filter = QHC.CmpEq("idreg", idreg); DataRow[] Registry = DS.registrymainview.Select(filter); if (Registry.Length == 0) { MessageBox.Show(this, "Errore, griglia e tabella dati disallineate! Contattare il settore assistenza"); return; } DataRow r = Registry[0]; // N.B. Imposto toredirect a idreg esplicitamente nel caso ci siano ancora anagrafiche non attivate if (!(DetailGrid.IsSelected(i))) { r["active"] = "N"; r["toredirect"] = idregSelected; } } if (saveData()) { MessageBox.Show(this, "Anagrafiche aggiornate"); btnSuccessivo.Enabled = true; if (stepForward) btnSuccessivo_Click(null, null); } else { grpConferma.Enabled = true; btnSuccessivo.Enabled = false; } }
private void btnAttivo_Click(object sender, EventArgs e) { string dataMember = DetailGrid.DataMember; CurrencyManager cm = DetailGrid.BindingContext[DS, dataMember] as CurrencyManager; if (cm == null) return; DataView view = cm.List as DataView; if (view == null) { MessageBox.Show(this, "Selezionare una anagrafica"); return; } int numRigheSel; numRigheSel = 0; for (int i = 0; i < view.Count; i++) { if (DetailGrid.IsSelected(i)) { DataRow R = GetGridRow(i); if (R == null) continue; numRigheSel++; } } if (!(numRigheSel == 1)) { MessageBox.Show(this, "Selezionare un'anagrafica"); return; } for (int i = 0; i < view.Count; i++) { object idreg = view[i].Row["idreg"]; string filter = QHC.CmpEq("idreg", idreg); DataRow[] Registry = DS.registrymainview.Select(filter); if (Registry.Length == 0) { MessageBox.Show(this, "Errore, griglia e tabella dati disallineate! Contattare il settore assistenza"); return; } DataRow r = Registry[0]; // N.B. Imposto anche active a S esplicitamente nel caso ci siano ancora anagrafiche con active a NULL r["active"] = (DetailGrid.IsSelected(i)) ? "S" : "N"; } if (saveData()) { MessageBox.Show(this, "Anagrafiche aggiornate"); //TempTable.Rows.RemoveAt(0);//questo codice sarà eseguito in btnSuccessivo_Click() //TempTable.AcceptChanges(); //grpConferma.Enabled = false; btnSuccessivo.Enabled = true; btnSuccessivo_Click(sender, e); } else { grpConferma.Enabled = true; btnSuccessivo.Enabled = false; } }
private void btnSpecialAction_Click(object sender, EventArgs e) { if (DetailGrid.DataMember == null) return; if (DetailGrid.DataSource == null) return; string TableName = DetailGrid.DataMember.ToString(); DataSet MyDS = (DataSet)DetailGrid.DataSource; DataTable MyTable = MyDS.Tables[TableName]; int Num = MyTable.Rows.Count; object []idregs= new object[Num]; for (int i = 0; i < Num; i++) idregs[i] = Convert.ToInt32( DetailGrid[i, 0]); string dataMember = DetailGrid.DataMember; CurrencyManager cm = DetailGrid.BindingContext[DS, dataMember] as CurrencyManager; if (cm == null) return; DataView view = cm.List as DataView; if (view == null) { MessageBox.Show(this, "Selezionare una anagrafica"); return; } DataRow RowSelected = null; object idregSelected; idregSelected = DBNull.Value; int numRigheSel = 0; for (int i = 0; i < view.Count; i++) { if (DetailGrid.IsSelected(i)) { DataRow R = GetGridRow(i); if (R == null) continue; numRigheSel++; RowSelected = R; } } if (!(numRigheSel == 1)) { MessageBox.Show(this, "Selezionare un'anagrafica"); return; } if (!(RowSelected == null)) { idregSelected = RowSelected["idreg"]; } frmUnisciInformazioni F = new frmUnisciInformazioni(Convert.ToInt32(idregSelected), idregs, conn as DataAccess, this.getInstance<IMetaDataDispatcher>() as MetaDataDispatcher); DialogResult Res= F.ShowDialog(); if (Res == DialogResult.OK) { unifica(false); AggiornaSelezione(); } return; }
private void GRID_MouseUp(object sender, MouseEventArgs e) { if (sender == null) return; if (!typeof(DataGrid).IsAssignableFrom(sender.GetType())) return; DataSet D = DetailGrid.DataSource as DataSet; if (D == null) return; DataTable T = D.Tables[DetailGrid.DataMember]; if (T == null) return; System.Windows.Forms.DataGrid.HitTestInfo myHitTest = DetailGrid.HitTest(e.X, e.Y); if (myHitTest.Type == System.Windows.Forms.DataGrid.HitTestType.Cell) { int Row = myHitTest.Row; if (!DetailGrid.IsSelected(Row)) { SimpleSelect(Row); } else { DetailGrid.UnSelect(Row); } } else { int Row = myHitTest.Row; } }