private void bOK_Click(object sender, System.EventArgs e)
        {
            // Verify there are no duplicate names in the embedded list
            Hashtable ht = new Hashtable(lbImages.Items.Count + 1);

            foreach (EmbeddedImageValues eiv in lbImages.Items)
            {
                if (eiv.Name == null || eiv.Name.Length == 0)
                {
                    MessageBox.Show(this, "Name must be specified for all embedded images.", "Image");
                    return;
                }

                if (!ReportNames.IsNameValid(eiv.Name))
                {
                    MessageBox.Show(this,
                                    string.Format("Name '{0}' contains invalid characters.", eiv.Name), "Image");
                    return;
                }

                string name = (string)ht[eiv.Name];
                if (name != null)
                {
                    MessageBox.Show(this,
                                    string.Format("Each embedded image must have a unique name. '{0}' is repeated.", eiv.Name), "Image");
                    return;
                }
                ht.Add(eiv.Name, eiv.Name);
            }

            Apply();
            DialogResult = DialogResult.OK;
        }
        private void bOK_Click(object sender, System.EventArgs e)
        {
            // Verify there are no duplicate names in the data sources
            Hashtable ht = new Hashtable(this.lbDataSources.Items.Count + 1);

            foreach (DataSourceValues dsv in lbDataSources.Items)
            {
                if (dsv.Name == null || dsv.Name.Length == 0)
                {
                    MessageBox.Show(this, "Name must be specified for all DataSources.", "Data Sources");
                    return;
                }

                if (!ReportNames.IsNameValid(dsv.Name))
                {
                    MessageBox.Show(this,
                                    string.Format("Name '{0}' contains invalid characters.", dsv.Name), "Data Sources");
                    return;
                }

                string name = (string)ht[dsv.Name];
                if (name != null)
                {
                    MessageBox.Show(this,
                                    string.Format("Each DataSource must have a unique name. '{0}' is repeated.", dsv.Name), "Data Sources");
                    return;
                }
                ht.Add(dsv.Name, dsv.Name);
            }

            // apply the result
            Apply();
            DialogResult = DialogResult.OK;
        }
 private void tbEIName_Validating(object sender, System.ComponentModel.CancelEventArgs e)
 {
     if (!ReportNames.IsNameValid(tbEIName.Text))
     {
         e.Cancel = true;
         MessageBox.Show(this,
                         string.Format("Name '{0}' contains invalid characters.", tbEIName.Text), "Image");
     }
 }
예제 #4
0
        private void tbName_Validating(object sender, System.ComponentModel.CancelEventArgs e)
        {
            bool bRows = HasRows();

            // If no rows and no data in name it's ok
            if (!bRows && this.tbName.Text.Trim().Length == 0)
            {
                return;
            }

            if (!ReportNames.IsNameValid(tbName.Text))
            {
                e.Cancel = true;
                MessageBox.Show(string.Format("{0} is an invalid name.", tbName.Text), "Name");
            }
        }
        private void tbDSName_Validating(object sender, System.ComponentModel.CancelEventArgs e)
        {
            int cur = lbDataSources.SelectedIndex;

            if (cur < 0)
            {
                return;
            }

            if (!ReportNames.IsNameValid(tbDSName.Text))
            {
                e.Cancel = true;
                MessageBox.Show(this,
                                string.Format("Name '{0}' contains invalid characters.", tbDSName.Text), "Data Sources");
            }
        }
        private void bImport_Click(object sender, System.EventArgs e)
        {
            OpenFileDialog ofd = new OpenFileDialog();

            ofd.Filter = "Bitmap Files (*.bmp)|*.bmp" +
                         "|JPEG (*.jpg;*.jpeg;*.jpe;*.jfif)|*.jpg;*.jpeg;*.jpe;*.jfif" +
                         "|GIF (*.gif)|*.gif" +
                         "|TIFF (*.tif;*.tiff)|*.tif;*.tiff" +
                         "|PNG (*.png)|*.png" +
                         "|All Picture Files|*.bmp;*.jpg;*.jpeg;*.jpe;*.jfif;*.gif;*.tif;*.tiff;*.png" +
                         "|All files (*.*)|*.*";
            ofd.FilterIndex     = 6;
            ofd.CheckFileExists = true;
            ofd.Multiselect     = true;
            try
            {
                if (ofd.ShowDialog(this) != DialogResult.OK)
                {
                    return;
                }

                // need to create a new embedded image(s)
                int cur = 0;
                foreach (string filename in ofd.FileNames)
                {
                    Stream strm             = null;
                    System.Drawing.Image im = null;
                    string imagedata        = null;
                    try
                    {
                        strm      = new FileStream(filename, FileMode.Open, FileAccess.Read, FileShare.Read);
                        im        = System.Drawing.Image.FromStream(strm);
                        imagedata = this.GetBase64Image(im);
                    }
                    catch (Exception ex)
                    {
                        MessageBox.Show(this, ex.Message, "Image");
                    }
                    finally
                    {
                        if (strm != null)
                        {
                            strm.Close();
                        }
                        if (im != null)
                        {
                            im.Dispose();
                        }
                    }

                    if (imagedata != null)
                    {
                        FileInfo fi = new FileInfo(filename);

                        string fname;
                        int    offset = fi.Name.IndexOf('.');
                        if (offset >= 0)
                        {
                            fname = fi.Name.Substring(0, offset);
                        }
                        else
                        {
                            fname = fi.Name;
                        }

                        if (!ReportNames.IsNameValid(fname))
                        {
                            fname = "embeddedimage";
                        }
                        // Now check to see if we already have one with that name
                        int  index = 1;
                        bool bDup  = true;
                        while (bDup)
                        {
                            bDup = false;
                            foreach (EmbeddedImageValues ev in lbImages.Items)
                            {
                                if (fname == ev.Name)
                                {
                                    bDup = true;
                                    break;
                                }
                            }
                            if (bDup)
                            {                                                // we have a duplicate name; try adding an index number
                                fname  = Regex.Replace(fname, "[0-9]*", ""); // remove old numbers (side effect removes all numbers)
                                fname += index.ToString();
                                index++;
                            }
                        }

                        EmbeddedImageValues eiv = new EmbeddedImageValues(fname);
                        eiv.MIMEType  = "image/png";
                        eiv.ImageData = imagedata;
                        cur           = this.lbImages.Items.Add(eiv);
                    }
                }
                lbImages.SelectedIndex = cur;
            }
            finally
            {
                ofd.Dispose();
            }
            this.tbEIName.Focus();
        }