void RiempiGrid() { string filter = ""; filter = QHS.AppAnd(QHS.IsNull("iduniqueformcode"), QHS.IsNull("idflussocrediti")); if (cmbTipocontrattoattivo.SelectedValue != null) { filter = QHS.AppAnd(filter, QHS.CmpEq("idestimkind", cmbTipocontrattoattivo.SelectedValue)); } if (txtAnagrafica.Text != "") { filter = QHS.AppAnd(filter, QHS.CmpEq("registry", txtAnagrafica.Text.ToString())); } if (txtDataStart.Text != "") { object datainizio = HelpForm.GetObjectFromString(typeof(DateTime), txtDataStart.Text, txtDataStart.Tag.ToString()); filter = QHS.AppAnd(filter, QHS.CmpGe("adate", datainizio)); } if (txtDataStop.Text != "") { object datafine = HelpForm.GetObjectFromString(typeof(DateTime), txtDataStop.Text, txtDataStop.Tag.ToString()); filter = QHS.AppAnd(filter, QHS.CmpLe("adate", datafine)); } DataTable EstimateDetail = Conn.RUN_SELECT("estimatedetailview", "*", "idestimkind ASC,yestim DESC,nestim DESC,rownum ASC, idgroup ASC", filter, null, false); Conn.DeleteAllUnselectable(EstimateDetail); if (EstimateDetail.Rows.Count != 0) { EstimateDetail.PrimaryKey = new DataColumn[] { EstimateDetail.Columns["idestimkind"], EstimateDetail.Columns["yestim"], EstimateDetail.Columns["nestim"], EstimateDetail.Columns["rownum"] }; //Ora ha messo in EstimateDetail tutto ciò che da DB risulta 'da fatturare'. //Effettua ora una serie di allineamenti sul DataTable per renderlo più coerente con quello //che c'è nel DataSet del form padre. foreach (DataRow R in Flussocreditidetail.Select()) { if (R.RowState != DataRowState.Added) { continue; } if (R["idestimkind"] == DBNull.Value) { continue; //Non è una riga collegata a dettagli contratto attivo } string filterestim = QHC.CmpMulti(R, "idestimkind", "yestim", "nestim", "rownum"); foreach (DataRow Re in EstimateDetail.Select(filterestim)) { Re.Delete(); } } EstimateDetail.AcceptChanges(); if (EstimateDetail.Select().Length > 0) { MetaData MAP = Meta.Dispatcher.Get("estimatedetailview"); MAP.DescribeColumns(EstimateDetail, "flussocrediti"); DataSet D = new DataSet(); D.Tables.Add(EstimateDetail); HelpForm.SetDataGrid(gridDettagli, EstimateDetail); gridDettagli.TableStyles.Clear(); HelpForm.SetGridStyle(gridDettagli, EstimateDetail); formatgrids format = new formatgrids(gridDettagli); format.AutosizeColumnWidth(); HelpForm.SetAllowMultiSelection(EstimateDetail, true); SelezionaTutto(); } } }