コード例 #1
0
ファイル: Ottimizzatore.cs プロジェクト: fberga/Iren
        /// <summary>
        /// Aggiunge gli adjust necessari all'entità da ottimizzare.
        /// </summary>
        /// <param name="siglaEntita">Entità da ottimizzare.</param>
        protected virtual void AddAdjust(object siglaEntita)
        {
            _entitaInformazioni.RowFilter = "SiglaEntita = '" + siglaEntita + "' AND WB <> '0' AND IdApplicazione = " + Workbook.IdApplicazione;
            foreach (DataRowView info in _entitaInformazioni)
            {
                object siglaEntitaInfo = info["SiglaEntitaRif"] is DBNull ? info["SiglaEntita"] : info["SiglaEntitaRif"];
                Range  rng             = _definedNames.Get(siglaEntitaInfo, info["SiglaInformazione"], Date.SuffissoDATA1).Extend(colOffset: Date.GetOreIntervallo(_dataFine));
                Workbook.Application.Run("wbAdjust", "'" + _sheet + "'!" + rng.ToString());

                for (DateTime giorno = Workbook.DataAttiva; giorno <= _dataFine; giorno = giorno.AddDays(1))
                {
                    Range rng1 = new Range(rng.StartRow, _definedNames.GetColFromDate(Date.GetSuffissoData(giorno), Date.GetSuffissoOra(Date.GetOreGiorno(giorno))));
                    Workbook.Sheets[_sheet].Range[rng1.ToString()].Borders[Excel.XlBordersIndex.xlEdgeRight].Weight = Excel.XlBorderWeight.xlMedium;
                }

                if (info["WB"].Equals("2"))
                {
                    Workbook.Application.Run("WBFREE", DefinedNames.GetName(siglaEntitaInfo, info["SiglaInformazione"]), "'" + _sheet + "'!" + rng.ToString());
                }
                else if (info["WB"].Equals("3"))
                {
                    Workbook.Application.Run("WBBIN", DefinedNames.GetName(siglaEntitaInfo, info["SiglaInformazione"]), "'" + _sheet + "'!" + rng.ToString());
                }
            }
        }
コード例 #2
0
ファイル: FormIncremento.cs プロジェクト: fberga/Iren
        private void ChangeSelectionToIncrement(Excel.Range Target)
        {
            lbErrore.Text       = "";
            lbErrore.ForeColor  = Color.Red;
            btnApplica.Enabled  = false;
            _selectionIsCorrect = false;
            if (Target.Rows.Count > 1)
            {
                foreach (Excel.Range row in Target.Rows)
                {
                    if (row.EntireRow.Hidden)
                    {
                        lbErrore.Text = "ERRORE: Nel range selezionato ci sono righe nascoste.";
                        return;
                    }
                }
                lbErrore.ForeColor = Color.DarkOrange;
                lbErrore.Text      = "ATTENZIONE: Nel range selezionato ci sono più righe.";
            }
            foreach (Excel.Range row in Target.Rows)
            {
                if (!_definedNames.IsEditable(row.Row))
                {
                    lbErrore.Text = "ERRORE: Il range selezionato contiene delle righe non modificabili.";
                    return;
                }
            }

            int marketOffset = Workbook.Repository.Applicazione["ModificaDinamica"].Equals("1") ? Simboli.GetMarketOffset(DateTime.Now.Hour) : 0;
            int firstCol     = _definedNames.GetColFromDate(Date.SuffissoDATA1);

            if (Target.Column < firstCol + marketOffset)
            {
                lbErrore.Text = "ERRORE: Il range selezionato contiene celle appartenenti a mercati chiusi.";
                return;
            }

            _selectionIsCorrect = true;

            if (_valuesAreCorrect)
            {
                btnApplica.Enabled = true;
            }

            btnRipristina.Enabled = false;

            if (Target.Cells.Count == 1)
            {
                _origVal       = new object[1, 1];
                _origVal[0, 0] = Target.Value;
            }
            else
            {
                _origVal = Target.Value;
            }

            _origRng = Target;
        }
