123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702 |
- using PaintDotNet.Base.CommTool;
- using PaintDotNet.Base.Functionodel;
- using PaintDotNet.DbOpreate.DbBll;
- using PaintDotNet.DbOpreate.DbModel;
- using System;
- using System.Collections.Generic;
- using System.ComponentModel;
- using System.Data;
- using System.Drawing;
- using System.Drawing.Imaging;
- using System.IO;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- using System.Windows.Forms;
- using APIDialogs = Microsoft.WindowsAPICodePack.Dialogs;
- namespace PaintDotNet.Instrument
- {
- /// <summary>
- /// 生成报告
- /// </summary>
- internal class CreateReportDialog : PdnBaseForm
- {
- private GroupBox groupBox2;
- private GroupBox groupBox3;
- private TreeView treeView1;
- private Panel panel1;
- private Label label1;
- private TextBox textBox1;
- private Button button1;
- private Button button3;
- private Button button2;
- private GroupBox groupBox1;
- private AppWorkspace appWorkspace;
- /// <summary>
- /// 当前已打开的图片集合
- /// </summary>
- private List<Bitmap> bitmapList;
- /// <summary>
- /// 模板分类数据集合
- /// </summary>
- private List<mic_template_infos> infosList;
- /// <summary>
- /// 图片控件判断鼠标是否按下
- /// </summary>
- private bool isMouseDown = false;
- /// <summary>
- /// 图片控件的location
- /// </summary>
- private Point picboxLocation;
- /// <summary>
- /// 鼠标的按下位置
- /// </summary>
- private Point mouseOffset;
- /// <summary>
- /// 图片控件拖动前的location
- /// </summary>
- private Point oldPictureboxLocation;
- /// <summary>
- /// 图片控件拖动前的tag值
- /// </summary>
- private int oldPictureboxTag;
- public CreateReportDialog(AppWorkspace appWorkspace)
- {
- this.appWorkspace = appWorkspace;
- this.infosList = mic_template_infos_BLL.FindAll();
- this.infosList.Reverse();//查询出来是倒序的
- InitializeComponent();
- InitializeLanguageText();
- InitializePicturesTools();
- InitializeTreeView();
- }
- private void InitializeLanguageText()
- {
- this.groupBox1.Text = PdnResources.GetString("Menu.operation.text");
- this.button3.Text = PdnResources.GetString("Menu.cancel.text");
- this.button2.Text = PdnResources.GetString("Menu.tool.Generatereport.generate.text");
- this.label1.Text = PdnResources.GetString("Menu.ReportStoragePath.Text") + ":";
- this.groupBox2.Text = PdnResources.GetString("Menu.tool.Generatereport.Templateselection.text");
- this.groupBox3.Text = PdnResources.GetString("Menu.tool.Generatereport.imageselect.text");
- this.Text = PdnResources.GetString("Menu.Tools.CreateReport.Text");
- }
- /// <summary>
- /// 初始化基础控件
- /// </summary>
- private void InitializeComponent()
- {
- this.groupBox1 = new System.Windows.Forms.GroupBox();
- this.button3 = new System.Windows.Forms.Button();
- this.button2 = new System.Windows.Forms.Button();
- this.button1 = new System.Windows.Forms.Button();
- this.textBox1 = new System.Windows.Forms.TextBox();
- this.label1 = new System.Windows.Forms.Label();
- this.groupBox2 = new System.Windows.Forms.GroupBox();
- this.treeView1 = new System.Windows.Forms.TreeView();
- this.groupBox3 = new System.Windows.Forms.GroupBox();
- this.panel1 = new System.Windows.Forms.Panel();
- this.groupBox1.SuspendLayout();
- this.groupBox2.SuspendLayout();
- this.groupBox3.SuspendLayout();
- this.SuspendLayout();
- //
- // groupBox1
- //
- this.groupBox1.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
- | System.Windows.Forms.AnchorStyles.Right)));
- this.groupBox1.Controls.Add(this.button3);
- this.groupBox1.Controls.Add(this.button2);
- this.groupBox1.Controls.Add(this.button1);
- this.groupBox1.Controls.Add(this.textBox1);
- this.groupBox1.Controls.Add(this.label1);
- this.groupBox1.Location = new System.Drawing.Point(13, 13);
- this.groupBox1.Name = "groupBox1";
- this.groupBox1.Size = new System.Drawing.Size(806, 64);
- this.groupBox1.TabIndex = 0;
- this.groupBox1.TabStop = false;
- this.groupBox1.Text = "操作";
- //
- // button3
- //
- this.button3.Location = new System.Drawing.Point(700, 23);
- this.button3.Name = "button3";
- this.button3.Size = new System.Drawing.Size(75, 23);
- this.button3.TabIndex = 4;
- this.button3.Text = "取消";
- this.button3.UseVisualStyleBackColor = true;
- this.button3.Click += new System.EventHandler(this.button3_Click);
- //
- // button2
- //
- this.button2.Location = new System.Drawing.Point(605, 23);
- this.button2.Name = "button2";
- this.button2.Size = new System.Drawing.Size(75, 23);
- this.button2.TabIndex = 3;
- this.button2.Text = "生成";
- this.button2.UseVisualStyleBackColor = true;
- this.button2.Click += new System.EventHandler(this.button2_Click);
- //
- // button1
- //
- this.button1.BackColor = System.Drawing.SystemColors.Window;
- this.button1.Location = new System.Drawing.Point(453, 25);
- this.button1.Name = "button1";
- this.button1.Size = new System.Drawing.Size(29, 21);
- this.button1.TabIndex = 2;
- this.button1.Text = "...";
- this.button1.UseVisualStyleBackColor = false;
- this.button1.Click += new System.EventHandler(this.button1_Click);
- //
- // textBox1
- //
- this.textBox1.BackColor = System.Drawing.SystemColors.Control;
- this.textBox1.Location = new System.Drawing.Point(126, 25);
- this.textBox1.Name = "textBox1";
- this.textBox1.ReadOnly = true;
- this.textBox1.Size = new System.Drawing.Size(330, 21);
- this.textBox1.TabIndex = 1;
- //
- // label1
- //
- this.label1.AutoSize = true;
- this.label1.Location = new System.Drawing.Point(42, 28);
- this.label1.Name = "label1";
- this.label1.Size = new System.Drawing.Size(89, 12);
- this.label1.TabIndex = 0;
- this.label1.Text = "报告存储路径:";
- //
- // groupBox2
- //
- this.groupBox2.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
- | System.Windows.Forms.AnchorStyles.Left)));
- this.groupBox2.Controls.Add(this.treeView1);
- this.groupBox2.Location = new System.Drawing.Point(13, 84);
- this.groupBox2.Name = "groupBox2";
- this.groupBox2.Size = new System.Drawing.Size(169, 393);
- this.groupBox2.TabIndex = 1;
- this.groupBox2.TabStop = false;
- this.groupBox2.Text = "模板选择";
- //
- // treeView1
- //
- this.treeView1.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
- | System.Windows.Forms.AnchorStyles.Left)
- | System.Windows.Forms.AnchorStyles.Right)));
- this.treeView1.DrawMode = System.Windows.Forms.TreeViewDrawMode.OwnerDrawText;
- this.treeView1.HideSelection = false;
- this.treeView1.Location = new System.Drawing.Point(7, 21);
- this.treeView1.Name = "treeView1";
- this.treeView1.Size = new System.Drawing.Size(156, 366);
- this.treeView1.TabIndex = 0;
- this.treeView1.DrawNode += new System.Windows.Forms.DrawTreeNodeEventHandler(this.treeView1_DrawNode);
- //
- // groupBox3
- //
- this.groupBox3.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
- | System.Windows.Forms.AnchorStyles.Left)
- | System.Windows.Forms.AnchorStyles.Right)));
- this.groupBox3.Controls.Add(this.panel1);
- this.groupBox3.Location = new System.Drawing.Point(189, 84);
- this.groupBox3.Name = "groupBox3";
- this.groupBox3.Size = new System.Drawing.Size(630, 393);
- this.groupBox3.TabIndex = 2;
- this.groupBox3.TabStop = false;
- this.groupBox3.Text = "图片选择";
- //
- // panel1
- //
- this.panel1.AutoScroll = true;
- this.panel1.BackColor = System.Drawing.Color.Transparent;
- this.panel1.Location = new System.Drawing.Point(7, 21);
- this.panel1.Name = "panel1";
- this.panel1.Size = new System.Drawing.Size(617, 365);
- this.panel1.TabIndex = 0;
- //
- // CreateReportDialog
- //
- this.AutoScaleDimensions = new System.Drawing.SizeF(96F, 96F);
- this.ClientSize = new System.Drawing.Size(831, 486);
- this.Controls.Add(this.groupBox3);
- this.Controls.Add(this.groupBox2);
- this.Controls.Add(this.groupBox1);
- this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog;
- this.MaximizeBox = false;
- this.MinimizeBox = false;
- this.Name = "CreateReportDialog";
- this.Text = "生成报告";
- this.Controls.SetChildIndex(this.groupBox1, 0);
- this.Controls.SetChildIndex(this.groupBox2, 0);
- this.Controls.SetChildIndex(this.groupBox3, 0);
- this.groupBox1.ResumeLayout(false);
- this.groupBox1.PerformLayout();
- this.groupBox2.ResumeLayout(false);
- this.groupBox3.ResumeLayout(false);
- this.ResumeLayout(false);
- }
- /// <summary>
- /// 获取当前软件已打开的图片集合
- /// </summary>
- private void GetBitListFromWorkspace()
- {
- if (this.appWorkspace.DocumentWorkspaces != null && this.appWorkspace.DocumentWorkspaces.Count() > 0)
- {
- this.bitmapList = new List<Bitmap>();
- foreach (DocumentWorkspace workspace in this.appWorkspace.DocumentWorkspaces)
- {
- if (workspace.CompositionSurface != null)
- {
- string extension = Path.GetExtension(workspace.GetFriendlyName());//获得图片后缀
- Bitmap oriBit = workspace.CompositionSurface.CreateAliasedBitmap();
- using (Bitmap dstBitmap = oriBit.Clone(new Rectangle(0, 0, oriBit.Width, oriBit.Height), oriBit.PixelFormat))
- {
- Graphics graphics = Graphics.FromImage(dstBitmap);
- if (workspace.GraphicsList != null && workspace.GraphicsList.Count > 0)
- {
- workspace.GraphicsList.UnselectAll();//取消标注和测量的选中状态,不然会绘制上外圈矩形
- workspace.GraphicsList.Draw(graphics);
- }
- if (workspace.GridLineEnabled)
- DrawRulerHelper.drawGrid(Startup.instance.gridModel, graphics, workspace.CompositionSurface.Width, workspace.CompositionSurface.Height);
- if (workspace.GridLineFullEnabled)
- DrawRulerHelper.drawGridFull(Startup.instance.gridModel, graphics, workspace.CompositionSurface.Width, workspace.CompositionSurface.Height);
- if (workspace.GridRectangleEnabled)
- DrawRulerHelper.drawGridRectangle(Startup.instance.gridModel, graphics, workspace.CompositionSurface.Width, workspace.CompositionSurface.Height, workspace.MicronRatio);
- if (workspace.GridRoundEnabled)
- DrawRulerHelper.drawGridRound(Startup.instance.gridModel, graphics, workspace.CompositionSurface.Width, workspace.CompositionSurface.Height, workspace.MicronRatio);
- if (workspace.GridCrossCurveEnabled)
- DrawRulerHelper.drawGridCrossCurve(Startup.instance.gridModel, graphics, workspace.CompositionSurface.Width, workspace.CompositionSurface.Height);
- //gdi处理后以流的形式存储
- MemoryStream ms = new MemoryStream();
- switch (extension)
- {
- case ".jpg":
- dstBitmap.Save(ms, ImageFormat.Jpeg);
- break;
- case ".jpeg":
- dstBitmap.Save(ms, ImageFormat.Jpeg);
- break;
- case ".png":
- dstBitmap.Save(ms, ImageFormat.Png);
- break;
- case ".bmp":
- dstBitmap.Save(ms, ImageFormat.Bmp);
- break;
- case ".gif":
- dstBitmap.Save(ms, ImageFormat.Gif);
- break;
- default:
- dstBitmap.Save(ms, ImageFormat.Jpeg);
- break;
- }
- this.bitmapList.Add(new Bitmap(Image.FromStream(ms)));
- ms.Dispose();
- }
- }
- }
- }
- }
- /// <summary>
- /// 初始化图片
- /// </summary>
- private void InitializePicturesTools()
- {
- GetBitListFromWorkspace();
- if (this.bitmapList != null && this.bitmapList.Count > 0)
- {
- int colNum = 5;//列数固定
- int rowNum = this.bitmapList.Count / colNum + 1;//行数
- Point startPoint = new Point(0, 4);
- int marginTB = 7;//固定的上下边距
- int pictureNum = 1;//图片顺序
- for (int i = 0; i < rowNum; i++)
- {
- for (int j = 0; j < colNum; j++)
- {
- PictureBox pictureBox = new PictureBox();
- pictureBox.Size = new Size(116, 116);//固定尺寸
- pictureBox.Location = new Point((120 * j), startPoint.Y + ((116 + marginTB) * i));
- pictureBox.BackColor = Color.White;
- pictureBox.Tag = pictureNum;
- pictureBox.MouseDown += new MouseEventHandler(picturebox_MouseDown);
- pictureBox.MouseMove += new MouseEventHandler(picturebox_MouseMove);
- pictureBox.MouseUp += new MouseEventHandler(picturebox_MouseUp);
- if (this.bitmapList[pictureNum - 1].Width > pictureBox.Size.Width || this.bitmapList[pictureNum - 1].Height > pictureBox.Size.Height)
- {
- pictureBox.SizeMode = PictureBoxSizeMode.Zoom;
- }
- else
- {
- pictureBox.SizeMode = PictureBoxSizeMode.CenterImage;
- }
- pictureBox.Image = this.bitmapList[pictureNum - 1];
-
- CheckBox checkBox = new CheckBox();
- checkBox.Size = new Size(14, 14);
- checkBox.Location = new Point(102, 102);
- checkBox.Checked = true;
- pictureBox.Controls.Add(checkBox);
- this.panel1.Controls.Add(pictureBox);
- pictureNum++;
- if (pictureNum > this.bitmapList.Count)
- return;
- }
- }
- }
- }
- /// <summary>
- /// 初始化左侧树
- /// </summary>
- private void InitializeTreeView()
- {
- if (this.infosList != null && this.infosList.Count > 0)
- {
- mic_template_infos manageInfo = this.infosList.Find(a => a.language_name == "Template.Manager.item1");//固定查询常规操作
- this.treeView1.ImageList = new ImageList();
- this.treeView1.ImageList.Images.Add("Catalog", PdnResources.GetImageResource("Icons.ImageFromDiskIcon.png").Reference);
- this.treeView1.ImageList.Images.Add("Word", PdnResources.GetImageResource("Icons.WordType2Small.png").Reference);
- //路径不存在就创建一个出来
- string managePath = Application.StartupPath + "\\ModuleManage" + manageInfo.template_path;
- if (!Directory.Exists(managePath))
- Directory.CreateDirectory(managePath);
- TreeNode anime = new TreeNode();
- anime.Tag = 1;//1代表文件夹
- anime.Text = PdnResources.GetString(manageInfo.language_name);
- anime.Name = managePath;
- anime.ImageKey = "Catalog";
- this.treeView1.Nodes.Add(anime);
- addTreeChildNode(anime, manageInfo);
- anime.Expand();//默认展开主节点
- }
- }
- /// <summary>
- /// 递归添加叔的子节点
- /// </summary>
- /// <param name="anime"></param>
- /// <param name="manageInfo"></param>
- private void addTreeChildNode(TreeNode anime, mic_template_infos manageInfo)
- {
- List<mic_template_infos> nodesList = this.infosList.FindAll(a => a.parent_id == manageInfo.id);
- if(nodesList != null && nodesList.Count > 0)
- {
- for(int i = 0; i < nodesList.Count; i++)
- {
- string floderPath = Application.StartupPath + "\\ModuleManage" + nodesList[i].template_path;
- TreeNode floderAnime = new TreeNode();
- floderAnime.Tag = 1;//1代表文件夹
- if (nodesList[i].template_type == 1)
- floderAnime.Text = PdnResources.GetString(nodesList[i].language_name);//不可删除的节点为数据库自带,以通用方式读取名称
- else
- floderAnime.Text = nodesList[i].language_name;//可删除的节点数据库中直接存储的显示名称
- floderAnime.Name = floderPath;
- floderAnime.ImageKey = "Catalog";
- floderAnime.SelectedImageKey = "Catalog";
- anime.Nodes.Add(floderAnime);
- addTreeChildNode(floderAnime, nodesList[i]);
- }
- }
- string filePath = Application.StartupPath + "\\ModuleManage" + manageInfo.template_path;//获取文档路径
- if (Directory.Exists(filePath))
- {
- string[] fileNames = Directory.GetFiles(filePath);
- for (int i = 0; i < fileNames.Count(); i++)
- {
- //编辑时产生的临时文件不显示,尚未找到准确的判断规则
- if (Path.GetFileName(fileNames[i]).Contains("~$"))
- continue;
- //只显示word文件
- if (FileOperationHelper.IsFileWordOrExcel(fileNames[i]) == 1)
- {
- TreeNode fileAnime = new TreeNode();
- fileAnime.Tag = 2;//2代表模板文件
- fileAnime.Text = Path.GetFileNameWithoutExtension(fileNames[i]);
- fileAnime.Name = fileNames[i];
- fileAnime.ImageKey = "Word";
- fileAnime.SelectedImageKey = "Word";
- anime.Nodes.Add(fileAnime);
- }
- else
- continue;
- }
- }
- }
- /// <summary>
- /// 树的绘制节点事件
- /// </summary>
- /// <param name="sender"></param>
- /// <param name="e"></param>
- private void treeView1_DrawNode(object sender, DrawTreeNodeEventArgs e)
- {
- if ((e.State & TreeNodeStates.Selected) != 0)
- {
- //绿底白字
- e.Graphics.FillRectangle(Brushes.Green, e.Node.Bounds);
- Font nodeFont = e.Node.NodeFont;
- if (nodeFont == null) nodeFont = ((TreeView)sender).Font;
- e.Graphics.DrawString(e.Node.Text, nodeFont, Brushes.White, Rectangle.Inflate(e.Bounds, 2, 0));
- }
- else
- {
- e.DrawDefault = true;
- }
- if ((e.State & TreeNodeStates.Focused) != 0)
- {
- using (Pen focusPen = new Pen(Color.Black))
- {
- focusPen.DashStyle = System.Drawing.Drawing2D.DashStyle.Dot;
- Rectangle focusBounds = e.Node.Bounds;
- focusBounds.Size = new System.Drawing.Size(focusBounds.Width - 1,
- focusBounds.Height - 1);
- e.Graphics.DrawRectangle(focusPen, focusBounds);
- }
- }
- }
- /// <summary>
- /// 图片控件的鼠标按下事件
- /// </summary>
- /// <param name="sender"></param>
- /// <param name="e"></param>
- private void picturebox_MouseDown(object sender, MouseEventArgs e)
- {
- if (e.Button == MouseButtons.Left)
- {
- isMouseDown = true;
- PictureBox movedPictureBox = (PictureBox)sender;
- movedPictureBox.Cursor = Cursors.SizeAll;
- picboxLocation = movedPictureBox.Location;
- oldPictureboxLocation = movedPictureBox.Location;
- oldPictureboxTag = Convert.ToInt32(movedPictureBox.Tag);
- mouseOffset = Control.MousePosition;
- }
- }
- /// <summary>
- /// 图片控件的鼠标抬起事件
- /// </summary>
- /// <param name="sender"></param>
- /// <param name="e"></param>
- private void picturebox_MouseUp(object sender, MouseEventArgs e)
- {
- if (!isMouseDown) return;
- isMouseDown = false;
- PictureBox movedPictureBox = (PictureBox)sender;
- List<PictureBox> listPicturebox = new List<PictureBox>();
- foreach (Control C in this.panel1.Controls)
- {
- if (C is PictureBox && (PictureBox)C != movedPictureBox)
- {
- listPicturebox.Add((PictureBox)C);
- }
- }
- if (listPicturebox != null && listPicturebox.Count > 0)
- {
- for (int i = 0; i < listPicturebox.Count; i++)
- {
- Point toolScreenLocation = listPicturebox[i].Location;
- int toolTag = Convert.ToInt32(listPicturebox[i].Tag);
- Rectangle toolScreenRectangle = new Rectangle(toolScreenLocation.X, toolScreenLocation.Y, 116, 116);//获得图片控件对应的矩形区域
- Point nowPoint = this.panel1.PointToClient(Control.MousePosition);//将屏幕鼠标点转换为控件坐标点
- if (toolScreenRectangle.Contains(nowPoint) && toolTag != oldPictureboxTag)
- {
- //替换两个控件的location和tag
- movedPictureBox.Location = toolScreenLocation;
- movedPictureBox.Tag = toolTag;
- listPicturebox[i].Location = oldPictureboxLocation;
- listPicturebox[i].Tag = oldPictureboxTag;
- this.panel1.Refresh();
- return;
- }
- }
- }
- //如果鼠标点不与其他自定义控件重合,则当前拖动控件回到原始点
- movedPictureBox.Location = oldPictureboxLocation;
- }
- /// <summary>
- /// 图片控件的鼠标拖动事件
- /// </summary>
- /// <param name="sender"></param>
- /// <param name="e"></param>
- private void picturebox_MouseMove(object sender, MouseEventArgs e)
- {
- int _x = 0;
- int _y = 0;
- if (isMouseDown)
- {
- Point pt = Control.MousePosition;
- _x = mouseOffset.X - pt.X;
- _y = mouseOffset.Y - pt.Y;
- PictureBox movedPictureBox = (PictureBox)sender;
- movedPictureBox.Cursor = Cursors.SizeAll;
- movedPictureBox.Location = new Point(picboxLocation.X - _x, picboxLocation.Y - _y);
- }
- }
- /// <summary>
- /// 取消按钮
- /// </summary>
- /// <param name="sender"></param>
- /// <param name="e"></param>
- private void button3_Click(object sender, EventArgs e)
- {
- this.Close();
- }
- /// <summary>
- /// 生成按钮
- /// </summary>
- /// <param name="sender"></param>
- /// <param name="e"></param>
- private void button2_Click(object sender, EventArgs e)
- {
- if (string.IsNullOrEmpty(this.textBox1.Text))
- {
- MessageBox.Show(PdnResources.GetString("Menu.leaseselectthestoragepathfortherep.Text"));
- return;
- }
- if (!Directory.Exists(this.textBox1.Text))
- {
- MessageBox.Show(PdnResources.GetString("Menu.eselectedstoragepathdoesnotexi.Text"));
- return;
- }
- if(this.treeView1.SelectedNode == null)
- {
- MessageBox.Show(PdnResources.GetString("Menu.seselectareporttemplateontheleft.Text"));
- return;
- }
- int selectedType = this.treeView1.SelectedNode.Tag == null ? 0 : Convert.ToInt32(this.treeView1.SelectedNode.Tag);
- if(selectedType != 2)//选择的不是模板类型的树节点
- {
- MessageBox.Show(PdnResources.GetString("Menu.aseselecthecorrectreporttemplatenthel.Text"));
- return;
- }
- Dictionary<int, Bitmap> bitmapDic = new Dictionary<int, Bitmap>();
- foreach (Control C in this.panel1.Controls)
- {
- if(C is PictureBox)
- {
- PictureBox pictureBox = (PictureBox)C;
- foreach (Control childC in pictureBox.Controls)
- {
- if(childC is CheckBox)//图片已选中
- {
- CheckBox checkBox = (CheckBox)childC;
- if (checkBox.Checked)
- {
- double pantographRatio = (double)this.appWorkspace.DocumentWorkspaces[(int)pictureBox.Tag - 1].GetRulerMultiple(MeasurementUnit.Micron);//标尺*放大倍数
- pictureBox.Image.Tag = pantographRatio;
- Bitmap bitmap = new Bitmap(pictureBox.Image);
- bitmap.Tag = pantographRatio;
- bitmapDic.Add(Convert.ToInt32(pictureBox.Tag), bitmap/*new Bitmap(pictureBox.Image)*/);
- break;
- }
- }
- }
- }
- }
- List<Bitmap> wordBitmapList = new List<Bitmap>();
- if (bitmapDic != null && bitmapDic.Count > 0)
- {
- var dictSort = from objDic in bitmapDic orderby objDic.Key select objDic;//重新按key排序
- foreach(KeyValuePair<int, Bitmap> kvp in dictSort)
- {
- wordBitmapList.Add(kvp.Value);
- }
- }
- if (wordBitmapList != null && wordBitmapList.Count > 0)
- {
- AnalyzeSettingModel analyzeSettingModel = new AnalyzeSettingModel();
- analyzeSettingModel.analyzeClassify = PdnResources.GetString("Menu.Normaloperation.text");
- analyzeSettingModel.modulePath = this.treeView1.SelectedNode.Name;
- analyzeSettingModel.savePath = this.textBox1.Text;
- int dotPitch = Startup.instance.configModel.DotPitchId;//获取系统激活的点距id
- double pointPitch = 0;
- if (dotPitch > 0)
- {
- mic_screen_rules screenList = mic_screen_rules_BLL.FindDefault(dotPitch);//从数据库查询点距具体信息
- if (screenList != null)
- {
- try
- {
- pointPitch = double.Parse(screenList.point_pitch);//获取点距
- }
- catch (System.Exception)
- {
- }
- }
- }
- //获取系统的毫米标尺
- double unitLength = 0;
- this.appWorkspace.getMeasureInfo().TryGetValue(MeasurementUnit.Millimeter, out unitLength);
- if (unitLength == 0)
- unitLength = 1;
- OfficeFileHandleHelper.CreateNewWordWithContent(analyzeSettingModel, null, wordBitmapList, pointPitch == 0 ? 1 : pointPitch, unitLength, this.appWorkspace.GetGainMultiple());
- this.Close();
- }
- else
- MessageBox.Show(PdnResources.GetString("Menu.ortenerationfaile.Text"));
- }
- /// <summary>
- /// 选择存储路径按钮
- /// </summary>
- /// <param name="sender"></param>
- /// <param name="e"></param>
- private void button1_Click(object sender, EventArgs e)
- {
- APIDialogs.CommonOpenFileDialog dialog = new APIDialogs.CommonOpenFileDialog();
- dialog.IsFolderPicker = true;
- dialog.EnsurePathExists = true;
- dialog.InitialDirectory = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments);
- if (dialog.ShowDialog() == APIDialogs.CommonFileDialogResult.Ok)
- {
- this.textBox1.Text = dialog.FileName;
- }
- }
- }
- }
|