Esempio n. 1
0
        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();
                }
            }
        }