コード例 #3
0
ファイル: Ottimizzatore.cs プロジェクト: fberga/Iren
        /// <summary>
        /// Cancella tutti gli adjust esistenti.
        /// </summary>
        protected virtual void DeleteExistingAdjust()
        {
            _entitaInformazioni.RowFilter = "WB <> '0' AND IdApplicazione = " + Workbook.IdApplicazione;

            string       siglaEntita  = "";
            string       nomeFoglio   = "";
            DateTime     dataFine     = new DateTime();
            DefinedNames definedNames = null;

            foreach (DataRowView info in _entitaInformazioni)
            {
                Helper(info, ref siglaEntita, ref nomeFoglio, ref dataFine, ref definedNames);
                object siglaEntitaInfo = info["SiglaEntitaRif"] is DBNull ? siglaEntita : info["SiglaEntitaRif"];
                Range  rng             = definedNames.Get(siglaEntitaInfo, info["SiglaInformazione"], Date.SuffissoDATA1).Extend(colOffset: Date.GetOreIntervallo(dataFine));
                double width           = Workbook.Sheets[nomeFoglio].Range[rng.ToString()].ColumnWidth;
                Workbook.Application.Run("wbAdjust", "'" + nomeFoglio + "'!" + rng.ToString(), "Reset");
                Workbook.Sheets[nomeFoglio].Range[rng.ToString()].ColumnWidth = width;
                Workbook.Sheets[nomeFoglio].Range[rng.ToString()].Style       = "Area dati";
                //Workbook.Sheets[nomeFoglio].Range[rng.ToString()].NumberFormat = info["Formato"];

                Style.RangeStyle(Workbook.Sheets[nomeFoglio].Range[rng.ToString()],
                                 fontSize: info["FontSize"],
                                 foreColor: info["ForeColor"],
                                 backColor: info["BackColor"],
                                 bold: info["Grassetto"].Equals("1"),
                                 numberFormat: info["Formato"],
                                 align: Enum.Parse(typeof(Excel.XlHAlign), info["Align"].ToString()));

                for (DateTime giorno = Workbook.DataAttiva; giorno <= dataFine; giorno = giorno.AddDays(1))
                {
                    Range rng1 = new Range(rng.StartRow, definedNames.GetColFromDate(Date.GetSuffissoData(giorno), Date.GetSuffissoOra(Date.GetOreGiorno(giorno))));
                    Workbook.Sheets[nomeFoglio].Range[rng1.ToString()].Borders[Excel.XlBordersIndex.xlEdgeRight].Weight = Excel.XlBorderWeight.xlMedium;
                }

                if (info["WB"].Equals("2"))
                {
                    try
                    {
                        Workbook.WB.Names.Item("WBFREE" + DefinedNames.GetName(siglaEntitaInfo, info["SiglaInformazione"])).Delete();
                    }
                    catch { }
                }
            }
        }
コード例 #4
0
ファイル: FormIncrementoMI.cs プロジェクト: fberga/Iren
        private void RipristinaValoriDaRepositori()
        {
            DataTable dt  = Workbook.Repository[tableName : ALL_OLD_VALUE];
            DataTable dtm = Workbook.Repository[tableName : MODIFICA];

            DataRow[] drs;

            Sheet.Protected = false;

            foreach (DataRow dr in dt.Rows)
            {
                string data     = dr["Data"].ToString();
                string suffData = Date.GetSuffissoData(new DateTime(int.Parse(data.Substring(0, 4)), int.Parse(data.Substring(4, 2)), int.Parse(data.Substring(6, 2))));
                string suffOra  = Date.GetSuffissoOra(int.Parse(data.Substring(8, 2)));
                int    col      = _definedNames.GetColFromDate(suffData, suffOra);
                int    row      = _definedNames.GetRowByName(dr["SiglaEntita"].ToString() + Simboli.UNION[0] + dr["SiglaInformazione"].ToString());

                _ws.Cells[row, col].Value2 = dr["Valore"].ToString() == "0" ? "" : dr["Valore"];

                _ws.Cells[row, col].ClearComments();

                if (!dr["Commento"].Equals(""))
                {
                    _ws.Cells[row, col].AddComment(dr["Commento"]);
                }

                drs = dtm.Select("SiglaEntita = '" + dr["SiglaEntita"].ToString() + "' AND SiglaInformazione = '" +
                                 dr["SiglaInformazione"].ToString() + "' AND Data = '" +
                                 dr["Data"].ToString() + "'");
                if (drs.Count() > 0)
                {
                    dtm.Rows.Remove(drs.FirstOrDefault());
                }
            }

            Sheet.Protected = true;
            dt.Clear();
        }