private void btnCreaPDF_Click(object sender, EventArgs e)
        {
            if (_dsServizio.Tables[tableName].Rows.Count == 0)
            {
                return;
            }

            lblMessaggio.Text = string.Empty;
            decimal IDDETTAGLIO = -1;

            foreach (DataRow riga in _dsServizio.Tables[tableName].Rows)
            {
                IDDETTAGLIO = (decimal)riga[1];
                string RIFERIMENTO = ConvertiInStringa(riga[2]);
                RIFERIMENTO = RIFERIMENTO.ToUpper().Trim();
                string PARTE  = (string)riga[11];
                string COLORE = (string)riga[12];
                if (!string.IsNullOrEmpty(RIFERIMENTO))
                {
                    CDCDS.CDC_DIMEMSIONIRow dimensione = _DS.CDC_DIMEMSIONI.Where(x => x.IDDETTAGLIO == IDDETTAGLIO && x.RIFERIMENTO.Trim() == RIFERIMENTO).FirstOrDefault();
                    if (dimensione == null)
                    {
                        dimensione                 = _DS.CDC_DIMEMSIONI.NewCDC_DIMEMSIONIRow();
                        dimensione.CONFORME        = ConvertiBoolInStringa(riga[10]);
                        dimensione.CONTAMPONE      = ConvertiBoolInStringa(riga[9]);
                        dimensione.DATAINSERIMENTO = DateTime.Now;
                        dimensione.GRANDEZZA       = ((string)riga[3]).ToUpper().Trim();
                        dimensione.IDDETTAGLIO     = IDDETTAGLIO;
                        dimensione.MASSIMO         = ConvertiInStringa(riga[7]).ToUpper().Trim();
                        dimensione.MINIMO          = ConvertiInStringa(riga[6]).ToUpper().Trim();
                        dimensione.RICHIESTO       = ((string)riga[4]).ToUpper().Trim();
                        dimensione.RIFERIMENTO     = ((string)riga[2]).ToUpper().Trim();
                        dimensione.TAMPONE         = ConvertiInStringa(riga[8]).ToUpper().Trim();
                        dimensione.TOLLERANZA      = ConvertiInStringa(riga[5]).ToUpper().Trim();
                        dimensione.UTENTE          = Contesto.Utente.FULLNAMEUSER;
                        _DS.CDC_DIMEMSIONI.AddCDC_DIMEMSIONIRow(dimensione);
                    }
                    else
                    {
                        dimensione.CONFORME        = ConvertiBoolInStringa(riga[10]);
                        dimensione.CONTAMPONE      = ConvertiBoolInStringa(riga[9]);
                        dimensione.DATAINSERIMENTO = DateTime.Now;
                        dimensione.GRANDEZZA       = ((string)riga[3]).ToUpper().Trim();
                        dimensione.IDDETTAGLIO     = IDDETTAGLIO;
                        dimensione.MASSIMO         = ConvertiInStringa(riga[7]).ToUpper().Trim();
                        dimensione.MINIMO          = ConvertiInStringa(riga[6]).ToUpper().Trim();
                        dimensione.RICHIESTO       = ((string)riga[4]).ToUpper().Trim();
                        dimensione.RIFERIMENTO     = ((string)riga[2]).ToUpper().Trim();
                        dimensione.TAMPONE         = ConvertiInStringa(riga[8]).ToUpper().Trim();
                        dimensione.TOLLERANZA      = ConvertiInStringa(riga[5]).ToUpper().Trim();
                        dimensione.UTENTE          = Contesto.Utente.FULLNAMEUSER;
                    }

                    CDCDS.CDC_DIMEMSIONI_MISURERow misura = _DS.CDC_DIMEMSIONI_MISURE.Where(x => x.PARTE == PARTE && x.RIFERIMENTO.Trim() == RIFERIMENTO).FirstOrDefault();
                    if (misura == null)
                    {
                        misura             = _DS.CDC_DIMEMSIONI_MISURE.NewCDC_DIMEMSIONI_MISURERow();
                        misura.PARTE       = PARTE;
                        misura.CONTAMPONE  = ConvertiBoolInStringa(riga[9]);
                        misura.GRANDEZZA   = ((string)riga[3]).ToUpper().Trim();
                        misura.MASSIMO     = ConvertiInStringa(riga[7]).ToUpper().Trim();
                        misura.MINIMO      = ConvertiInStringa(riga[6]).ToUpper().Trim();
                        misura.RICHIESTO   = ((string)riga[4]).ToUpper().Trim();
                        misura.RIFERIMENTO = ((string)riga[2]).ToUpper().Trim();
                        misura.TAMPONE     = ConvertiInStringa(riga[8]).ToUpper().Trim();
                        misura.TOLLERANZA  = ConvertiInStringa(riga[5]).ToUpper().Trim();
                        _DS.CDC_DIMEMSIONI_MISURE.AddCDC_DIMEMSIONI_MISURERow(misura);
                    }
                    else
                    {
                        misura.CONTAMPONE  = ConvertiBoolInStringa(riga[9]);
                        misura.GRANDEZZA   = ((string)riga[3]).ToUpper().Trim();
                        misura.MASSIMO     = ConvertiInStringa(riga[7]).ToUpper().Trim();
                        misura.MINIMO      = ConvertiInStringa(riga[6]).ToUpper().Trim();
                        misura.RICHIESTO   = ((string)riga[4]).ToUpper().Trim();
                        misura.RIFERIMENTO = ((string)riga[2]).ToUpper().Trim();
                        misura.TAMPONE     = ConvertiInStringa(riga[8]).ToUpper().Trim();
                        misura.TOLLERANZA  = ConvertiInStringa(riga[5]).ToUpper().Trim();
                    }
                }
            }

            CDCBLL bll = new CDCBLL();

            bll.SalvaDatiDimensioni(_DS);
            _DS.CDC_DIMEMSIONI.AcceptChanges();
            _DS.CDC_DIMEMSIONI_MISURE.AcceptChanges();

            Bitmap firma = Properties.Resources.firma_vittoria;

            if (Contesto.Utente.IDUSER == "0000000122")
            {
                firma = Properties.Resources.firma_celeste;
            }

            ImageConverter converter = new ImageConverter();

            byte[] iFirma = (byte[])converter.ConvertTo(firma, typeof(byte[]));

            Bitmap loghi = Properties.Resources.loghi;

            byte[] iLoghi = (byte[])converter.ConvertTo(loghi, typeof(byte[]));

            bll.CreaPDFDimensionale(IDDETTAGLIO, _DS, Contesto.Utente.FULLNAMEUSER, Contesto.PathCollaudo, iFirma, iLoghi);

            if (chkCopiaSchedaTecnica.Checked)
            {
                DataRow riga   = _dsServizio.Tables[tableName].Rows[0];
                string  PARTE  = (string)riga[11];
                string  COLORE = (string)riga[12];

                string filename = string.Format(@"{0}\{1}-{2}.pdf", Contesto.PathSchedeTecniche, PARTE, COLORE);

                if (!File.Exists(filename))
                {
                    string messaggio = string.Format("Impossibile trovare il file per PARTE:{0} e COLORE:{1}. File: {2}", PARTE, COLORE, filename);
                    MessageBox.Show(messaggio);
                    return;
                }

                CDCDS.CDC_DETTAGLIORow dettaglio = _DS.CDC_DETTAGLIO.Where(x => x.IDDETTAGLIO == IDDETTAGLIO).FirstOrDefault();
                DateTime dt = DateTime.ParseExact(dettaglio.DATACOLLAUDO, "dd/MM/yyyy", CultureInfo.InvariantCulture);
                string   cartellaDestinazione = CDCBLL.CreaPathCartella(dt, Contesto.PathCollaudo, dettaglio.ACCESSORISTA, dettaglio.PREFISSO, dettaglio.PARTE, dettaglio.COLORE, dettaglio.COMMESSAORDINE);

                string destinazione = string.Format(@"{0}\{1}-{2}.pdf", cartellaDestinazione, PARTE, COLORE);
                if (File.Exists(destinazione))
                {
                    File.Delete(destinazione);
                }

                File.Copy(filename, destinazione, true);
            }
        }