diff --git a/cadbt/cadbt/cadcj/AdvancedDataGridView.dll b/cadbt/cadbt/cadcj/AdvancedDataGridView.dll
deleted file mode 100644
index f520283..0000000
Binary files a/cadbt/cadbt/cadcj/AdvancedDataGridView.dll and /dev/null differ
diff --git a/cadbt/cadbt/cadcj/CadPlugin.cs b/cadbt/cadbt/cadcj/CadPlugin.cs
deleted file mode 100644
index 940ca0b..0000000
--- a/cadbt/cadbt/cadcj/CadPlugin.cs
+++ /dev/null
@@ -1,350 +0,0 @@
-// ============================================================
-// CAD 2018 插件入口(cadcj.dll)
-// · 实现 IExtensionApplication,在 CAD 启动时自动加载
-// · 注册命令 "CADCJ" 打开 Form3 报价窗口
-// · 使用 PaletteSet 把 Form3 嵌成 CAD 可停靠工具栏窗口
-// 启动时自动贴靠到 CAD 左侧,用户可拖到右/上/下边或浮动
-// · 编译:/target:library /platform:x64
-// · 加载:在 CAD 里 NETLOAD 选择 cadcj.dll,然后输入 CADCJ 命令
-// ============================================================
-using System;
-using Autodesk.AutoCAD.Runtime;
-using Autodesk.AutoCAD.ApplicationServices;
-using Autodesk.AutoCAD.Windows;
-using Autodesk.AutoCAD.DatabaseServices;
-using Autodesk.AutoCAD.EditorInput;
-using AcAp = Autodesk.AutoCAD.ApplicationServices.Application;
-
-[assembly: CommandClass(typeof(MyApp.CadPlugin))]
-[assembly: ExtensionApplication(typeof(MyApp.CadPlugin))]
-
-namespace MyApp
-{
- ///
- /// CAD 2018 插件入口。CAD 启动时自动初始化,注册 CADCJ 命令打开报价窗口。
- /// 报价窗口用 PaletteSet 承载,可像 CAD 工具选项板一样停靠/浮动。
- ///
- public class CadPlugin : IExtensionApplication
- {
- // PaletteSet 单例:CAD 里常驻,可停靠
- private static PaletteSet _ps = null;
- // Form3 单例(作为 PaletteSet 的内容)
- private static Form3 _form3 = null;
- // ★ 宿主容器:PaletteSet 只加 Panel,Form3 塞进去(规避主题同步崩溃)
- private static System.Windows.Forms.Panel _hostPanel = null;
-
- #region IExtensionApplication 成员
-
- public void Initialize()
- {
- // ★ 最简单的文件日志,不依赖任何外部代码,确认 Initialize 是否被调用
- try
- {
- string logPath = System.IO.Path.Combine(
- System.IO.Path.GetDirectoryName(
- new System.Uri(System.Reflection.Assembly.GetExecutingAssembly().CodeBase).LocalPath),
- "cadcj_load.log");
- System.IO.File.WriteAllText(logPath,
- "[" + System.DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "] Initialize 被调用" + System.Environment.NewLine);
- }
- catch { }
-
- // ★ 解决 CAD 安全提示:把插件目录添加到 TRUSTEDPATHS,并关闭 SECURELOAD
- // 这样 CAD 不会每次都弹"始终加载/加载一次"的安全提示
- try
- {
- string pluginDir = System.IO.Path.GetDirectoryName(
- new System.Uri(System.Reflection.Assembly.GetExecutingAssembly().CodeBase).LocalPath);
-
- var doc = AcAp.DocumentManager.MdiActiveDocument;
- if (doc != null)
- {
- // ★ 关闭 SECURELOAD(0=不检查可执行文件签名)
- try
- {
- object sl = Autodesk.AutoCAD.ApplicationServices.Application.GetSystemVariable("SECURELOAD");
- if (sl == null || Convert.ToInt32(sl) != 0)
- {
- Autodesk.AutoCAD.ApplicationServices.Application.SetSystemVariable("SECURELOAD", 0);
- }
- }
- catch { }
-
- // ★ 把插件目录添加到 TRUSTEDPATHS
- object cur = Autodesk.AutoCAD.ApplicationServices.Application.GetSystemVariable("TRUSTEDPATHS");
- string curPaths = cur == null ? "" : cur.ToString();
- bool found = false;
- string[] parts = curPaths.Split(';');
- foreach (string p in parts)
- {
- if (string.Equals(p.Trim(), pluginDir.Trim(), System.StringComparison.OrdinalIgnoreCase))
- {
- found = true;
- break;
- }
- }
- if (!found)
- {
- string newPaths = string.IsNullOrEmpty(curPaths) ? pluginDir : curPaths + ";" + pluginDir;
- Autodesk.AutoCAD.ApplicationServices.Application.SetSystemVariable("TRUSTEDPATHS", newPaths);
- }
- }
- }
- catch (System.Exception ex)
- {
- try
- {
- var doc0 = AcAp.DocumentManager.MdiActiveDocument;
- if (doc0 != null) doc0.Editor.WriteMessage("\n[CADCJ] 设置可信路径失败: " + ex.Message);
- }
- catch { }
- }
-
- try
- {
- var doc = AcAp.DocumentManager.MdiActiveDocument;
- if (doc != null)
- {
- doc.Editor.WriteMessage("\n[CADCJ] 成套报价插件已加载,报价窗口将随文档自动打开。");
- }
- // ★ 监听文档创建/激活事件:每次新建/打开文件时自动显示报价窗口
- AcAp.DocumentManager.DocumentCreated += OnDocumentCreated;
-
- // ★ 关键修复:acaddoc.lsp 的 NETLOAD 发生在文档已打开之后,
- // DocumentCreated 事件早已错过;且 Idle 事件在挂接时若 CAD 已空闲
- // 可能永不触发 → 改为直接显示(Initialize 在命令上下文里可安全创建 UI)
- if (AcAp.DocumentManager.MdiActiveDocument != null && _ps == null && _form3 == null)
- {
- PluginLog("[Initialize] 直接调用 OpenForm3");
- OpenForm3();
- }
- }
- catch (System.Exception ex2)
- {
- PluginLog("[Initialize] ⚠ 直接打开失败: " + ex2.Message);
- }
- }
-
- /// 文档创建时自动打开/显示报价窗口(停靠左侧)。
- private void OnDocumentCreated(object sender, DocumentCollectionEventArgs e)
- {
- try
- {
- // 延迟到 Idle 时执行,避免在文档创建过程中操作 UI
- AcAp.Idle -= OnCadIdleShowPalette;
- AcAp.Idle += OnCadIdleShowPalette;
- }
- catch { }
- }
-
- /// Idle 时显示报价窗口(只执行一次后取消订阅)。
- private void OnCadIdleShowPalette(object sender, EventArgs e)
- {
- AcAp.Idle -= OnCadIdleShowPalette;
- try
- {
- OpenForm3();
- }
- catch { }
- }
-
- public void Terminate()
- {
- try
- {
- if (_ps != null)
- {
- _ps.Visible = false;
- _ps = null;
- }
- if (_form3 != null && !_form3.IsDisposed)
- {
- _form3.Dispose();
- _form3 = null;
- }
- }
- catch { }
- }
-
- #endregion
-
- #region 命令
-
- /// CADCJ 命令:打开/激活报价窗口(PaletteSet,可停靠)。
- [CommandMethod("CADCJ", CommandFlags.Modal)]
- public void OpenForm3()
- {
- try
- {
- // 已有 PaletteSet 则激活显示并重新停靠到左侧
- if (_ps != null)
- {
- _ps.Visible = true;
- try
- {
- _ps.DockEnabled = DockSides.Left;
- _ps.Dock = DockSides.Left;
- }
- catch { }
- return;
- }
-
- PluginLog("[CADCJ] OpenForm3 开始");
-
- // 新建 Form3,转成子控件模式嵌入容器
- _form3 = new Form3();
- _form3.TopLevel = false;
- _form3.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None;
- _form3.Dock = System.Windows.Forms.DockStyle.Fill;
- _form3.Visible = true;
- PluginLog("[CADCJ] Form3 就绪");
-
- // ★ 根治 ResyncToTheme 崩溃:PaletteSet 只加 UserControl 容器,
- // 不直接加 Form(CAD 主题同步强改 Form.BackColor 会抛
- // "控件不支持透明的背景色")。Form3 塞进 Panel 再加。
- _hostPanel = new System.Windows.Forms.Panel();
- _hostPanel.Dock = System.Windows.Forms.DockStyle.Fill;
- _hostPanel.BackColor = System.Drawing.SystemColors.Control;
- _hostPanel.Controls.Add(_form3);
-
- // 新建 PaletteSet
- _ps = new PaletteSet("扒图", new System.Guid("A3F2B5C1-7D8E-4A6B-9C0D-1E2F3A4B5C6D"));
- PluginLog("[CADCJ] PaletteSet 创建成功");
-
- _ps.Style = PaletteSetStyles.Snappable
- | PaletteSetStyles.UsePaletteNameAsTitleForSingle;
- _ps.Add("扒图", _hostPanel);
- PluginLog("[CADCJ] Add 成功");
-
- // ★ 启动时自动贴靠到 CAD 左侧,并设置足够尺寸
- _ps.Size = new System.Drawing.Size(540, 800);
- _ps.MinimumSize = new System.Drawing.Size(300, 400);
-
- // ★ 先显示,再设置停靠(CAD PaletteSet 的特殊行为)
- _ps.Visible = true;
- PluginLog("[CADCJ] Visible=true 完成");
-
- // ★ 启用左侧停靠 + 强制停靠到左侧
- _ps.DockEnabled = DockSides.Left;
- _ps.Dock = DockSides.Left;
- PluginLog("[CADCJ] OpenForm3 全部完成 ✓");
- }
- catch (System.Exception ex)
- {
- PluginLog("[CADCJ] ⚠ 打开窗口失败: " + ex);
- var doc = AcAp.DocumentManager.MdiActiveDocument;
- if (doc != null)
- {
- doc.Editor.WriteMessage("\n[CADCJ] 打开窗口失败: " + ex.Message);
- }
- }
- }
-
- /// 插件级文件日志(写 cadcj 目录 diag.log,独立于 Form3)。
- private static void PluginLog(string msg)
- {
- try
- {
- string dir = System.IO.Path.GetDirectoryName(
- new System.Uri(System.Reflection.Assembly.GetExecutingAssembly().CodeBase).LocalPath);
- System.IO.File.AppendAllText(System.IO.Path.Combine(dir, "diag.log"),
- DateTime.Now.ToString("HH:mm:ss.fff") + " " + msg + System.Environment.NewLine);
- }
- catch { }
- }
-
- // ============================================================
- // 扒图号/扒箱号/扒元件 命令
- // · 由 Form3 的按钮通过 SendStringToExecute 触发
- // · 只允许框选 DBText/MText(过滤掉线条)
- // · 选中文本用半透明颜色高亮
- // · 选中的文本传回 Form3 插入到对应表格
- // ============================================================
-
- /// 扒图号命令:CADPATU
- [CommandMethod("CADPATU", CommandFlags.Modal)]
- public void PaTuhaoCommand()
- {
- ExecutePaCommand(MyApp.PaMode.Tuhao);
- }
-
- /// 扒箱号命令:CADPAXH
- [CommandMethod("CADPAXH", CommandFlags.Modal)]
- public void PaXianghaoCommand()
- {
- ExecutePaCommand(MyApp.PaMode.Xianghao);
- }
-
- /// 扒元件命令:CADPAYJ
- [CommandMethod("CADPAYJ", CommandFlags.Modal)]
- public void PaYuanjianCommand()
- {
- ExecutePaCommand(MyApp.PaMode.Yuanjian);
- }
-
- /// 清除所有高亮颜色命令:CADPACL
- [CommandMethod("CADPACL", CommandFlags.Modal)]
- public void PaClearCommand()
- {
- try
- {
- PaTextSelector.ClearAllHighlight();
- var doc = AcAp.DocumentManager.MdiActiveDocument;
- if (doc != null) doc.Editor.WriteMessage("\n[扒数据] 已清除所有染色文本。");
- }
- catch (System.Exception ex)
- {
- var doc = AcAp.DocumentManager.MdiActiveDocument;
- if (doc != null) doc.Editor.WriteMessage("\n[扒数据] 清除失败: " + ex.Message);
- }
- }
-
- /// 执行扒数据命令的核心逻辑(连续框选模式)。
- private void ExecutePaCommand(PaMode mode)
- {
- var doc = AcAp.DocumentManager.MdiActiveDocument;
- if (doc == null) return;
- var ed = doc.Editor;
- try
- {
- // 订阅事件:每次框选完一批文本,立即通过 Invoke 调用 Form3 的插入方法
- PaTextSelector.BatchTextsPicked -= OnPaBatchTextsPicked;
- PaTextSelector.BatchTextsPicked += OnPaBatchTextsPicked;
-
- // 进入连续框选循环(直到用户按 ESC)
- PaTextSelector.PickTextsContinuous(mode);
-
- // 用户按 ESC 退出后,触发一次最终的"完成"提示(可选)
- ed.WriteMessage("\n[扒数据] 已退出连续模式。");
-
- // 取消订阅
- PaTextSelector.BatchTextsPicked -= OnPaBatchTextsPicked;
- }
- catch (System.Exception ex)
- {
- ed.WriteMessage("\n[扒数据] 异常: " + ex.Message);
- }
- }
-
- /// PaTextSelector 事件回调:把一批文本+框Handle传给 Form3 插入到表格。
- private void OnPaBatchTextsPicked(PaMode mode, System.Collections.Generic.List results)
- {
- if (_form3 == null || _form3.IsDisposed) return;
- try
- {
- _form3.Invoke(new System.Action(() =>
- {
- try { _form3.OnPaTextsPicked(mode, results); }
- catch (System.Exception ex)
- {
- var doc = AcAp.DocumentManager.MdiActiveDocument;
- if (doc != null) doc.Editor.WriteMessage("\n[扒数据] 插入数据异常: " + ex.Message);
- }
- }));
- }
- catch { }
- }
-
- #endregion
- }
-}
diff --git a/cadbt/cadbt/cadcj/Form.xml b/cadbt/cadbt/cadcj/Form.xml
deleted file mode 100644
index 9f96b48..0000000
--- a/cadbt/cadbt/cadcj/Form.xml
+++ /dev/null
@@ -1,1527 +0,0 @@
-
-
-
-
diff --git a/cadbt/cadbt/cadcj/Form3.cs b/cadbt/cadbt/cadcj/Form3.cs
deleted file mode 100644
index 4b461f5..0000000
--- a/cadbt/cadbt/cadcj/Form3.cs
+++ /dev/null
@@ -1,6658 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Data;
-using System.Drawing;
-using System.IO;
-using System.Windows.Forms;
-using Microsoft.Win32;
-using Zuby.ADGV;
-
-namespace MyApp
-{
- ///
- /// Form3 的交互逻辑(CAD 2018 插件报价窗口)。
- /// 功能与主项目报价页面一致:项目表 + 图号/箱号/元件三级联动 + 公式重算 + 右键菜单 + 项目导出。
- /// UI 布局定义见 Form3.ui.cs。数据库独立存放在 cadcj\sjk\ 目录。
- ///
- public partial class Form3
- {
- // ============================================================
- // 数据库路径与表名常量(独立于主项目,存放在 cadcj\sjk\ 下)
- // ============================================================
-
- private const string ProjectsDbPath = @"sjk\advancedDataGridView6Table.db";
- private const string ProjectsTableName = "advancedDataGridView6Table";
- private const string QuoteDbDir = @"sjk\bjb";
- private const string TuhaoTableName = "advancedDataGridView9Table";
- private const string ProjectInfoTableName = "项目信息";
- private const string IndexTableName = "表索引";
-
- private const string CadRegPath = @"SOFTWARE\Autodesk\AutoCAD\R22.0\ACAD-1001:804\Apps\CADCJ";
-
- ///
- /// 插件所在目录(cadcj)。优先从注册表读取 CAD 自动加载的 DLL 路径(最可靠),
- /// 然后尝试 CodeBase / Location,最后兜底 BaseDirectory(可能是 CAD 目录,会报错)。
- ///
- private static readonly string _baseDir = GetPluginBaseDir();
-
- private static string GetPluginBaseDir()
- {
- // ★ 方案1(最可靠):从注册表读取 CAD 自动加载配置的 MODULE 路径
- try
- {
- using (var key = Registry.LocalMachine.OpenSubKey(CadRegPath))
- {
- if (key != null)
- {
- var module = key.GetValue("MODULE") as string;
- if (!string.IsNullOrEmpty(module))
- {
- var dir = Path.GetDirectoryName(module);
- if (!string.IsNullOrEmpty(dir) && Directory.Exists(dir))
- {
- WriteDebugLog("[GetPluginBaseDir] 注册表方案成功: " + dir);
- return dir;
- }
- }
- }
- }
- }
- catch (Exception ex) { WriteDebugLog("[GetPluginBaseDir] 注册表方案异常: " + ex.Message); }
-
- // ★ 方案2:CodeBase(不受 shadow copy 影响)
- try
- {
- var codeBase = System.Reflection.Assembly.GetExecutingAssembly().CodeBase;
- WriteDebugLog("[GetPluginBaseDir] CodeBase=" + codeBase);
- if (!string.IsNullOrEmpty(codeBase))
- {
- var localPath = new Uri(codeBase).LocalPath;
- var dir = Path.GetDirectoryName(localPath);
- if (!string.IsNullOrEmpty(dir) && Directory.Exists(dir))
- {
- WriteDebugLog("[GetPluginBaseDir] CodeBase方案成功: " + dir);
- return dir;
- }
- }
- }
- catch (Exception ex) { WriteDebugLog("[GetPluginBaseDir] CodeBase方案异常: " + ex.Message); }
-
- // ★ 方案3:Location
- try
- {
- var loc = System.Reflection.Assembly.GetExecutingAssembly().Location;
- WriteDebugLog("[GetPluginBaseDir] Location=" + loc);
- if (!string.IsNullOrEmpty(loc))
- {
- var dir = Path.GetDirectoryName(loc);
- if (!string.IsNullOrEmpty(dir) && Directory.Exists(dir))
- {
- WriteDebugLog("[GetPluginBaseDir] Location方案成功: " + dir);
- return dir;
- }
- }
- }
- catch (Exception ex) { WriteDebugLog("[GetPluginBaseDir] Location方案异常: " + ex.Message); }
-
- // ★ 方案4(最后兜底):BaseDirectory(CAD 目录,数据库会找不到)
- var fallback = AppDomain.CurrentDomain.BaseDirectory;
- WriteDebugLog("[GetPluginBaseDir] ⚠ 兜底BaseDirectory=" + fallback + " (数据库会找不到!)");
- return fallback;
- }
-
- private static void WriteDebugLog(string msg)
- {
- try
- {
- var logDir = Path.Combine(
- Path.GetDirectoryName(
- new Uri(System.Reflection.Assembly.GetExecutingAssembly().CodeBase).LocalPath),
- "sjk");
- if (!Directory.Exists(logDir)) logDir = Path.GetTempPath();
- var logPath = Path.Combine(logDir, "form3_path_debug.log");
- File.AppendAllText(logPath,
- "[" + DateTime.Now.ToString("HH:mm:ss") + "] " + msg + Environment.NewLine);
- }
- catch { }
- }
-
- // ============================================================
- // 当前层级选中状态(联动核心)
- // ============================================================
-
- private string _currentProjectId = "";
- private string _currentTuhao = "";
- private string _currentXianghao = "";
- private bool _isReloading = false;
- private bool _isRecalculating = false;
- private DateTime _lastRecalcTime = DateTime.MinValue;
-
- // 价格显示格式化配置(每个项目独立,随项目信息表加载)
- private string _单台小数位文本 = "保留2位小数";
- private string _单台取整方式 = "不取整";
- private string _项目小数位文本 = "保留2位小数";
- private string _项目取整方式 = "不取整";
-
- // 当前各表的内存数据(用于关闭/切换时回写数据库)
- private DataTable _tuhaoTable;
- private DataTable _xianghaoTable;
- private DataTable _yuanjianTable;
-
- // 内存缓存:切换图号/箱号时不丢编辑,点保存才写库
- private Dictionary _xianghaoCache = new Dictionary();
- private Dictionary _yuanjianCache = new Dictionary();
-
- // 右键菜单组件(运行时创建,不在设计器 XML 里)
- private ContextMenuStrip _menuTuhao;
- private ContextMenuStrip _menuXianghao;
- private ContextMenuStrip _menuYuanjian;
-
- private static readonly string[] ProjectInfoColumns =
- {
- "项目编号", "项目名称", "客户名称", "客户地址",
- "联系人", "联系电话", "项目日期", "备注",
- "成套厂名称", "成套厂地址", "成套厂联系人", "成套厂联系电话",
- "单台小数位", "单台取整方式", "项目小数位", "项目取整方式"
- };
-
- /// 公式计算列集合(只包含程序算出来的价格列)。
- private static readonly HashSet s_公式列集合 =
- new HashSet(StringComparer.OrdinalIgnoreCase)
- {
- "表价", "采购单价", "采购价", "报出单价", "报出价",
- "单台成本", "成本价", "单台报出", "利润",
- "单价", "总价", "成本总价", "毛利",
- "成本总价", "报出总价", "利润"
- };
-
- /// 构造函数:初始化 UI 并绑定事件。
- public Form3()
- {
- InitializeComponent();
-
- // ★ 立即创建数据库(不依赖 Load 事件,UserControl 嵌入 PaletteSet 时 Load 可能延迟)
- try
- {
- Log("[Form3] _baseDir = " + _baseDir);
- Log("[Form3] ProjectsDbPath = " + GetDbFullPath(ProjectsDbPath));
- EnsureProjectDbExists(GetDbFullPath(ProjectsDbPath));
- Log("[Form3] 数据库创建/验证成功");
- }
- catch (System.Exception ex)
- {
- Log("[Form3] 数据库创建失败: " + ex.Message);
- }
-
- // ★ 诊断:后续初始化步骤逐步打点(定位面板空白问题)
- try
- {
- Log("[Form3.init] 开始双缓冲设置");
- EnableDoubleBuffered(this.advancedDataGridView6);
- EnableDoubleBuffered(this.advancedDataGridView9);
- EnableDoubleBuffered(this.advancedDataGridView4);
- EnableDoubleBuffered(this.advancedDataGridView5);
- Log("[Form3.init] 双缓冲完成");
-
- ApplyReadOnlyColumns(this.advancedDataGridView6, new string[] {
- "项目编号", "项目名称", "客户名称", "客户地址", "联系人", "联系电话",
- "项目日期", "箱柜台数", "成本总价", "报出总价", "利润", "利润率", "备注"
- });
- ApplyReadOnlyColumns(this.advancedDataGridView9, new string[] {
- "序号", "箱柜数量", "单价", "总价", "成本总价", "毛利", "毛利率"
- });
- ApplyReadOnlyColumns(this.advancedDataGridView4, new string[] {
- "序号", "单台成本", "成本价", "单台报出", "报出价", "利润", "利润率", "毛利率"
- });
- ApplyReadOnlyColumns(this.advancedDataGridView5, new string[] {
- "序号", "采购单价", "采购价", "报出单价", "报出价"
- });
- Log("[Form3.init] 只读列完成");
-
- // 工具栏按钮事件
- this.toolStripButton1.Click += toolStripButton1_Click;
- this.toolStripButton5.Click += toolStripButton5_Click;
- this.toolStripButton6.Click += toolStripButton6_Click;
- this.toolStripButton2.Click += (s, e) => SendCadPaCommand("CADPATU");
- this.toolStripButton3.Click += (s, e) => SendCadPaCommand("CADPAXH");
- this.toolStripButton4.Click += (s, e) => SendCadPaCommand("CADPAYJ");
- this.toolStripButton7.Click += (s, e) => ShowDeepSeekSettings();
- Log("[Form3.init] 工具栏事件完成");
-
- this.button28.Click += button28_Click;
- this.advancedDataGridView6.CellDoubleClick += advancedDataGridView6_CellDoubleClick;
-
- this.advancedDataGridView9.SelectionChanged += advancedDataGridView9_SelectionChanged;
- this.advancedDataGridView4.SelectionChanged += advancedDataGridView4_SelectionChanged;
- this.advancedDataGridView5.SelectionChanged += advancedDataGridView5_SelectionChanged;
-
- this.advancedDataGridView9.CellClick += Grid_CellClick_Zoom;
- this.advancedDataGridView4.CellClick += Grid_CellClick_Zoom;
- this.advancedDataGridView5.CellClick += Grid_CellClick_Zoom;
-
- this.advancedDataGridView5.CellValueChanged += Yuanjian_CellValueChanged;
- this.advancedDataGridView4.CurrentCellDirtyStateChanged += Grid_DirtyStateChanged;
- this.advancedDataGridView4.CellValueChanged += Xianghao_CellValueChanged;
- this.advancedDataGridView9.CurrentCellDirtyStateChanged += Grid_DirtyStateChanged;
- this.advancedDataGridView9.CellValueChanged += Tuhao_CellValueChanged;
-
- this.advancedDataGridView5.CellEndEdit += Grid_CellEndEdit;
- this.advancedDataGridView4.CellEndEdit += Grid_CellEndEdit;
- this.advancedDataGridView9.CellEndEdit += Grid_CellEndEdit;
-
- this.advancedDataGridView5.DataError += (s, e) => { e.Cancel = true; };
- this.advancedDataGridView4.DataError += (s, e) => { e.Cancel = true; };
- this.advancedDataGridView9.DataError += (s, e) => { e.Cancel = true; };
- this.advancedDataGridView6.DataError += (s, e) => { e.Cancel = true; };
-
- this.advancedDataGridView9.MouseDown += Grid_MouseDown_KeepMultiSelect;
- this.advancedDataGridView4.MouseDown += Grid_MouseDown_KeepMultiSelect;
- this.advancedDataGridView5.MouseDown += Grid_MouseDown_KeepMultiSelect;
-
- this.advancedDataGridView9.KeyDown += Grid_KeyDown_Delete;
- this.advancedDataGridView4.KeyDown += Grid_KeyDown_Delete;
- this.advancedDataGridView5.KeyDown += Grid_KeyDown_Delete;
- Log("[Form3.init] 表格事件完成");
-
- BuildContextMenus();
- Log("[Form3.init] 右键菜单完成");
-
- this.Disposed += Form3_Disposed;
-
- this.Load += (s, e) =>
- {
- try
- {
- EnsureProjectDbExists(GetDbFullPath(ProjectsDbPath));
- ReloadProjectsFromDatabase();
- ApplyPriceFormat(this.advancedDataGridView6, _项目小数位文本);
- this.advancedDataGridView9.DataSource = null;
- this.advancedDataGridView4.DataSource = null;
- this.advancedDataGridView5.DataSource = null;
- Log("[Form3.Load] 初始化完成");
- }
- catch (System.Exception ex)
- {
- Log("[Form3.Load] 初始化异常: " + ex.Message);
- }
-
- try
- {
- var doc = Autodesk.AutoCAD.ApplicationServices.Application.DocumentManager.MdiActiveDocument;
- if (doc != null)
- {
- doc.Database.ObjectErased -= Database_ObjectErased;
- doc.Database.ObjectErased += Database_ObjectErased;
- Autodesk.AutoCAD.ApplicationServices.Application.DocumentManager.DocumentActivated -=
- DocumentManager_DocumentActivated;
- Autodesk.AutoCAD.ApplicationServices.Application.DocumentManager.DocumentActivated +=
- DocumentManager_DocumentActivated;
- }
- }
- catch (System.Exception ex)
- {
- Log("[Form3.Load] 订阅ObjectErased失败: " + ex.Message);
- }
- };
- Log("[Form3.init] 构造函数全部完成 ✓");
- }
- catch (System.Exception ex)
- {
- Log("[Form3.init] ⚠ 初始化异常: " + ex.ToString());
- }
- }
-
- // ★ 当前订阅过事件的Database,用于取消旧订阅
- private Autodesk.AutoCAD.DatabaseServices.Database _erasedSubscribedDb;
-
- /// 切换文档时重新订阅 ObjectErased 事件。
- private void DocumentManager_DocumentActivated(object sender,
- Autodesk.AutoCAD.ApplicationServices.DocumentCollectionEventArgs e)
- {
- try
- {
- if (_erasedSubscribedDb != null)
- {
- _erasedSubscribedDb.ObjectErased -= Database_ObjectErased;
- _erasedSubscribedDb = null;
- }
- if (e.Document != null && e.Document.Database != null)
- {
- e.Document.Database.ObjectErased += Database_ObjectErased;
- _erasedSubscribedDb = e.Document.Database;
- }
- }
- catch (System.Exception ex)
- {
- Log("[DocumentActivated] 重订阅失败: " + ex.Message);
- }
- }
-
- ///
- /// ★ CAD 中实体被删除时触发。如果删除的是 __CADCJ_PA_FRAME 图层上的扒图框,
- /// 通过 Handle 查找当前项目下的图号表/箱号表/元件表对应行,同步删除。
- /// ★ 注意:不依赖 ent.Layer 过滤(Erased 状态下 Layer 可能读不到),
- /// 直接用 Handle 去数据库查,查到就说明是扒图框。
- ///
- private void Database_ObjectErased(object sender,
- Autodesk.AutoCAD.DatabaseServices.ObjectErasedEventArgs e)
- {
- try
- {
- if (e == null || e.DBObject == null) return;
- // ★ 如果正在通过表格删除(_isReloading=true),跳过 CAD 事件触发的删除
- // 避免表格删除和 CAD 事件删除互相干扰导致蒙版/数据不一致
- if (_isReloading) return;
- var ent = e.DBObject as Autodesk.AutoCAD.DatabaseServices.Entity;
- if (ent == null) return;
- string handle = ent.Handle.ToString();
- if (string.IsNullOrWhiteSpace(handle)) return;
-
- // ★ 不再依赖 Layer 过滤:直接用 Handle 去数据库查
- // 如果数据库里能找到这个 Handle,说明就是扒图框,直接删除对应行
- Log("[ObjectErased] 触发! Handle=" + handle);
-
- this.BeginInvoke((Action)(() =>
- {
- try
- {
- // 再次检查(异步执行时状态可能已变化)
- if (_isReloading) { Log("[ObjectErased] _isReloading=true,跳过"); return; }
- DeleteRowsByFrameHandle(handle);
- }
- catch (System.Exception ex)
- {
- Log("[ObjectErased.BeginInvoke] 异常: " + ex.Message);
- }
- }));
- }
- catch (System.Exception ex)
- {
- Log("[ObjectErased] 异常: " + ex.Message);
- }
- }
-
- ///
- /// 根据框Handle在当前项目的图号表/箱号表/元件表中删除对应数据行。
- ///
- private void DeleteRowsByFrameHandle(string frameHandle)
- {
- if (string.IsNullOrWhiteSpace(frameHandle)) return;
- if (string.IsNullOrWhiteSpace(_currentProjectId)) { Log("[DeleteRowsByFrameHandle] _currentProjectId 为空,放弃"); return; }
- _isReloading = true;
- try
- {
- string dbPath = GetQuoteDbPath(_currentProjectId);
- if (!File.Exists(dbPath)) { Log("[DeleteRowsByFrameHandle] 数据库不存在: " + dbPath); return; }
-
- bool deleted = false;
- string deletedTuhao = null;
- string deletedXianghao = null;
- // ★ 收集级联删除的框Handle(图号→箱号→元件,删除数据时同步删蒙版)
- var cascadeFrames = new List();
-
- using (var conn = new System.Data.SQLite.SQLiteConnection(GetConnString(dbPath)))
- {
- conn.Open();
-
- // 1) 图号表
- using (var sel = new System.Data.SQLite.SQLiteCommand(
- "SELECT 图号 FROM " + TuhaoTableName + " WHERE 框Handle=@fh;", conn))
- {
- sel.Parameters.AddWithValue("@fh", frameHandle);
- using (var reader = sel.ExecuteReader())
- {
- if (reader.Read())
- {
- deletedTuhao = reader.IsDBNull(0) ? "" : reader.GetString(0);
- Log("[DeleteRowsByFrameHandle] 命中图号表: " + deletedTuhao);
- }
- }
- }
- if (!string.IsNullOrWhiteSpace(deletedTuhao))
- {
- // ★ 删除图号前,先收集该图号下所有箱号和元件的框Handle(级联删蒙版)
- CollectFrameHandlesForTuhao(_currentProjectId, deletedTuhao, cascadeFrames);
- DeleteTuhao(_currentProjectId, deletedTuhao);
- deleted = true;
- }
-
- if (!deleted)
- {
- // 2) 箱号表:通过表索引找到所有箱号表,逐个查
- List allXhTables = new List();
- using (var selIdx = new System.Data.SQLite.SQLiteCommand(
- "SELECT 实际表名, 图号 FROM 表索引 WHERE 类型='箱号';", conn))
- using (var rIdx = selIdx.ExecuteReader())
- {
- while (rIdx.Read())
- {
- string realTbl = rIdx.IsDBNull(0) ? "" : rIdx.GetString(0);
- string th = rIdx.IsDBNull(1) ? "" : rIdx.GetString(1);
- if (!string.IsNullOrWhiteSpace(realTbl))
- allXhTables.Add(realTbl + "|" + th);
- }
- }
- Log("[DeleteRowsByFrameHandle] 箱号表数量: " + allXhTables.Count);
- foreach (string info in allXhTables)
- {
- string[] parts = info.Split('|');
- string realTbl = parts[0];
- string th = parts.Length > 1 ? parts[1] : "";
- using (var sel = new System.Data.SQLite.SQLiteCommand(
- "SELECT 箱号 FROM \"" + realTbl + "\" WHERE 框Handle=@fh;", conn))
- {
- sel.Parameters.AddWithValue("@fh", frameHandle);
- using (var reader = sel.ExecuteReader())
- {
- if (reader.Read())
- {
- deletedTuhao = th;
- deletedXianghao = reader.IsDBNull(0) ? "" : reader.GetString(0);
- Log("[DeleteRowsByFrameHandle] 命中箱号表: 图号=" + th + " 箱号=" + deletedXianghao);
- break;
- }
- }
- }
- if (!string.IsNullOrWhiteSpace(deletedXianghao)) break;
- }
- if (!string.IsNullOrWhiteSpace(deletedXianghao))
- {
- // ★ 删除箱号前,先收集该箱号下元件表的框Handle(级联删蒙版)
- CollectFrameHandlesForXianghao(_currentProjectId, deletedTuhao, deletedXianghao, cascadeFrames);
- DeleteXianghao(_currentProjectId, deletedTuhao, deletedXianghao);
- deleted = true;
- }
- }
-
- if (!deleted)
- {
- // 3) 元件表:通过表索引找到所有元件表,逐个查
- List allYjTables = new List();
- using (var selIdx = new System.Data.SQLite.SQLiteCommand(
- "SELECT 实际表名, 图号, 箱号 FROM 表索引 WHERE 类型='元件';", conn))
- using (var rIdx = selIdx.ExecuteReader())
- {
- while (rIdx.Read())
- {
- string realTbl = rIdx.IsDBNull(0) ? "" : rIdx.GetString(0);
- string th = rIdx.IsDBNull(1) ? "" : rIdx.GetString(1);
- string xh = rIdx.IsDBNull(2) ? "" : rIdx.GetString(2);
- if (!string.IsNullOrWhiteSpace(realTbl))
- allYjTables.Add(realTbl + "|" + th + "|" + xh);
- }
- }
- Log("[DeleteRowsByFrameHandle] 元件表数量: " + allYjTables.Count + " 查找Handle=" + frameHandle);
- foreach (string info in allYjTables)
- {
- string[] parts = info.Split('|');
- string realTbl = parts[0];
- string th = parts.Length > 1 ? parts[1] : "";
- string xh = parts.Length > 2 ? parts[2] : "";
- // ★ 先列出该表所有的框Handle,排查是否真的写进去了
- using (var selAll = new System.Data.SQLite.SQLiteCommand(
- "SELECT 序号, 框Handle FROM \"" + realTbl + "\";", conn))
- using (var rAll = selAll.ExecuteReader())
- {
- while (rAll.Read())
- {
- string s = rAll.IsDBNull(0) ? "" : rAll.GetString(0);
- string h = rAll.IsDBNull(1) ? "" : rAll.GetString(1);
- Log(" [元件表 " + realTbl + "] 序号=" + s + " 框Handle=[" + h + "]");
- }
- }
- using (var sel = new System.Data.SQLite.SQLiteCommand(
- "SELECT COUNT(*) FROM \"" + realTbl + "\" WHERE 框Handle=@fh;", conn))
- {
- sel.Parameters.AddWithValue("@fh", frameHandle);
- object cnt = sel.ExecuteScalar();
- int matchCount = (cnt != null && cnt != DBNull.Value) ? Convert.ToInt32(cnt) : 0;
- if (matchCount > 0)
- {
- deletedTuhao = th;
- deletedXianghao = xh;
- Log("[DeleteRowsByFrameHandle] 命中元件表: 图号=" + th + " 箱号=" + xh + " 匹配行数=" + matchCount);
-
- // ★ 直接用框Handle 删除所有匹配行(解决重复行问题)
- using (var delCmd = new System.Data.SQLite.SQLiteCommand(
- "DELETE FROM \"" + realTbl + "\" WHERE 框Handle=@fh;", conn))
- {
- delCmd.Parameters.AddWithValue("@fh", frameHandle);
- int affected = delCmd.ExecuteNonQuery();
- Log("[DeleteRowsByFrameHandle] DELETE 完成,影响行数=" + affected);
- }
- deleted = true;
- break;
- }
- }
- }
- }
- }
-
- if (deleted)
- {
- Log("[DeleteRowsByFrameHandle] 删除成功: Handle=" + frameHandle + " cascadeFrames=" + cascadeFrames.Count);
-
- _xianghaoCache.Clear();
- _yuanjianCache.Clear();
-
- // 重新编号(直接操作数据库)
- if (!string.IsNullOrWhiteSpace(deletedTuhao) && !string.IsNullOrWhiteSpace(deletedXianghao))
- {
- string yjTbl = GetYuanjianTableByIndex(_currentProjectId, deletedTuhao, deletedXianghao);
- if (!string.IsNullOrEmpty(yjTbl))
- RenumberTable(_currentProjectId, "\"" + yjTbl + "\"");
- string xhTbl = GetXianghaoTableByIndex(_currentProjectId, deletedTuhao);
- if (!string.IsNullOrEmpty(xhTbl))
- RenumberTable(_currentProjectId, "\"" + xhTbl + "\"");
- }
- else if (!string.IsNullOrWhiteSpace(deletedTuhao))
- {
- string xhTbl = GetXianghaoTableByIndex(_currentProjectId, deletedTuhao);
- if (!string.IsNullOrEmpty(xhTbl))
- RenumberTable(_currentProjectId, "\"" + xhTbl + "\"");
- }
-
- // ★ 直接在数据库层面重算(不经过内存表,不触发回写)
- try { RecalcAllFromDatabase(_currentProjectId); } catch { }
-
- // ★ 从数据库重新加载到 UI(覆盖内存表,确保 UI 与数据库一致)
- if (!string.IsNullOrWhiteSpace(deletedTuhao) && !string.IsNullOrWhiteSpace(deletedXianghao))
- {
- if (_currentTuhao == deletedTuhao)
- {
- ReloadXianghaoByTuhao(_currentProjectId, deletedTuhao);
- if (_currentXianghao == deletedXianghao)
- ReloadYuanjianByXianghao(_currentProjectId, deletedTuhao, deletedXianghao);
- }
- }
- else if (!string.IsNullOrWhiteSpace(deletedTuhao))
- {
- ReloadTuhaoByProject(_currentProjectId);
- if (_currentTuhao == deletedTuhao)
- ReloadXianghaoByTuhao(_currentProjectId, deletedTuhao);
- }
-
- // ★ 删除级联的框实体(图号删除时,其下箱号和元件的蒙版也要删除)
- Log("[DeleteRowsByFrameHandle] cascadeFrames 数量: " + cascadeFrames.Count + " 当前Handle=" + frameHandle);
- if (cascadeFrames.Count > 0)
- {
- // ★ 收集后一次性批量删除(排除当前正在删除的 frameHandle,已由 CAD 端删除)
- var toDel = new List();
- foreach (string h in cascadeFrames)
- {
- if (h != frameHandle) toDel.Add(h);
- }
- if (toDel.Count > 0)
- {
- Log("[DeleteRowsByFrameHandle] 级联删除框Handle数: " + toDel.Count);
- DeleteFramesByHandles(toDel);
- }
- SaveCurrentDwg();
- Log("[DeleteRowsByFrameHandle] 级联删除完成");
- }
- }
- }
- finally
- {
- _isReloading = false;
- }
- }
-
- /// 重写 OnLoad:在所有 Load 事件订阅者之前确保项目库文件存在。
- protected override void OnLoad(EventArgs e)
- {
- try { EnsureProjectDbExists(GetDbFullPath(ProjectsDbPath)); }
- catch { }
- base.OnLoad(e);
- }
-
- // ============================================================
- // 通用辅助方法
- // ============================================================
-
- private void Log(string msg)
- {
- try
- {
- string logPath = Path.Combine(_baseDir, "diag.log");
- File.AppendAllText(logPath,
- DateTime.Now.ToString("HH:mm:ss.fff") + " " + msg + "\r\n");
- }
- catch { }
- }
-
- private string GetDbFullPath(string relativePath)
- {
- return Path.Combine(_baseDir, relativePath);
- }
-
- private string GetConnString(string dbPath)
- {
- // ★ busy_timeout=3000:数据库被 CAD 或其他进程短暂占用时等待重试而非卡死;
- // Pooling 关闭,避免连接池长期持有文件句柄
- return "Data Source=" + dbPath + ";Version=3;busy_timeout=3000;";
- }
-
- private string GetQuoteDbPath(string projectId)
- {
- string safeName = projectId;
- char[] invalidChars = Path.GetInvalidFileNameChars();
- foreach (char c in invalidChars) safeName = safeName.Replace(c, '_');
- return GetDbFullPath(QuoteDbDir + @"\项目" + safeName + ".db");
- }
-
- private static decimal ParseDecimal(object v)
- {
- if (v == null || v == DBNull.Value) return 0m;
- decimal d;
- if (decimal.TryParse(v.ToString().Trim(), out d)) return d;
- return 0m;
- }
-
- private static DataGridViewColumn FindColumn(DataGridView dgv, string name)
- {
- if (dgv == null || dgv.Columns == null) return null;
- foreach (DataGridViewColumn c in dgv.Columns)
- {
- if (c == null) continue;
- if (c.DataPropertyName == name || c.HeaderText == name || c.Name == name) return c;
- }
- return null;
- }
-
- private static string GetCellString(DataGridViewRow row, string name)
- {
- if (row == null || row.DataGridView == null) return "";
- DataGridViewColumn col = FindColumn(row.DataGridView, name);
- if (col == null) return "";
- object v = row.Cells[col.Index].Value;
- return v == null ? "" : v.ToString().Trim();
- }
-
- private static decimal GetCellDecimal(DataGridViewRow row, string name)
- {
- return ParseDecimal(GetCellString(row, name));
- }
-
- private static string GetCellValueAsString(DataGridViewRow row, string colName)
- {
- if (row == null || row.Cells == null || string.IsNullOrEmpty(colName)) return "";
- DataGridView grid = row.DataGridView;
- if (grid != null)
- {
- foreach (DataGridViewColumn col in grid.Columns)
- {
- if (col == null) continue;
- string key = !string.IsNullOrEmpty(col.DataPropertyName)
- ? col.DataPropertyName
- : (!string.IsNullOrEmpty(col.HeaderText) ? col.HeaderText : col.Name);
- if (key == colName)
- {
- object v = row.Cells[col.Index].Value;
- return v == null ? "" : v.ToString().Trim();
- }
- }
- }
- return "";
- }
-
- private static void SetCell(DataGridViewRow row, string colName, decimal value)
- {
- if (row == null || row.DataGridView == null) return;
- DataGridViewColumn col = FindColumn(row.DataGridView, colName);
- if (col == null) return;
- row.Cells[col.Index].Value = value == 0m ? 0d : (double)value;
- }
-
- private static DataGridViewRow GetFirstSelectedRow(DataGridView dgv)
- {
- if (dgv == null || dgv.Rows == null || dgv.Rows.Count == 0) return null;
- foreach (DataGridViewRow r in dgv.SelectedRows)
- {
- if (r == null || r.IsNewRow) continue;
- return r;
- }
- if (dgv.CurrentRow != null && !dgv.CurrentRow.IsNewRow) return dgv.CurrentRow;
- return null;
- }
-
- private static List GetAllSelectedRows(DataGridView dgv)
- {
- var result = new List();
- if (dgv == null || dgv.Rows == null || dgv.Rows.Count == 0) return result;
- var seenRows = new HashSet();
- if (dgv.SelectedRows != null)
- {
- foreach (DataGridViewRow r in dgv.SelectedRows)
- {
- if (r == null || r.IsNewRow) continue;
- if (seenRows.Add(r.Index)) result.Add(r);
- }
- }
- // ★ 总是通过 SelectedCells 补充收集(不再限制 result.Count == 0)
- // ADGV 多选时 SelectedRows 可能不完整,SelectedCells 能覆盖所有选中行
- if (dgv.SelectedCells != null)
- {
- foreach (DataGridViewCell c in dgv.SelectedCells)
- {
- if (c == null || c.RowIndex < 0) continue;
- DataGridViewRow r = dgv.Rows[c.RowIndex];
- if (r == null || r.IsNewRow) continue;
- if (seenRows.Add(r.Index)) result.Add(r);
- }
- }
- // 兜底:如果以上都没收集到,取当前行
- if (result.Count == 0 && dgv.CurrentRow != null && !dgv.CurrentRow.IsNewRow)
- {
- result.Add(dgv.CurrentRow);
- }
- return result;
- }
-
- private DataGridViewRow GetFirstSelectedProjectRow()
- {
- DataGridView dgv = this.advancedDataGridView6;
- if (dgv == null || dgv.Rows == null || dgv.Rows.Count == 0) return null;
- foreach (DataGridViewRow r in dgv.SelectedRows)
- {
- if (r == null || r.IsNewRow) continue;
- return r;
- }
- if (dgv.CurrentRow != null && !dgv.CurrentRow.IsNewRow) return dgv.CurrentRow;
- return null;
- }
-
- private DataGridViewRow FindProjectRowById(string projectId)
- {
- if (string.IsNullOrWhiteSpace(projectId)) return null;
- DataGridView dgv = this.advancedDataGridView6;
- if (dgv == null || dgv.Rows == null) return null;
- foreach (DataGridViewRow r in dgv.Rows)
- {
- if (r == null || r.IsNewRow) continue;
- if (GetCellValueAsString(r, "项目编号") == projectId) return r;
- }
- return null;
- }
-
- private static void SetCurrentCell(DataGridView dgv, int rowIndex, int colIndex = 0)
- {
- if (dgv == null || dgv.Rows == null || rowIndex < 0 || rowIndex >= dgv.Rows.Count) return;
- try
- {
- if (dgv.Rows[rowIndex].IsNewRow) return;
- if (colIndex < 0 || colIndex >= dgv.Columns.Count) colIndex = 0;
- dgv.ClearSelection();
- dgv.Rows[rowIndex].Selected = true;
- dgv.CurrentCell = dgv.Rows[rowIndex].Cells[colIndex];
- }
- catch { }
- }
-
- private void SelectRowByValue(DataGridView dgv, string colName, string value)
- {
- if (dgv == null || dgv.Rows == null || string.IsNullOrEmpty(value)) return;
- try
- {
- _isReloading = true;
- foreach (DataGridViewRow r in dgv.Rows)
- {
- if (r == null || r.IsNewRow) continue;
- if (GetCellValueAsString(r, colName) == value)
- {
- dgv.ClearSelection();
- r.Selected = true;
- dgv.CurrentCell = r.Cells[0];
- return;
- }
- }
- }
- catch { }
- finally { _isReloading = false; }
- }
-
- private static int GetSelectedRowIndex(DataGridView dgv)
- {
- if (dgv == null) return -1;
- if (dgv.CurrentRow == null || dgv.CurrentRow.IsNewRow) return -1;
- return dgv.CurrentRow.Index;
- }
-
- private static string MakeSafeFileName(string s)
- {
- if (string.IsNullOrEmpty(s)) return "未命名";
- string r = s;
- char[] invalid = Path.GetInvalidFileNameChars();
- foreach (char c in invalid) r = r.Replace(c, '_');
- return r;
- }
-
- private static string EscapeJsonString(string s)
- {
- if (s == null) return "";
- return s.Replace("\\", "\\\\").Replace("\"", "\\\"")
- .Replace("\r", "\\r").Replace("\n", "\\n").Replace("\t", "\\t");
- }
-
- private string ShowInputDialog(string title, string prompt, string defaultValue)
- {
- using (var dlg = new Form())
- {
- dlg.Text = title;
- dlg.StartPosition = FormStartPosition.CenterParent;
- dlg.FormBorderStyle = FormBorderStyle.FixedDialog;
- dlg.MinimizeBox = false;
- dlg.MaximizeBox = false;
- dlg.Width = 340;
- dlg.Height = 170;
-
- var lbl = new Label();
- lbl.Text = prompt;
- lbl.Left = 12; lbl.Top = 15;
- lbl.Width = 300; lbl.Height = 30;
- dlg.Controls.Add(lbl);
-
- var txt = new TextBox();
- txt.Text = defaultValue;
- txt.Left = 12; txt.Top = 55;
- txt.Width = 300;
- dlg.Controls.Add(txt);
-
- var btnOk = new Button();
- btnOk.Text = "确定";
- btnOk.Left = 210; btnOk.Top = 92;
- btnOk.Width = 90;
- btnOk.DialogResult = DialogResult.OK;
- dlg.Controls.Add(btnOk);
-
- var btnCancel = new Button();
- btnCancel.Text = "取消";
- btnCancel.Left = 108; btnCancel.Top = 92;
- btnCancel.Width = 90;
- btnCancel.DialogResult = DialogResult.Cancel;
- dlg.Controls.Add(btnCancel);
-
- dlg.AcceptButton = btnOk;
- dlg.CancelButton = btnCancel;
-
- if (dlg.ShowDialog(this) == DialogResult.OK) return txt.Text;
- return "";
- }
- }
-
- /// 开启 DataGridView 的双缓冲(消除闪烁)。
- private static void EnableDoubleBuffered(DataGridView dgv)
- {
- if (dgv == null) return;
- try
- {
- typeof(DataGridView).InvokeMember("DoubleBuffered",
- System.Reflection.BindingFlags.SetProperty |
- System.Reflection.BindingFlags.Instance |
- System.Reflection.BindingFlags.NonPublic,
- null, dgv, new object[] { true });
- }
- catch { }
- }
-
- /// 按列名设置只读(运行时按 DataPropertyName/HeaderText 查找)。
- private static void ApplyReadOnlyColumns(DataGridView dgv, string[] colNames)
- {
- if (dgv == null || colNames == null) return;
- foreach (string name in colNames)
- {
- DataGridViewColumn col = FindColumn(dgv, name);
- if (col != null) col.ReadOnly = true;
- }
- }
-
- // ============================================================
- // 价格显示格式化
- // ============================================================
-
- /// 把"保留2位小数"/"保留整数"等转成 .NET 格式字符串(F0/F2)。
- private static string ToFormatString(string 小数位文本)
- {
- int n = 解析小数位(小数位文本);
- if (n < 0) n = 2;
- return "F" + n.ToString();
- }
-
- private static int 解析小数位(string text)
- {
- if (string.IsNullOrWhiteSpace(text)) return 2;
- string t = text.Trim();
- if (t.Contains("整数")) return 0;
- if (t.Contains("1位")) return 1;
- if (t.Contains("2位")) return 2;
- if (t.Contains("3位")) return 3;
- if (t.Contains("4位")) return 4;
- return 2;
- }
-
- private void ApplyPriceFormat(DataGridView dgv, string 小数位文本)
- {
- if (dgv == null || dgv.Columns == null) return;
- string fmt = ToFormatString(小数位文本);
- foreach (DataGridViewColumn col in dgv.Columns)
- {
- if (col == null) continue;
- string name = !string.IsNullOrEmpty(col.DataPropertyName)
- ? col.DataPropertyName : col.HeaderText;
- if (string.IsNullOrEmpty(name)) continue;
- if (s_公式列集合.Contains(name))
- {
- col.DefaultCellStyle.Format = fmt;
- }
- }
- }
-
- /// 老库兼容:把 DataTable 中公式列的类型从 string 转为 double。
- private static DataTable ConvertFormulaColumnsToDouble(DataTable table)
- {
- if (table == null || table.Columns.Count == 0) return table;
- bool needsConvert = false;
- foreach (DataColumn dc in table.Columns)
- {
- if (s_公式列集合.Contains(dc.ColumnName) && dc.DataType == typeof(string))
- {
- needsConvert = true;
- break;
- }
- }
- if (!needsConvert) return table;
-
- var newTable = new DataTable();
- foreach (DataColumn dc in table.Columns)
- {
- Type t = s_公式列集合.Contains(dc.ColumnName) ? typeof(double) : dc.DataType;
- newTable.Columns.Add(dc.ColumnName, t);
- }
- foreach (DataRow row in table.Rows)
- {
- var newRow = newTable.NewRow();
- foreach (DataColumn dc in table.Columns)
- {
- if (s_公式列集合.Contains(dc.ColumnName))
- {
- object v = row[dc];
- if (v == null || v == DBNull.Value) newRow[dc.ColumnName] = 0d;
- else if (v is double) newRow[dc.ColumnName] = v;
- else
- {
- double d;
- newRow[dc.ColumnName] = double.TryParse(v.ToString().Trim(), out d) ? d : 0d;
- }
- }
- else newRow[dc.ColumnName] = row[dc];
- }
- newTable.Rows.Add(newRow);
- }
- newTable.TableName = table.TableName;
- return newTable;
- }
-
- // ============================================================
- // 数据库结构维护
- // ============================================================
-
- private void EnsureProjectDbExists(string dbPath)
- {
- string dir = Path.GetDirectoryName(dbPath);
- if (!Directory.Exists(dir)) Directory.CreateDirectory(dir);
- using (var conn = new System.Data.SQLite.SQLiteConnection(GetConnString(dbPath)))
- {
- conn.Open();
- string sql =
- "CREATE TABLE IF NOT EXISTS " + ProjectsTableName + " (" +
- " 项目编号 TEXT, 项目名称 TEXT, 客户名称 TEXT, 客户地址 TEXT," +
- " 联系人 TEXT, 联系电话 TEXT, 项目日期 TEXT, 箱柜台数 REAL," +
- " 成本总价 REAL, 报出总价 REAL, 利润 REAL, 利润率 REAL, 备注 TEXT" +
- ");";
- using (var cmd = new System.Data.SQLite.SQLiteCommand(sql, conn)) cmd.ExecuteNonQuery();
- EnsureColumns(conn, ProjectsTableName, new[] {
- "成套厂名称", "成套厂地址", "成套厂联系人", "成套厂联系电话"
- });
- }
- }
-
- private static void EnsureColumns(System.Data.SQLite.SQLiteConnection conn, string tableName, string[] columns)
- {
- if (columns == null || columns.Length == 0) return;
- var existing = new HashSet(StringComparer.OrdinalIgnoreCase);
- using (var infoCmd = new System.Data.SQLite.SQLiteCommand("PRAGMA table_info(" + tableName + ");", conn))
- using (var reader = infoCmd.ExecuteReader())
- {
- while (reader.Read())
- {
- object nameObj = reader["name"];
- if (nameObj != null && nameObj != DBNull.Value) existing.Add(nameObj.ToString());
- }
- }
- foreach (string col in columns)
- {
- if (!existing.Contains(col))
- {
- string sql = "ALTER TABLE " + tableName + " ADD COLUMN " + col + " TEXT;";
- using (var cmd = new System.Data.SQLite.SQLiteCommand(sql, conn)) cmd.ExecuteNonQuery();
- }
- }
- }
-
- private static List GetProjectTableColumns(System.Data.SQLite.SQLiteConnection conn)
- {
- var cols = new List();
- try
- {
- using (var infoCmd = new System.Data.SQLite.SQLiteCommand("PRAGMA table_info(" + ProjectsTableName + ");", conn))
- using (var reader = infoCmd.ExecuteReader())
- {
- while (reader.Read())
- {
- object nameObj = reader["name"];
- if (nameObj != null && nameObj != DBNull.Value) cols.Add(nameObj.ToString());
- }
- }
- }
- catch { }
- return cols;
- }
-
- private void EnsureQuoteDbExists(string projectId)
- {
- if (string.IsNullOrWhiteSpace(projectId)) return;
- string dbPath = GetQuoteDbPath(projectId);
- string dir = Path.GetDirectoryName(dbPath);
- if (!Directory.Exists(dir)) Directory.CreateDirectory(dir);
-
- using (var conn = new System.Data.SQLite.SQLiteConnection(GetConnString(dbPath)))
- {
- conn.Open();
- string sqlTuhao =
- "CREATE TABLE IF NOT EXISTS " + TuhaoTableName + " (" +
- " 序号 TEXT, 图号 TEXT, 图名 TEXT, 台数 TEXT, 箱柜数量 REAL," +
- " 单价 REAL, 总价 REAL, 成本总价 REAL, 毛利 REAL, 毛利率 REAL," +
- " 框Handle TEXT, 文本Handle TEXT" +
- ");";
- string sqlIndex =
- "CREATE TABLE IF NOT EXISTS 表索引 (" +
- " 类型 TEXT, 图号 TEXT, 箱号 TEXT, 实际表名 TEXT" +
- ");";
- string sqlProjectInfo =
- "CREATE TABLE IF NOT EXISTS " + ProjectInfoTableName + " (" +
- " 项目编号 TEXT, 项目名称 TEXT, 客户名称 TEXT, 客户地址 TEXT," +
- " 联系人 TEXT, 联系电话 TEXT, 项目日期 TEXT, 备注 TEXT," +
- " 成套厂名称 TEXT, 成套厂地址 TEXT, 成套厂联系人 TEXT, 成套厂联系电话 TEXT," +
- " 单台小数位 TEXT, 单台取整方式 TEXT, 项目小数位 TEXT, 项目取整方式 TEXT" +
- ");";
- foreach (string sql in new[] { sqlTuhao, sqlIndex, sqlProjectInfo })
- {
- using (var cmd = new System.Data.SQLite.SQLiteCommand(sql, conn)) cmd.ExecuteNonQuery();
- }
- EnsureColumns(conn, ProjectInfoTableName, new[] {
- "成套厂名称", "成套厂地址", "成套厂联系人", "成套厂联系电话",
- "单台小数位", "单台取整方式", "项目小数位", "项目取整方式"
- });
- // ★ 确保旧库的图号表也有"框Handle"/"文本Handle"列
- EnsureColumns(conn, TuhaoTableName, new[] { "框Handle", "文本Handle" });
- }
- }
-
- // ---------- 箱号表(每个图号一张独立表,表名=图号原名,双引号括起)----------
-
- private static string GetXianghaoTableName(string tuhao)
- {
- if (string.IsNullOrWhiteSpace(tuhao)) return "\"图号箱号表\"";
- return "\"" + tuhao.Replace("\"", "\"\"") + "\"";
- }
-
- private void EnsureXianghaoTableExists(string projectId, string tuhao)
- {
- if (string.IsNullOrWhiteSpace(projectId) || string.IsNullOrWhiteSpace(tuhao)) return;
- // 先查表索引,已有则跳过
- string existing = GetXianghaoTableByIndex(projectId, tuhao);
- if (!string.IsNullOrEmpty(existing)) return;
- string dbPath = GetQuoteDbPath(projectId);
- if (!File.Exists(dbPath)) return;
- // 用唯一ID做表名,避免图号名含特殊字符
- string realTbl = GetNextTableId(projectId, "箱号");
- try
- {
- using (var conn = new System.Data.SQLite.SQLiteConnection(GetConnString(dbPath)))
- {
- conn.Open();
- string sql =
- "CREATE TABLE \"" + realTbl + "\" (" +
- " 序号 TEXT, 箱号 TEXT, 型号 TEXT, 规格 TEXT, 单位 TEXT, 数量 TEXT," +
- " 单台成本 REAL, 成本价 REAL, 单台报出 REAL, 报出价 REAL," +
- " 利润 REAL, 利润率 REAL, 毛利率 REAL, 箱柜类型 TEXT, 备注 TEXT, 图纸 TEXT," +
- " 框Handle TEXT, 文本Handle TEXT" +
- ");";
- using (var cmd = new System.Data.SQLite.SQLiteCommand(sql, conn)) cmd.ExecuteNonQuery();
- }
- // ★ 注册到表索引,后续 GetXianghaoTableByIndex 才能查到
- AddTableIndex(projectId, "箱号", tuhao, "", realTbl);
- }
- catch { }
- }
-
- private string GetXianghaoCount(string projectId, string tuhao)
- {
- if (string.IsNullOrWhiteSpace(projectId) || string.IsNullOrWhiteSpace(tuhao)) return "1";
- string realTbl = GetXianghaoTableByIndex(projectId, tuhao);
- if (string.IsNullOrEmpty(realTbl)) return "1";
- string dbPath = GetQuoteDbPath(projectId);
- if (!File.Exists(dbPath)) return "1";
- try
- {
- using (var conn = new System.Data.SQLite.SQLiteConnection(GetConnString(dbPath)))
- {
- conn.Open();
- string sql = "SELECT COUNT(*) FROM \"" + realTbl + "\";";
- using (var cmd = new System.Data.SQLite.SQLiteCommand(sql, conn))
- {
- int n = 0;
- object o = cmd.ExecuteScalar();
- if (o != null && o != DBNull.Value) n = Convert.ToInt32(o);
- return (n + 1).ToString();
- }
- }
- }
- catch { return "1"; }
- }
-
- // ---------- 元件计数(用于新建元件命名"新元件N")----------
-
- private string GetYuanjianCount(string projectId, string tuhao, string xianghao)
- {
- if (string.IsNullOrWhiteSpace(projectId) ||
- string.IsNullOrWhiteSpace(xianghao)) return "1";
- // 查索引表拿该箱号元件表的真实表名
- string realTbl = GetYuanjianTableByIndex(projectId, tuhao, xianghao);
- if (string.IsNullOrEmpty(realTbl)) return "1";
- string dbPath = GetQuoteDbPath(projectId);
- if (!File.Exists(dbPath)) return "1";
- try
- {
- using (var conn = new System.Data.SQLite.SQLiteConnection(GetConnString(dbPath)))
- {
- conn.Open();
- string sql = "SELECT COUNT(*) FROM \"" + realTbl + "\";";
- using (var cmd = new System.Data.SQLite.SQLiteCommand(sql, conn))
- {
- int n = 0;
- object o = cmd.ExecuteScalar();
- if (o != null && o != DBNull.Value) n = Convert.ToInt32(o);
- return (n + 1).ToString();
- }
- }
- }
- catch { return "1"; }
- }
-
- // ---------- 元件表(每个箱号一张独立表)----------
-
- private static string GetYuanjianTableName(string xianghao)
- {
- if (string.IsNullOrWhiteSpace(xianghao)) return "\"元件表\"";
- return "\"" + xianghao.Replace("\"", "\"\"") + "\"";
- }
-
- private void EnsureYuanjianTableExists(string projectId, string tuhao, string xianghao)
- {
- if (string.IsNullOrWhiteSpace(projectId) || string.IsNullOrWhiteSpace(tuhao) || string.IsNullOrWhiteSpace(xianghao)) return;
- // 先查表索引,已有则跳过
- string existing = GetYuanjianTableByIndex(projectId, tuhao, xianghao);
- if (!string.IsNullOrEmpty(existing)) return;
- string dbPath = GetQuoteDbPath(projectId);
- if (!File.Exists(dbPath)) return;
- // 用唯一ID做表名
- string realTbl = GetNextTableId(projectId, "元件");
- try
- {
- using (var conn = new System.Data.SQLite.SQLiteConnection(GetConnString(dbPath)))
- {
- conn.Open();
- string sql =
- "CREATE TABLE \"" + realTbl + "\" (" +
- " 序号 TEXT, 元件名称 TEXT, 规格 TEXT, 单位 TEXT, 数量 TEXT," +
- " 表价 REAL, 采购单价 REAL, 采购系数 TEXT, 采购价 REAL," +
- " 报出单价 REAL, 报出系数 TEXT, 报出价 REAL," +
- " 图纸规格 TEXT, 品牌 TEXT, 系列 TEXT, 类型 TEXT, 备注 TEXT," +
- " 框Handle TEXT, 文本Handle TEXT" +
- ");";
- using (var cmd = new System.Data.SQLite.SQLiteCommand(sql, conn)) cmd.ExecuteNonQuery();
- }
- // ★ 注册到表索引(类型=元件,图号,箱号) — 后续 GetYuanjianTableByIndex 才能查到
- AddTableIndex(projectId, "元件", tuhao, xianghao, realTbl);
- }
- catch { }
- }
-
- // ---------- 表索引(用唯一ID做表名,索引表记录 图号/箱号 → 真实表名)----------
-
- private string GetNextTableId(string projectId, string prefix)
- {
- if (string.IsNullOrWhiteSpace(projectId)) return prefix + "_1";
- string dbPath = GetQuoteDbPath(projectId);
- if (!File.Exists(dbPath)) return prefix + "_1";
- try
- {
- using (var conn = new System.Data.SQLite.SQLiteConnection(GetConnString(dbPath)))
- {
- conn.Open();
- string sql = "SELECT 实际表名 FROM 表索引 WHERE 实际表名 LIKE @p;";
- int maxN = 0;
- using (var cmd = new System.Data.SQLite.SQLiteCommand(sql, conn))
- {
- cmd.Parameters.AddWithValue("@p", prefix + "_%");
- using (var reader = cmd.ExecuteReader())
- {
- while (reader.Read())
- {
- string t = reader.IsDBNull(0) ? "" : reader.GetString(0);
- string numPart = t.StartsWith(prefix + "_") ? t.Substring(prefix.Length + 1) : "";
- int n;
- if (int.TryParse(numPart, out n) && n > maxN) maxN = n;
- }
- }
- }
- return prefix + "_" + (maxN + 1).ToString();
- }
- }
- catch { return prefix + "_1"; }
- }
-
- private void AddTableIndex(string projectId, string type, string tuhao, string xianghao, string realTableName)
- {
- if (string.IsNullOrWhiteSpace(projectId) || string.IsNullOrWhiteSpace(realTableName)) return;
- string dbPath = GetQuoteDbPath(projectId);
- if (!File.Exists(dbPath)) return;
- try
- {
- using (var conn = new System.Data.SQLite.SQLiteConnection(GetConnString(dbPath)))
- {
- conn.Open();
- string sql = "INSERT INTO 表索引 (类型, 图号, 箱号, 实际表名) VALUES (@t, @th, @xh, @real);";
- using (var cmd = new System.Data.SQLite.SQLiteCommand(sql, conn))
- {
- cmd.Parameters.AddWithValue("@t", type);
- cmd.Parameters.AddWithValue("@th", tuhao ?? "");
- cmd.Parameters.AddWithValue("@xh", xianghao ?? "");
- cmd.Parameters.AddWithValue("@real", realTableName);
- cmd.ExecuteNonQuery();
- }
- }
- }
- catch { }
- }
-
- private void RemoveTableIndex(string projectId, string type, string tuhao, string xianghao)
- {
- if (string.IsNullOrWhiteSpace(projectId)) return;
- string dbPath = GetQuoteDbPath(projectId);
- if (!File.Exists(dbPath)) return;
- try
- {
- using (var conn = new System.Data.SQLite.SQLiteConnection(GetConnString(dbPath)))
- {
- conn.Open();
- string sql = "DELETE FROM 表索引 WHERE 类型=@t AND 图号=@th AND 箱号=@xh;";
- using (var cmd = new System.Data.SQLite.SQLiteCommand(sql, conn))
- {
- cmd.Parameters.AddWithValue("@t", type);
- cmd.Parameters.AddWithValue("@th", tuhao ?? "");
- cmd.Parameters.AddWithValue("@xh", xianghao ?? "");
- cmd.ExecuteNonQuery();
- }
- }
- }
- catch { }
- }
-
- private string GetXianghaoTableByIndex(string projectId, string tuhao)
- {
- return LookupTableByIndex(projectId, "箱号", tuhao, "");
- }
-
- private string GetYuanjianTableByIndex(string projectId, string tuhao, string xianghao)
- {
- return LookupTableByIndex(projectId, "元件", tuhao, xianghao);
- }
-
- private string LookupTableByIndex(string projectId, string type, string tuhao, string xianghao)
- {
- if (string.IsNullOrWhiteSpace(projectId) || string.IsNullOrWhiteSpace(tuhao)) return "";
- string dbPath = GetQuoteDbPath(projectId);
- if (!File.Exists(dbPath)) return "";
- try
- {
- using (var conn = new System.Data.SQLite.SQLiteConnection(GetConnString(dbPath)))
- {
- conn.Open();
- return LookupTableByIndex(type, tuhao, xianghao, conn);
- }
- }
- catch { return ""; }
- }
-
- private string LookupTableByIndex(string type, string tuhao, string xianghao, System.Data.SQLite.SQLiteConnection conn)
- {
- if (conn == null || string.IsNullOrWhiteSpace(tuhao)) return "";
- try
- {
- string sql = "SELECT 实际表名 FROM 表索引 WHERE 类型=@t AND 图号=@th AND 箱号=@xh LIMIT 1;";
- using (var cmd = new System.Data.SQLite.SQLiteCommand(sql, conn))
- {
- cmd.Parameters.AddWithValue("@t", type);
- cmd.Parameters.AddWithValue("@th", tuhao);
- cmd.Parameters.AddWithValue("@xh", xianghao ?? "");
- object o = cmd.ExecuteScalar();
- return (o == null || o == DBNull.Value) ? "" : o.ToString();
- }
- }
- catch { return ""; }
- }
-
- private string GetXianghaoTableByIndex(string tuhao, System.Data.SQLite.SQLiteConnection conn)
- {
- return LookupTableByIndex("箱号", tuhao, "", conn);
- }
-
- private string GetYuanjianTableByIndex(string tuhao, string xianghao, System.Data.SQLite.SQLiteConnection conn)
- {
- return LookupTableByIndex("元件", tuhao, xianghao, conn);
- }
-
- private void CreateXianghaoTable(string projectId, string realTableName)
- {
- string dbPath = GetQuoteDbPath(projectId);
- if (!File.Exists(dbPath)) return;
- try
- {
- using (var conn = new System.Data.SQLite.SQLiteConnection(GetConnString(dbPath)))
- {
- conn.Open();
- string sql =
- "CREATE TABLE \"" + realTableName + "\" (" +
- " 序号 TEXT, 箱号 TEXT, 箱名 TEXT, 型号 TEXT, 规格 TEXT, 单位 TEXT, 数量 TEXT," +
- " 单台成本 REAL, 成本价 REAL, 单台报出 REAL, 报出价 REAL," +
- " 利润 REAL, 利润率 REAL, 毛利率 REAL, 箱柜类型 TEXT, 备注 TEXT, 图纸 TEXT" +
- ");";
- using (var cmd = new System.Data.SQLite.SQLiteCommand(sql, conn)) cmd.ExecuteNonQuery();
- }
- }
- catch { }
- }
-
- private void RenumberTable(string projectId, string quotedTableName)
- {
- if (string.IsNullOrWhiteSpace(projectId) || string.IsNullOrWhiteSpace(quotedTableName)) return;
- string dbPath = GetQuoteDbPath(projectId);
- if (!File.Exists(dbPath)) return;
- try
- {
- using (var conn = new System.Data.SQLite.SQLiteConnection(GetConnString(dbPath)))
- {
- conn.Open();
- string selSql = "SELECT rowid FROM " + quotedTableName + " ORDER BY rowid;";
- var rowids = new List();
- using (var sel = new System.Data.SQLite.SQLiteCommand(selSql, conn))
- using (var reader = sel.ExecuteReader())
- {
- while (reader.Read()) rowids.Add(reader.GetInt64(0));
- }
- int newSeq = 1;
- foreach (long rowid in rowids)
- {
- string updSql = "UPDATE " + quotedTableName + " SET 序号 = @seq WHERE rowid = @rid;";
- using (var upd = new System.Data.SQLite.SQLiteCommand(updSql, conn))
- {
- upd.Parameters.AddWithValue("@seq", newSeq.ToString());
- upd.Parameters.AddWithValue("@rid", rowid);
- upd.ExecuteNonQuery();
- }
- newSeq++;
- }
- }
- }
- catch { }
- }
-
- // ============================================================
- // 报价库「项目信息」表读写
- // ============================================================
-
- private void InsertProjectInfoToQuoteDb(string projectId, Dictionary values)
- {
- if (string.IsNullOrWhiteSpace(projectId) || values == null) return;
- EnsureQuoteDbExists(projectId);
- string dbPath = GetQuoteDbPath(projectId);
- using (var conn = new System.Data.SQLite.SQLiteConnection(GetConnString(dbPath)))
- {
- conn.Open();
- string delSql = "DELETE FROM " + ProjectInfoTableName + " WHERE 项目编号 = @id;";
- using (var del = new System.Data.SQLite.SQLiteCommand(delSql, conn))
- {
- del.Parameters.AddWithValue("@id", projectId);
- del.ExecuteNonQuery();
- }
- var cols = new List();
- var paras = new List();
- foreach (string c in ProjectInfoColumns)
- {
- if (values.ContainsKey(c)) { cols.Add(c); paras.Add("@" + c); }
- }
- if (cols.Count == 0) return;
- string sql = "INSERT INTO " + ProjectInfoTableName + " (" +
- string.Join(", ", cols.ToArray()) + ") VALUES (" +
- string.Join(", ", paras.ToArray()) + ");";
- using (var cmd = new System.Data.SQLite.SQLiteCommand(sql, conn))
- {
- foreach (string c in cols) cmd.Parameters.AddWithValue("@" + c, values[c] ?? "");
- cmd.ExecuteNonQuery();
- }
- }
- }
-
- private Dictionary GetProjectInfoFromQuoteDb(string projectId)
- {
- var info = new Dictionary();
- if (string.IsNullOrWhiteSpace(projectId)) return info;
- string dbPath = GetQuoteDbPath(projectId);
- if (!File.Exists(dbPath)) return info;
- try
- {
- using (var conn = new System.Data.SQLite.SQLiteConnection(GetConnString(dbPath)))
- {
- conn.Open();
- string chkSql = "SELECT name FROM sqlite_master WHERE type='table' AND name=@n;";
- using (var chk = new System.Data.SQLite.SQLiteCommand(chkSql, conn))
- {
- chk.Parameters.AddWithValue("@n", ProjectInfoTableName);
- if (chk.ExecuteScalar() == null) return info;
- }
- string sql = "SELECT * FROM " + ProjectInfoTableName + " WHERE 项目编号 = @id LIMIT 1;";
- using (var cmd = new System.Data.SQLite.SQLiteCommand(sql, conn))
- {
- cmd.Parameters.AddWithValue("@id", projectId);
- using (var reader = cmd.ExecuteReader())
- {
- if (reader.Read())
- {
- var existCols = new HashSet(StringComparer.OrdinalIgnoreCase);
- for (int i = 0; i < reader.FieldCount; i++) existCols.Add(reader.GetName(i));
- foreach (string c in ProjectInfoColumns)
- {
- if (!existCols.Contains(c)) continue;
- object v = reader[c];
- info[c] = (v == null || v == DBNull.Value) ? "" : v.ToString();
- }
- }
- }
- }
- }
- }
- catch { }
- return info;
- }
-
- private void LoadPriceFormatConfig(string projectId)
- {
- _单台小数位文本 = "保留2位小数";
- _单台取整方式 = "不取整";
- _项目小数位文本 = "保留2位小数";
- _项目取整方式 = "不取整";
- try
- {
- var info = GetProjectInfoFromQuoteDb(projectId);
- if (info == null || info.Count == 0) return;
- string v;
- if (info.TryGetValue("单台小数位", out v) && !string.IsNullOrWhiteSpace(v)) _单台小数位文本 = v;
- if (info.TryGetValue("单台取整方式", out v) && !string.IsNullOrWhiteSpace(v)) _单台取整方式 = v;
- if (info.TryGetValue("项目小数位", out v) && !string.IsNullOrWhiteSpace(v)) _项目小数位文本 = v;
- if (info.TryGetValue("项目取整方式", out v) && !string.IsNullOrWhiteSpace(v)) _项目取整方式 = v;
- }
- catch { }
- }
-
- // ============================================================
- // 项目库 CRUD
- // ============================================================
-
- private int InsertProjectToDatabase(Dictionary values)
- {
- if (values == null || values.Count == 0) return 0;
- string dbPath = GetDbFullPath(ProjectsDbPath);
- if (!File.Exists(dbPath))
- {
- EnsureProjectDbExists(dbPath);
- if (!File.Exists(dbPath))
- throw new FileNotFoundException("无法创建项目数据库文件: " + dbPath, dbPath);
- }
- int affected;
- using (var conn = new System.Data.SQLite.SQLiteConnection(GetConnString(dbPath)))
- {
- conn.Open();
- var allowed = new HashSet(GetProjectTableColumns(conn), StringComparer.OrdinalIgnoreCase);
- var colNames = new List();
- var paramNames = new List();
- foreach (string col in values.Keys)
- {
- if (allowed.Contains(col)) { colNames.Add(col); paramNames.Add("@" + col); }
- }
- if (colNames.Count == 0) { affected = 0; }
- else
- {
- string sql = "INSERT INTO " + ProjectsTableName + " (" +
- string.Join(", ", colNames.ToArray()) + ") VALUES (" +
- string.Join(", ", paramNames.ToArray()) + ");";
- using (var cmd = new System.Data.SQLite.SQLiteCommand(sql, conn))
- {
- foreach (string col in colNames) cmd.Parameters.AddWithValue("@" + col, values[col]);
- affected = cmd.ExecuteNonQuery();
- }
- }
- }
- string projectId;
- values.TryGetValue("项目编号", out projectId);
- if (!string.IsNullOrWhiteSpace(projectId)) InsertProjectInfoToQuoteDb(projectId, values);
- return affected;
- }
-
- private int DeleteProjectFromDatabase(string projectId)
- {
- if (string.IsNullOrWhiteSpace(projectId)) return 0;
- string dbPath = GetDbFullPath(ProjectsDbPath);
- if (!File.Exists(dbPath)) throw new FileNotFoundException("找不到项目数据库文件: " + dbPath, dbPath);
- using (var conn = new System.Data.SQLite.SQLiteConnection(GetConnString(dbPath)))
- {
- conn.Open();
- string sql = "DELETE FROM " + ProjectsTableName + " WHERE 项目编号 = @id;";
- using (var cmd = new System.Data.SQLite.SQLiteCommand(sql, conn))
- {
- cmd.Parameters.AddWithValue("@id", projectId);
- return cmd.ExecuteNonQuery();
- }
- }
- }
-
- private void CascadeDeleteByProject(string projectId)
- {
- if (string.IsNullOrWhiteSpace(projectId)) return;
- string dbPath = GetQuoteDbPath(projectId);
- if (!File.Exists(dbPath)) return;
- try { File.Delete(dbPath); }
- catch { }
- }
-
- private List> ReadAllProjectsFromDatabase()
- {
- var list = new List>();
- try
- {
- string dbPath = GetDbFullPath(ProjectsDbPath);
- if (!File.Exists(dbPath)) return list;
- using (var conn = new System.Data.SQLite.SQLiteConnection(GetConnString(dbPath)))
- {
- conn.Open();
- using (var cmd = new System.Data.SQLite.SQLiteCommand(
- "SELECT * FROM " + ProjectsTableName + " ORDER BY rowid;", conn))
- using (var rd = cmd.ExecuteReader())
- {
- while (rd.Read())
- {
- var dict = new Dictionary(StringComparer.Ordinal);
- for (int i = 0; i < rd.FieldCount; i++)
- {
- object v = rd.GetValue(i);
- if (v == null || v == DBNull.Value) v = "";
- dict[rd.GetName(i)] = v;
- }
- list.Add(dict);
- }
- }
- }
- }
- catch { }
- return list;
- }
-
- private Dictionary ReadProjectMetaData(string pid)
- {
- var dict = new Dictionary(StringComparer.Ordinal);
- try
- {
- string dbPath = GetDbFullPath(ProjectsDbPath);
- using (var conn = new System.Data.SQLite.SQLiteConnection(GetConnString(dbPath)))
- {
- conn.Open();
- using (var cmd = new System.Data.SQLite.SQLiteCommand(
- "SELECT * FROM " + ProjectsTableName + " WHERE 项目编号 = @p LIMIT 1;", conn))
- {
- cmd.Parameters.AddWithValue("@p", pid);
- using (var rd = cmd.ExecuteReader())
- {
- if (!rd.Read()) return null;
- for (int i = 0; i < rd.FieldCount; i++)
- {
- object v = rd.GetValue(i);
- if (v == null || v == DBNull.Value) v = "";
- dict[rd.GetName(i)] = v;
- }
- }
- }
- }
- }
- catch { return null; }
- return dict;
- }
-
- // ============================================================
- // 图号/箱号/元件 CRUD
- // ============================================================
-
- private string GetNextSeqNumber(string tableName, string nameCol, string projectId, string tuhao = null)
- {
- if (string.IsNullOrWhiteSpace(projectId)) return "1";
- string dbPath = GetQuoteDbPath(projectId);
- if (!File.Exists(dbPath)) return "1";
- try
- {
- using (var conn = new System.Data.SQLite.SQLiteConnection(GetConnString(dbPath)))
- {
- conn.Open();
- string sql;
- if (tuhao == null)
- {
- sql = "SELECT COUNT(*) FROM " + tableName + ";";
- using (var cmd = new System.Data.SQLite.SQLiteCommand(sql, conn))
- {
- int n = 0;
- object o = cmd.ExecuteScalar();
- if (o != null && o != DBNull.Value) n = Convert.ToInt32(o);
- return (n + 1).ToString();
- }
- }
- else
- {
- sql = "SELECT COUNT(*) FROM " + tableName + " WHERE 图号 = @th;";
- using (var cmd = new System.Data.SQLite.SQLiteCommand(sql, conn))
- {
- cmd.Parameters.AddWithValue("@th", tuhao);
- int n = 0;
- object o = cmd.ExecuteScalar();
- if (o != null && o != DBNull.Value) n = Convert.ToInt32(o);
- return (n + 1).ToString();
- }
- }
- }
- }
- catch { return "1"; }
- }
-
- // ============================================================
- // 扒图号/扒箱号/扒元件:CAD 文本选择交互
- // ============================================================
-
- ///
- /// 向 CAD 发送扒数据命令,触发框选交互。
- /// ★ 关键:先发 ESC 取消当前可能正在进行的扒图循环,再发新命令
- /// 这样用户从"扒图号"循环里点"扒箱号"也能立即切换
- ///
- private void SendCadPaCommand(string cmd)
- {
- try
- {
- var doc = Autodesk.AutoCAD.ApplicationServices.Application.DocumentManager.MdiActiveDocument;
- if (doc == null)
- {
- MessageBox.Show(this, "未找到 CAD 文档,请在 CAD 中操作。",
- "扒数据", MessageBoxButtons.OK, MessageBoxIcon.Warning);
- return;
- }
-
- // ★ 先发两个 ESC 取消当前可能正在进行的扒图循环(等价于按两次 ESC 键)
- // 不加任何尾随字符(空格会被 CAD 当作重复命令,可能触发帮助界面)
- doc.SendStringToExecute("\x03\x03", false, false, false);
- // 然后发送新命令(末尾加空格模拟回车)
- doc.SendStringToExecute(cmd + " ", false, false, false);
- }
- catch (Exception ex)
- {
- MessageBox.Show(this, "发送CAD命令失败:\n" + ex.Message,
- "扒数据", MessageBoxButtons.OK, MessageBoxIcon.Error);
- }
- }
-
- ///
- /// CAD 选中文本后的回调:把选中的文本批量插入到对应表格。
- /// 由 CadPlugin.ExecutePaCommand 在 UI 线程调用。
- ///
- public void OnPaTextsPicked(PaMode mode, List results)
- {
- if (results == null || results.Count == 0) return;
- if (string.IsNullOrWhiteSpace(_currentProjectId))
- {
- MessageBox.Show(this, "请先在项目表中双击选择一个项目,再扒数据。",
- "扒数据", MessageBoxButtons.OK, MessageBoxIcon.Information);
- return;
- }
-
- switch (mode)
- {
- case PaMode.Tuhao:
- PaTuhaoInsert(results);
- break;
- case PaMode.Xianghao:
- PaXianghaoInsert(results);
- break;
- case PaMode.Yuanjian:
- PaYuanjianInsert(results);
- break;
- }
- }
-
- /// 扒图号:把选中文本作为图号批量插入到当前项目,同时保存框Handle。
- /// ★ 重复扒图:如果图号已存在,删除旧框和数据库行(不新增)。
- private void PaTuhaoInsert(List results)
- {
- string lastInsertedTuhao = null; // ★ 记录最后插入的图号,用于自动选中联动
- try
- {
- _isReloading = true;
- // 先 AcceptChanges,避免 SaveAllQuoteTablesIfDirty 把旧内存表回写
- if (_tuhaoTable != null) _tuhaoTable.AcceptChanges();
- if (_xianghaoTable != null) _xianghaoTable.AcceptChanges();
- if (_yuanjianTable != null) _yuanjianTable.AcceptChanges();
-
- // ★ 新增框架Handle列表: PaTextSelector刚画的框,如果是重复,需要删除这些新框
- var newFramesToErase = new List();
- int deletedCount = 0;
- int inserted = 0;
-
- foreach (var r in results)
- {
- if (string.IsNullOrWhiteSpace(r.Text)) continue;
- string clean = r.Text.Trim();
- // ★ 按"同一个文本实体"判断重复:查该文本实体Handle是否已入库。
- // 不同位置的相同内容文本 Handle 不同 → 不算重复,正常插入。
- string oldFrame = GetTuhaoFrameHandleByTextHandle(_currentProjectId, clean, r.TextHandle);
- if (!string.IsNullOrEmpty(oldFrame))
- {
- // ★ 重复(同一个文本再次选中):删除旧框+数据库行+新框
- DeleteTuhao(_currentProjectId, clean);
- DeleteFrameByHandle(oldFrame);
- if (!string.IsNullOrWhiteSpace(r.FrameHandle)) newFramesToErase.Add(r.FrameHandle);
- deletedCount++;
- }
- else
- {
- InsertTuhao(_currentProjectId, clean, r.FrameHandle, r.TextHandle);
- lastInsertedTuhao = clean; // ★ 记录最后插入的图号
- inserted++;
- }
- }
-
- // ★ 删除重复图号对应的新框(PaTextSelector已经画出来了,但不需要保留)——批量一次删
- DeleteFramesByHandles(newFramesToErase);
-
- _xianghaoCache.Clear();
- _yuanjianCache.Clear();
-
- // 直接在数据库层面重算(不经过内存回写)
- try { RecalcAllFromDatabase(_currentProjectId); } catch { }
- ReloadTuhaoByProject(_currentProjectId);
-
- // 保存
- try
- {
- if (this.advancedDataGridView9 != null) this.advancedDataGridView9.EndEdit();
- if (_tuhaoTable != null)
- {
- SaveTableToDatabase(_tuhaoTable, _currentProjectId, TuhaoTableName, null, null, true);
- _tuhaoTable.AcceptChanges();
- }
- }
- catch { }
- SaveCurrentDwg();
-
- if (deletedCount > 0 && inserted == 0)
- {
- Log("[PaTuhaoInsert] 删除了 " + deletedCount + " 条重复图号");
- }
- }
- catch (Exception ex)
- {
- MessageBox.Show(this, "扒图号失败:\n" + ex.Message,
- "扒图号", MessageBoxButtons.OK, MessageBoxIcon.Error);
- }
- finally
- {
- _isReloading = false;
- // ★ 扒完图号后自动选中刚插入的图号行,联动刷新箱号表
- if (!string.IsNullOrWhiteSpace(lastInsertedTuhao))
- {
- _currentTuhao = lastInsertedTuhao;
- SelectRowByValue(this.advancedDataGridView9, "图号", lastInsertedTuhao);
- // 手动联动刷新箱号表(SelectRowByValue 在 _isReloading 下不触发 SelectionChanged)
- ReloadXianghaoByTuhao(_currentProjectId, lastInsertedTuhao);
- }
- }
- }
-
- /// 扒箱号:把选中文本作为箱号批量插入到当前图号,同时保存框Handle。
- /// ★ 重复扒图:如果箱号已存在,删除旧框和数据库行(不新增)。
- private void PaXianghaoInsert(List results)
- {
- string lastInsertedXianghao = null; // ★ 记录最后插入的箱号,用于自动选中联动
- if (string.IsNullOrWhiteSpace(_currentTuhao))
- {
- MessageBox.Show(this, "请先在图号表中选择一个图号,再扒箱号。",
- "扒箱号", MessageBoxButtons.OK, MessageBoxIcon.Information);
- return;
- }
- try
- {
- _isReloading = true;
- // 先 AcceptChanges,避免 SaveAllQuoteTablesIfDirty 把旧内存表回写
- if (_tuhaoTable != null) _tuhaoTable.AcceptChanges();
- if (_xianghaoTable != null) _xianghaoTable.AcceptChanges();
- if (_yuanjianTable != null) _yuanjianTable.AcceptChanges();
-
- var newFramesToErase = new List();
- int deletedCount = 0;
- int inserted = 0;
-
- foreach (var r in results)
- {
- if (string.IsNullOrWhiteSpace(r.Text)) continue;
- string clean = r.Text.Trim();
- // ★ 按"同一个文本实体"判断重复(不同位置的相同内容文本不算重复)
- string oldFrame = GetXianghaoFrameHandleByTextHandle(_currentProjectId, _currentTuhao, clean, r.TextHandle);
- if (!string.IsNullOrEmpty(oldFrame))
- {
- // ★ 重复(同一个文本再次选中):删除旧框+数据库行+新框
- DeleteXianghao(_currentProjectId, _currentTuhao, clean);
- DeleteFrameByHandle(oldFrame);
- if (!string.IsNullOrWhiteSpace(r.FrameHandle)) newFramesToErase.Add(r.FrameHandle);
- deletedCount++;
- }
- else
- {
- InsertXianghao(_currentProjectId, _currentTuhao, clean, r.FrameHandle, r.TextHandle);
- lastInsertedXianghao = clean; // ★ 记录最后插入的箱号
- inserted++;
- }
- }
-
- DeleteFramesByHandles(newFramesToErase);
-
- _xianghaoCache.Clear();
- _yuanjianCache.Clear();
-
- try { RecalcAllFromDatabase(_currentProjectId); } catch { }
- ReloadXianghaoByTuhao(_currentProjectId, _currentTuhao);
-
- try
- {
- if (this.advancedDataGridView4 != null) this.advancedDataGridView4.EndEdit();
- if (_xianghaoTable != null && !string.IsNullOrWhiteSpace(_xianghaoTable.TableName))
- {
- SaveTableToDatabase(_xianghaoTable, _currentProjectId,
- "\"" + _xianghaoTable.TableName + "\"", null, null, true);
- _xianghaoTable.AcceptChanges();
- }
- }
- catch { }
- SaveCurrentDwg();
-
- if (deletedCount > 0 && inserted == 0)
- {
- Log("[PaXianghaoInsert] 删除了 " + deletedCount + " 条重复箱号");
- }
- }
- catch (Exception ex)
- {
- MessageBox.Show(this, "扒箱号失败:\n" + ex.Message,
- "扒箱号", MessageBoxButtons.OK, MessageBoxIcon.Error);
- }
- finally
- {
- _isReloading = false;
- // ★ 扒完箱号后自动选中刚插入的箱号行,联动刷新元件表
- if (!string.IsNullOrWhiteSpace(lastInsertedXianghao))
- {
- _currentXianghao = lastInsertedXianghao;
- SelectRowByValue(this.advancedDataGridView4, "箱号", lastInsertedXianghao);
- // 手动联动刷新元件表(SelectRowByValue 在 _isReloading 下不触发 SelectionChanged)
- ReloadYuanjianByXianghao(_currentProjectId, _currentTuhao, lastInsertedXianghao);
- }
- }
- }
-
- /// 扒元件:把选中文本作为【规格】批量插入到当前箱号(写到规格列),同时保存框Handle。
- /// ★ 关键:在单个事务里按 results 顺序依次插入,保证序号连续。
- /// ★ 重复扒图:如果规格已存在,删除旧框+数据库行(不新增)。
- private void PaYuanjianInsert(List results)
- {
- if (string.IsNullOrWhiteSpace(_currentXianghao))
- {
- MessageBox.Show(this, "请先在箱号表中选择一个箱号,再扒元件。",
- "扒元件", MessageBoxButtons.OK, MessageBoxIcon.Information);
- return;
- }
- try
- {
- _isReloading = true;
- // ★ 关键:先 AcceptChanges 清掉内存表的改动标记,避免 SaveAllQuoteTablesIfDirty
- // 用旧的内存数据覆盖数据库
- if (_yuanjianTable != null) _yuanjianTable.AcceptChanges();
- if (_xianghaoTable != null) _xianghaoTable.AcceptChanges();
- if (_tuhaoTable != null) _tuhaoTable.AcceptChanges();
- EnsureQuoteDbExists(_currentProjectId);
- string dbPath = GetQuoteDbPath(_currentProjectId);
- EnsureYuanjianTableExists(_currentProjectId, _currentTuhao, _currentXianghao);
- string tblName = GetYuanjianTableByIndex(_currentProjectId, _currentTuhao, _currentXianghao);
- if (string.IsNullOrEmpty(tblName))
- {
- MessageBox.Show("元件表创建失败(表索引未注册),图号=" + _currentTuhao + " 箱号=" + _currentXianghao);
- return;
- }
-
- // ★ 确保旧元件表也有"框Handle"/"文本Handle"列
- using (var connEns = new System.Data.SQLite.SQLiteConnection(GetConnString(dbPath)))
- {
- connEns.Open();
- EnsureColumns(connEns, "\"" + tblName + "\"", new[] { "框Handle", "文本Handle" });
- }
-
- // 过滤掉空文本,保留原始顺序(同时保留框Handle+文本Handle)
- var cleanResults = new List();
- foreach (var r in results)
- {
- if (!string.IsNullOrWhiteSpace(r.Text))
- {
- cleanResults.Add(new PaTextResult
- {
- Text = r.Text.Trim(),
- FrameHandle = r.FrameHandle ?? "",
- TextHandle = r.TextHandle ?? ""
- });
- }
- }
- if (cleanResults.Count == 0) return;
-
- // ★ 判断是否是逆向合并模式(所有result共用同一个框Handle且数量>1)
- bool isMergeMode = cleanResults.Count > 1;
- string mergeHandle = cleanResults[0].FrameHandle;
- if (isMergeMode)
- {
- foreach (var r in cleanResults)
- {
- if (r.FrameHandle != mergeHandle) { isMergeMode = false; break; }
- }
- }
-
- // ★ 新增:重复检测辅助集合
- // newFramesToErase: PaTextSelector刚画的框,如果是重复项,这些框要删除
- var newFramesToErase = new List();
- // oldFrameHandlesToDelete: 数据库里匹配到的旧框,要删除
- var oldFrameHandlesToDelete = new List();
- // toInsert: 不重复、需要插入的项
- var toInsert = new List();
- // ★ 本地匹配失败的规格(收集后交给 DeepSeek AI 兜底识别)
- var aiFailedSpecs = new List();
- int deletedCount = 0;
-
- using (var conn = new System.Data.SQLite.SQLiteConnection(GetConnString(dbPath)))
- {
- conn.Open();
-
- if (isMergeMode)
- {
- // ★ 合并模式:所有文本按图纸阅读顺序拼成一个规格
- // (PaTextSelector 已按列分组、列内从上到下排好序,保持此顺序
- // 与库中自然书写顺序一致,如 HD13BX-1500/31 + 1500A)
- // 文本Handle串与文本一一对应拼接(同一批文本Handle集合相同即重复)。
- var orderedTexts = new List();
- var orderedHandles = new List();
- foreach (var r in cleanResults)
- {
- orderedTexts.Add(r.Text);
- orderedHandles.Add(r.TextHandle ?? "");
- }
- string mergedSpec = string.Join("", orderedTexts.ToArray());
- // ★ Handle串排序后拼接(Handle集合相同即同一批文本,与顺序无关)
- var sortedHandles = new List(orderedHandles);
- sortedHandles.Sort(StringComparer.Ordinal);
- string mergedTextHandle = string.Join("|", sortedHandles.ToArray());
-
- // ★ 1. 查"同一批文本实体"的合并规格是否已存在
- // (文本Handle拼接串相同 = 同一批文本再次被选中,才是真重复)
- var matchFrames = new List();
- using (var selCmd = new System.Data.SQLite.SQLiteCommand(
- "SELECT 框Handle FROM \"" + tblName + "\" WHERE 规格=@spec AND 文本Handle=@th;", conn))
- {
- selCmd.Parameters.AddWithValue("@spec", mergedSpec);
- selCmd.Parameters.AddWithValue("@th", mergedTextHandle);
- using (var reader = selCmd.ExecuteReader())
- {
- while (reader.Read())
- {
- object v = reader["框Handle"];
- if (v != null && v != DBNull.Value)
- {
- string s = v.ToString();
- if (!string.IsNullOrWhiteSpace(s) && !matchFrames.Contains(s))
- matchFrames.Add(s);
- }
- }
- }
- }
-
- // ★ 2. 再查:本批每个文本实体是否已作为"独立元件"入库(按文本Handle精确匹配)
- var perTextFrames = new List();
- var perTextSpecs = new List();
- foreach (var r in cleanResults)
- {
- List fhs = GetYuanjianFrameHandlesByTextHandle(
- _currentProjectId, _currentTuhao, _currentXianghao, r.Text, r.TextHandle);
- foreach (string fh in fhs)
- {
- if (!perTextFrames.Contains(fh)) perTextFrames.Add(fh);
- }
- if (fhs.Count > 0 && !perTextSpecs.Contains(r.Text)) perTextSpecs.Add(r.Text);
- }
-
- // ★ 只要匹配到(1.同一批文本的合并规格 或 2.同一文本实体的独立元件) → 执行删除
- bool hitMergeMatch = matchFrames.Count > 0;
- bool hitPerTextMatch = perTextSpecs.Count > 0;
-
- if (hitMergeMatch || hitPerTextMatch)
- {
- // ★ 删除:同一批文本的合并规格匹配的行(文本Handle+规格双条件)
- if (hitMergeMatch)
- {
- using (var delCmd = new System.Data.SQLite.SQLiteCommand(
- "DELETE FROM \"" + tblName + "\" WHERE 规格=@spec AND 文本Handle=@th;", conn))
- {
- delCmd.Parameters.AddWithValue("@spec", mergedSpec);
- delCmd.Parameters.AddWithValue("@th", mergedTextHandle);
- int aff = delCmd.ExecuteNonQuery();
- deletedCount += aff;
- }
- foreach (string fh in matchFrames)
- if (!oldFrameHandlesToDelete.Contains(fh)) oldFrameHandlesToDelete.Add(fh);
- }
- // ★ 删除:同一文本实体的独立元件行(按文本Handle删除)
- if (hitPerTextMatch)
- {
- foreach (var r in cleanResults)
- {
- if (string.IsNullOrWhiteSpace(r.TextHandle)) continue;
- using (var selCmd2 = new System.Data.SQLite.SQLiteCommand(
- "SELECT COUNT(*) FROM \"" + tblName + "\" WHERE 文本Handle=@th;", conn))
- {
- selCmd2.Parameters.AddWithValue("@th", r.TextHandle);
- object cnt = selCmd2.ExecuteScalar();
- int n = (cnt != null && cnt != DBNull.Value) ? Convert.ToInt32(cnt) : 0;
- if (n > 0)
- {
- using (var delCmd = new System.Data.SQLite.SQLiteCommand(
- "DELETE FROM \"" + tblName + "\" WHERE 文本Handle=@th;", conn))
- {
- delCmd.Parameters.AddWithValue("@th", r.TextHandle);
- int aff = delCmd.ExecuteNonQuery();
- deletedCount += aff;
- }
- }
- }
- }
- foreach (string fh in perTextFrames)
- if (!oldFrameHandlesToDelete.Contains(fh)) oldFrameHandlesToDelete.Add(fh);
- }
- // ★ 删除 PaTextSelector 刚画的新合并框
- if (!string.IsNullOrWhiteSpace(mergeHandle))
- if (!newFramesToErase.Contains(mergeHandle))
- newFramesToErase.Add(mergeHandle);
- Log("[PaYuanjianInsert] 合并模式:删除重复项 mergedMatch=" + hitMergeMatch
- + " perTextMatch=" + hitPerTextMatch + ", 删除行数=" + deletedCount
- + ", 删除旧框数=" + oldFrameHandlesToDelete.Count);
- }
- else
- {
- // ★ 没有匹配:新增一行(合并规格)
- toInsert.Add(new PaTextResult
- {
- Text = mergedSpec,
- FrameHandle = mergeHandle,
- TextHandle = mergedTextHandle
- });
- }
- }
- else
- {
- // ★ 正向模式:每个文本一条记录,按"同一个文本实体"判断是否重复
- foreach (var r in cleanResults)
- {
- // ★ 按文本Handle精确匹配:同一文本实体才删除,
- // 不同位置的相同内容文本(Handle不同)正常插入
- List matchFrames = GetYuanjianFrameHandlesByTextHandle(
- _currentProjectId, _currentTuhao, _currentXianghao, r.Text, r.TextHandle);
- if (matchFrames.Count > 0)
- {
- // 重复:按文本Handle删除数据库行 + 旧框 + 新画的框
- using (var delCmd = new System.Data.SQLite.SQLiteCommand(
- "DELETE FROM \"" + tblName + "\" WHERE 文本Handle=@th;", conn))
- {
- delCmd.Parameters.AddWithValue("@th", r.TextHandle);
- int aff = delCmd.ExecuteNonQuery();
- deletedCount += aff;
- }
- foreach (string fh in matchFrames) oldFrameHandlesToDelete.Add(fh);
- if (!string.IsNullOrWhiteSpace(r.FrameHandle)) newFramesToErase.Add(r.FrameHandle);
- }
- else
- {
- toInsert.Add(r);
- }
- }
- }
-
- // ★ 写入需要新增的项
- if (toInsert.Count > 0)
- {
- // 先取当前最大序号(用MAX函数)
- int startSeq = 0;
- using (var cntCmd = new System.Data.SQLite.SQLiteCommand(
- "SELECT COALESCE(MAX(CAST(序号 AS INTEGER)), 0) FROM \"" + tblName + "\";", conn))
- {
- object o = cntCmd.ExecuteScalar();
- if (o != null && o != DBNull.Value) startSeq = Convert.ToInt32(o);
- }
- string sql = "INSERT INTO \"" + tblName + "\"" +
- " (序号, 元件名称, 规格, 单位, 数量, 采购系数, 报出系数," +
- " 表价, 采购单价, 采购价, 报出单价, 报出价, 类型, 框Handle, 文本Handle) " +
- "VALUES (@seq, @name, @spec, @unit, @shuliang, @caigou, @baochu, 0, 0, 0, 0, 0, '元件', @fh, @th);";
- for (int i = 0; i < toInsert.Count; i++)
- {
- // ★ 自动匹配元件名称(用户库CSV模糊匹配,匹配不上为空)
- string matchedName = MatchSpecName(toInsert[i].Text) ?? "";
- if (matchedName.Length == 0) aiFailedSpecs.Add(toInsert[i].Text);
- using (var insCmd = new System.Data.SQLite.SQLiteCommand(sql, conn))
- {
- insCmd.Parameters.AddWithValue("@seq", (startSeq + i + 1).ToString());
- insCmd.Parameters.AddWithValue("@name", matchedName);
- insCmd.Parameters.AddWithValue("@spec", toInsert[i].Text);
- insCmd.Parameters.AddWithValue("@unit", "只");
- insCmd.Parameters.AddWithValue("@shuliang", "1");
- insCmd.Parameters.AddWithValue("@caigou", "1");
- insCmd.Parameters.AddWithValue("@baochu", "1");
- insCmd.Parameters.AddWithValue("@fh", toInsert[i].FrameHandle ?? "");
- insCmd.Parameters.AddWithValue("@th", toInsert[i].TextHandle ?? "");
- insCmd.ExecuteNonQuery();
- }
- }
- }
- }
-
- // ★ 删除旧框和重复新框——合并成一次批量删除(单事务+单次刷新)
- var framesToErase = new List(oldFrameHandlesToDelete);
- framesToErase.AddRange(newFramesToErase);
- DeleteFramesByHandles(framesToErase);
-
- // ★ 重新编号(删除后序号可能不连续)
- RenumberTable(_currentProjectId, "\"" + tblName + "\"");
-
- _yuanjianCache.Clear();
- _xianghaoCache.Clear();
-
- // 直接在数据库层面重算(不经过内存回写)
- try { RecalcAllFromDatabase(_currentProjectId); } catch { }
- ReloadYuanjianByXianghao(_currentProjectId, _currentTuhao, _currentXianghao);
-
- // 保存
- try
- {
- if (this.advancedDataGridView5 != null) this.advancedDataGridView5.EndEdit();
- if (_yuanjianTable != null)
- {
- SaveTableToDatabase(_yuanjianTable, _currentProjectId,
- "\"" + _yuanjianTable.TableName + "\"", null, null, true);
- _yuanjianTable.AcceptChanges();
- }
- }
- catch { }
- SaveCurrentDwg();
-
- if (deletedCount > 0)
- {
- Log("[PaYuanjianInsert] 删除了 " + deletedCount + " 条重复元件(匹配框:" + oldFrameHandlesToDelete.Count + ")");
- }
-
- // ★ DeepSeek AI 兜底:本地未匹配到名称的规格,异步提交 AI 识别并回填
- if (aiFailedSpecs.Count > 0)
- {
- Log("[PaYuanjianInsert] " + aiFailedSpecs.Count + " 条本地未匹配,提交AI识别");
- AiFillMissingNames(aiFailedSpecs, tblName);
- }
- }
- catch (Exception ex)
- {
- MessageBox.Show(this, "扒元件失败:\n" + ex.Message,
- "扒元件", MessageBoxButtons.OK, MessageBoxIcon.Error);
- }
- finally
- {
- _isReloading = false;
- }
- }
-
- /// 查询图号是否已存在(避免重复插入)。
- private bool TuhaoExists(string projectId, string tuhao)
- {
- return !string.IsNullOrEmpty(GetTuhaoFrameHandle(projectId, tuhao));
- }
-
- ///
- /// ★ 按"同一个文本实体"判断重复:查该文本实体Handle是否已入库。
- /// 命中返回旧框Handle(真重复);未命中返回 null(不同位置的相同内容文本,正常插入)。
- ///
- private string GetTuhaoFrameHandleByTextHandle(string projectId, string tuhao, string textHandle)
- {
- // 旧数据没有文本Handle → 按旧逻辑(文本内容)判断,保持旧行为
- if (string.IsNullOrWhiteSpace(textHandle)) return GetTuhaoFrameHandle(projectId, tuhao);
- try
- {
- string dbPath = GetQuoteDbPath(projectId);
- if (!File.Exists(dbPath)) return null;
- using (var conn = new System.Data.SQLite.SQLiteConnection(GetConnString(dbPath)))
- {
- conn.Open();
- // ★ 先确保旧图号表有"文本Handle"列,避免查询报错
- EnsureColumns(conn, TuhaoTableName, new[] { "文本Handle" });
- // ★ 双条件:同一文本实体(Handle精确匹配) 或 旧数据行(无文本Handle,按内容兜底)
- using (var cmd = new System.Data.SQLite.SQLiteCommand(
- "SELECT 框Handle FROM " + TuhaoTableName +
- " WHERE 文本Handle=@th OR (图号=@t AND (文本Handle IS NULL OR 文本Handle='')) LIMIT 1;", conn))
- {
- cmd.Parameters.AddWithValue("@th", textHandle);
- cmd.Parameters.AddWithValue("@t", tuhao);
- using (var rdr = cmd.ExecuteReader())
- {
- if (rdr.Read())
- {
- object v = rdr["框Handle"];
- if (v != null && v != DBNull.Value)
- {
- string s = v.ToString();
- if (!string.IsNullOrWhiteSpace(s)) return s;
- }
- }
- }
- }
- }
- }
- catch { }
- return null;
- }
-
- /// 查询指定图号的框Handle(不存在返回null)。
- private string GetTuhaoFrameHandle(string projectId, string tuhao)
- {
- try
- {
- string dbPath = GetQuoteDbPath(projectId);
- if (!File.Exists(dbPath)) return null;
- using (var conn = new System.Data.SQLite.SQLiteConnection(GetConnString(dbPath)))
- {
- conn.Open();
- using (var cmd = new System.Data.SQLite.SQLiteCommand(
- "SELECT 框Handle FROM " + TuhaoTableName + " WHERE 图号=@t LIMIT 1;", conn))
- {
- cmd.Parameters.AddWithValue("@t", tuhao);
- using (var rdr = cmd.ExecuteReader())
- {
- if (rdr.Read())
- {
- object v = rdr["框Handle"];
- if (v != null && v != DBNull.Value)
- {
- string s = v.ToString();
- if (!string.IsNullOrWhiteSpace(s)) return s;
- }
- }
- }
- }
- }
- }
- catch { }
- return null;
- }
-
- /// 查询箱号是否已存在(避免重复插入)。
- private bool XianghaoExists(string projectId, string tuhao, string xianghao)
- {
- return !string.IsNullOrEmpty(GetXianghaoFrameHandle(projectId, tuhao, xianghao));
- }
-
- ///
- /// ★ 按"同一个文本实体"判断重复:查该文本实体Handle是否已入库。
- /// 命中返回旧框Handle(真重复);未命中返回 null(不同位置的相同内容文本,正常插入)。
- ///
- private string GetXianghaoFrameHandleByTextHandle(string projectId, string tuhao, string xianghao, string textHandle)
- {
- // 旧数据没有文本Handle → 按旧逻辑(文本内容)判断,保持旧行为
- if (string.IsNullOrWhiteSpace(textHandle)) return GetXianghaoFrameHandle(projectId, tuhao, xianghao);
- try
- {
- string dbPath = GetQuoteDbPath(projectId);
- if (!File.Exists(dbPath)) return null;
- string tableName = GetQuoteTableName(projectId, tuhao);
- if (string.IsNullOrEmpty(tableName)) return null;
- using (var conn = new System.Data.SQLite.SQLiteConnection(GetConnString(dbPath)))
- {
- conn.Open();
- // ★ 先确保旧箱号表有"文本Handle"列,避免查询报错
- EnsureColumns(conn, "\"" + tableName + "\"", new[] { "文本Handle" });
- // ★ 双条件:同一文本实体(Handle精确匹配) 或 旧数据行(无文本Handle,按内容兜底)
- using (var cmd = new System.Data.SQLite.SQLiteCommand(
- "SELECT 框Handle FROM \"" + tableName + "\"" +
- " WHERE 文本Handle=@th OR (箱号=@x AND (文本Handle IS NULL OR 文本Handle='')) LIMIT 1;", conn))
- {
- cmd.Parameters.AddWithValue("@th", textHandle);
- cmd.Parameters.AddWithValue("@x", xianghao);
- using (var rdr = cmd.ExecuteReader())
- {
- if (rdr.Read())
- {
- object v = rdr["框Handle"];
- if (v != null && v != DBNull.Value)
- {
- string s = v.ToString();
- if (!string.IsNullOrWhiteSpace(s)) return s;
- }
- }
- }
- }
- }
- }
- catch { }
- return null;
- }
-
- /// 查询指定箱号的框Handle(不存在返回null)。
- private string GetXianghaoFrameHandle(string projectId, string tuhao, string xianghao)
- {
- try
- {
- string dbPath = GetQuoteDbPath(projectId);
- if (!File.Exists(dbPath)) return null;
- string tableName = GetQuoteTableName(projectId, tuhao);
- if (string.IsNullOrEmpty(tableName)) return null;
- using (var conn = new System.Data.SQLite.SQLiteConnection(GetConnString(dbPath)))
- {
- conn.Open();
- using (var cmd = new System.Data.SQLite.SQLiteCommand(
- "SELECT 框Handle FROM \"" + tableName + "\" WHERE 箱号=@x LIMIT 1;", conn))
- {
- cmd.Parameters.AddWithValue("@x", xianghao);
- using (var rdr = cmd.ExecuteReader())
- {
- if (rdr.Read())
- {
- object v = rdr["框Handle"];
- if (v != null && v != DBNull.Value)
- {
- string s = v.ToString();
- if (!string.IsNullOrWhiteSpace(s)) return s;
- }
- }
- }
- }
- }
- }
- catch { }
- return null;
- }
-
- /// 查询指定元件规格的所有框Handle(可能有多个重复行,返回List)。
- private List GetYuanjianFrameHandles(string projectId, string tuhao, string xianghao, string spec)
- {
- var list = new List();
- try
- {
- string dbPath = GetQuoteDbPath(projectId);
- if (!File.Exists(dbPath)) return list;
- string tableName = GetYuanjianTableByIndex(projectId, tuhao, xianghao);
- if (string.IsNullOrEmpty(tableName)) return list;
- using (var conn = new System.Data.SQLite.SQLiteConnection(GetConnString(dbPath)))
- {
- conn.Open();
- using (var cmd = new System.Data.SQLite.SQLiteCommand(
- "SELECT 框Handle FROM \"" + tableName + "\" WHERE 规格=@s;", conn))
- {
- cmd.Parameters.AddWithValue("@s", spec);
- using (var rdr = cmd.ExecuteReader())
- {
- while (rdr.Read())
- {
- object v = rdr["框Handle"];
- if (v != null && v != DBNull.Value)
- {
- string s = v.ToString();
- if (!string.IsNullOrWhiteSpace(s)) list.Add(s);
- }
- }
- }
- }
- }
- }
- catch { }
- return list;
- }
-
- ///
- /// ★ 按"同一个文本实体"判断重复:查该文本实体Handle在元件表中是否已入库。
- /// 命中返回旧框Handle列表(真重复);未命中返回空列表(不同位置的相同内容文本,正常插入)。
- ///
- private List GetYuanjianFrameHandlesByTextHandle(string projectId, string tuhao, string xianghao, string spec, string textHandle)
- {
- var list = new List();
- // 旧数据没有文本Handle → 按旧逻辑(文本内容)判断,保持旧行为
- if (string.IsNullOrWhiteSpace(textHandle)) return GetYuanjianFrameHandles(projectId, tuhao, xianghao, spec);
- try
- {
- string dbPath = GetQuoteDbPath(projectId);
- if (!File.Exists(dbPath)) return list;
- string tableName = GetYuanjianTableByIndex(projectId, tuhao, xianghao);
- if (string.IsNullOrEmpty(tableName)) return list;
- using (var conn = new System.Data.SQLite.SQLiteConnection(GetConnString(dbPath)))
- {
- conn.Open();
- // ★ 先确保旧元件表有"文本Handle"列,避免查询报错
- EnsureColumns(conn, "\"" + tableName + "\"", new[] { "文本Handle" });
- // ★ 双条件:同一文本实体(Handle精确匹配) 或 旧数据行(无文本Handle,按规格兜底)
- using (var cmd = new System.Data.SQLite.SQLiteCommand(
- "SELECT 框Handle FROM \"" + tableName + "\"" +
- " WHERE 文本Handle=@th OR (规格=@s AND (文本Handle IS NULL OR 文本Handle=''));", conn))
- {
- cmd.Parameters.AddWithValue("@th", textHandle);
- cmd.Parameters.AddWithValue("@s", spec);
- using (var rdr = cmd.ExecuteReader())
- {
- while (rdr.Read())
- {
- object v = rdr["框Handle"];
- if (v != null && v != DBNull.Value)
- {
- string s = v.ToString();
- if (!string.IsNullOrWhiteSpace(s)) list.Add(s);
- }
- }
- }
- }
- }
- }
- catch { }
- return list;
- }
-
- // ============================================================
- // 扒元件自动匹配元件名称(用户库CSV模糊匹配)
- // · 扫描插件上级目录/自身目录下最新的 用户库_*.csv(GBK编码)
- // · 匹配策略:L1归一化相等 → L2包含(60%长度) → L3编辑距离≥0.70
- // · 硬保护:模糊匹配时数字序列必须完全一致(63A 不会配到 100A)
- // ============================================================
-
- /// 用户库条目:规格 → 元件名称
- private class SpecNameEntry
- {
- public string Name;
- public string NormSpec; // 归一化后的规格
- public string[] Numbers; // 规格中的数字序列(模糊匹配保护用)
- public string Skeleton; // 字母骨架(去数字/分隔符/尾部单位,如 DZ47-4P/C80A → DZPC)
- }
-
- private static List _specNameLib = null;
- private static string _specLibCsvPath = null;
- private static DateTime _specLibCsvTime = DateTime.MinValue;
-
- ///
- /// 确保用户库CSV已加载(取最新修改时间的 用户库_*.csv,
- /// 文件时间戳变化时自动重新加载;文件被 Excel 占用时用共享读)。
- ///
- private static void EnsureUserLibCsvLoaded()
- {
- try
- {
- // 候选目录:上级目录(成套报价软件根目录) + 插件目录自身
- var dirs = new List();
- try
- {
- var parent = Path.GetDirectoryName(_baseDir);
- if (!string.IsNullOrEmpty(parent) && Directory.Exists(parent)) dirs.Add(parent);
- }
- catch { }
- dirs.Add(_baseDir);
-
- string best = null;
- DateTime bestTime = DateTime.MinValue;
- foreach (string d in dirs)
- {
- try
- {
- string[] files = Directory.GetFiles(d, "用户库*.csv");
- foreach (string f in files)
- {
- DateTime t = File.GetLastWriteTime(f);
- if (best == null || t > bestTime) { best = f; bestTime = t; }
- }
- }
- catch { }
- }
- if (best == null) return; // 没找到CSV,保持空库
-
- // 时间戳没变且已加载 → 不重复加载
- if (_specNameLib != null &&
- string.Equals(best, _specLibCsvPath, StringComparison.OrdinalIgnoreCase) &&
- bestTime == _specLibCsvTime) return;
-
- var lib = new List();
- var prefixRules = new List();
- // ★ 共享读:文件被 Excel 打开也能读
- using (var fs = new FileStream(best, FileMode.Open, FileAccess.Read, FileShare.ReadWrite))
- using (var sr = new StreamReader(fs, DetectCsvEncoding(fs)))
- {
- string line;
- bool first = true;
- while ((line = sr.ReadLine()) != null)
- {
- if (string.IsNullOrWhiteSpace(line)) continue;
- string[] cols = SplitCsvLine(line);
- if (cols.Length < 2) continue;
- string name = cols[0].Trim();
- string spec = cols[1].Trim();
- if (first)
- {
- first = false;
- // 跳过表头
- if (name == "元件名称") continue;
- }
- if (name.Length == 0 || spec.Length == 0) continue;
-
- // ★ "元件类型"列 = "前缀" 的行是型号前缀规则(不是库条目)
- string elemType = cols.Length >= 10 ? cols[9].Trim() : "";
- if (elemType == "前缀")
- {
- string pfx = spec.ToUpperInvariant();
- if (pfx.Length >= 2) prefixRules.Add(new[] { pfx, name });
- continue;
- }
-
- string normSpec = NormalizeSpec(spec);
- lib.Add(new SpecNameEntry
- {
- Name = name,
- NormSpec = normSpec,
- // ★ 必须用原始 spec 提取数字(保留空格/符号作数字边界);
- // 用 normSpec 会导致 3300 800 粘连成 3300800,数字序列错位
- Numbers = ExtractNumbers(spec),
- Skeleton = ExtractSkeleton(spec)
- });
- }
- }
- _specNameLib = lib;
- _prefixRules = prefixRules;
- _specLibCsvPath = best;
- _specLibCsvTime = bestTime;
- WriteDebugLog("[用户库匹配] 加载CSV: " + best + " 条数=" + lib.Count +
- " 前缀规则=" + prefixRules.Count);
- }
- catch (Exception ex) { WriteDebugLog("[用户库匹配] 加载CSV异常: " + ex.Message); }
- }
-
- /// 检测CSV编码:有UTF-8 BOM用UTF8,否则按GBK(主程序导出编码)。
- private static System.Text.Encoding DetectCsvEncoding(FileStream fs)
- {
- try
- {
- long pos = fs.Position;
- int b1 = fs.ReadByte();
- int b2 = fs.ReadByte();
- int b3 = fs.ReadByte();
- fs.Position = pos;
- if (b1 == 0xEF && b2 == 0xBB && b3 == 0xBF) return System.Text.Encoding.UTF8;
- }
- catch { }
- return System.Text.Encoding.GetEncoding("GBK");
- }
-
- /// 按CSV规则拆分一行(支持双引号包裹和转义"")。
- private static string[] SplitCsvLine(string line)
- {
- var parts = new List();
- var sb = new System.Text.StringBuilder();
- bool inQuotes = false;
- for (int i = 0; i < line.Length; i++)
- {
- char c = line[i];
- if (c == '"')
- {
- if (inQuotes && i + 1 < line.Length && line[i + 1] == '"') { sb.Append('"'); i++; }
- else inQuotes = !inQuotes;
- }
- else if (c == ',' && !inQuotes)
- {
- parts.Add(sb.ToString());
- sb.Length = 0;
- }
- else sb.Append(c);
- }
- parts.Add(sb.ToString());
- return parts.ToArray();
- }
-
- /// 规格归一化:全角→半角、统一大写、去空白和分隔符号(保留字母/数字/中文)。
- private static string NormalizeSpec(string s)
- {
- if (string.IsNullOrEmpty(s)) return "";
- var sb = new System.Text.StringBuilder(s.Length);
- foreach (char c0 in s)
- {
- char c = c0;
- // 全角→半角
- if (c >= 0xFF01 && c <= 0xFF5E) c = (char)(c - 0xFEE0);
- else if (c == 0x3000) c = ' ';
- if (c == ' ' || c == '\t') continue;
- if (IsSpecSeparator(c)) continue;
- sb.Append(char.ToUpperInvariant(c));
- }
- return sb.ToString();
- }
-
- /// 规格中的分隔符号(归一化时删除;数字提取时作为数字段边界)。
- private static bool IsSpecSeparator(char c)
- {
- return c == '-' || c == '/' || c == '*' || c == '×' || c == '·' || c == '.' ||
- c == '、' || c == ',' || c == ',' || c == '(' || c == ')' || c == '(' ||
- c == ')' || c == '#' || c == '+' || c == '_' || c == ':' || c == ':' ||
- c == '~' || c == '~';
- }
-
- ///
- /// 轻量归一化(保留分隔符和空格):全角→半角、统一大写。
- /// ★ 用于数字序列提取:分隔符和空格是数字段的天然边界,
- /// 先删分隔符会导致 HYM1-63/3300 的 63 和 3300 粘连成 633300;
- /// 删空格会导致 3300 800 粘连成 3300800(与 3300,800 数字序列不一致)。
- ///
- private static string NormalizeKeepSeparators(string s)
- {
- if (string.IsNullOrEmpty(s)) return "";
- var sb = new System.Text.StringBuilder(s.Length);
- foreach (char c0 in s)
- {
- char c = c0;
- if (c >= 0xFF01 && c <= 0xFF5E) c = (char)(c - 0xFEE0);
- else if (c == 0x3000) c = ' ';
- if (c == '\t') c = ' '; // 制表符当空格
- sb.Append(char.ToUpperInvariant(c));
- }
- return sb.ToString();
- }
-
- ///
- /// 提取规格中的所有数字序列(在保留分隔符的版本上提取,
- /// 如 HYM1-63/3300 63A → ["1","63","3300","63"])。
- ///
- private static string[] ExtractNumbers(string spec)
- {
- var list = new List();
- if (string.IsNullOrEmpty(spec)) return list.ToArray();
- string light = NormalizeKeepSeparators(spec);
- var sb = new System.Text.StringBuilder();
- foreach (char c in light)
- {
- if (c >= '0' && c <= '9') sb.Append(c);
- else if (sb.Length > 0) { list.Add(sb.ToString()); sb.Length = 0; }
- }
- if (sb.Length > 0) list.Add(sb.ToString());
- return list.ToArray();
- }
-
- /// 两个数字序列是否完全一致。
- private static bool NumbersEqual(string[] a, string[] b)
- {
- if (a == null || b == null) return false;
- if (a.Length != b.Length) return false;
- for (int i = 0; i < a.Length; i++)
- if (a[i] != b[i]) return false;
- return true;
- }
-
- ///
- /// 数字序列兼容(子序列检查):短方的数字按顺序都能在长方中找到即通过。
- /// ★ 用于 L2 包含关系:一方文本是另一方的一部分,数字自然也可能少
- /// (如图纸只写 HD13BX-1500/31,库里是 HD13BX-1500/31 1500A)。
- /// ★ 依然防误配:63A vs 100A 时 63 不在对方序列对应位置,拒绝。
- ///
- private static bool NumbersCompatible(string[] a, string[] b)
- {
- if (a == null || b == null) return false;
- string[] shorter = a.Length <= b.Length ? a : b;
- string[] longer = a.Length <= b.Length ? b : a;
- if (longer.Length == 0) return shorter.Length == 0;
- int i = 0;
- foreach (string n in longer)
- {
- if (i < shorter.Length && n == shorter[i]) i++;
- }
- return i == shorter.Length;
- }
-
- ///
- /// 数字序列严格相等 + 两种容错(L3 模糊匹配用):
- /// 1.粘连拆分:图纸连写导致数字粘连(如 0.66+1500 提取出 661500),拆成两段后对上即通过;
- /// 2.壳架容错:图纸把额定电流写进型号段(如 HYW1-2500/3P 2500A,2500出现两次),
- /// 库里型号段是壳架等级(HYW1-3200),删掉图纸型号段那个数字后能对上即通过。
- /// ★ 仅当该数字在图纸中出现≥2次才允许删,220V/380V 这类无重复差异依然拒绝。
- ///
- private static bool NumbersEqualEx(string[] a, string[] b)
- {
- if (a == null || b == null) return false;
- if (NumbersEqual(a, b)) return true;
- // 容错1:粘连拆分
- if (TrySplitAndCompatible(a, b)) return true;
- if (TrySplitAndCompatible(b, a)) return true;
- // 容错2:壳架(删图纸中重复出现的电流数字之一)
- if (TryDropFrameCurrent(a, b)) return true;
- if (TryDropFrameCurrent(b, a)) return true;
- return false;
- }
-
- ///
- /// 壳架容错:seq 中存在出现≥2次的数字 X,删掉其中一次后作为子序列能对上 other。
- /// 典型:图纸 HYW1-2500/3P 2500A(2500×2) vs 库 HYW1-3200/3P 2500A(3200×1,2500×1)。
- ///
- private static bool TryDropFrameCurrent(string[] seq, string[] other)
- {
- for (int i = 0; i < seq.Length; i++)
- {
- string s = seq[i];
- if (s == null || s.Length < 2) continue;
- // 该数字必须在 seq 中出现≥2次(型号段+电流段重复)
- int cnt = 0;
- foreach (string n in seq) if (n == s) cnt++;
- if (cnt < 2) continue;
- // 删掉第 i 个,其余保持顺序
- var list = new List(seq.Length - 1);
- for (int k = 0; k < seq.Length; k++)
- if (k != i) list.Add(seq[k]);
- if (NumbersCompatible(list.ToArray(), other)) return true;
- }
- return false;
- }
-
- /// 把 seq 中某个数字串拆成两段,拆分后作为子序列能对上 other 即返回 true。
- private static bool TrySplitAndCompatible(string[] seq, string[] other)
- {
- for (int i = 0; i < seq.Length; i++)
- {
- string s = seq[i];
- if (s == null || s.Length < 2) continue;
- for (int cut = 1; cut < s.Length; cut++)
- {
- var list = new List(seq.Length + 1);
- for (int k = 0; k < seq.Length; k++)
- {
- if (k == i)
- {
- list.Add(s.Substring(0, cut));
- list.Add(s.Substring(cut));
- }
- else list.Add(seq[k]);
- }
- if (NumbersCompatible(list.ToArray(), other)) return true;
- }
- }
- return false;
- }
-
- ///
- /// 提取字母骨架:去数字、去分隔符、去尾部单位词(A/V/kA 等)。
- /// ★ 用于图纸省略壳架等级的场景:DZ47-4P/C80A 与 DZ47-100 4P C80
- /// 骨架同为 DZPC,配合数字子序列保护可安全匹配。
- ///
- private static string ExtractSkeleton(string spec)
- {
- if (string.IsNullOrEmpty(spec)) return "";
- string light = NormalizeKeepSeparators(spec);
- var sb = new System.Text.StringBuilder();
- for (int i = 0; i < light.Length; i++)
- {
- char c = light[i];
- if (c >= 'A' && c <= 'Z')
- {
- // 单位词必须紧跟在数字后面才有效(如 80A、450V);
- // 6L2-V 的 V 前面是分隔符,属于型号的一部分,不能截断
- bool prevIsDigit = i > 0 && light[i - 1] >= '0' && light[i - 1] <= '9';
- if (prevIsDigit && IsTailUnit(light.Substring(i))) break;
- sb.Append(c);
- }
- // 数字、分隔符、中文等其他字符全部跳过
- }
- return sb.ToString();
- }
-
- /// 判断剩余部分是否为纯尾部单位词(如 "A"、"80A" 里的 A、"0~450V" 里的 V)。
- private static bool IsTailUnit(string rest)
- {
- if (string.IsNullOrEmpty(rest)) return false;
- string r = rest.Trim();
- if (r.Length > 2) return false; // 单位最多2字符(HZ/KA/KW/VA)
- return r == "A" || r == "V" || r == "W" || r == "VA" || r == "HZ" || r == "KA" || r == "KW";
- }
-
- /// Levenshtein 编辑距离(滚动数组实现)。
- private static int LevenshteinDistance(string a, string b)
- {
- if (string.IsNullOrEmpty(a)) return string.IsNullOrEmpty(b) ? 0 : b.Length;
- if (string.IsNullOrEmpty(b)) return a.Length;
- int n = a.Length, m = b.Length;
- int[] prev = new int[m + 1];
- int[] cur = new int[m + 1];
- for (int j = 0; j <= m; j++) prev[j] = j;
- for (int i = 1; i <= n; i++)
- {
- cur[0] = i;
- for (int j = 1; j <= m; j++)
- {
- int cost = (a[i - 1] == b[j - 1]) ? 0 : 1;
- int v1 = prev[j] + 1;
- int v2 = cur[j - 1] + 1;
- int v3 = prev[j - 1] + cost;
- cur[j] = Math.Min(v1, Math.Min(v2, v3));
- }
- int[] tmp = prev; prev = cur; cur = tmp;
- }
- return prev[m];
- }
-
- ///
- /// 规格匹配元件名称(模糊):
- /// L1 归一化后完全相等 → 直接命中;
- /// L2 包含关系(短方长度≥长方60%,数字序列一致);
- /// L3 编辑距离相似度≥0.70(数字序列必须完全一致,唯一最高分才命中)。
- /// 都不中返回 null(不硬猜)。
- ///
- ///
- /// 粘连清洗:扒图可能把相邻文本粘连(如 "0mAVigiC65N-...")。
- /// 若文本开头是"数字+单位(mA/A/V/W)"且后面紧跟大写字母开头的型号,
- /// 从型号处截取;否则原样返回。
- ///
- private static string CleanLeadingNoise(string spec)
- {
- if (string.IsNullOrEmpty(spec)) return spec;
- string s = spec.Trim();
-
- // ★ 先剥"数量×"前缀:如 "3xLMZ1-0.5" → "LMZ1-0.5"、"2×AD16" → "AD16"
- // (图纸常在型号前写元件数量,3x=3只)
- if (s.Length > 2)
- {
- char c0 = s[0];
- if (c0 >= '0' && c0 <= '9')
- {
- int i = 0;
- while (i < s.Length && s[i] >= '0' && s[i] <= '9') i++;
- if (i < s.Length && (s[i] == 'x' || s[i] == 'X' || s[i] == '×' || s[i] == '*'))
- {
- int after = i + 1;
- if (after < s.Length && s[after] >= 'A' && s[after] <= 'Z')
- return s.Substring(after);
- }
- }
- }
-
- // 找开头最长的"数字(可含小数点)+单位"模式
- int j = 0;
- while (j < s.Length && ((s[j] >= '0' && s[j] <= '9') || s[j] == '.')) j++;
- if (j == 0 || j >= s.Length) return spec; // 开头不是数字
- // 单位段(1~3个字母)
- int u = j;
- while (u < s.Length && u - j <= 3 && s[u] >= 'A' && s[u] <= 'z') u++;
- if (u == j || u >= s.Length) return spec; // 没有单位或后面没内容
- string unit = s.Substring(j, u - j).ToUpperInvariant();
- if (unit != "MA" && unit != "A" && unit != "V" && unit != "W" && unit != "KW" && unit != "HZ") return spec;
- // 单位后必须紧跟大写字母(型号开头)
- char next = s[u];
- if (next < 'A' || next > 'Z') return spec;
- return s.Substring(u); // 从型号处截取
- }
-
- // ★ 匹配结果缓存:同一规格文本(一批框选里重复文本很常见)只完整跑一次 L0-L5。
- // L3 会按库逐条算编辑距离(库大时是 CPU 热点),缓存能直接砍掉重复计算。
- private static readonly System.Collections.Generic.Dictionary _specMatchCache =
- new System.Collections.Generic.Dictionary(System.StringComparer.Ordinal);
- private static readonly object _specMatchCacheLock = new object();
-
- /// 规格匹配元件名称(带结果缓存):相同规格文本第二次起直接返回缓存结果。
- private static string MatchSpecName(string spec)
- {
- if (string.IsNullOrWhiteSpace(spec)) return null;
- string cached;
- lock (_specMatchCacheLock)
- {
- if (_specMatchCache.TryGetValue(spec, out cached)) return cached;
- }
- string result = MatchSpecNameCore(spec);
- lock (_specMatchCacheLock)
- {
- // 上限保护:超过2万条清空重来(规格文本总量有限,防内存无限增长)
- if (_specMatchCache.Count > 20000) _specMatchCache.Clear();
- _specMatchCache[spec] = result;
- }
- return result;
- }
-
- private static string MatchSpecNameCore(string spec)
- {
- if (string.IsNullOrWhiteSpace(spec)) return null;
-
- // ★ 粘连清洗:扒图可能把相邻文本粘连(如 "0mAVigiC65N-...")。
- // 若文本前部含"数字+单位(mA/A/V)"后跟已知型号,从型号处截取
- spec = CleanLeadingNoise(spec);
-
- EnsureUserLibCsvLoaded();
- if (_specNameLib == null || _specNameLib.Count == 0) return null;
-
- string norm = NormalizeSpec(spec);
- if (norm.Length == 0) return null;
- string[] nums = ExtractNumbers(spec);
-
- string result = null;
- string via = "none";
-
- // L0: 型号前缀规则(本地权威,最优先,覆盖国标型号命名体系)
- string ruleName = MatchByPrefixRule(spec);
- if (ruleName != null)
- {
- WriteDebugLog("[用户库匹配] 「" + spec + "」 → " + ruleName + " via L0规则");
- return ruleName;
- }
-
- // L0.5: JB/T 2930 国标类组代号(官方定义:前2位字母=品类代号)
- string gbName = MatchByGbCode(spec);
- if (gbName != null)
- {
- WriteDebugLog("[用户库匹配] 「" + spec + "」 → " + gbName + " via L0.5国标");
- return gbName;
- }
-
- // L1: 归一化后完全相等
- foreach (var e in _specNameLib)
- {
- if (e.NormSpec == norm) { result = e.Name; via = "L1相等"; break; }
- }
-
- // L2: 包含关系(如图纸只写型号主体,库里有完整版)
- if (result == null)
- {
- foreach (var e in _specNameLib)
- {
- if (e.NormSpec.Length == 0) continue;
- bool contains = e.NormSpec.Contains(norm) || norm.Contains(e.NormSpec);
- if (!contains) continue;
- int shortLen = Math.Min(e.NormSpec.Length, norm.Length);
- int longLen = Math.Max(e.NormSpec.Length, norm.Length);
- if (longLen == 0 || (double)shortLen / longLen < 0.6) continue;
- if (!NumbersCompatible(nums, e.Numbers)) continue; // ★ 数字子序列兼容(允许少,不允许错)
- result = e.Name; via = "L2包含"; break;
- }
- }
-
- // L3: 编辑距离模糊匹配(字母/符号容错,数字绝对不放过)
- if (result == null)
- {
- string bestName = null;
- double bestScore = 0.0;
- int bestCount = 0;
- foreach (var e in _specNameLib)
- {
- if (e.NormSpec.Length == 0) continue;
- if (!NumbersEqualEx(nums, e.Numbers)) continue; // ★ 数字一致(含粘连拆分容错)
- // ★ 长度差剪枝:编辑距离 ≥ 长度差,长度差已超过 0.30×maxLen 时
- // score 必然 < 0.70,直接跳过(编辑距离是 O(m×n),库里条目多时全算是卡顿热点)
- int maxLen = Math.Max(norm.Length, e.NormSpec.Length);
- if (Math.Abs(norm.Length - e.NormSpec.Length) * 10 > maxLen * 3) continue;
- int dist = LevenshteinDistance(norm, e.NormSpec);
- double score = 1.0 - (double)dist / maxLen;
- if (score >= 0.70)
- {
- if (score > bestScore + 0.0001) { bestScore = score; bestName = e.Name; bestCount = 1; }
- else if (Math.Abs(score - bestScore) <= 0.0001 && bestName != e.Name) bestCount++;
- }
- }
- if (bestCount == 1 && bestName != null) { result = bestName; via = "L3模糊"; }
- }
-
- // L4: 字母骨架匹配(图纸省略壳架等级的场景)
- // DZ47-4P/C80A 与 DZ47-100 4P C80:骨架同为 DZPC,
- // 且图纸数字 [47,4,80] 是库数字 [47,100,4,80] 的子序列 → 命中
- if (result == null)
- {
- string skel = ExtractSkeleton(spec);
- if (skel.Length >= 3)
- {
- string bestName = null;
- int bestLen = int.MaxValue;
- foreach (var e in _specNameLib)
- {
- if (e.Skeleton == null || e.Skeleton.Length < 3) continue;
- if (e.Skeleton != skel) continue;
- if (!NumbersCompatible(nums, e.Numbers)) continue; // ★ 数字子序列保护
- // 多条同骨架时取数字数量最接近的
- int diff = Math.Abs(nums.Length - e.Numbers.Length);
- if (diff < bestLen) { bestLen = diff; bestName = e.Name; }
- }
- if (bestName != null) { result = bestName; via = "L4骨架"; }
- }
- }
-
- // L5: 大电流启发式(最后兜底)
- // 框架级特征:数字≥1600 + 3P/4P + 型号含W(万能式标记) → 万能式/智能断路器
- if (result == null)
- {
- string sUp = spec.Trim().ToUpperInvariant();
- bool hasBig = false;
- foreach (string n in nums)
- {
- long v;
- if (long.TryParse(n, out v) && v >= 1600 && v <= 6300) { hasBig = true; break; }
- }
- bool hasPole = sUp.Contains("/3P") || sUp.Contains("/4P") || sUp.Contains(" 3P") || sUp.Contains(" 4P") ||
- sUp.EndsWith("3P") || sUp.EndsWith("4P");
- bool hasW = sUp.IndexOf('W') >= 0;
- if (hasBig && hasPole && hasW)
- {
- // 含 I/E(智能型标记,如 HUWI/CW1I) → 智能断路器
- bool hasSmart = sUp.IndexOf('I') >= 0 || sUp.IndexOf('E') >= 0;
- result = hasSmart ? "智能断路器" : "万能式断路器";
- via = "L5大电流启发";
- }
- }
-
- // ★ 匹配日志:输入/归一化/数字序列/结果,失败可从日志直接定位原因
- WriteDebugLog("[用户库匹配] 「" + spec + "」 norm=" + norm +
- " nums=[" + string.Join(",", nums) + "] → " +
- (result == null ? "(未匹配)" : result + " via " + via));
- return result;
- }
-
- // ============================================================
- // DeepSeek AI 智能匹配(本地匹配失败后的兜底)
- // · 设置窗口填 API Key,存插件目录 deepseek.json
- // · 扒元件后本地未命中的规格批量提交 AI 识别元器件名称
- // · 结果缓存到 deepseek_cache.json(同规格只问一次)
- // · AI 结果回填元件表"元件名称"列
- // ============================================================
-
- private string DeepSeekConfigPath { get { return GetDbFullPath("deepseek.json"); } }
- private string DeepSeekCachePath { get { return GetDbFullPath("deepseek_cache.json"); } }
-
- /// DeepSeek 设置(加载/保存 JSON)
- private class DeepSeekConfig
- {
- public string ApiKey = "";
- public string BaseUrl = "https://api.deepseek.com";
- public string Model = "deepseek-v4-flash"; // ★ 支持联网搜索的模型
- public bool Enabled = false;
- public bool WebSearch = true; // ★ 联网搜索(罕见型号也能查)
- }
-
- private DeepSeekConfig _dsConfig;
- private System.Collections.Hashtable _dsCache;
-
- private DeepSeekConfig LoadDsConfig()
- {
- if (_dsConfig != null) return _dsConfig;
- var cfg = new DeepSeekConfig();
- try
- {
- if (File.Exists(DeepSeekConfigPath))
- {
- string json = File.ReadAllText(DeepSeekConfigPath, System.Text.Encoding.UTF8);
- var map = SimpleJsonParse(json);
- if (map.ContainsKey("ApiKey")) cfg.ApiKey = (string)map["ApiKey"] ?? "";
- if (map.ContainsKey("BaseUrl")) cfg.BaseUrl = (string)map["BaseUrl"] ?? "https://api.deepseek.com";
- if (map.ContainsKey("Model")) cfg.Model = (string)map["Model"] ?? "deepseek-v4-flash";
- // ★ 布尔值无引号,解析出的 val 可能带换行/空格前缀,比较前必须 Trim
- if (map.ContainsKey("Enabled")) cfg.Enabled = ((string)map["Enabled"] ?? "").Trim() == "true";
- if (map.ContainsKey("WebSearch")) cfg.WebSearch = ((string)map["WebSearch"] ?? "").Trim() != "false";
- // ★ 旧模型(deepseek-chat 不支持联网)自动迁移到 v4
- if (cfg.Model == "deepseek-chat" || cfg.Model == "deepseek-reasoner") cfg.Model = "deepseek-v4-flash";
- }
- }
- catch { }
- _dsConfig = cfg;
- return cfg;
- }
-
- private void SaveDsConfig(DeepSeekConfig cfg)
- {
- try
- {
- string json = "{\n" +
- " \"ApiKey\": \"" + (cfg.ApiKey ?? "").Replace("\"", "\\\"") + "\",\n" +
- " \"BaseUrl\": \"" + (cfg.BaseUrl ?? "").Replace("\"", "\\\"") + "\",\n" +
- " \"Model\": \"" + (cfg.Model ?? "").Replace("\"", "\\\"") + "\",\n" +
- " \"Enabled\": " + (cfg.Enabled ? "true" : "false") + ",\n" +
- " \"WebSearch\": " + (cfg.WebSearch ? "true" : "false") + "\n" +
- "}";
- File.WriteAllText(DeepSeekConfigPath, json, System.Text.Encoding.UTF8);
- _dsConfig = cfg;
- }
- catch (Exception ex) { Log("[DeepSeek配置] 保存失败: " + ex.Message); }
- }
-
- /// AI 匹配缓存:规格 → 元件名称(未命中/失败也缓存,避免反复请求)
- private System.Collections.Hashtable LoadDsCache()
- {
- if (_dsCache != null) return _dsCache;
- var ht = new System.Collections.Hashtable();
- try
- {
- if (File.Exists(DeepSeekCachePath))
- {
- string json = File.ReadAllText(DeepSeekCachePath, System.Text.Encoding.UTF8);
- var map = SimpleJsonParse(json);
- foreach (System.Collections.DictionaryEntry kv in map)
- ht[kv.Key.ToString()] = (kv.Value ?? "").ToString();
- }
- }
- catch { }
- _dsCache = ht;
- return ht;
- }
-
- private void SaveDsCache()
- {
- if (_dsCache == null) return;
- try
- {
- var sb = new System.Text.StringBuilder("{\n");
- bool first = true;
- foreach (System.Collections.DictionaryEntry kv in _dsCache)
- {
- if (!first) sb.Append(",\n");
- sb.Append(" \"" + kv.Key.ToString().Replace("\"", "\\\"") + "\": \"" +
- kv.Value.ToString().Replace("\"", "\\\"") + "\"");
- first = false;
- }
- sb.Append("\n}");
- File.WriteAllText(DeepSeekCachePath, sb.ToString(), System.Text.Encoding.UTF8);
- }
- catch (Exception ex) { Log("[DeepSeek缓存] 保存失败: " + ex.Message); }
- }
-
- /// 极简 JSON 解析(扁平 key:value 结构,支持字符串/数字/布尔值)
- private static System.Collections.Hashtable SimpleJsonParse(string json)
- {
- var ht = new System.Collections.Hashtable();
- if (string.IsNullOrEmpty(json)) return ht;
- int depth = 0; bool inStr = false;
- var key = new System.Text.StringBuilder();
- var val = new System.Text.StringBuilder();
- bool inKey = true;
- for (int i = 0; i < json.Length; i++)
- {
- char c = json[i];
- if (inStr)
- {
- if (c == '\\' && i + 1 < json.Length) { val.Append(json[i + 1]); i++; continue; }
- if (c == '"') { inStr = false; continue; }
- (inKey ? key : val).Append(c);
- continue;
- }
- if (c == '"') { inStr = true; continue; }
- if (c == '{' || c == '[') { depth++; continue; }
- if (c == '}' || c == ']')
- {
- // ★ 闭合括号收掉最后一个键值对(布尔值结尾无逗号)
- if (depth == 1 && key.Length > 0)
- {
- ht[key.ToString()] = val.ToString().Trim();
- key.Length = 0; val.Length = 0; inKey = true;
- }
- depth--; continue;
- }
- if (c == ':' && depth == 1) { inKey = false; val.Length = 0; continue; }
- if (c == ',' && depth == 1)
- {
- if (key.Length > 0) ht[key.ToString()] = val.ToString().Trim();
- key.Length = 0; val.Length = 0; inKey = true;
- continue;
- }
- // ★ 无引号值(true/false/数字)必须累积,否则解析成空
- if (!inKey && !char.IsWhiteSpace(c)) val.Append(c);
- }
- if (key.Length > 0) ht[key.ToString()] = val.ToString().Trim();
- return ht;
- }
-
- // ============================================================
- // 电器型号前缀规则(与用户库共用同一个 CSV 数据文件)
- // ★ 用户库 CSV 中"元件类型"列 = "前缀" 的行即为前缀规则:
- // 隔离开关,HGL,只,1,0,1,1,规则,0,前缀
- // (元件名称列=名称,规格列=型号前缀)
- // ★ Excel 里直接编辑用户库即可增删规则,随库自动重载
- // ★ 规则结果与 AI 冲突时,以规则为准(根治 AI 误判)
- // ============================================================
-
- private static List _prefixRules = new List();
-
- /// 内置最小规则集(仅当用户库无任何前缀行时兜底)。
- private static readonly string[,] s_BuiltinPrefixRules =
- {
- { "HGL", "隔离开关" }, { "DZ47", "小型断路器" }, { "NM1", "塑壳断路器" },
- { "CJX2", "交流接触器" }, { "RT16", "熔断器" }, { "LMZ", "电流互感器" },
- };
-
- // ============================================================
- // ★ JB/T 2930 国标类组代号表(低压电器型号编制方法的官方定义)
- // 国标型号前2位字母=品类代号:第1位类别+第2位组别。
- // 在前缀规则(L0)之后、CSV 库(L1)之前执行,覆盖所有国标型号。
- // ============================================================
- private static readonly System.Collections.Hashtable s_GbClassCodes = new System.Collections.Hashtable(StringComparer.OrdinalIgnoreCase)
- {
- // H 刀开关/隔离开关族
- { "HD", "隔离开关" }, // 单投刀开关
- { "HS", "隔离开关" }, // 双投刀开关(转换)
- { "HR", "隔离开关" }, // 熔断器式刀开关
- { "HH", "隔离开关" }, // 封闭式负荷开关
- { "HK", "隔离开关" }, // 开启式负荷开关(胶盖闸)
- { "HZ", "转换开关" }, // 组合开关
- { "HG", "隔离开关" }, // 熔断器式隔离器(另:HG1/HG13)
- // R 熔断器族
- { "RC", "熔断器" }, // 插入式
- { "RL", "熔断器" }, // 螺旋式(RL6/RL8)
- { "RM", "熔断器" }, // 密封管式
- { "RS", "快速熔断器" }, // 快速(RS0/RS3)
- { "RT", "熔断器" }, // 有填料管式(RT0/RT16/RT18)
- { "RX", "熔断器" }, // 限流
- { "RTO", "熔断器" },
- // D 断路器族
- { "DW", "万能式断路器" }, // 框架式(DW15/DW45)
- { "DZ", "塑壳断路器" }, // 装置式/塑料外壳(DZ15/DZ20)
- { "DX", "小型断路器" },
- { "DM", "塑壳断路器" },
- { "DC", "断路器" },
- // C 接触器族
- { "CJ", "交流接触器" }, // 交流(CJ20/CJX)
- { "CZ", "直流接触器" }, // 直流
- { "CG", "接触器" }, // 高压
- { "CP", "接触器" }, // 中频
- { "CS", "接触器" }, // 时间
- // Q 起动器族
- { "QC", "电磁起动器" }, { "QS", "手动起动器" }, { "QX", "星三角起动器" },
- { "QJ", "自耦减压起动器" }, { "QT", "起动器" }, { "QU", "起动器" },
- // J 控制继电器族
- { "JL", "电流继电器" }, { "JR", "热过载继电器" }, { "JS", "时间继电器" },
- { "JT", "通用继电器" }, { "JW", "温度继电器" }, { "JZ", "中间继电器" },
- { "JX", "继电器" },
- // L 主令电器族
- { "LA", "按钮" }, // 按钮(LA38/LA39)
- { "LK", "主令控制器" }, { "LT", "主令开关" }, { "LW", "转换开关" },
- { "LX", "行程开关" }, { "LU", "足踏开关" }, { "LS", "主令开关" },
- // Z 电阻/终端族
- { "ZB", "电阻器" }, { "ZG", "电阻器" }, { "ZC", "电阻器" },
- // B 变阻器族
- { "BL", "励磁变阻器" }, { "BP", "频敏变阻器" }, { "BQ", "起动变阻器" },
- { "BT", "变阻器" }, { "BC", "旋臂变阻器" },
- // M 电磁铁族
- { "MQ", "牵引电磁铁" }, { "MZ", "制动电磁铁" }, { "MW", "起重电磁铁" },
- // A 其他族
- { "AD", "指示灯" }, // 信号灯(AD11/AD16 习惯用)
- { "AN", "按钮" },
- // P 仪用互感器(行业习惯,P 不在 JB/T2930 主表,单列)
- { "LQG", "电流互感器" },
- // 变压器(控制变压器 BK 不在 JB/T2930,行业通用)
- { "BK", "控制变压器" },
- };
-
- ///
- /// ★ 国标类组代号解析:按 JB/T 2930 定义,取型号前2位字母查类组表。
- /// 仅当:①前缀规则未命中 ②开头≥2位字母 ③类组表命中 时返回名称。
- /// 数字开头/单字母/进口品牌型号不适用(返回 null 交给后续层)。
- ///
- private static string MatchByGbCode(string spec)
- {
- if (string.IsNullOrWhiteSpace(spec)) return null;
- string s = spec.Trim();
- // 前2位必须是字母(国标类组代号为2位拼音)
- if (s.Length < 3) return null;
- if (!((s[0] >= 'A' && s[0] <= 'Z') || (s[0] >= 'a' && s[0] <= 'z'))) return null;
- if (!((s[1] >= 'A' && s[1] <= 'Z') || (s[1] >= 'a' && s[1] <= 'z'))) return null;
- // 第3位应是数字或分隔符(确认是类组代号+设计序号结构,排除品牌词)
- if (s.Length > 2)
- {
- char c2 = s[2];
- bool ok = (c2 >= '0' && c2 <= '9') || c2 == '-' || c2 == ' ' || c2 == '/';
- if (!ok) return null;
- }
- string code = s.Substring(0, 2).ToUpperInvariant();
- object v = s_GbClassCodes[code];
- return v as string;
- }
-
- ///
- /// 按型号前缀规则查元器件名称。
- /// ★ 规则来自用户库 CSV"元件类型=前缀"的行(EnsureUserLibCsvLoaded 时提取),
- /// 规则前缀直接与规格开头比对(支持字母+数字混合前缀,如 DZ47/CDM3/CJX2),
- /// 最长前缀优先(7→2字符)。
- /// 返回 null 表示无规则。
- ///
- private static string MatchByPrefixRule(string spec)
- {
- if (string.IsNullOrWhiteSpace(spec)) return null;
- string s = spec.Trim().ToUpperInvariant();
- if (s.Length < 2) return null;
-
- var rules = _prefixRules;
- if (rules.Count == 0)
- {
- // 用户库无前缀行 → 内置兜底
- for (int i = 0; i < s_BuiltinPrefixRules.GetLength(0); i++)
- rules.Add(new[] { s_BuiltinPrefixRules[i, 0], s_BuiltinPrefixRules[i, 1] });
- _prefixRules = rules;
- }
-
- for (int plen = 7; plen >= 2; plen--)
- {
- if (s.Length < plen) continue;
- string head = s.Substring(0, plen);
- foreach (var rule in rules)
- {
- if (rule[0].Length != plen || rule[0] != head) continue;
- return rule[1];
- }
- }
- return null;
- }
-
- /// 打开 DeepSeek 设置窗口(运行时创建,不改 ui.cs)
- private void ShowDeepSeekSettings()
- {
- var cfg = LoadDsConfig();
- var form = new System.Windows.Forms.Form();
- form.Text = "DeepSeek AI 匹配设置";
- form.Size = new System.Drawing.Size(420, 260);
- form.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog;
- form.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent;
- form.MaximizeBox = false; form.MinimizeBox = false;
-
- var lblKey = new System.Windows.Forms.Label { Text = "API Key:", Location = new System.Drawing.Point(15, 18), AutoSize = true };
- var txtKey = new System.Windows.Forms.TextBox
- {
- Location = new System.Drawing.Point(80, 15), Size = new System.Drawing.Size(310, 23),
- Text = cfg.ApiKey, UseSystemPasswordChar = true
- };
- var chkShow = new System.Windows.Forms.CheckBox
- {
- Text = "显示密钥", Location = new System.Drawing.Point(80, 44), AutoSize = true
- };
- chkShow.CheckedChanged += (s2, e2) => txtKey.UseSystemPasswordChar = !chkShow.Checked;
-
- var lblModel = new System.Windows.Forms.Label { Text = "模型:", Location = new System.Drawing.Point(15, 78), AutoSize = true };
- var cboModel = new System.Windows.Forms.ComboBox
- {
- Location = new System.Drawing.Point(80, 74), Size = new System.Drawing.Size(180, 23),
- DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList
- };
- cboModel.Items.Add("deepseek-v4-flash");
- cboModel.Items.Add("deepseek-v4-pro");
- cboModel.Items.Add("deepseek-chat");
- cboModel.SelectedItem = string.IsNullOrEmpty(cfg.Model) ? "deepseek-v4-flash" : cfg.Model;
-
- var chkEnable = new System.Windows.Forms.CheckBox
- {
- Text = "启用 AI 匹配(本地匹配失败后自动提交 DeepSeek 识别)",
- Location = new System.Drawing.Point(15, 108), AutoSize = true, Checked = cfg.Enabled
- };
-
- var lblTip = new System.Windows.Forms.Label
- {
- Text = "提示:AI 结果会缓存到本地,相同规格只请求一次。\nAPI Key 从 platform.deepseek.com 获取。",
- Location = new System.Drawing.Point(15, 138), AutoSize = true, ForeColor = System.Drawing.Color.Gray
- };
-
- var btnClear = new System.Windows.Forms.Button { Text = "清空AI缓存", Location = new System.Drawing.Point(80, 178), Size = new System.Drawing.Size(100, 28) };
- btnClear.Click += (s2, e2) =>
- {
- try { if (File.Exists(DeepSeekCachePath)) File.Delete(DeepSeekCachePath); _dsCache = null; }
- catch { }
- MessageBox.Show(form, "AI 缓存已清空。", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
- };
-
- var btnOk = new System.Windows.Forms.Button { Text = "保存", Location = new System.Drawing.Point(240, 178), Size = new System.Drawing.Size(75, 28) };
- var btnCancel = new System.Windows.Forms.Button { Text = "取消", Location = new System.Drawing.Point(325, 178), Size = new System.Drawing.Size(75, 28) };
-
- btnOk.Click += (s2, e2) =>
- {
- cfg.ApiKey = txtKey.Text.Trim();
- cfg.Model = cboModel.SelectedItem == null ? "deepseek-v4-flash" : cboModel.SelectedItem.ToString();
- cfg.Enabled = chkEnable.Checked && cfg.ApiKey.Length > 0;
- SaveDsConfig(cfg);
- form.Close();
- };
- btnCancel.Click += (s2, e2) => form.Close();
-
- form.Controls.AddRange(new System.Windows.Forms.Control[] { lblKey, txtKey, chkShow, lblModel, cboModel, chkEnable, lblTip, btnClear, btnOk, btnCancel });
- form.ShowDialog(this);
- }
-
- ///
- /// 调 DeepSeek API 批量识别规格对应的元器件名称。
- /// 返回 规格→名称 的哈希表(失败的规格不在结果里)。
- ///
- private System.Collections.Hashtable CallDeepSeekMatch(List specs)
- {
- var result = new System.Collections.Hashtable();
- var cfg = LoadDsConfig();
- if (!cfg.Enabled || string.IsNullOrWhiteSpace(cfg.ApiKey)) return result;
-
- // 构造提问:证据链推理法(查厂商→确认型号→按厂商定义归类)
- var sb = new System.Text.StringBuilder();
- sb.Append("你是低压电器型号识别专家,精通 JB/T 2930《低压电器产品型号编制方法》。为每个规格型号返回【元器件名称】(中文标准品类词)。\n\n");
- sb.Append("【推理方法】(对每个型号按证据链三步走,不要直接猜):\n");
- sb.Append("第1步·识别厂商:从型号前缀判断是哪家厂(如 HUWI→沪工/环宇系、NM→正泰、CDM→德力西、CM→常熟、CW→常熟框架、SZRM→上海人民、XBK→湘湖/新宝凯、QAM→七仪);\n");
- sb.Append("第2步·确认系列:该厂商的此系列号是否存在、属于什么产品线(用你的产品知识回忆厂商型录:如 HUWI=沪工智能型万能式、YLEM=某厂智能框架、BM3=塑壳);\n");
- sb.Append("第3步·按厂商定义归类:厂商型录里该系列挂哪个品类就答什么,不要凭字母表面猜。\n\n");
- sb.Append("【辅助规律】(第2步无记忆时用):\n");
- sb.Append("· 国标类组:前2位字母=品类(DW万能断路器/DZ塑壳/CJ交流接触器/JR热继/LA按钮/HD-HS-HR隔离开关/RT熔断器);\n");
- sb.Append("· 结构特征:电流≥1600A+3P/4P+含W → 框架级(万能式/智能断路器);壳架≤630A+3P → 塑壳;63A以下+1P/2P → 微型;\n");
- sb.Append("· 派生代号:L/E=漏电或电子式,I=智能型,Z=直流/智能,N=可逆;\n");
- sb.Append("· 进口系列:施耐德(NSX/iC65/Vigi/LC1/LR)、ABB(S/SH)、西门子(3RT/5SL)、伊顿(IS)。\n\n");
- sb.Append("【输出格式】(严格遵守):\n");
- sb.Append("只返回纯 JSON 对象 {\"规格原文\":\"元器件名称\",...},不要任何解释、思考过程或其他文字;\n");
- sb.Append("每个规格都必须给出判断:按证据链推理,无法确认厂商和系列时按结构特征推断,实在无据可依才给空字符串;\n");
- sb.Append("名称用标准品类词:万能式断路器/智能断路器/塑壳断路器/小型断路器/漏电断路器/交流接触器/直流接触器/热过载继电器/时间继电器/中间继电器/电流互感器/电压互感器/熔断器/快速熔断器/隔离开关/负荷开关/转换开关/按钮/指示灯/行程开关/双电源/电磁起动器/自耦减压起动器/控制变压器/干式变压器/电涌保护器/电容器/电能表/软启动器/变频器等。\n");
- sb.Append("规格列表:\n");
- for (int i = 0; i < specs.Count; i++)
- sb.Append((i + 1) + ". " + specs[i] + "\n");
-
- try
- {
- // ★ 纯AI知识模式:chat/completions(不走联网搜索,快且稳)
- // deepseek-v4 系列是思考模型:正式回答在 content,思考过程在 reasoning_content;
- // 有时 content 空、答案藏在 reasoning_content 末尾 → 两处都提取
- string body = "{" +
- "\"model\":\"" + cfg.Model + "\"," +
- "\"messages\":[" +
- "{\"role\":\"user\",\"content\":\"" + JsonEscape(sb.ToString()) + "\"}" +
- "]," +
- "\"temperature\":0.1," +
- "\"max_tokens\":3000" +
- "}";
-
- string url = (cfg.BaseUrl ?? "https://api.deepseek.com").TrimEnd('/') + "/chat/completions";
- var req = (System.Net.HttpWebRequest)System.Net.WebRequest.Create(url);
- req.Method = "POST";
- req.ContentType = "application/json";
- req.Headers.Add("Authorization", "Bearer " + cfg.ApiKey);
- req.Timeout = 60000; // 60秒
- req.ReadWriteTimeout = 60000;
- req.Proxy = null; // ★ 不走系统代理(防代理环境卡死)
- byte[] data = System.Text.Encoding.UTF8.GetBytes(body);
- req.ContentLength = data.Length;
- Log("[DeepSeek] 发起请求: " + specs.Count + " 条规格(AI知识模式), url=" + url);
- using (var rs = req.GetRequestStream()) rs.Write(data, 0, data.Length);
-
- string respText;
- using (var resp = (System.Net.HttpWebResponse)req.GetResponse())
- using (var sr = new StreamReader(resp.GetResponseStream(), System.Text.Encoding.UTF8))
- respText = sr.ReadToEnd();
- Log("[DeepSeek] 响应长度: " + respText.Length + " 字符");
-
- // 从响应提取 content(手工解析,取 choices[0].message.content)
- string content = ExtractJsonContent(respText);
- if (string.IsNullOrEmpty(content))
- {
- Log("[DeepSeek] 响应解析失败: " + (respText.Length > 400 ? respText.Substring(0, 400) : respText));
- return result;
- }
- // ★ 诊断:AI原始输出(排查"返回0条"问题,只打前400字符)
- Log("[DeepSeek] AI输出内容: " + (content.Length > 400 ? content.Substring(0, 400) + "..." : content));
- // content 里是 {"规格":"名称",...}
- // ★ 思考模型(deepseek-v4)的 content 可能为空,答案在 reasoning_content 末尾:
- // 思维链最后一般会写出最终 JSON,从 reasoning_content 里找 {...} 提取
- var map = SimpleJsonParse(content);
- if (map.Count == 0)
- {
- // 从 reasoning_content 提取最后一个完整 JSON 对象
- int rIdx = respText.IndexOf("\"reasoning_content\":\"", System.StringComparison.Ordinal);
- if (rIdx >= 0)
- {
- string reasoning = ExtractEscapedString(respText, rIdx + 21);
- int braceStart = reasoning.LastIndexOf('{');
- if (braceStart >= 0)
- {
- // 从最后一个 { 找到配对的 }
- int depth2 = 0; int end = -1;
- for (int k = braceStart; k < reasoning.Length; k++)
- {
- if (reasoning[k] == '{') depth2++;
- else if (reasoning[k] == '}')
- {
- depth2--;
- if (depth2 == 0) { end = k; break; }
- }
- }
- if (end > braceStart)
- {
- string jsonPart = reasoning.Substring(braceStart, end - braceStart + 1);
- map = SimpleJsonParse(jsonPart);
- Log("[DeepSeek] 从思维链提取到 " + map.Count + " 条结果");
- }
- }
- }
- }
- foreach (System.Collections.DictionaryEntry kv in map)
- {
- string key = kv.Key.ToString();
- string name = (kv.Value ?? "").ToString().Trim();
- if (name.Length == 0) continue;
-
- // ★ 防线:AI 结果先过本地前缀规则校验,冲突时以规则为准
- // (根治 AI 偶发误判,如把 HGL 隔离开关答成熔断器)
- string rule = MatchByPrefixRule(key);
- if (rule != null && rule != name)
- {
- Log("[DeepSeek校验] 「" + key + "」 AI答[" + name + "] 与规则冲突,已改用[" + rule + "]");
- name = rule;
- }
- result[key] = name;
- }
- Log("[DeepSeek] 识别 " + specs.Count + " 条,返回 " + result.Count + " 条结果");
- }
- catch (Exception ex)
- {
- Log("[DeepSeek] 请求失败: " + ex.Message);
- }
- return result;
- }
-
- ///
- /// 从 API 响应中提取模型输出文本。
- /// 兼容两种格式:
- /// · chat/completions: choices[0].message.content("content":"...")
- /// · responses API: output[].content[].text("text":"...")或顶层"output_text"
- ///
- private static string ExtractJsonContent(string respText)
- {
- try
- {
- // 方式1:responses API 的 "output_text":"..."
- int idx = respText.IndexOf("\"output_text\":\"", System.StringComparison.Ordinal);
- if (idx >= 0)
- {
- string s = ExtractEscapedString(respText, idx + 15);
- if (!string.IsNullOrEmpty(s)) return s;
- }
- // 方式2:responses API 的输出项文本 "text":"..."(跳过 summary/reasoning,
- // 直接找最后一个大 text——输出 message 的正文通常最大)
- int best = -1, bestLen = 0;
- int pos = 0;
- while (true)
- {
- int t = respText.IndexOf("\"text\":\"", pos, System.StringComparison.Ordinal);
- if (t < 0) break;
- // 取这个字符串的长度估算
- int len = EstimateEscapedLen(respText, t + 8);
- if (len > bestLen) { bestLen = len; best = t; }
- pos = t + 8;
- }
- if (best >= 0)
- {
- string s = ExtractEscapedString(respText, best + 8);
- if (!string.IsNullOrEmpty(s)) return s;
- }
- // 方式3:chat 的 "content":"..."
- idx = respText.IndexOf("\"content\":\"", System.StringComparison.Ordinal);
- if (idx >= 0)
- {
- return ExtractEscapedString(respText, idx + 11);
- }
- return null;
- }
- catch { return null; }
- }
-
- /// 从 start 位置读取一个 JSON 转义字符串(处理 \n \" \\ \uXXXX)。
- private static string ExtractEscapedString(string text, int start)
- {
- var sb = new System.Text.StringBuilder();
- int i = start;
- while (i < text.Length)
- {
- char c = text[i];
- if (c == '\\' && i + 1 < text.Length)
- {
- char n = text[i + 1];
- if (n == 'n') sb.Append('\n');
- else if (n == 't') sb.Append('\t');
- else if (n == 'r') sb.Append('\r');
- else if (n == '"') sb.Append('"');
- else if (n == '\\') sb.Append('\\');
- else if (n == '/' ) sb.Append('/');
- else if (n == 'u' && i + 5 < text.Length)
- {
- int code = Convert.ToInt32(text.Substring(i + 2, 4), 16);
- sb.Append((char)code);
- i += 4;
- }
- else sb.Append(n);
- i += 2;
- continue;
- }
- if (c == '"') break;
- sb.Append(c);
- i++;
- }
- return sb.ToString();
- }
-
- /// 估算 start 位置转义字符串的长度(到未转义引号为止)。
- private static int EstimateEscapedLen(string text, int start)
- {
- int i = start, len = 0;
- while (i < text.Length)
- {
- char c = text[i];
- if (c == '\\' && i + 1 < text.Length) { i += 2; len += 2; continue; }
- if (c == '"') break;
- i++; len++;
- }
- return len;
- }
-
- private static string JsonEscape(string s)
- {
- if (string.IsNullOrEmpty(s)) return "";
- var sb = new System.Text.StringBuilder();
- foreach (char c in s)
- {
- if (c == '"') sb.Append("\\\"");
- else if (c == '\\') sb.Append("\\\\");
- else if (c == '\n') sb.Append("\\n");
- else if (c == '\t') sb.Append("\\t");
- else if (c == '\r') sb.Append("");
- else sb.Append(c);
- }
- return sb.ToString();
- }
-
- ///
- /// 扒元件插入后:对本地匹配失败的规格异步调用 DeepSeek 补名称,
- /// 完成后回填数据库 + 刷新表格(UI 线程)。
- /// ★ 单飞+排队:上一个 AI 批次未完成时,后续规格累积到待办队列,
- /// 完成后一并提交(防并发互踩/请求堆积)。
- ///
- private static readonly object _aiLock = new object();
- private static bool _aiRunning = false;
- private static List _aiPendingSpecs = new List();
- private static string _aiPendingTbl = null;
-
- private void AiFillMissingNames(List failedSpecs, string tblName)
- {
- if (failedSpecs == null || failedSpecs.Count == 0) return;
- var cfg = LoadDsConfig();
- if (!cfg.Enabled || string.IsNullOrWhiteSpace(cfg.ApiKey)) return;
-
- lock (_aiLock)
- {
- // 并发防抖:AI 批次进行中 → 累积到待办,由运行中的批次完成后接力
- if (_aiRunning)
- {
- foreach (string sp in failedSpecs)
- if (!_aiPendingSpecs.Contains(sp)) _aiPendingSpecs.Add(sp);
- if (_aiPendingTbl == null) _aiPendingTbl = tblName;
- Log("[AI队列] 批次进行中," + failedSpecs.Count + " 条已加入待办(累计 " + _aiPendingSpecs.Count + ")");
- return;
- }
- _aiRunning = true;
- _aiPendingTbl = tblName;
- }
-
- RunAiBatch(failedSpecs, tblName);
- }
-
- /// 执行一个 AI 批次(完成后处理待办队列)。
- private void RunAiBatch(List specs, string tblName)
- {
- var bgw = new System.ComponentModel.BackgroundWorker();
- bgw.DoWork += (s, e) =>
- {
- try
- {
- // 先查缓存,未缓存的才提交 AI
- var cache = LoadDsCache();
- var toAsk = new List();
- var localHits = new System.Collections.Hashtable();
- lock (_aiLock)
- {
- foreach (string sp in specs)
- {
- if (cache.ContainsKey(sp))
- {
- string cached = (cache[sp] ?? "").ToString();
- // ★ 规则有结果但缓存为空(AI曾未识别) → 用规则(补漏)
- string rule = MatchByPrefixRule(sp);
- if (rule != null && rule.Length > 0 && rule != cached)
- {
- Log("[缓存校验] 「" + sp + "」 缓存[" + cached + "]与规则冲突,已纠正为[" + rule + "]");
- cached = rule;
- cache[sp] = rule;
- }
- if (cached.Length > 0) localHits[sp] = cached;
- }
- else if (!toAsk.Contains(sp)) toAsk.Add(sp);
- }
- }
-
- var ai = new System.Collections.Hashtable();
- if (toAsk.Count > 0)
- {
- ai = CallDeepSeekMatch(toAsk);
- // 写缓存(包括未命中的,避免反复问)
- lock (_aiLock)
- {
- foreach (string sp in toAsk)
- cache[sp] = ai.Contains(sp) ? ai[sp].ToString() : "";
- SaveDsCache();
- }
- }
-
- // 合并结果
- var final = new System.Collections.Hashtable();
- foreach (System.Collections.DictionaryEntry kv in localHits) final[kv.Key] = kv.Value;
- foreach (System.Collections.DictionaryEntry kv in ai) final[kv.Key] = kv.Value;
- e.Result = final;
- }
- catch (Exception ex)
- {
- Log("[AI回填] 后台异常: " + ex);
- e.Result = new System.Collections.Hashtable();
- }
- };
- bgw.RunWorkerCompleted += (s, e) =>
- {
- // ★ 无论成败都处理:先取走待办队列并释放单飞标记
- List pending;
- string pendingTbl;
- lock (_aiLock)
- {
- pending = new List(_aiPendingSpecs);
- pendingTbl = _aiPendingTbl;
- _aiPendingSpecs = new List();
- _aiPendingTbl = null;
- _aiRunning = false;
- }
-
- try
- {
- var final = e.Result as System.Collections.Hashtable;
- if (final == null || final.Count == 0) { if (pending.Count > 0) StartNextAiBatch(pending, pendingTbl); return; }
- int updated = 0;
- string dbPath = GetQuoteDbPath(_currentProjectId);
- using (var conn = new System.Data.SQLite.SQLiteConnection(GetConnString(dbPath)))
- {
- conn.Open();
- using (var tx = conn.BeginTransaction())
- {
- foreach (System.Collections.DictionaryEntry kv in final)
- {
- using (var cmd = new System.Data.SQLite.SQLiteCommand(
- "UPDATE \"" + tblName + "\" SET 元件名称=@name WHERE 规格=@spec AND (元件名称 IS NULL OR 元件名称='');", conn))
- {
- cmd.Parameters.AddWithValue("@name", kv.Value.ToString());
- cmd.Parameters.AddWithValue("@spec", kv.Key.ToString());
- updated += cmd.ExecuteNonQuery();
- }
- }
- tx.Commit();
- }
- }
- if (updated > 0)
- {
- Log("[AI回填] 已回填 " + updated + " 条元件名称");
- _yuanjianCache.Clear();
- ReloadYuanjianByXianghao(_currentProjectId, _currentTuhao, _currentXianghao);
- }
-
- // ★ AI 识别成功的结果追加进用户库 CSV(库越用越全,
- // 下次同规格本地直接命中,不再消耗 AI)
- AppendAiResultsToUserLibCsv(final);
- }
- catch (Exception ex) { Log("[AI回填] 回填异常: " + ex.Message); }
-
- // ★ 接力:待办队列有货 → 继续下一个批次
- if (pending.Count > 0) StartNextAiBatch(pending, pendingTbl);
- };
- bgw.RunWorkerAsync();
- }
-
- /// 启动下一个 AI 批次(带单飞保护)。
- private void StartNextAiBatch(List specs, string tblName)
- {
- lock (_aiLock)
- {
- if (_aiRunning)
- {
- foreach (string sp in specs)
- if (!_aiPendingSpecs.Contains(sp)) _aiPendingSpecs.Add(sp);
- return;
- }
- _aiRunning = true;
- _aiPendingTbl = tblName;
- }
- Log("[AI队列] 接力下一批 " + specs.Count + " 条");
- RunAiBatch(specs, tblName);
- }
-
- ///
- /// 把 AI 识别结果(规格→名称)追加到最新用户库 CSV(GBK 编码),
- /// 并同步更新内存库 _specNameLib(当前会话立即生效)。
- /// 已存在的规格跳过;每条占一行:名称,规格,只,1,0,1,1,AI识别,0,元件
- ///
- private void AppendAiResultsToUserLibCsv(System.Collections.Hashtable aiResults)
- {
- try
- {
- if (aiResults == null || aiResults.Count == 0) return;
-
- // 找最新 CSV(与 EnsureUserLibCsvLoaded 同规则:上级目录+插件目录取最新)
- string best = null; DateTime bestTime = DateTime.MinValue;
- var dirs = new List();
- try
- {
- var parent = Path.GetDirectoryName(_baseDir);
- if (!string.IsNullOrEmpty(parent) && Directory.Exists(parent)) dirs.Add(parent);
- }
- catch { }
- dirs.Add(_baseDir);
- foreach (string d in dirs)
- {
- try
- {
- foreach (string f in Directory.GetFiles(d, "用户库*.csv"))
- {
- DateTime t = File.GetLastWriteTime(f);
- if (best == null || t > bestTime) { best = f; bestTime = t; }
- }
- }
- catch { }
- }
- if (best == null) { Log("[AI入库] 未找到用户库CSV,跳过"); return; }
-
- // ★ 共享读写:文件可能被 Excel 打开
- var gbk = System.Text.Encoding.GetEncoding("GBK");
- var existing = new HashSet(StringComparer.OrdinalIgnoreCase);
- var fs = System.IO.File.Open(best, FileMode.Open, FileAccess.Read, FileShare.ReadWrite);
- using (var sr = new StreamReader(fs, gbk))
- {
- string line;
- while ((line = sr.ReadLine()) != null)
- {
- if (string.IsNullOrWhiteSpace(line)) continue;
- int comma = line.IndexOf(',');
- if (comma > 0) existing.Add(line.Substring(comma + 1).Trim());
- }
- }
-
- // 组装新增行
- var newLines = new List();
- foreach (System.Collections.DictionaryEntry kv in aiResults)
- {
- string spec = kv.Key.ToString().Trim();
- string name = kv.Value.ToString().Trim();
- if (spec.Length == 0 || name.Length == 0) continue;
- if (existing.Contains(spec)) continue;
- newLines.Add(name + "," + spec + ",只,1,0,1,1,AI识别,0,元件");
- existing.Add(spec); // 防同批重复
- }
- if (newLines.Count == 0) { Log("[AI入库] 全部已存在,无新增"); return; }
-
- // 追加写(共享读写防 Excel 锁;失败重试3次——扒图进程可能正读CSV)
- bool written = false;
- for (int attempt = 0; attempt < 3 && !written; attempt++)
- {
- try
- {
- using (var fs2 = new FileStream(best, FileMode.Append, FileAccess.Write, FileShare.ReadWrite))
- using (var sw = new StreamWriter(fs2, gbk))
- {
- foreach (string nl in newLines) sw.WriteLine(nl);
- }
- written = true;
- }
- catch (System.IO.IOException)
- {
- System.Threading.Thread.Sleep(300); // 等 CSV 读取方释放
- }
- }
- if (!written) Log("[AI入库] 写入失败(文件被占用),跳过本次(下次扒图会再尝试)");
-
- // ★ 同步内存库:当前会话的本地匹配立即可用
- try
- {
- EnsureUserLibCsvLoaded();
- if (_specNameLib != null)
- {
- foreach (string nl in newLines)
- {
- string[] cols = nl.Split(',');
- if (cols.Length >= 2)
- _specNameLib.Add(new SpecNameEntry
- {
- Name = cols[0],
- NormSpec = NormalizeSpec(cols[1]),
- Numbers = ExtractNumbers(cols[1]),
- Skeleton = ExtractSkeleton(cols[1])
- });
- }
- }
- }
- catch { }
-
- Log("[AI入库] 新增 " + newLines.Count + " 条到 " + Path.GetFileName(best));
- }
- catch (Exception ex) { Log("[AI入库] 失败: " + ex.Message); }
- }
-
- /// 根据项目ID和图号获取箱号表名(查"表索引"表)。
- private string GetQuoteTableName(string projectId, string tuhao)
- {
- try
- {
- string dbPath = GetQuoteDbPath(projectId);
- if (!File.Exists(dbPath)) return "";
- using (var conn = new System.Data.SQLite.SQLiteConnection(GetConnString(dbPath)))
- {
- conn.Open();
- using (var cmd = new System.Data.SQLite.SQLiteCommand(
- "SELECT 表名 FROM " + IndexTableName + " WHERE 图号=@t LIMIT 1;", conn))
- {
- cmd.Parameters.AddWithValue("@t", tuhao);
- object o = cmd.ExecuteScalar();
- return o == null ? "" : o.ToString();
- }
- }
- }
- catch { return ""; }
- }
-
- private void InsertTuhao(string projectId, string tuhao, string frameHandle, string textHandle)
- {
- if (string.IsNullOrWhiteSpace(projectId)) return;
- EnsureQuoteDbExists(projectId);
- string dbPath = GetQuoteDbPath(projectId);
- string sql = "INSERT INTO " + TuhaoTableName +
- " (序号, 图号, 台数, 箱柜数量, 单价, 总价, 成本总价, 毛利, 毛利率, 框Handle, 文本Handle) " +
- "VALUES (@seq, @th, @taishu, 0, 0, 0, 0, 0, 0, @frameHandle, @textHandle);";
- string seq = GetNextSeqNumber(TuhaoTableName, "图号", projectId);
- using (var conn = new System.Data.SQLite.SQLiteConnection(GetConnString(dbPath)))
- {
- conn.Open();
- using (var cmd = new System.Data.SQLite.SQLiteCommand(sql, conn))
- {
- cmd.Parameters.AddWithValue("@seq", seq);
- cmd.Parameters.AddWithValue("@th", tuhao);
- cmd.Parameters.AddWithValue("@taishu", "1");
- cmd.Parameters.AddWithValue("@frameHandle", frameHandle ?? "");
- cmd.Parameters.AddWithValue("@textHandle", textHandle ?? "");
- cmd.ExecuteNonQuery();
- }
- }
- }
-
- private void DeleteTuhao(string projectId, string tuhao)
- {
- if (string.IsNullOrWhiteSpace(projectId)) return;
- string dbPath = GetQuoteDbPath(projectId);
- if (!File.Exists(dbPath)) return;
- using (var conn = new System.Data.SQLite.SQLiteConnection(GetConnString(dbPath)))
- {
- conn.Open();
- var tablesToDrop = new List();
- string selIdx = "SELECT 实际表名 FROM 表索引 WHERE 图号 = @th;";
- using (var sel = new System.Data.SQLite.SQLiteCommand(selIdx, conn))
- {
- sel.Parameters.AddWithValue("@th", tuhao);
- using (var reader = sel.ExecuteReader())
- {
- while (reader.Read())
- {
- string realTbl = reader.IsDBNull(0) ? "" : reader.GetString(0);
- if (!string.IsNullOrWhiteSpace(realTbl)) tablesToDrop.Add(realTbl);
- }
- }
- }
- foreach (string realTbl in tablesToDrop)
- {
- using (var dropCmd = new System.Data.SQLite.SQLiteCommand(
- "DROP TABLE IF EXISTS \"" + realTbl + "\";", conn))
- dropCmd.ExecuteNonQuery();
- }
- using (var cmd = new System.Data.SQLite.SQLiteCommand(
- "DELETE FROM " + TuhaoTableName + " WHERE 图号 = @th;", conn))
- {
- cmd.Parameters.AddWithValue("@th", tuhao);
- cmd.ExecuteNonQuery();
- }
- using (var cmd = new System.Data.SQLite.SQLiteCommand(
- "DELETE FROM 表索引 WHERE 图号 = @th;", conn))
- {
- cmd.Parameters.AddWithValue("@th", tuhao);
- cmd.ExecuteNonQuery();
- }
- }
- }
-
- private void InsertXianghao(string projectId, string tuhao, string xianghao, string frameHandle, string textHandle)
- {
- if (string.IsNullOrWhiteSpace(projectId) || string.IsNullOrWhiteSpace(tuhao)) return;
- EnsureQuoteDbExists(projectId);
- string dbPath = GetQuoteDbPath(projectId);
- string tblName = GetXianghaoTableByIndex(projectId, tuhao);
- if (string.IsNullOrEmpty(tblName))
- {
- tblName = GetNextTableId(projectId, "xh");
- CreateXianghaoTable(projectId, tblName);
- AddTableIndex(projectId, "箱号", tuhao, "", tblName);
- }
- // ★ 确保旧箱号表也有"箱名"/"框Handle"/"文本Handle"列
- using (var connEns = new System.Data.SQLite.SQLiteConnection(GetConnString(dbPath)))
- {
- connEns.Open();
- EnsureColumns(connEns, "\"" + tblName + "\"", new[] { "箱名", "框Handle", "文本Handle" });
- }
- string seq = GetXianghaoCount(projectId, tuhao);
- string sql = "INSERT INTO \"" + tblName + "\"" +
- " (序号, 箱号, 箱名, 单位, 数量," +
- " 单台成本, 成本价, 单台报出, 报出价, 利润, 利润率, 毛利率, 框Handle, 文本Handle) " +
- "VALUES (@seq, @xh, @xm, @unit, @shuliang, 0, 0, 0, 0, 0, 0, 0, @frameHandle, @textHandle);";
- using (var conn = new System.Data.SQLite.SQLiteConnection(GetConnString(dbPath)))
- {
- conn.Open();
- using (var cmd = new System.Data.SQLite.SQLiteCommand(sql, conn))
- {
- cmd.Parameters.AddWithValue("@seq", seq);
- cmd.Parameters.AddWithValue("@xh", xianghao);
- cmd.Parameters.AddWithValue("@xm", ""); // 箱名默认空,由用户在表格里填写
- cmd.Parameters.AddWithValue("@unit", "台");
- cmd.Parameters.AddWithValue("@shuliang", "1");
- cmd.Parameters.AddWithValue("@frameHandle", frameHandle ?? "");
- cmd.Parameters.AddWithValue("@textHandle", textHandle ?? "");
- cmd.ExecuteNonQuery();
- }
- }
- }
-
- private void DeleteXianghao(string projectId, string tuhao, string xianghao)
- {
- if (string.IsNullOrWhiteSpace(projectId) || string.IsNullOrWhiteSpace(tuhao)) return;
- string dbPath = GetQuoteDbPath(projectId);
- if (!File.Exists(dbPath)) return;
- string yjTbl = GetYuanjianTableByIndex(projectId, tuhao, xianghao);
- using (var conn = new System.Data.SQLite.SQLiteConnection(GetConnString(dbPath)))
- {
- conn.Open();
- if (!string.IsNullOrEmpty(yjTbl))
- {
- using (var cmd = new System.Data.SQLite.SQLiteCommand(
- "DROP TABLE IF EXISTS \"" + yjTbl + "\";", conn))
- cmd.ExecuteNonQuery();
- }
- string xhTbl = GetXianghaoTableByIndex(projectId, tuhao);
- if (!string.IsNullOrEmpty(xhTbl))
- {
- using (var cmd = new System.Data.SQLite.SQLiteCommand(
- "DELETE FROM \"" + xhTbl + "\" WHERE 箱号 = @xh;", conn))
- {
- cmd.Parameters.AddWithValue("@xh", xianghao);
- cmd.ExecuteNonQuery();
- }
- }
- }
- RemoveTableIndex(projectId, "元件", tuhao, xianghao);
- }
-
- private void InsertYuanjian(string projectId, string tuhao, string xianghao, string name)
- {
- if (string.IsNullOrWhiteSpace(projectId) || string.IsNullOrWhiteSpace(tuhao) || string.IsNullOrWhiteSpace(xianghao)) return;
- EnsureQuoteDbExists(projectId);
- string dbPath = GetQuoteDbPath(projectId);
- EnsureYuanjianTableExists(projectId, tuhao, xianghao);
- string tblName = GetYuanjianTableByIndex(projectId, tuhao, xianghao);
- if (string.IsNullOrEmpty(tblName))
- {
- System.Windows.Forms.MessageBox.Show("元件表创建失败(表索引未注册),图号=" + tuhao + " 箱号=" + xianghao);
- return;
- }
- string seq;
- using (var conn0 = new System.Data.SQLite.SQLiteConnection(GetConnString(dbPath)))
- {
- conn0.Open();
- using (var c = new System.Data.SQLite.SQLiteCommand(
- "SELECT COUNT(*) FROM \"" + tblName + "\";", conn0))
- {
- int n = 0;
- object o = c.ExecuteScalar();
- if (o != null && o != DBNull.Value) n = Convert.ToInt32(o);
- seq = (n + 1).ToString();
- }
- }
- string sql = "INSERT INTO \"" + tblName + "\"" +
- " (序号, 元件名称, 单位, 数量, 采购系数, 报出系数," +
- " 表价, 采购单价, 采购价, 报出单价, 报出价, 类型) " +
- "VALUES (@seq, @name, @unit, @shuliang, @caigou, @baochu, 0, 0, 0, 0, 0, '元件');";
- using (var conn = new System.Data.SQLite.SQLiteConnection(GetConnString(dbPath)))
- {
- conn.Open();
- using (var cmd = new System.Data.SQLite.SQLiteCommand(sql, conn))
- {
- cmd.Parameters.AddWithValue("@seq", seq);
- cmd.Parameters.AddWithValue("@name", name);
- cmd.Parameters.AddWithValue("@unit", "只");
- cmd.Parameters.AddWithValue("@shuliang", "1");
- cmd.Parameters.AddWithValue("@caigou", "1");
- cmd.Parameters.AddWithValue("@baochu", "1");
- cmd.ExecuteNonQuery();
- }
- }
- }
-
- /// 扒元件专用:把文本写到【规格】列(元件名称留空),同时写入框Handle。
- private void InsertYuanjianSpec(string projectId, string tuhao, string xianghao, string spec, string frameHandle)
- {
- if (string.IsNullOrWhiteSpace(projectId) || string.IsNullOrWhiteSpace(tuhao) || string.IsNullOrWhiteSpace(xianghao)) return;
- EnsureQuoteDbExists(projectId);
- string dbPath = GetQuoteDbPath(projectId);
- EnsureYuanjianTableExists(projectId, tuhao, xianghao);
- string tblName = GetYuanjianTableByIndex(projectId, tuhao, xianghao);
- if (string.IsNullOrEmpty(tblName))
- {
- System.Windows.Forms.MessageBox.Show("元件表创建失败(表索引未注册),图号=" + tuhao + " 箱号=" + xianghao);
- return;
- }
- string seq;
- using (var conn0 = new System.Data.SQLite.SQLiteConnection(GetConnString(dbPath)))
- {
- conn0.Open();
- using (var c = new System.Data.SQLite.SQLiteCommand(
- "SELECT COUNT(*) FROM \"" + tblName + "\";", conn0))
- {
- int n = 0;
- object o = c.ExecuteScalar();
- if (o != null && o != DBNull.Value) n = Convert.ToInt32(o);
- seq = (n + 1).ToString();
- }
- }
- // ★ 写入"规格"列 + 框Handle
- string sql = "INSERT INTO \"" + tblName + "\"" +
- " (序号, 元件名称, 规格, 单位, 数量, 采购系数, 报出系数," +
- " 表价, 采购单价, 采购价, 报出单价, 报出价, 类型, 框Handle) " +
- "VALUES (@seq, '', @spec, @unit, @shuliang, @caigou, @baochu, 0, 0, 0, 0, 0, '元件', @frameHandle);";
- using (var conn = new System.Data.SQLite.SQLiteConnection(GetConnString(dbPath)))
- {
- conn.Open();
- using (var cmd = new System.Data.SQLite.SQLiteCommand(sql, conn))
- {
- cmd.Parameters.AddWithValue("@seq", seq);
- cmd.Parameters.AddWithValue("@spec", spec);
- cmd.Parameters.AddWithValue("@unit", "只");
- cmd.Parameters.AddWithValue("@shuliang", "1");
- cmd.Parameters.AddWithValue("@caigou", "1");
- cmd.Parameters.AddWithValue("@baochu", "1");
- cmd.Parameters.AddWithValue("@frameHandle", frameHandle ?? "");
- cmd.ExecuteNonQuery();
- }
- }
- }
-
- private void DeleteYuanjian(string projectId, string tuhao, string xianghao, string seq)
- {
- if (string.IsNullOrWhiteSpace(projectId) || string.IsNullOrWhiteSpace(xianghao)) return;
- string dbPath = GetQuoteDbPath(projectId);
- if (!File.Exists(dbPath)) return;
- string realTbl = GetYuanjianTableByIndex(projectId, tuhao, xianghao);
- if (string.IsNullOrEmpty(realTbl)) return;
- using (var conn = new System.Data.SQLite.SQLiteConnection(GetConnString(dbPath)))
- {
- conn.Open();
- using (var cmd = new System.Data.SQLite.SQLiteCommand(
- "DELETE FROM \"" + realTbl + "\" WHERE 序号 = @seq;", conn))
- {
- cmd.Parameters.AddWithValue("@seq", seq);
- cmd.ExecuteNonQuery();
- }
- }
- }
-
- // ============================================================
- // 数据库回写:把内存 DataTable 的改动写回报价库
- // ============================================================
-
- private void SaveTableToDatabase(DataTable table, string projectId, string tableName,
- string whereClause, Dictionary whereParams, bool force = false)
- {
- if (table == null || string.IsNullOrWhiteSpace(projectId)) return;
- string dbPath = GetQuoteDbPath(projectId);
- if (!File.Exists(dbPath)) return;
-
- DataGridView dgv = null;
- if (table == _tuhaoTable) dgv = this.advancedDataGridView9;
- else if (table == _xianghaoTable) dgv = this.advancedDataGridView4;
- else if (table == _yuanjianTable) dgv = this.advancedDataGridView5;
- if (dgv != null) dgv.EndEdit();
-
- if (table.Rows.Count == 0) return;
- if (!force && table.GetChanges() == null) return;
-
- using (var conn = new System.Data.SQLite.SQLiteConnection(GetConnString(dbPath)))
- {
- conn.Open();
- using (var tx = conn.BeginTransaction())
- {
- string delSql = "DELETE FROM " + tableName;
- if (!string.IsNullOrWhiteSpace(whereClause)) delSql += " WHERE " + whereClause;
- delSql += ";";
- using (var delCmd = new System.Data.SQLite.SQLiteCommand(delSql, conn))
- {
- if (whereParams != null)
- {
- foreach (var kv in whereParams) delCmd.Parameters.AddWithValue(kv.Key, kv.Value);
- }
- delCmd.ExecuteNonQuery();
- }
- if (table.Rows.Count > 0)
- {
- var colNames = new List(table.Columns.Count);
- foreach (DataColumn c in table.Columns) colNames.Add(c.ColumnName);
- var paramList = new List(colNames.Count);
- foreach (string c in colNames) paramList.Add("@" + c);
- string insertSql = "INSERT INTO " + tableName + " (" +
- string.Join(", ", colNames.ToArray()) + ") VALUES (" +
- string.Join(", ", paramList.ToArray()) + ");";
- using (var insCmd = new System.Data.SQLite.SQLiteCommand(insertSql, conn))
- {
- foreach (string col in colNames)
- insCmd.Parameters.Add("@" + col, System.Data.DbType.String);
- try { insCmd.Prepare(); } catch { }
- foreach (DataRow row in table.Rows)
- {
- if (row.RowState == DataRowState.Deleted) continue;
- foreach (string col in colNames)
- {
- object v = row[col];
- insCmd.Parameters["@" + col].Value =
- (v == null || v == DBNull.Value) ? "" : v.ToString();
- }
- insCmd.ExecuteNonQuery();
- }
- }
- }
- tx.Commit();
- }
- table.AcceptChanges();
- }
- }
-
- private void SaveTuhaoTableIfDirty()
- {
- SaveTableToDatabase(_tuhaoTable, _currentProjectId, TuhaoTableName, null, null);
- }
-
- private void SaveXianghaoTableIfDirty()
- {
- if (_xianghaoTable == null || string.IsNullOrWhiteSpace(_xianghaoTable.TableName)) return;
- SaveTableToDatabase(_xianghaoTable, _currentProjectId,
- "\"" + _xianghaoTable.TableName + "\"", null, null);
- }
-
- private void SaveYuanjianTableIfDirty()
- {
- if (_yuanjianTable == null || string.IsNullOrWhiteSpace(_yuanjianTable.TableName)) return;
- SaveTableToDatabase(_yuanjianTable, _currentProjectId,
- "\"" + _yuanjianTable.TableName + "\"", null, null);
- }
-
- private void SaveAllQuoteTablesIfDirty(bool force = true)
- {
- if (string.IsNullOrWhiteSpace(_currentProjectId)) return;
- try
- {
- if (this.advancedDataGridView5 != null) this.advancedDataGridView5.EndEdit();
- if (this.advancedDataGridView4 != null) this.advancedDataGridView4.EndEdit();
- if (this.advancedDataGridView9 != null) this.advancedDataGridView9.EndEdit();
- if (_yuanjianTable != null && !string.IsNullOrWhiteSpace(_yuanjianTable.TableName))
- SaveTableToDatabase(_yuanjianTable, _currentProjectId,
- "\"" + _yuanjianTable.TableName + "\"", null, null, force);
- if (_xianghaoTable != null && !string.IsNullOrWhiteSpace(_xianghaoTable.TableName))
- SaveTableToDatabase(_xianghaoTable, _currentProjectId,
- "\"" + _xianghaoTable.TableName + "\"", null, null, force);
- if (_tuhaoTable != null)
- SaveTableToDatabase(_tuhaoTable, _currentProjectId, TuhaoTableName, null, null, force);
- }
- catch { }
- }
-
- private void SaveAllToDatabaseSilent()
- {
- if (string.IsNullOrWhiteSpace(_currentProjectId)) return;
- if (this.advancedDataGridView5 != null) this.advancedDataGridView5.EndEdit();
- if (this.advancedDataGridView4 != null) this.advancedDataGridView4.EndEdit();
- if (this.advancedDataGridView9 != null) this.advancedDataGridView9.EndEdit();
- try
- {
- if (_tuhaoTable != null)
- SaveTableToDatabase(_tuhaoTable, _currentProjectId, TuhaoTableName, null, null, true);
- foreach (var kv in _xianghaoCache)
- if (kv.Value != null && !string.IsNullOrWhiteSpace(kv.Value.TableName))
- SaveTableToDatabase(kv.Value, _currentProjectId,
- "\"" + kv.Value.TableName + "\"", null, null, true);
- foreach (var kv in _yuanjianCache)
- if (kv.Value != null && !string.IsNullOrWhiteSpace(kv.Value.TableName))
- SaveTableToDatabase(kv.Value, _currentProjectId,
- "\"" + kv.Value.TableName + "\"", null, null, true);
- RecalcAllFromDatabase(_currentProjectId);
- ReloadProjectsFromDatabase();
- }
- catch { }
- }
-
- // ============================================================
- // 联动刷新:项目 → 图号 → 箱号 → 元件
- // ============================================================
-
- private void ReloadProjectsFromDatabase()
- {
- string dbPath = GetDbFullPath(ProjectsDbPath);
- if (!File.Exists(dbPath)) return;
-
- var indexTable = new DataTable();
- using (var conn = new System.Data.SQLite.SQLiteConnection(GetConnString(dbPath)))
- {
- conn.Open();
- string sql = "SELECT 项目编号, 箱柜台数, 成本总价, 报出总价, 利润, 利润率 FROM " +
- ProjectsTableName + " ORDER BY rowid;";
- using (var adapter = new System.Data.SQLite.SQLiteDataAdapter(sql, conn))
- adapter.Fill(indexTable);
- }
-
- var table = new DataTable();
- table.Columns.Add("项目编号", typeof(string));
- table.Columns.Add("项目名称", typeof(string));
- table.Columns.Add("客户名称", typeof(string));
- table.Columns.Add("客户地址", typeof(string));
- table.Columns.Add("联系人", typeof(string));
- table.Columns.Add("联系电话", typeof(string));
- table.Columns.Add("项目日期", typeof(string));
- table.Columns.Add("箱柜台数", typeof(string));
- table.Columns.Add("成本总价", typeof(string));
- table.Columns.Add("报出总价", typeof(string));
- table.Columns.Add("利润", typeof(string));
- table.Columns.Add("利润率", typeof(string));
- table.Columns.Add("备注", typeof(string));
-
- foreach (DataRow idxRow in indexTable.Rows)
- {
- string projectId = idxRow["项目编号"] == null ? "" : idxRow["项目编号"].ToString().Trim();
- if (string.IsNullOrEmpty(projectId)) continue;
- var info = GetProjectInfoFromQuoteDb(projectId);
- var row = table.NewRow();
- row["项目编号"] = projectId;
- row["项目名称"] = GetInfoOrDefault(info, "项目名称");
- row["客户名称"] = GetInfoOrDefault(info, "客户名称");
- row["客户地址"] = GetInfoOrDefault(info, "客户地址");
- row["联系人"] = GetInfoOrDefault(info, "联系人");
- row["联系电话"] = GetInfoOrDefault(info, "联系电话");
- row["项目日期"] = GetInfoOrDefault(info, "项目日期");
- row["备注"] = GetInfoOrDefault(info, "备注");
- row["箱柜台数"] = idxRow["箱柜台数"] == null ? "" : idxRow["箱柜台数"].ToString();
- row["成本总价"] = idxRow["成本总价"] == null ? "" : idxRow["成本总价"].ToString();
- row["报出总价"] = idxRow["报出总价"] == null ? "" : idxRow["报出总价"].ToString();
- row["利润"] = idxRow["利润"] == null ? "" : idxRow["利润"].ToString();
- row["利润率"] = idxRow["利润率"] == null ? "" : idxRow["利润率"].ToString();
- table.Rows.Add(row);
- }
-
- this.advancedDataGridView6.AutoGenerateColumns = false;
- table = ConvertFormulaColumnsToDouble(table);
- this.advancedDataGridView6.DataSource = table;
- }
-
- private static string GetInfoOrDefault(Dictionary info, string key)
- {
- if (info == null) return "";
- string v;
- return info.TryGetValue(key, out v) ? (v ?? "") : "";
- }
-
- private void ReloadTuhaoByProject(string projectId)
- {
- bool outerGuard = _isReloading;
- _isReloading = true;
- try
- {
- if (string.IsNullOrWhiteSpace(projectId) || !File.Exists(GetQuoteDbPath(projectId)))
- {
- this.advancedDataGridView9.DataSource = null;
- _tuhaoTable = null;
- _currentTuhao = "";
- ReloadXianghaoByTuhao("", "");
- return;
- }
- string dbPath = GetQuoteDbPath(projectId);
- string sql = "SELECT * FROM " + TuhaoTableName + " ORDER BY CAST(序号 AS INTEGER);";
- var table = new DataTable();
- using (var conn = new System.Data.SQLite.SQLiteConnection(GetConnString(dbPath)))
- {
- conn.Open();
- using (var cmd = new System.Data.SQLite.SQLiteCommand(sql, conn))
- using (var adapter = new System.Data.SQLite.SQLiteDataAdapter(cmd))
- adapter.Fill(table);
- }
- table = ConvertFormulaColumnsToDouble(table);
- this.advancedDataGridView9.AutoGenerateColumns = false;
- this.advancedDataGridView9.DataSource = table;
- _tuhaoTable = table;
- ApplyPriceFormat(this.advancedDataGridView9, _单台小数位文本);
-
- _currentTuhao = "";
- if (this.advancedDataGridView9.Rows.Count > 0)
- {
- SetCurrentCell(this.advancedDataGridView9, 0);
- _currentTuhao = GetCellValueAsString(this.advancedDataGridView9.Rows[0], "图号");
- }
- ReloadXianghaoByTuhao(_currentProjectId, _currentTuhao);
- }
- finally { _isReloading = outerGuard; }
- }
-
- private void ReloadXianghaoByTuhao(string projectId, string tuhao)
- {
- bool outerGuard = _isReloading;
- _isReloading = true;
- try
- {
- if (this.advancedDataGridView4 != null) this.advancedDataGridView4.EndEdit();
-
- if (string.IsNullOrWhiteSpace(projectId) || string.IsNullOrWhiteSpace(tuhao) ||
- !File.Exists(GetQuoteDbPath(projectId)))
- {
- this.advancedDataGridView4.DataSource = null;
- _xianghaoTable = null;
- _currentXianghao = "";
- ReloadYuanjianByXianghao("", "", "");
- return;
- }
- string dbPath = GetQuoteDbPath(projectId);
- string realTbl = GetXianghaoTableByIndex(projectId, tuhao);
- if (string.IsNullOrEmpty(realTbl))
- {
- realTbl = GetNextTableId(projectId, "xh");
- CreateXianghaoTable(projectId, realTbl);
- AddTableIndex(projectId, "箱号", tuhao, "", realTbl);
- }
-
- DataTable table;
- // ★ 禁用缓存命中:每次都从数据库重新读取,确保删除/变更能及时反映到UI
- if (_xianghaoCache.ContainsKey(tuhao)) _xianghaoCache.Remove(tuhao);
- {
- string sql = "SELECT * FROM \"" + realTbl + "\" ORDER BY CAST(序号 AS INTEGER);";
- table = new DataTable();
- using (var conn = new System.Data.SQLite.SQLiteConnection(GetConnString(dbPath)))
- {
- conn.Open();
- // ★ 老库结构兼容:箱号表可能还没有"箱名"列,读取前幂等补列(表格绑定依赖该列)
- EnsureColumns(conn, "\"" + realTbl + "\"", new[] { "箱名" });
- using (var cmd = new System.Data.SQLite.SQLiteCommand(sql, conn))
- using (var adapter = new System.Data.SQLite.SQLiteDataAdapter(cmd))
- adapter.Fill(table);
- }
- table = ConvertFormulaColumnsToDouble(table);
- table.TableName = realTbl;
- _xianghaoCache[tuhao] = table;
- }
-
- this.advancedDataGridView4.AutoGenerateColumns = false;
- this.advancedDataGridView4.DataSource = table;
- _xianghaoTable = table;
- ApplyPriceFormat(this.advancedDataGridView4, _单台小数位文本);
-
- _currentXianghao = "";
- if (this.advancedDataGridView4.Rows.Count > 0)
- {
- SetCurrentCell(this.advancedDataGridView4, 0);
- _currentXianghao = GetCellValueAsString(this.advancedDataGridView4.Rows[0], "箱号");
- }
- ReloadYuanjianByXianghao(_currentProjectId, _currentTuhao, _currentXianghao);
- }
- finally { _isReloading = outerGuard; }
- }
-
- private void ReloadYuanjianByXianghao(string projectId, string tuhao, string xianghao)
- {
- if (this.advancedDataGridView5 != null) this.advancedDataGridView5.EndEdit();
-
- if (string.IsNullOrWhiteSpace(projectId) || string.IsNullOrWhiteSpace(tuhao) ||
- string.IsNullOrWhiteSpace(xianghao) || !File.Exists(GetQuoteDbPath(projectId)))
- {
- this.advancedDataGridView5.DataSource = null;
- _yuanjianTable = null;
- return;
- }
- string realTbl = GetYuanjianTableByIndex(projectId, tuhao, xianghao);
- string dbPath = GetQuoteDbPath(projectId);
- string cacheKey = tuhao + "\n" + xianghao;
- DataTable table;
- // ★ 禁用缓存命中:每次都从数据库重新读取,确保删除/变更能及时反映到UI
- if (_yuanjianCache.ContainsKey(cacheKey)) _yuanjianCache.Remove(cacheKey);
- {
- table = new DataTable();
- if (!string.IsNullOrEmpty(realTbl))
- {
- string sql = "SELECT * FROM \"" + realTbl + "\" ORDER BY CAST(序号 AS INTEGER);";
- using (var conn = new System.Data.SQLite.SQLiteConnection(GetConnString(dbPath)))
- {
- conn.Open();
- using (var cmd = new System.Data.SQLite.SQLiteCommand(sql, conn))
- using (var adapter = new System.Data.SQLite.SQLiteDataAdapter(cmd))
- adapter.Fill(table);
- }
- table = ConvertFormulaColumnsToDouble(table);
- }
- table.TableName = realTbl;
- _yuanjianCache[cacheKey] = table;
- }
- this.advancedDataGridView5.AutoGenerateColumns = false;
- this.advancedDataGridView5.DataSource = table;
- _yuanjianTable = table;
- ApplyPriceFormat(this.advancedDataGridView5, _单台小数位文本);
- }
-
- // ============================================================
- // 公式重算
- // ============================================================
-
- private void RecalcYuanjianRow(DataGridViewRow row)
- {
- if (row == null) return;
- decimal biaoJia = GetCellDecimal(row, "表价");
- decimal caiGouXiShu = GetCellDecimal(row, "采购系数");
- decimal baoChuXiShu = GetCellDecimal(row, "报出系数");
- decimal shuLiang = GetCellDecimal(row, "数量");
- decimal caiGouDanJia = biaoJia * caiGouXiShu;
- decimal caiGouJia = caiGouDanJia * shuLiang;
- decimal baoChuDanJia = caiGouDanJia * baoChuXiShu;
- decimal baoChuJia = baoChuDanJia * shuLiang;
- SetCell(row, "采购单价", caiGouDanJia);
- SetCell(row, "采购价", caiGouJia);
- SetCell(row, "报出单价", baoChuDanJia);
- SetCell(row, "报出价", baoChuJia);
- }
-
- private void RecalcXianghaoRowFromYuanjian(DataGridViewRow xianghaoRow)
- {
- if (xianghaoRow == null) return;
- decimal sumCaiGouJia = 0m;
- decimal sumBaoChuJia = 0m;
- DataGridView dgv5 = this.advancedDataGridView5;
- if (dgv5 != null && dgv5.Rows != null)
- {
- foreach (DataGridViewRow yj in dgv5.Rows)
- {
- if (yj == null || yj.IsNewRow) continue;
- sumCaiGouJia += GetCellDecimal(yj, "采购价");
- sumBaoChuJia += GetCellDecimal(yj, "报出价");
- }
- }
- decimal shuLiang = GetCellDecimal(xianghaoRow, "数量");
- decimal danTaiChengBen = sumCaiGouJia;
- decimal chengBenJia = danTaiChengBen * shuLiang;
- decimal danTaiBaoChu = sumBaoChuJia;
- decimal baoChuJia = danTaiBaoChu * shuLiang;
- decimal liRun = baoChuJia - chengBenJia;
- decimal liRunLv = chengBenJia == 0m ? 0m : liRun / chengBenJia;
- decimal maoLiLv = baoChuJia == 0m ? 0m : liRun / baoChuJia;
- SetCell(xianghaoRow, "单台成本", danTaiChengBen);
- SetCell(xianghaoRow, "成本价", chengBenJia);
- SetCell(xianghaoRow, "单台报出", danTaiBaoChu);
- SetCell(xianghaoRow, "报出价", baoChuJia);
- SetCell(xianghaoRow, "利润", liRun);
- SetCell(xianghaoRow, "利润率", liRunLv);
- SetCell(xianghaoRow, "毛利率", maoLiLv);
- }
-
- private void RecalcTuhaoRowFromXianghao(DataGridViewRow tuhaoRow)
- {
- if (tuhaoRow == null) return;
- decimal sumShuLiang = 0m;
- decimal sumBaoChuJia = 0m;
- decimal sumChengBenJia = 0m;
- DataGridView dgv4 = this.advancedDataGridView4;
- if (dgv4 != null && dgv4.Rows != null)
- {
- foreach (DataGridViewRow xh in dgv4.Rows)
- {
- if (xh == null || xh.IsNewRow) continue;
- sumShuLiang += GetCellDecimal(xh, "数量");
- sumBaoChuJia += GetCellDecimal(xh, "报出价");
- sumChengBenJia += GetCellDecimal(xh, "成本价");
- }
- }
- decimal taiShu = GetCellDecimal(tuhaoRow, "台数");
- decimal xiangGuiShuLiang = sumShuLiang;
- decimal danJia = sumBaoChuJia;
- decimal zongJia = danJia * taiShu;
- decimal chengBenZongJia = sumChengBenJia * taiShu;
- decimal maoLi = zongJia - chengBenZongJia;
- decimal maoLiLv = zongJia == 0m ? 0m : maoLi / zongJia;
- SetCell(tuhaoRow, "箱柜数量", xiangGuiShuLiang);
- SetCell(tuhaoRow, "单价", danJia);
- SetCell(tuhaoRow, "总价", zongJia);
- SetCell(tuhaoRow, "成本总价", chengBenZongJia);
- SetCell(tuhaoRow, "毛利", maoLi);
- SetCell(tuhaoRow, "毛利率", maoLiLv);
- RecalcProjectRowFromTuhao();
- }
-
- private void RecalcProjectRowFromTuhao()
- {
- if (string.IsNullOrWhiteSpace(_currentProjectId)) return;
- decimal sumXiangGuiShuLiang = 0m;
- decimal sumChengBenZongJia = 0m;
- decimal sumZongJia = 0m;
- DataGridView dgv9 = this.advancedDataGridView9;
- if (dgv9 != null && dgv9.Rows != null)
- {
- foreach (DataGridViewRow th in dgv9.Rows)
- {
- if (th == null || th.IsNewRow) continue;
- sumXiangGuiShuLiang += GetCellDecimal(th, "箱柜数量");
- sumChengBenZongJia += GetCellDecimal(th, "成本总价");
- sumZongJia += GetCellDecimal(th, "总价");
- }
- }
- decimal xiangGuiTaiShu = sumXiangGuiShuLiang;
- decimal baoChuZongJia = sumZongJia;
- decimal liRun = baoChuZongJia - sumChengBenZongJia;
- decimal liRunLv = sumChengBenZongJia == 0m ? 0m : liRun / sumChengBenZongJia;
- DataGridViewRow projRow = FindProjectRowById(_currentProjectId);
- if (projRow != null)
- {
- SetCell(projRow, "箱柜台数", xiangGuiTaiShu);
- SetCell(projRow, "成本总价", sumChengBenZongJia);
- SetCell(projRow, "报出总价", baoChuZongJia);
- SetCell(projRow, "利润", liRun);
- SetCell(projRow, "利润率", liRunLv);
- }
- }
-
- private void RecalcAllAfterReload()
- {
- if (string.IsNullOrWhiteSpace(_currentProjectId)) return;
- _isRecalculating = true;
- _isReloading = true;
- try
- {
- DataGridView dgv5 = this.advancedDataGridView5;
- if (dgv5 != null && dgv5.Rows != null)
- {
- foreach (DataGridViewRow yj in dgv5.Rows)
- {
- if (yj == null || yj.IsNewRow) continue;
- RecalcYuanjianRow(yj);
- }
- }
- var xhRow = GetFirstSelectedRow(this.advancedDataGridView4);
- if (xhRow != null) RecalcXianghaoRowFromYuanjian(xhRow);
- var thRow = GetFirstSelectedRow(this.advancedDataGridView9);
- if (thRow != null) RecalcTuhaoRowFromXianghao(thRow);
-
- SaveYuanjianTableIfDirty();
- SaveXianghaoTableIfDirty();
- SaveTuhaoTableIfDirty();
- if (_yuanjianTable != null) _yuanjianTable.AcceptChanges();
- if (_xianghaoTable != null) _xianghaoTable.AcceptChanges();
- if (_tuhaoTable != null) _tuhaoTable.AcceptChanges();
- }
- finally
- {
- _isRecalculating = false;
- _lastRecalcTime = DateTime.Now;
- _isReloading = false;
- }
- }
-
- // ---------- 全量数据库重算 ----------
-
- private class TuhaoCalcRow { public long RowId; public decimal TaiShu; public string Tuhao; }
- private class XianghaoCalcRow { public long RowId; public decimal ShuLiang; public string Xianghao; }
-
- private void RecalcAllFromDatabase(string projectId)
- {
- if (string.IsNullOrWhiteSpace(projectId)) projectId = _currentProjectId;
- if (string.IsNullOrWhiteSpace(projectId)) return;
- string dbPath = GetQuoteDbPath(projectId);
- if (!File.Exists(dbPath)) return;
- try
- {
- using (var conn = new System.Data.SQLite.SQLiteConnection(GetConnString(dbPath)))
- {
- conn.Open();
- var tuhaoRows = new List();
- string selTuhao = "SELECT rowid, 台数, 图号 FROM " + TuhaoTableName + " ORDER BY rowid;";
- using (var sel = new System.Data.SQLite.SQLiteCommand(selTuhao, conn))
- using (var rdr = sel.ExecuteReader())
- {
- while (rdr.Read())
- {
- var t = new TuhaoCalcRow();
- t.RowId = rdr.GetInt64(0);
- t.TaiShu = ParseDecimal(rdr.IsDBNull(1) ? "" : rdr.GetValue(1));
- t.Tuhao = rdr.IsDBNull(2) ? "" : rdr.GetValue(2).ToString().Trim();
- tuhaoRows.Add(t);
- }
- }
- decimal sumProjXiangGui = 0m;
- decimal sumProjChengBen = 0m;
- decimal sumProjZongJia = 0m;
- foreach (var t in tuhaoRows)
- {
- if (string.IsNullOrWhiteSpace(t.Tuhao)) continue;
- try
- {
- string xhTable = GetXianghaoTableByIndex(t.Tuhao, conn);
- if (string.IsNullOrEmpty(xhTable))
- {
- UpdateTuhaoCalc(conn, t.RowId, 0m, 0m, 0m, 0m, 0m, 0m);
- continue;
- }
- string xhQuoted = "\"" + xhTable + "\"";
- decimal sumThXiangGuiShuLiang = 0m;
- decimal sumThBaoChuJia = 0m;
- decimal sumThChengBenJia = 0m;
- var xhRows = new List();
- string selXh = "SELECT rowid, 数量, 箱号 FROM " + xhQuoted + " ORDER BY rowid;";
- using (var sel = new System.Data.SQLite.SQLiteCommand(selXh, conn))
- using (var rdr = sel.ExecuteReader())
- {
- while (rdr.Read())
- {
- var x = new XianghaoCalcRow();
- x.RowId = rdr.GetInt64(0);
- x.ShuLiang = ParseDecimal(rdr.IsDBNull(1) ? "" : rdr.GetValue(1));
- x.Xianghao = rdr.IsDBNull(2) ? "" : rdr.GetValue(2).ToString();
- xhRows.Add(x);
- }
- }
- foreach (var x in xhRows)
- {
- try
- {
- sumThXiangGuiShuLiang += x.ShuLiang;
- string yjTable = GetYuanjianTableByIndex(t.Tuhao, x.Xianghao, conn);
- decimal sumCaiGou = 0m;
- decimal sumBaoChu = 0m;
- if (!string.IsNullOrEmpty(yjTable))
- {
- string yjQuoted = "\"" + yjTable + "\"";
- string selYj = "SELECT rowid, 表价, 采购系数, 报出系数, 数量 FROM " +
- yjQuoted + " ORDER BY rowid;";
- using (var sel = new System.Data.SQLite.SQLiteCommand(selYj, conn))
- using (var sr = sel.ExecuteReader())
- {
- while (sr.Read())
- {
- long yjRid = sr.GetInt64(0);
- decimal yjBiaoJia = ParseDecimal(sr.IsDBNull(1) ? "" : sr.GetValue(1));
- decimal yjCgXs = ParseDecimal(sr.IsDBNull(2) ? "" : sr.GetValue(2));
- decimal yjBcXs = ParseDecimal(sr.IsDBNull(3) ? "" : sr.GetValue(3));
- decimal yjSl = ParseDecimal(sr.IsDBNull(4) ? "" : sr.GetValue(4));
- decimal yjCaiGouDanJia = yjBiaoJia * yjCgXs;
- decimal yjCaiGouJia = yjCaiGouDanJia * yjSl;
- decimal yjBaoChuDanJia = yjCaiGouDanJia * yjBcXs;
- decimal yjBaoChuJia = yjBaoChuDanJia * yjSl;
- sumCaiGou += yjCaiGouJia;
- sumBaoChu += yjBaoChuJia;
- UpdateYuanjianCalc(conn, yjQuoted, yjRid,
- yjCaiGouDanJia, yjCaiGouJia, yjBaoChuDanJia, yjBaoChuJia);
- }
- }
- }
- decimal danTaiChengBen = sumCaiGou;
- decimal chengBenJia = danTaiChengBen * x.ShuLiang;
- decimal danTaiBaoChu = sumBaoChu;
- decimal baoChuJia = danTaiBaoChu * x.ShuLiang;
- decimal xhLiRun = baoChuJia - chengBenJia;
- decimal xhLiRunLv = chengBenJia == 0m ? 0m : xhLiRun / chengBenJia;
- decimal xhMaoLiLv = baoChuJia == 0m ? 0m : xhLiRun / baoChuJia;
- sumThBaoChuJia += baoChuJia;
- sumThChengBenJia += chengBenJia;
- UpdateXianghaoCalc(conn, xhQuoted, x.RowId,
- danTaiChengBen, chengBenJia, danTaiBaoChu, baoChuJia,
- xhLiRun, xhLiRunLv, xhMaoLiLv);
- }
- catch { }
- }
- decimal xiangGuiShuLiang = sumThXiangGuiShuLiang;
- decimal danJia = sumThBaoChuJia;
- decimal zongJia = danJia * t.TaiShu;
- decimal chengBenZongJia = sumThChengBenJia * t.TaiShu;
- decimal maoLi = zongJia - chengBenZongJia;
- decimal maoLiLv = zongJia == 0m ? 0m : maoLi / zongJia;
- sumProjXiangGui += xiangGuiShuLiang;
- sumProjChengBen += chengBenZongJia;
- sumProjZongJia += zongJia;
- UpdateTuhaoCalc(conn, t.RowId, xiangGuiShuLiang, danJia,
- zongJia, chengBenZongJia, maoLi, maoLiLv);
- }
- catch { }
- }
- decimal projLiRun = sumProjZongJia - sumProjChengBen;
- decimal projLiRunLv = sumProjChengBen == 0m ? 0m : projLiRun / sumProjChengBen;
- UpdateProjectQuoteTotalsById(projectId, sumProjXiangGui,
- sumProjChengBen, sumProjZongJia, projLiRun, projLiRunLv);
- }
- }
- catch { }
- }
-
- private static void UpdateYuanjianCalc(System.Data.SQLite.SQLiteConnection conn,
- string yjQuoted, long rowId,
- decimal caiGouDanJia, decimal caiGouJia, decimal baoChuDanJia, decimal baoChuJia)
- {
- string sql = "UPDATE " + yjQuoted + " SET " +
- "采购单价=@a, 采购价=@b, 报出单价=@c, 报出价=@d WHERE rowid=@rid;";
- using (var cmd = new System.Data.SQLite.SQLiteCommand(sql, conn))
- {
- cmd.Parameters.AddWithValue("@a", caiGouDanJia == 0m ? (object)DBNull.Value : (object)caiGouDanJia);
- cmd.Parameters.AddWithValue("@b", caiGouJia == 0m ? (object)DBNull.Value : (object)caiGouJia);
- cmd.Parameters.AddWithValue("@c", baoChuDanJia == 0m ? (object)DBNull.Value : (object)baoChuDanJia);
- cmd.Parameters.AddWithValue("@d", baoChuJia == 0m ? (object)DBNull.Value : (object)baoChuJia);
- cmd.Parameters.AddWithValue("@rid", rowId);
- cmd.ExecuteNonQuery();
- }
- }
-
- private static void UpdateXianghaoCalc(System.Data.SQLite.SQLiteConnection conn,
- string xhQuoted, long rowId,
- decimal danTaiChengBen, decimal chengBenJia, decimal danTaiBaoChu, decimal baoChuJia,
- decimal liRun, decimal liRunLv, decimal maoLiLv)
- {
- string sql = "UPDATE " + xhQuoted + " SET " +
- "单台成本=@a, 成本价=@b, 单台报出=@c, 报出价=@d, " +
- "利润=@e, 利润率=@f, 毛利率=@g WHERE rowid=@rid;";
- using (var cmd = new System.Data.SQLite.SQLiteCommand(sql, conn))
- {
- cmd.Parameters.AddWithValue("@a", danTaiChengBen == 0m ? (object)DBNull.Value : (object)danTaiChengBen);
- cmd.Parameters.AddWithValue("@b", chengBenJia == 0m ? (object)DBNull.Value : (object)chengBenJia);
- cmd.Parameters.AddWithValue("@c", danTaiBaoChu == 0m ? (object)DBNull.Value : (object)danTaiBaoChu);
- cmd.Parameters.AddWithValue("@d", baoChuJia == 0m ? (object)DBNull.Value : (object)baoChuJia);
- cmd.Parameters.AddWithValue("@e", liRun == 0m ? (object)DBNull.Value : (object)liRun);
- cmd.Parameters.AddWithValue("@f", liRunLv.ToString());
- cmd.Parameters.AddWithValue("@g", maoLiLv.ToString());
- cmd.Parameters.AddWithValue("@rid", rowId);
- cmd.ExecuteNonQuery();
- }
- }
-
- private static void UpdateTuhaoCalc(System.Data.SQLite.SQLiteConnection conn,
- long rowId, decimal xiangGuiShuLiang, decimal danJia,
- decimal zongJia, decimal chengBenZongJia, decimal maoLi, decimal maoLiLv)
- {
- string sql = "UPDATE " + TuhaoTableName + " SET " +
- "箱柜数量=@a, 单价=@b, 总价=@c, 成本总价=@d, 毛利=@e, 毛利率=@f " +
- "WHERE rowid=@rid;";
- using (var cmd = new System.Data.SQLite.SQLiteCommand(sql, conn))
- {
- cmd.Parameters.AddWithValue("@a", xiangGuiShuLiang == 0m ? (object)DBNull.Value : (object)xiangGuiShuLiang);
- cmd.Parameters.AddWithValue("@b", danJia == 0m ? (object)DBNull.Value : (object)danJia);
- cmd.Parameters.AddWithValue("@c", zongJia == 0m ? (object)DBNull.Value : (object)zongJia);
- cmd.Parameters.AddWithValue("@d", chengBenZongJia == 0m ? (object)DBNull.Value : (object)chengBenZongJia);
- cmd.Parameters.AddWithValue("@e", maoLi == 0m ? (object)DBNull.Value : (object)maoLi);
- cmd.Parameters.AddWithValue("@f", maoLiLv.ToString());
- cmd.Parameters.AddWithValue("@rid", rowId);
- cmd.ExecuteNonQuery();
- }
- }
-
- private void UpdateProjectQuoteTotalsById(string projectId,
- decimal xiangGuiTaiShu, decimal chengBenZongJia,
- decimal baoChuZongJia, decimal liRun, decimal liRunLv)
- {
- if (string.IsNullOrWhiteSpace(projectId)) return;
- string dbPath = GetDbFullPath(ProjectsDbPath);
- if (!File.Exists(dbPath)) return;
- try
- {
- using (var conn = new System.Data.SQLite.SQLiteConnection(GetConnString(dbPath)))
- {
- conn.Open();
- string sql = "UPDATE " + ProjectsTableName + " SET " +
- "箱柜台数=@xgts, 成本总价=@cbzj, 报出总价=@bczj, " +
- "利润=@lr, 利润率=@lrl WHERE 项目编号=@id;";
- using (var cmd = new System.Data.SQLite.SQLiteCommand(sql, conn))
- {
- cmd.Parameters.AddWithValue("@xgts", xiangGuiTaiShu == 0m ? (object)DBNull.Value : (object)xiangGuiTaiShu);
- cmd.Parameters.AddWithValue("@cbzj", chengBenZongJia == 0m ? (object)DBNull.Value : (object)chengBenZongJia);
- cmd.Parameters.AddWithValue("@bczj", baoChuZongJia == 0m ? (object)DBNull.Value : (object)baoChuZongJia);
- cmd.Parameters.AddWithValue("@lr", liRun == 0m ? (object)DBNull.Value : (object)liRun);
- cmd.Parameters.AddWithValue("@lrl", liRunLv.ToString());
- cmd.Parameters.AddWithValue("@id", projectId);
- cmd.ExecuteNonQuery();
- }
- }
- }
- catch { }
- }
-
- // ============================================================
- // 事件:CellValueChanged / DirtyStateChanged / CellEndEdit
- // ============================================================
-
- private void Grid_DirtyStateChanged(object sender, EventArgs e)
- {
- if (_isRecalculating || _isReloading) return;
- var msSinceRecalc = (DateTime.Now - _lastRecalcTime).TotalMilliseconds;
- if (msSinceRecalc < 2000) return;
- var dgv = sender as DataGridView;
- if (dgv != null && dgv.IsCurrentCellDirty)
- dgv.CommitEdit(DataGridViewDataErrorContexts.Commit);
- }
-
- private void Yuanjian_CellValueChanged(object sender, DataGridViewCellEventArgs e)
- {
- if (_isRecalculating || _isReloading) return;
- if (e.RowIndex < 0) return;
- var dgv = this.advancedDataGridView5;
- if (dgv == null || e.RowIndex >= dgv.Rows.Count) return;
- var row = dgv.Rows[e.RowIndex];
- if (row == null || row.IsNewRow) return;
- _isRecalculating = true;
- try
- {
- RecalcYuanjianRow(row);
- var xhRow = GetFirstSelectedRow(this.advancedDataGridView4);
- if (xhRow != null)
- {
- RecalcXianghaoRowFromYuanjian(xhRow);
- var thRow = GetFirstSelectedRow(this.advancedDataGridView9);
- if (thRow != null) RecalcTuhaoRowFromXianghao(thRow);
- }
- }
- finally { _isRecalculating = false; _lastRecalcTime = DateTime.Now; }
- }
-
- private void Xianghao_CellValueChanged(object sender, DataGridViewCellEventArgs e)
- {
- if (_isRecalculating || _isReloading) return;
- if (e.RowIndex < 0) return;
- var dgv = this.advancedDataGridView4;
- if (dgv == null || e.RowIndex >= dgv.Rows.Count) return;
- var row = dgv.Rows[e.RowIndex];
- if (row == null || row.IsNewRow) return;
- _isRecalculating = true;
- try
- {
- var thRow = GetFirstSelectedRow(this.advancedDataGridView9);
- if (thRow != null) RecalcTuhaoRowFromXianghao(thRow);
- }
- finally { _isRecalculating = false; _lastRecalcTime = DateTime.Now; }
- }
-
- private void Tuhao_CellValueChanged(object sender, DataGridViewCellEventArgs e)
- {
- if (_isRecalculating || _isReloading) return;
- if (e.RowIndex < 0) return;
- var dgv = this.advancedDataGridView9;
- if (dgv == null || e.RowIndex >= dgv.Rows.Count) return;
- var row = dgv.Rows[e.RowIndex];
- if (row == null || row.IsNewRow) return;
- DataGridViewColumn col = e.ColumnIndex >= 0 ? dgv.Columns[e.ColumnIndex] : null;
- string colName = col == null ? "" :
- (!string.IsNullOrEmpty(col.DataPropertyName) ? col.DataPropertyName : col.HeaderText);
- if (colName != "台数") return;
- _isRecalculating = true;
- try { RecalcTuhaoRowFromXianghao(row); }
- finally { _isRecalculating = false; _lastRecalcTime = DateTime.Now; }
- }
-
- /// CellEndEdit:把公式列的字符串值转为 double,让 DefaultCellStyle.Format 生效。
- private void Grid_CellEndEdit(object sender, DataGridViewCellEventArgs e)
- {
- var dgv = sender as DataGridView;
- if (dgv == null || e.ColumnIndex < 0 || e.ColumnIndex >= dgv.Columns.Count) return;
- string dp = dgv.Columns[e.ColumnIndex].DataPropertyName;
- string cn = dgv.Columns[e.ColumnIndex].HeaderText;
- string colKey = !string.IsNullOrEmpty(dp) ? dp : cn;
- if (!s_公式列集合.Contains(colKey)) return;
- if (e.RowIndex < 0 || e.RowIndex >= dgv.Rows.Count) return;
- object v = dgv.Rows[e.RowIndex].Cells[e.ColumnIndex].Value;
- if (v == null || v is double) return;
- string str = v.ToString().Trim();
- if (string.IsNullOrEmpty(str)) return;
- double d;
- if (double.TryParse(str, out d))
- dgv.Rows[e.RowIndex].Cells[e.ColumnIndex].Value = d;
- }
-
- // ============================================================
- // SelectionChanged 联动
- // ============================================================
-
- private void advancedDataGridView9_SelectionChanged(object sender, EventArgs e)
- {
- if (_isReloading) return;
- if (this.advancedDataGridView9 != null && this.advancedDataGridView9.SelectedCells.Count > 1) return;
- DataGridViewRow row = GetFirstSelectedRow(this.advancedDataGridView9);
- if (row == null) return;
- string tuhao = GetCellValueAsString(row, "图号");
- if (tuhao == _currentTuhao) return;
- _currentTuhao = tuhao;
- ReloadXianghaoByTuhao(_currentProjectId, _currentTuhao);
- }
-
- private void advancedDataGridView4_SelectionChanged(object sender, EventArgs e)
- {
- if (_isReloading) return;
- if (this.advancedDataGridView4 != null && this.advancedDataGridView4.SelectedCells.Count > 1) return;
- DataGridViewRow row = GetFirstSelectedRow(this.advancedDataGridView4);
- if (row == null) return;
- string xh = GetCellValueAsString(row, "箱号");
- if (xh == _currentXianghao) return;
- _currentXianghao = xh;
- ReloadYuanjianByXianghao(_currentProjectId, _currentTuhao, _currentXianghao);
- }
-
- private void advancedDataGridView5_SelectionChanged(object sender, EventArgs e) { }
-
- // ============================================================
- // ★ 点击表格行 → 定位到对应的扒图框(缩放居中)
- // 读取数据行的"框Handle"列,用 Handle 反查 CAD 实体,缩放到实体范围
- // ============================================================
- private void Grid_CellClick_Zoom(object sender, DataGridViewCellEventArgs e)
- {
- if (_isReloading) return;
- if (e.RowIndex < 0) return;
- DataGridView dgv = sender as DataGridView;
- if (dgv == null) return;
- DataGridViewRow row = dgv.Rows[e.RowIndex];
- if (row == null || row.IsNewRow) return;
- // ★ 直接从 DataRow 读取"框Handle"(不依赖 DataGridView 列映射)
- string handle = "";
- var drv = row.DataBoundItem as DataRowView;
- if (drv != null && drv.Row != null && drv.Row.Table.Columns.Contains("框Handle"))
- {
- object v = drv.Row["框Handle"];
- if (v != null && v != DBNull.Value) handle = v.ToString().Trim();
- }
- if (!string.IsNullOrWhiteSpace(handle))
- {
- ZoomToFrameHandle(handle);
- }
- }
-
- ///
- /// 根据框 Handle 字符串定位 CAD 视图:缩放居中到框的位置。
- /// ★ 只有当框不在当前屏幕可见区域时才跳转,已在屏幕上则不动。
- /// Handle 是扒图时绘制的彩色矩形框的句柄(十六进制字符串)。
- ///
- private static void ZoomToFrameHandle(string handle)
- {
- if (string.IsNullOrWhiteSpace(handle)) return;
- try
- {
- var doc = Autodesk.AutoCAD.ApplicationServices.Application.DocumentManager.MdiActiveDocument;
- if (doc == null) return;
- var db = doc.Database;
- var ed = doc.Editor;
-
- Autodesk.AutoCAD.DatabaseServices.Extents3d ext;
- using (var tr = db.TransactionManager.StartTransaction())
- {
- // ★ 用 Handle 字符串反查 ObjectId(Handle 存为十六进制)
- long handleVal;
- if (!long.TryParse(handle,
- System.Globalization.NumberStyles.AllowHexSpecifier,
- System.Globalization.CultureInfo.InvariantCulture,
- out handleVal))
- {
- tr.Commit();
- return;
- }
- Autodesk.AutoCAD.DatabaseServices.Handle h =
- new Autodesk.AutoCAD.DatabaseServices.Handle(handleVal);
- Autodesk.AutoCAD.DatabaseServices.ObjectId id;
- if (!db.TryGetObjectId(h, out id) || id.IsNull)
- {
- tr.Commit();
- return;
- }
- var ent = tr.GetObject(id, Autodesk.AutoCAD.DatabaseServices.OpenMode.ForRead)
- as Autodesk.AutoCAD.DatabaseServices.Entity;
- if (ent == null) { tr.Commit(); return; }
-
- try { ext = ent.GeometricExtents; }
- catch { tr.Commit(); return; }
-
- tr.Commit();
- }
-
- // ★ 获取当前视图范围,判断框是否已在屏幕可见区域
- using (var view = ed.GetCurrentView())
- {
- double viewLeft = view.CenterPoint.X - view.Width / 2.0;
- double viewRight = view.CenterPoint.X + view.Width / 2.0;
- double viewBottom = view.CenterPoint.Y - view.Height / 2.0;
- double viewTop = view.CenterPoint.Y + view.Height / 2.0;
-
- // 框完全在屏幕可见区域内 → 不跳转
- if (ext.MinPoint.X >= viewLeft && ext.MaxPoint.X <= viewRight &&
- ext.MinPoint.Y >= viewBottom && ext.MaxPoint.Y <= viewTop)
- {
- return;
- }
-
- // ★ 框不在可见区域(或部分超出) → 缩放居中到框位置
- double cx = (ext.MinPoint.X + ext.MaxPoint.X) / 2.0;
- double cy = (ext.MinPoint.Y + ext.MaxPoint.Y) / 2.0;
- double w = (ext.MaxPoint.X - ext.MinPoint.X) * 2.0 + 40.0;
- double hgt = (ext.MaxPoint.Y - ext.MinPoint.Y) * 2.0 + 40.0;
- view.CenterPoint = new Autodesk.AutoCAD.Geometry.Point2d(cx, cy);
- view.Height = hgt;
- view.Width = w;
- ed.SetCurrentView(view);
- }
- }
- catch { }
- }
-
- ///
- /// ★ 自动保存当前 DWG 文件,确保扒图框持久化。
- /// CAD 关闭时如果不保存 DWG,扒图绘制的框会丢失,Handle 也失效,
- /// 导致重新打开后点击表格行无法定位框。
- ///
- // ★ 自动保存节流:连续框选时每次都 SaveAs 整张 DWG(大图秒级)会明显卡顿。
- // 距上次保存不足 30 秒则跳过本次,停手后的下一次保存会兜底写入。
- private static DateTime _lastDwgSaveTime = DateTime.MinValue;
-
- private static void SaveCurrentDwg()
- {
- try
- {
- // 节流:30 秒内已保存过则跳过(大图整盘写入是框选卡顿的另一个大头)
- if ((DateTime.Now - _lastDwgSaveTime).TotalSeconds < 30) return;
-
- var doc = Autodesk.AutoCAD.ApplicationServices.Application.DocumentManager.MdiActiveDocument;
- if (doc == null) return;
- var db = doc.Database;
- // 只在文件已保存过(有文件名)时自动保存,新建未保存的文件跳过
- if (!string.IsNullOrEmpty(db.Filename) && File.Exists(db.Filename))
- {
- db.SaveAs(db.Filename, Autodesk.AutoCAD.DatabaseServices.DwgVersion.Current);
- _lastDwgSaveTime = DateTime.Now;
- }
- }
- catch { }
- }
-
- ///
- /// ★ 删除指定 Handle 对应的 CAD 框实体(单个,转发到批量方法)。
- ///
- private void DeleteFrameByHandle(string handle)
- {
- DeleteFramesByHandles(new string[] { handle });
- }
-
- ///
- /// ★ 批量删除多个 Handle 对应的框+蒙版(单事务+单次屏幕刷新)。
- /// 旧实现逐个 DeleteFrameByHandle:每删一个蒙版就 开事务→提交→UpdateScreen→Regen 全图,
- /// N 个蒙版 = N 次全图重生成,这就是"再次选择/删除已选蒙版"时卡顿的根源。
- /// 现在一个事务内全部擦除、只提交一次、只刷新一次,速度从 O(N) 次重生成降到 1 次。
- /// 说明:AutoCAD 的实体/事务只能在文档主线程访问(后台线程调用会 eLockViolation/崩溃),
- /// 所以提速靠"批量合并",效果等效于并行处理。
- ///
- private void DeleteFramesByHandles(System.Collections.Generic.IEnumerable handles)
- {
- var list = new List();
- if (handles != null)
- foreach (string h in handles)
- if (!string.IsNullOrWhiteSpace(h)) list.Add(h);
- if (list.Count == 0) { Log("[DeleteFramesByHandles] 无有效 handle,跳过"); return; }
- try
- {
- var doc = Autodesk.AutoCAD.ApplicationServices.Application.DocumentManager.MdiActiveDocument;
- if (doc == null) { Log("[DeleteFramesByHandles] doc 为 null"); return; }
- // ★ 用 DocumentLock 锁定文档,避免 eLockViolation
- using (doc.LockDocument())
- {
- var db = doc.Database;
- int erased = 0;
- using (var tr = db.TransactionManager.StartTransaction())
- {
- foreach (string handle in list)
- {
- try
- {
- long handleVal;
- if (!long.TryParse(handle,
- System.Globalization.NumberStyles.AllowHexSpecifier,
- System.Globalization.CultureInfo.InvariantCulture,
- out handleVal))
- {
- Log("[DeleteFramesByHandles] Handle 解析失败: " + handle);
- continue;
- }
- Autodesk.AutoCAD.DatabaseServices.Handle h =
- new Autodesk.AutoCAD.DatabaseServices.Handle(handleVal);
- Autodesk.AutoCAD.DatabaseServices.ObjectId id;
- if (!db.TryGetObjectId(h, out id) || id.IsNull)
- {
- Log("[DeleteFramesByHandles] Handle 找不到对象: " + handle);
- continue;
- }
- var ent = tr.GetObject(id, Autodesk.AutoCAD.DatabaseServices.OpenMode.ForWrite)
- as Autodesk.AutoCAD.DatabaseServices.Entity;
- if (ent == null) { Log("[DeleteFramesByHandles] 实体为 null: " + handle); continue; }
- // ★ 先删除同组的其他实体(Hatch 蒙版)和 Group 本身,再删主实体边框
- PaTextSelector.EraseGroupForEntity(tr, id);
- if (!ent.IsErased) ent.Erase();
- erased++;
- }
- catch (System.Exception exH)
- {
- Log("[DeleteFramesByHandles] 单个删除失败 " + handle + ": " + exH.Message);
- }
- }
- tr.Commit(); // ★ 全部擦除完只提交一次
- }
- // ★ 只刷新一次屏幕(旧版每个蒙版刷一次+Regen 全图一次)
- doc.Editor.UpdateScreen();
- doc.Editor.Regen();
- Log("[DeleteFramesByHandles] 批量删除完成: 请求=" + list.Count + " 实删=" + erased);
- } // end LockDocument
- }
- catch (System.Exception ex) { Log("[DeleteFramesByHandles] 异常: " + ex.Message); }
- }
-
- ///
- /// ★ 收集指定图号下所有箱号表和元件表的框Handle(级联删框用)。
- /// 不包含图号表自身的框(图号行框由调用方从内存表收集)。
- ///
- private void CollectFrameHandlesForTuhao(string projectId, string tuhao, List handles)
- {
- if (string.IsNullOrWhiteSpace(projectId) || string.IsNullOrWhiteSpace(tuhao)) return;
- try
- {
- string dbPath = GetQuoteDbPath(projectId);
- if (!File.Exists(dbPath)) { Log("[CollectFrameHandlesForTuhao] 数据库不存在: " + dbPath); return; }
- int beforeCount = handles.Count;
- using (var conn = new System.Data.SQLite.SQLiteConnection(GetConnString(dbPath)))
- {
- conn.Open();
- // 箱号表
- string xhTbl = GetXianghaoTableByIndex(projectId, tuhao);
- Log("[CollectFrameHandlesForTuhao] 图号=" + tuhao + " 箱号表名=" + (xhTbl ?? "(null)"));
- if (!string.IsNullOrEmpty(xhTbl) && TableExists(conn, xhTbl))
- {
- using (var cmd = new System.Data.SQLite.SQLiteCommand(
- "SELECT 框Handle, 箱号 FROM \"" + xhTbl + "\";", conn))
- using (var reader = cmd.ExecuteReader())
- {
- while (reader.Read())
- {
- string h = reader.IsDBNull(0) ? "" : reader.GetString(0);
- if (!string.IsNullOrWhiteSpace(h)) handles.Add(h);
- string xh = reader.IsDBNull(1) ? "" : reader.GetString(1);
- Log("[CollectFrameHandlesForTuhao] 箱号=" + xh + " 框Handle=" + h);
- // 查该箱号的元件表
- if (!string.IsNullOrWhiteSpace(xh))
- {
- string yjTbl = GetYuanjianTableByIndex(projectId, tuhao, xh);
- if (!string.IsNullOrEmpty(yjTbl) && TableExists(conn, yjTbl))
- {
- using (var yjCmd = new System.Data.SQLite.SQLiteCommand(
- "SELECT 框Handle FROM \"" + yjTbl + "\";", conn))
- using (var yjReader = yjCmd.ExecuteReader())
- while (yjReader.Read())
- {
- string yh = yjReader.IsDBNull(0) ? "" : yjReader.GetString(0);
- if (!string.IsNullOrWhiteSpace(yh)) handles.Add(yh);
- Log("[CollectFrameHandlesForTuhao] 元件框Handle=" + yh);
- }
- }
- }
- }
- }
- }
- }
- Log("[CollectFrameHandlesForTuhao] 新增框Handle数: " + (handles.Count - beforeCount));
- }
- catch (Exception ex) { Log("[CollectFrameHandlesForTuhao] 异常: " + ex.Message); }
- }
-
- ///
- /// ★ 收集指定箱号下元件表的框Handle(级联删框用)。
- /// 不包含箱号表自身的框(箱号行框由调用方从内存表收集)。
- ///
- private void CollectFrameHandlesForXianghao(string projectId, string tuhao, string xianghao, List handles)
- {
- if (string.IsNullOrWhiteSpace(projectId) || string.IsNullOrWhiteSpace(tuhao) ||
- string.IsNullOrWhiteSpace(xianghao)) return;
- try
- {
- string dbPath = GetQuoteDbPath(projectId);
- if (!File.Exists(dbPath)) { Log("[CollectFrameHandlesForXianghao] 数据库不存在: " + dbPath); return; }
- int beforeCount = handles.Count;
- using (var conn = new System.Data.SQLite.SQLiteConnection(GetConnString(dbPath)))
- {
- conn.Open();
- // ★ 先收集箱号表自身该箱号的框Handle(之前遗漏,导致删箱号时蒙版不删)
- string xhTbl = GetXianghaoTableByIndex(projectId, tuhao);
- Log("[CollectFrameHandlesForXianghao] 图号=" + tuhao + " 箱号=" + xianghao + " 箱号表名=" + (xhTbl ?? "(null)"));
- if (!string.IsNullOrEmpty(xhTbl) && TableExists(conn, xhTbl))
- {
- using (var cmd = new System.Data.SQLite.SQLiteCommand(
- "SELECT 框Handle FROM \"" + xhTbl + "\" WHERE 箱号=@xh;", conn))
- {
- cmd.Parameters.AddWithValue("@xh", xianghao);
- using (var reader = cmd.ExecuteReader())
- while (reader.Read())
- {
- string h = reader.IsDBNull(0) ? "" : reader.GetString(0);
- if (!string.IsNullOrWhiteSpace(h)) handles.Add(h);
- Log("[CollectFrameHandlesForXianghao] 箱号自身框Handle=" + h);
- }
- }
- }
- // ★ 再收集该箱号下元件表的框Handle
- string yjTbl = GetYuanjianTableByIndex(projectId, tuhao, xianghao);
- Log("[CollectFrameHandlesForXianghao] 元件表名=" + (yjTbl ?? "(null)"));
- if (!string.IsNullOrEmpty(yjTbl) && TableExists(conn, yjTbl))
- {
- using (var cmd = new System.Data.SQLite.SQLiteCommand(
- "SELECT 框Handle FROM \"" + yjTbl + "\";", conn))
- using (var reader = cmd.ExecuteReader())
- while (reader.Read())
- {
- string h = reader.IsDBNull(0) ? "" : reader.GetString(0);
- if (!string.IsNullOrWhiteSpace(h)) handles.Add(h);
- Log("[CollectFrameHandlesForXianghao] 元件框Handle=" + h);
- }
- }
- }
- Log("[CollectFrameHandlesForXianghao] 新增框Handle数: " + (handles.Count - beforeCount));
- }
- catch (Exception ex) { Log("[CollectFrameHandlesForXianghao] 异常: " + ex.Message); }
- }
-
- /// 检查表是否存在(SQLite)。
- private static bool TableExists(System.Data.SQLite.SQLiteConnection conn, string tableName)
- {
- if (conn == null || string.IsNullOrWhiteSpace(tableName)) return false;
- try
- {
- string name = tableName.Trim().Trim('"');
- using (var cmd = new System.Data.SQLite.SQLiteCommand(
- "SELECT name FROM sqlite_master WHERE type='table' AND name=@n;", conn))
- {
- cmd.Parameters.AddWithValue("@n", name);
- object o = cmd.ExecuteScalar();
- return o != null && o != DBNull.Value;
- }
- }
- catch { return false; }
- }
-
- // ============================================================
- // 双击项目行 → 进入项目
- // ============================================================
-
- private void advancedDataGridView6_CellDoubleClick(object sender, DataGridViewCellEventArgs e)
- {
- if (e.RowIndex < 0) return;
- DataGridViewRow row = this.advancedDataGridView6.Rows[e.RowIndex];
- string pid = GetCellValueAsString(row, "项目编号");
- if (string.IsNullOrWhiteSpace(pid)) return;
-
- // 切项目前:先把当前项目的所有改动回写库,然后清空缓存
- if (!string.IsNullOrWhiteSpace(_currentProjectId) && _currentProjectId != pid)
- {
- try
- {
- if (this.advancedDataGridView5 != null) this.advancedDataGridView5.EndEdit();
- if (this.advancedDataGridView4 != null) this.advancedDataGridView4.EndEdit();
- if (this.advancedDataGridView9 != null) this.advancedDataGridView9.EndEdit();
- if (_tuhaoTable != null)
- SaveTableToDatabase(_tuhaoTable, _currentProjectId, TuhaoTableName, null, null, true);
- foreach (var kv in _xianghaoCache)
- if (kv.Value != null && !string.IsNullOrWhiteSpace(kv.Value.TableName))
- SaveTableToDatabase(kv.Value, _currentProjectId,
- "\"" + kv.Value.TableName + "\"", null, null, true);
- foreach (var kv in _yuanjianCache)
- if (kv.Value != null && !string.IsNullOrWhiteSpace(kv.Value.TableName))
- SaveTableToDatabase(kv.Value, _currentProjectId,
- "\"" + kv.Value.TableName + "\"", null, null, true);
- }
- catch { }
- _xianghaoCache.Clear();
- _yuanjianCache.Clear();
- _tuhaoTable = null;
- }
- _currentProjectId = pid;
- EnterProjectCore(pid);
- }
-
- private void EnterProjectCore(string pid)
- {
- // 切换主区域到报价页(tabPage4)
- this.tabControl2.SelectedTab = this.tabPage4;
- EnsureQuoteDbExists(pid);
- LoadPriceFormatConfig(pid);
- RecalcAllFromDatabase(pid);
- ReloadTuhaoByProject(pid);
- ApplyPriceFormat(this.advancedDataGridView9, _单台小数位文本);
- ApplyPriceFormat(this.advancedDataGridView4, _单台小数位文本);
- ApplyPriceFormat(this.advancedDataGridView5, _单台小数位文本);
- ApplyPriceFormat(this.advancedDataGridView6, _项目小数位文本);
- }
-
- // ============================================================
- // ★ 右键点击时保持多行选中
- // WinForms 默认行为:右键点击未选中行 → 清除多选,只选一行
- // 修正:右键点击已选中行 → 保持多选;点击未选中行 → 正常切换
- // ============================================================
- private void Grid_MouseDown_KeepMultiSelect(object sender, MouseEventArgs e)
- {
- if (e.Button != MouseButtons.Right) return;
- var dgv = sender as DataGridView;
- if (dgv == null) return;
- var hit = dgv.HitTest(e.X, e.Y);
- if (hit.Type != DataGridViewHitTestType.Cell && hit.Type != DataGridViewHitTestType.RowHeader) return;
- if (hit.RowIndex < 0) return;
- // 如果右键点击的行已经在选中行中,不做任何操作(保持多选)
- // 如果不在选中行中,让默认行为生效(选中该行)
- foreach (DataGridViewRow r in dgv.SelectedRows)
- {
- if (r.Index == hit.RowIndex) return;
- }
- // 选中行中没有包含右键点击的行 → 手动选中该行
- dgv.ClearSelection();
- dgv.Rows[hit.RowIndex].Selected = true;
- dgv.CurrentCell = dgv.Rows[hit.RowIndex].Cells[0];
- }
-
- // ============================================================
- // ★ 键盘 Delete 键批量删除选中行
- // 图号表→MenuTuhao_Delete_Click;箱号表→MenuXianghao_Delete_Click;元件表→MenuYuanjian_Delete_Click
- // ============================================================
- private void Grid_KeyDown_Delete(object sender, KeyEventArgs e)
- {
- if (e.KeyCode != Keys.Delete) return;
- var dgv = sender as DataGridView;
- if (dgv == null) return;
- if (dgv.SelectedRows.Count == 0 && dgv.SelectedCells.Count == 0) return;
- if (dgv.IsCurrentCellInEditMode) return; // 编辑模式下不拦截 Delete
-
- e.SuppressKeyPress = true;
- e.Handled = true;
-
- if (dgv == this.advancedDataGridView9)
- MenuTuhao_Delete_Click(null, null);
- else if (dgv == this.advancedDataGridView4)
- MenuXianghao_Delete_Click(null, null);
- else if (dgv == this.advancedDataGridView5)
- MenuYuanjian_Delete_Click(null, null);
- }
-
- // ============================================================
- // 右键菜单:创建 + 行移动
- // ============================================================
-
- private void BuildContextMenus()
- {
- // 图号菜单(advancedDataGridView9)
- _menuTuhao = new ContextMenuStrip();
- _menuTuhao.Items.Add("新建图号", null, MenuTuhao_New_Click);
- _menuTuhao.Items.Add("删除图号", null, MenuTuhao_Delete_Click);
- _menuTuhao.Items.Add(new ToolStripSeparator());
- _menuTuhao.Items.Add("置顶", null, (s, e) => MoveSelectedRowInGrid(this.advancedDataGridView9, RowMoveAction.Top));
- _menuTuhao.Items.Add("向上移动", null, (s, e) => MoveSelectedRowInGrid(this.advancedDataGridView9, RowMoveAction.Up));
- _menuTuhao.Items.Add("向下移动", null, (s, e) => MoveSelectedRowInGrid(this.advancedDataGridView9, RowMoveAction.Down));
- _menuTuhao.Items.Add("置底", null, (s, e) => MoveSelectedRowInGrid(this.advancedDataGridView9, RowMoveAction.Bottom));
- _menuTuhao.Items.Add("移动到...", null, (s, e) => MoveSelectedRowInGrid(this.advancedDataGridView9, RowMoveAction.To));
- this.advancedDataGridView9.ContextMenuStrip = _menuTuhao;
-
- // 箱号菜单(advancedDataGridView4)
- _menuXianghao = new ContextMenuStrip();
- _menuXianghao.Items.Add("新建箱号", null, MenuXianghao_New_Click);
- _menuXianghao.Items.Add("删除箱号", null, MenuXianghao_Delete_Click);
- _menuXianghao.Items.Add(new ToolStripSeparator());
- _menuXianghao.Items.Add("置顶", null, (s, e) => MoveSelectedRowInGrid(this.advancedDataGridView4, RowMoveAction.Top));
- _menuXianghao.Items.Add("向上移动", null, (s, e) => MoveSelectedRowInGrid(this.advancedDataGridView4, RowMoveAction.Up));
- _menuXianghao.Items.Add("向下移动", null, (s, e) => MoveSelectedRowInGrid(this.advancedDataGridView4, RowMoveAction.Down));
- _menuXianghao.Items.Add("置底", null, (s, e) => MoveSelectedRowInGrid(this.advancedDataGridView4, RowMoveAction.Bottom));
- _menuXianghao.Items.Add("移动到...", null, (s, e) => MoveSelectedRowInGrid(this.advancedDataGridView4, RowMoveAction.To));
- this.advancedDataGridView4.ContextMenuStrip = _menuXianghao;
-
- // 元件菜单(advancedDataGridView5)
- _menuYuanjian = new ContextMenuStrip();
- _menuYuanjian.Items.Add("新建元件", null, MenuYuanjian_New_Click);
- _menuYuanjian.Items.Add("删除元件", null, MenuYuanjian_Delete_Click);
- _menuYuanjian.Items.Add("合并元件", null, MenuYuanjian_Merge_Click);
- _menuYuanjian.Items.Add(new ToolStripSeparator());
- _menuYuanjian.Items.Add("置顶", null, (s, e) => MoveSelectedRowInGrid(this.advancedDataGridView5, RowMoveAction.Top));
- _menuYuanjian.Items.Add("向上移动", null, (s, e) => MoveSelectedRowInGrid(this.advancedDataGridView5, RowMoveAction.Up));
- _menuYuanjian.Items.Add("向下移动", null, (s, e) => MoveSelectedRowInGrid(this.advancedDataGridView5, RowMoveAction.Down));
- _menuYuanjian.Items.Add("置底", null, (s, e) => MoveSelectedRowInGrid(this.advancedDataGridView5, RowMoveAction.Bottom));
- _menuYuanjian.Items.Add("移动到...", null, (s, e) => MoveSelectedRowInGrid(this.advancedDataGridView5, RowMoveAction.To));
- this.advancedDataGridView5.ContextMenuStrip = _menuYuanjian;
- }
-
- private enum RowMoveAction { Top, Up, Down, Bottom, To }
-
- private void MoveSelectedRowInGrid(DataGridView dgv, RowMoveAction action)
- {
- if (dgv == null || string.IsNullOrWhiteSpace(_currentProjectId)) return;
- DataTable table = null;
- System.Action reloadAction = null;
- if (dgv == this.advancedDataGridView5)
- {
- table = _yuanjianTable;
- reloadAction = () => ReloadYuanjianByXianghao(_currentProjectId, _currentTuhao, _currentXianghao);
- }
- else if (dgv == this.advancedDataGridView4)
- {
- table = _xianghaoTable;
- reloadAction = () => ReloadXianghaoByTuhao(_currentProjectId, _currentTuhao);
- }
- else if (dgv == this.advancedDataGridView9)
- {
- table = _tuhaoTable;
- reloadAction = () => ReloadTuhaoByProject(_currentProjectId);
- }
- if (table == null || table.Rows.Count == 0)
- {
- MessageBox.Show(this, "没有数据可移动。", "移动行", MessageBoxButtons.OK, MessageBoxIcon.Information);
- return;
- }
- var dgvRow = GetFirstSelectedRow(dgv);
- if (dgvRow == null)
- {
- MessageBox.Show(this, "请先选择要移动的行。", "移动行", MessageBoxButtons.OK, MessageBoxIcon.Information);
- return;
- }
- int dataCount = dgv.Rows.Count;
- if (dgv.AllowUserToAddRows) dataCount--;
- if (dataCount <= 0) return;
- int oldIndex = dgvRow.Index;
- if (oldIndex >= dataCount) return;
-
- string rememberTuhao = _currentTuhao;
- string rememberXianghao = _currentXianghao;
- int newIndex = -1;
- _isReloading = true;
- try
- {
- dgv.EndEdit();
- newIndex = oldIndex;
- switch (action)
- {
- case RowMoveAction.Top: newIndex = 0; break;
- case RowMoveAction.Up: newIndex = Math.Max(0, oldIndex - 1); break;
- case RowMoveAction.Down: newIndex = Math.Min(dataCount - 1, oldIndex + 1); break;
- case RowMoveAction.Bottom: newIndex = dataCount - 1; break;
- case RowMoveAction.To:
- string input = ShowInputDialog("移动到",
- "请输入目标行号(1-" + dataCount + "):", (oldIndex + 1).ToString());
- if (string.IsNullOrEmpty(input)) { newIndex = -1; return; }
- int target;
- if (!int.TryParse(input.Trim(), out target))
- {
- MessageBox.Show(this, "请输入有效数字。", "移动到", MessageBoxButtons.OK, MessageBoxIcon.Warning);
- newIndex = -1;
- return;
- }
- newIndex = Math.Max(0, Math.Min(dataCount - 1, target - 1));
- break;
- }
- if (newIndex == oldIndex) { newIndex = -1; return; }
-
- DataRow rowToMove = table.Rows[oldIndex];
- object[] savedValues = rowToMove.ItemArray;
- table.Rows.Remove(rowToMove);
- DataRow newRow = table.NewRow();
- newRow.ItemArray = savedValues;
- table.Rows.InsertAt(newRow, newIndex);
-
- if (table.Columns.Contains("序号"))
- {
- for (int i = 0; i < table.Rows.Count; i++) table.Rows[i]["序号"] = (i + 1).ToString();
- }
- if (dgv == this.advancedDataGridView9)
- SaveTableToDatabase(table, _currentProjectId, TuhaoTableName, null, null, true);
- else
- SaveTableToDatabase(table, _currentProjectId, "\"" + table.TableName + "\"", null, null, true);
- }
- catch (Exception ex)
- {
- MessageBox.Show(this, "移动行失败:\n" + ex.Message, "移动行", MessageBoxButtons.OK, MessageBoxIcon.Error);
- newIndex = -1;
- }
- finally
- {
- _isReloading = false;
- if (newIndex >= 0)
- {
- if (dgv == this.advancedDataGridView9)
- SelectRowByValue(this.advancedDataGridView9, "图号", rememberTuhao);
- else if (dgv == this.advancedDataGridView4)
- SelectRowByValue(this.advancedDataGridView4, "箱号", rememberXianghao);
- else if (dgv == this.advancedDataGridView5)
- SelectRowByValue(this.advancedDataGridView5, "序号", (newIndex + 1).ToString());
- }
- }
- }
-
- private void MoveLastRowBelowSelected(DataGridView dgv, DataTable table,
- int afterIndex, string dbTableName, string projectId)
- {
- if (dgv == null || table == null || afterIndex < 0 || table.Rows.Count < 2) return;
- int lastIndex = table.Rows.Count - 1;
- int targetIndex = afterIndex + 1;
- if (targetIndex >= lastIndex) return;
- object[] savedValues = table.Rows[lastIndex].ItemArray;
- table.Rows.RemoveAt(lastIndex);
- DataRow newRow = table.NewRow();
- newRow.ItemArray = savedValues;
- table.Rows.InsertAt(newRow, targetIndex);
- if (table.Columns.Contains("序号"))
- {
- for (int i = 0; i < table.Rows.Count; i++) table.Rows[i]["序号"] = (i + 1).ToString();
- }
- SaveTableToDatabase(table, projectId, dbTableName, null, null, true);
- try { if (targetIndex < dgv.Rows.Count) dgv.FirstDisplayedScrollingRowIndex = targetIndex; } catch { }
- }
-
- // ---------- 图号菜单事件 ----------
-
- private void MenuTuhao_New_Click(object sender, EventArgs e)
- {
- if (string.IsNullOrWhiteSpace(_currentProjectId))
- {
- MessageBox.Show(this, "请先在项目表中双击选择一个项目,再新建图号。",
- "新建图号", MessageBoxButtons.OK, MessageBoxIcon.Information);
- return;
- }
- string newTuhao = "新图号" + GetNextSeqNumber(TuhaoTableName, "图号", _currentProjectId);
- int selectedIndex = GetSelectedRowIndex(this.advancedDataGridView9);
- try
- {
- _isReloading = true;
- SaveAllQuoteTablesIfDirty(false);
- InsertTuhao(_currentProjectId, newTuhao, "", "");
- _xianghaoCache.Clear();
- _yuanjianCache.Clear();
- ReloadTuhaoByProject(_currentProjectId);
- MoveLastRowBelowSelected(this.advancedDataGridView9, _tuhaoTable, selectedIndex, TuhaoTableName, _currentProjectId);
- RecalcAllAfterReload();
- }
- catch (Exception ex)
- {
- MessageBox.Show(this, "新建图号失败:\n" + ex.Message,
- "新建图号", MessageBoxButtons.OK, MessageBoxIcon.Error);
- }
- finally
- {
- _currentTuhao = newTuhao;
- SelectRowByValue(this.advancedDataGridView9, "图号", newTuhao);
- _isReloading = false;
- ReloadXianghaoByTuhao(_currentProjectId, newTuhao);
- }
- }
-
- private void MenuTuhao_Delete_Click(object sender, EventArgs e)
- {
- var rows = GetAllSelectedRows(this.advancedDataGridView9);
- if (rows == null || rows.Count == 0)
- {
- MessageBox.Show(this, "请先选择要删除的图号。",
- "删除图号", MessageBoxButtons.OK, MessageBoxIcon.Information);
- return;
- }
- var tuhaos = new List();
- foreach (var r in rows)
- {
- string th = GetCellValueAsString(r, "图号");
- if (!string.IsNullOrWhiteSpace(th) && !tuhaos.Contains(th)) tuhaos.Add(th);
- }
- if (tuhaos.Count == 0)
- {
- MessageBox.Show(this, "选中行没有图号,无法删除。",
- "删除图号", MessageBoxButtons.OK, MessageBoxIcon.Warning);
- return;
- }
- // ★ 收集选中图号行自己的框Handle
- var frameHandles = new List();
- foreach (var r in rows)
- {
- var drv = r.DataBoundItem as DataRowView;
- if (drv != null && drv.Row != null && drv.Row.Table.Columns.Contains("框Handle"))
- {
- object v = drv.Row["框Handle"];
- if (v != null && v != DBNull.Value)
- {
- string h = v.ToString().Trim();
- if (!string.IsNullOrWhiteSpace(h)) frameHandles.Add(h);
- }
- }
- }
- // ★ 收集每个图号下所有箱号和元件的框Handle(级联删框)
- foreach (string tuhao in tuhaos)
- {
- CollectFrameHandlesForTuhao(_currentProjectId, tuhao, frameHandles);
- }
- Log("[MenuTuhao_Delete] 删除图号: " + string.Join(",", tuhaos) + " 收集到框Handle数: " + frameHandles.Count);
- try
- {
- _isReloading = true;
- SaveAllQuoteTablesIfDirty(false);
- foreach (string tuhao in tuhaos)
- {
- DeleteTuhao(_currentProjectId, tuhao);
- if (!string.IsNullOrEmpty(tuhao))
- {
- _xianghaoCache.Remove(tuhao);
- var keysToRemove = new List();
- foreach (var key in _yuanjianCache.Keys)
- if (key.StartsWith(tuhao + "\n")) keysToRemove.Add(key);
- foreach (var key in keysToRemove) _yuanjianCache.Remove(key);
- }
- }
- RenumberTable(_currentProjectId, TuhaoTableName);
- ReloadTuhaoByProject(_currentProjectId);
- RecalcAllAfterReload();
- // ★ 删除所有收集到的框实体(去重)
- var tuhaoDistinct = new HashSet(frameHandles);
- foreach (string h in tuhaoDistinct)
- {
- Log("[MenuTuhao_Delete] 准备删除框Handle: " + h);
- DeleteFrameByHandle(h);
- }
- Log("[MenuTuhao_Delete] 框实体删除完成,共 " + tuhaoDistinct.Count + " 个");
- // ★ 保存DWG,确保删框操作持久化
- SaveCurrentDwg();
- }
- catch (Exception ex)
- {
- MessageBox.Show(this, "删除图号失败:\n" + ex.Message,
- "删除图号", MessageBoxButtons.OK, MessageBoxIcon.Error);
- }
- finally { _isReloading = false; }
- }
-
- // ---------- 箱号菜单事件 ----------
-
- private void MenuXianghao_New_Click(object sender, EventArgs e)
- {
- if (string.IsNullOrWhiteSpace(_currentProjectId) || string.IsNullOrWhiteSpace(_currentTuhao))
- {
- MessageBox.Show(this, "请先选择图号,再新建箱号。",
- "新建箱号", MessageBoxButtons.OK, MessageBoxIcon.Information);
- return;
- }
- string rememberTuhao = _currentTuhao;
- int selectedIndex = GetSelectedRowIndex(this.advancedDataGridView4);
- string newXh = "新箱号" + GetXianghaoCount(_currentProjectId, _currentTuhao);
- try
- {
- _isReloading = true;
- SaveAllQuoteTablesIfDirty(false);
- InsertXianghao(_currentProjectId, _currentTuhao, newXh, "", "");
- if (!string.IsNullOrEmpty(rememberTuhao)) _xianghaoCache.Remove(rememberTuhao);
- ReloadXianghaoByTuhao(_currentProjectId, _currentTuhao);
- if (_xianghaoTable != null)
- MoveLastRowBelowSelected(this.advancedDataGridView4, _xianghaoTable, selectedIndex,
- "\"" + _xianghaoTable.TableName + "\"", _currentProjectId);
- RecalcAllAfterReload();
- }
- catch (Exception ex)
- {
- MessageBox.Show(this, "新建箱号失败:\n" + ex.Message,
- "新建箱号", MessageBoxButtons.OK, MessageBoxIcon.Error);
- }
- finally
- {
- _currentTuhao = rememberTuhao;
- _currentXianghao = newXh;
- SelectRowByValue(this.advancedDataGridView9, "图号", rememberTuhao);
- SelectRowByValue(this.advancedDataGridView4, "箱号", newXh);
- _isReloading = false;
- ReloadYuanjianByXianghao(_currentProjectId, _currentTuhao, newXh);
- }
- }
-
- private void MenuXianghao_Delete_Click(object sender, EventArgs e)
- {
- var rows = GetAllSelectedRows(this.advancedDataGridView4);
- if (rows == null || rows.Count == 0)
- {
- MessageBox.Show(this, "请先选择要删除的箱号。",
- "删除箱号", MessageBoxButtons.OK, MessageBoxIcon.Information);
- return;
- }
- var xhs = new List();
- foreach (var r in rows)
- {
- string xh = GetCellValueAsString(r, "箱号");
- if (!string.IsNullOrWhiteSpace(xh) && !xhs.Contains(xh)) xhs.Add(xh);
- }
- if (xhs.Count == 0)
- {
- MessageBox.Show(this, "选中行没有箱号,无法删除。",
- "删除箱号", MessageBoxButtons.OK, MessageBoxIcon.Warning);
- return;
- }
- // ★ 收集选中箱号行自己的框Handle
- var frameHandles = new List();
- foreach (var r in rows)
- {
- var drv = r.DataBoundItem as DataRowView;
- if (drv != null && drv.Row != null && drv.Row.Table.Columns.Contains("框Handle"))
- {
- object v = drv.Row["框Handle"];
- if (v != null && v != DBNull.Value)
- {
- string h = v.ToString().Trim();
- if (!string.IsNullOrWhiteSpace(h)) frameHandles.Add(h);
- }
- }
- }
- // ★ 收集每个箱号下元件表的框Handle(级联删框)
- foreach (string xh in xhs)
- {
- CollectFrameHandlesForXianghao(_currentProjectId, _currentTuhao, xh, frameHandles);
- }
- Log("[MenuXianghao_Delete] 删除箱号: " + string.Join(",", xhs) + " 图号=" + _currentTuhao + " 收集到框Handle数: " + frameHandles.Count);
- string rememberTuhao = _currentTuhao;
- try
- {
- _isReloading = true;
- SaveAllQuoteTablesIfDirty(false);
- foreach (string xh in xhs)
- {
- DeleteXianghao(_currentProjectId, _currentTuhao, xh);
- string yjKey = _currentTuhao + "\n" + xh;
- _yuanjianCache.Remove(yjKey);
- }
- string xhTbl = GetXianghaoTableByIndex(_currentProjectId, _currentTuhao);
- if (!string.IsNullOrEmpty(xhTbl))
- RenumberTable(_currentProjectId, "\"" + xhTbl + "\"");
- if (!string.IsNullOrEmpty(_currentTuhao)) _xianghaoCache.Remove(_currentTuhao);
- Log("[MenuXianghao_Delete] 开始 ReloadXianghaoByTuhao...");
- ReloadXianghaoByTuhao(_currentProjectId, _currentTuhao);
- Log("[MenuXianghao_Delete] ReloadXianghaoByTuhao 完成,开始删除框实体...");
- RecalcAllAfterReload();
- // ★ 删除所有收集到的框实体(去重,避免重复删除)
- var distinctHandles = new HashSet(frameHandles);
- foreach (string h in distinctHandles)
- {
- Log("[MenuXianghao_Delete] 准备删除框Handle: " + h);
- DeleteFrameByHandle(h);
- }
- Log("[MenuXianghao_Delete] 框实体删除完成,共 " + distinctHandles.Count + " 个");
- // ★ 保存DWG,确保删框操作持久化
- SaveCurrentDwg();
- }
- catch (Exception ex)
- {
- Log("[MenuXianghao_Delete] 异常: " + ex.Message + "\n" + ex.StackTrace);
- MessageBox.Show(this, "删除箱号失败:\n" + ex.Message,
- "删除箱号", MessageBoxButtons.OK, MessageBoxIcon.Error);
- }
- finally
- {
- _currentTuhao = rememberTuhao;
- SelectRowByValue(this.advancedDataGridView9, "图号", rememberTuhao);
- _isReloading = false;
- }
- }
-
- // ---------- 元件菜单事件 ----------
-
- private void MenuYuanjian_New_Click(object sender, EventArgs e)
- {
- if (string.IsNullOrWhiteSpace(_currentProjectId) ||
- string.IsNullOrWhiteSpace(_currentTuhao) ||
- string.IsNullOrWhiteSpace(_currentXianghao))
- {
- MessageBox.Show(this, "请先选择箱号,再新建元件。",
- "新建元件", MessageBoxButtons.OK, MessageBoxIcon.Information);
- return;
- }
- string rememberTuhao = _currentTuhao;
- string rememberXianghao = _currentXianghao;
- int selectedIndex = GetSelectedRowIndex(this.advancedDataGridView5);
- string newName = "新元件" + GetYuanjianCount(_currentProjectId, _currentTuhao, _currentXianghao);
- try
- {
- _isReloading = true;
- SaveAllQuoteTablesIfDirty(false);
- InsertYuanjian(_currentProjectId, _currentTuhao, _currentXianghao, newName);
- string cacheKey = _currentTuhao + "\n" + _currentXianghao;
- _yuanjianCache.Remove(cacheKey);
- ReloadYuanjianByXianghao(_currentProjectId, _currentTuhao, _currentXianghao);
- if (_yuanjianTable != null)
- MoveLastRowBelowSelected(this.advancedDataGridView5, _yuanjianTable, selectedIndex,
- "\"" + _yuanjianTable.TableName + "\"", _currentProjectId);
- RecalcAllAfterReload();
- }
- catch (Exception ex)
- {
- MessageBox.Show(this, "新建元件失败:\n" + ex.Message,
- "新建元件", MessageBoxButtons.OK, MessageBoxIcon.Error);
- }
- finally
- {
- _currentTuhao = rememberTuhao;
- _currentXianghao = rememberXianghao;
- SelectRowByValue(this.advancedDataGridView9, "图号", rememberTuhao);
- SelectRowByValue(this.advancedDataGridView4, "箱号", rememberXianghao);
- _isReloading = false;
- }
- }
-
- private void MenuYuanjian_Delete_Click(object sender, EventArgs e)
- {
- if (string.IsNullOrWhiteSpace(_currentProjectId) ||
- string.IsNullOrWhiteSpace(_currentTuhao) ||
- string.IsNullOrWhiteSpace(_currentXianghao))
- {
- MessageBox.Show(this, "请先选择箱号,再删除元件。",
- "删除元件", MessageBoxButtons.OK, MessageBoxIcon.Information);
- return;
- }
- var rows = GetAllSelectedRows(this.advancedDataGridView5);
- if (rows == null || rows.Count == 0)
- {
- MessageBox.Show(this, "请先选择要删除的元件。",
- "删除元件", MessageBoxButtons.OK, MessageBoxIcon.Information);
- return;
- }
- var seqs = new List();
- var frameHandles = new List();
- foreach (var r in rows)
- {
- string seq = GetCellValueAsString(r, "序号");
- if (!string.IsNullOrWhiteSpace(seq) && !seqs.Contains(seq)) seqs.Add(seq);
- // ★ 收集元件行的框Handle
- var drv = r.DataBoundItem as DataRowView;
- if (drv != null && drv.Row != null && drv.Row.Table.Columns.Contains("框Handle"))
- {
- object v = drv.Row["框Handle"];
- if (v != null && v != DBNull.Value)
- {
- string h = v.ToString().Trim();
- if (!string.IsNullOrWhiteSpace(h)) frameHandles.Add(h);
- }
- }
- }
- if (seqs.Count == 0)
- {
- MessageBox.Show(this, "选中行没有序号,无法删除。",
- "删除元件", MessageBoxButtons.OK, MessageBoxIcon.Warning);
- return;
- }
- string rememberTuhao = _currentTuhao;
- string rememberXianghao = _currentXianghao;
- try
- {
- _isReloading = true;
- SaveAllQuoteTablesIfDirty(false);
- foreach (string seq in seqs)
- DeleteYuanjian(_currentProjectId, _currentTuhao, _currentXianghao, seq);
- string realTbl = GetYuanjianTableByIndex(_currentProjectId, _currentTuhao, _currentXianghao);
- if (!string.IsNullOrEmpty(realTbl))
- RenumberTable(_currentProjectId, "\"" + realTbl + "\"");
- string cacheKey = _currentTuhao + "\n" + _currentXianghao;
- _yuanjianCache.Remove(cacheKey);
- ReloadYuanjianByXianghao(_currentProjectId, _currentTuhao, _currentXianghao);
- RecalcAllAfterReload();
- // ★ 删除所有收集到的框实体(去重)
- foreach (string h in new HashSet(frameHandles)) DeleteFrameByHandle(h);
- // ★ 保存DWG,确保删框操作持久化
- SaveCurrentDwg();
- }
- catch (Exception ex)
- {
- MessageBox.Show(this, "删除元件失败:\n" + ex.Message,
- "删除元件", MessageBoxButtons.OK, MessageBoxIcon.Error);
- }
- finally
- {
- _currentTuhao = rememberTuhao;
- _currentXianghao = rememberXianghao;
- SelectRowByValue(this.advancedDataGridView9, "图号", rememberTuhao);
- SelectRowByValue(this.advancedDataGridView4, "箱号", rememberXianghao);
- _isReloading = false;
- }
- }
-
- // ============================================================
- // 合并元件:把选中的多行元件合并为一行
- // · 元件名称:所有非空名称直接拼接(去重,不加符号)
- // · 规格:所有非空规格直接拼接(去重,不加符号)
- // · 数量:保持为 1(合并后是一个元件,数量不变)
- // · 其他列(单位/系数/价格):取第一行
- // · 删除被合并的其他行,重新编号,保存刷新
- // ============================================================
- private void MenuYuanjian_Merge_Click(object sender, EventArgs e)
- {
- if (string.IsNullOrWhiteSpace(_currentProjectId) ||
- string.IsNullOrWhiteSpace(_currentTuhao) ||
- string.IsNullOrWhiteSpace(_currentXianghao))
- {
- MessageBox.Show(this, "请先选择箱号,再合并元件。",
- "合并元件", MessageBoxButtons.OK, MessageBoxIcon.Information);
- return;
- }
- var rows = GetAllSelectedRows(this.advancedDataGridView5);
- if (rows == null || rows.Count < 2)
- {
- MessageBox.Show(this, "请先选择至少两行要合并的元件(按住 Ctrl/Shift 多选)。",
- "合并元件", MessageBoxButtons.OK, MessageBoxIcon.Information);
- return;
- }
- // 按序号排序(保证合并顺序与表格顺序一致)
- rows.Sort((a, b) =>
- {
- int ia = 0, ib = 0;
- int.TryParse(GetCellValueAsString(a, "序号"), out ia);
- int.TryParse(GetCellValueAsString(b, "序号"), out ib);
- return ia.CompareTo(ib);
- });
-
- // 收集要合并的内容(直接拼接,不加任何符号)
- var names = new List();
- var specs = new List();
- foreach (var r in rows)
- {
- string nm = GetCellValueAsString(r, "元件名称");
- if (!string.IsNullOrWhiteSpace(nm) && !names.Contains(nm)) names.Add(nm);
- string sp = GetCellValueAsString(r, "规格");
- if (!string.IsNullOrWhiteSpace(sp) && !specs.Contains(sp)) specs.Add(sp);
- }
-
- string rememberTuhao = _currentTuhao;
- string rememberXianghao = _currentXianghao;
- try
- {
- _isReloading = true;
- SaveAllQuoteTablesIfDirty(false);
-
- if (_yuanjianTable == null || _yuanjianTable.Rows.Count == 0)
- {
- MessageBox.Show(this, "元件表为空,无法合并。",
- "合并元件", MessageBoxButtons.OK, MessageBoxIcon.Warning);
- return;
- }
-
- // 取出选中行对应的 DataRow
- var dataRows = new List();
- foreach (var dgvRow in rows)
- {
- var drv = dgvRow.DataBoundItem as DataRowView;
- if (drv != null && drv.Row != null) dataRows.Add(drv.Row);
- }
- if (dataRows.Count < 2)
- {
- MessageBox.Show(this, "无法获取选中行的数据,请重试。",
- "合并元件", MessageBoxButtons.OK, MessageBoxIcon.Warning);
- return;
- }
-
- // 第一行作为合并目标,更新名称/规格(直接拼接,不加符号)
- // 数量保持为 1(合并后是一个元件)
- DataRow target = dataRows[0];
- if (_yuanjianTable.Columns.Contains("元件名称"))
- target["元件名称"] = string.Join("", names);
- if (_yuanjianTable.Columns.Contains("规格"))
- target["规格"] = string.Join("", specs);
- if (_yuanjianTable.Columns.Contains("数量"))
- target["数量"] = "1";
-
- // ★ 收集被合并行(第2行起)的框Handle,合并后删除这些框
- var mergedFrameHandles = new List();
- if (_yuanjianTable.Columns.Contains("框Handle"))
- {
- for (int i = 1; i < dataRows.Count; i++)
- {
- object v = dataRows[i]["框Handle"];
- if (v != null && v != DBNull.Value)
- {
- string h = v.ToString().Trim();
- if (!string.IsNullOrWhiteSpace(h)) mergedFrameHandles.Add(h);
- }
- }
- }
-
- // 删除其他被合并的行
- for (int i = 1; i < dataRows.Count; i++)
- {
- dataRows[i].Delete();
- }
-
- // 保存到数据库
- string realTbl = GetYuanjianTableByIndex(_currentProjectId, _currentTuhao, _currentXianghao);
- if (!string.IsNullOrEmpty(realTbl))
- {
- SaveTableToDatabase(_yuanjianTable, _currentProjectId,
- "\"" + realTbl + "\"", null, null, true);
- _yuanjianTable.AcceptChanges();
- RenumberTable(_currentProjectId, "\"" + realTbl + "\"");
- }
-
- // ★ 删除被合并行的框实体
- foreach (string h in mergedFrameHandles) DeleteFrameByHandle(h);
- // ★ 保存DWG,确保删框操作持久化
- SaveCurrentDwg();
-
- // 刷新缓存与表格
- string cacheKey = _currentTuhao + "\n" + _currentXianghao;
- _yuanjianCache.Remove(cacheKey);
- ReloadYuanjianByXianghao(_currentProjectId, _currentTuhao, _currentXianghao);
- RecalcAllAfterReload();
- }
- catch (Exception ex)
- {
- MessageBox.Show(this, "合并元件失败:\n" + ex.Message,
- "合并元件", MessageBoxButtons.OK, MessageBoxIcon.Error);
- }
- finally
- {
- _currentTuhao = rememberTuhao;
- _currentXianghao = rememberXianghao;
- SelectRowByValue(this.advancedDataGridView9, "图号", rememberTuhao);
- SelectRowByValue(this.advancedDataGridView4, "箱号", rememberXianghao);
- _isReloading = false;
- }
- }
-
- // ============================================================
- // 工具栏:新建项目 / 删除项目 / 导出数据
- // ============================================================
-
- private void toolStripButton5_Click(object sender, EventArgs e)
- {
- // 用自定义对话框收集项目信息字段(无主项目的"新建项目"窗体可用)
- var fields = ShowNewProjectDialog();
- if (fields == null) return;
- try
- {
- int affected = InsertProjectToDatabase(fields);
- if (affected <= 0)
- {
- MessageBox.Show(this, "未写入任何字段,请检查输入。",
- "新建项目", MessageBoxButtons.OK, MessageBoxIcon.Information);
- return;
- }
- ReloadProjectsFromDatabase();
- ApplyPriceFormat(this.advancedDataGridView6, _项目小数位文本);
- }
- catch (Exception ex)
- {
- MessageBox.Show(this, "保存项目失败:\n" + ex.Message,
- "新建项目", MessageBoxButtons.OK, MessageBoxIcon.Error);
- }
- }
-
- /// 弹出新建项目窗口,收集项目信息 + 价格格式化配置。
- private Dictionary ShowNewProjectDialog()
- {
- string dbPath = GetDbFullPath(ProjectsDbPath);
- using (var dlg = new 新建项目(dbPath, ProjectsTableName))
- {
- if (dlg.ShowDialog(this) != DialogResult.OK) return null;
- return dlg.GetInputValues();
- }
- }
-
- private void toolStripButton6_Click(object sender, EventArgs e)
- {
- DataGridViewRow row = GetFirstSelectedProjectRow();
- if (row == null)
- {
- MessageBox.Show(this, "请先在项目表格中选择要删除的项目。",
- "删除项目", MessageBoxButtons.OK, MessageBoxIcon.Information);
- return;
- }
- string projectId = GetCellValueAsString(row, "项目编号");
- if (string.IsNullOrWhiteSpace(projectId))
- {
- MessageBox.Show(this, "选中行没有“项目编号”,无法定位要删除的数据库记录。",
- "删除项目", MessageBoxButtons.OK, MessageBoxIcon.Warning);
- return;
- }
- DialogResult dr = MessageBox.Show(this,
- "确定要删除项目编号为 “" + projectId + "” 的项目吗?\n" +
- "该项目下的所有图号/箱号/元件数据也会一并删除!\n此操作不可恢复。",
- "删除项目", MessageBoxButtons.YesNo, MessageBoxIcon.Question,
- MessageBoxDefaultButton.Button2);
- if (dr != DialogResult.Yes) return;
- try
- {
- int affected = DeleteProjectFromDatabase(projectId);
- CascadeDeleteByProject(projectId);
- _currentProjectId = "";
- _currentTuhao = "";
- _currentXianghao = "";
- _xianghaoCache.Clear();
- _yuanjianCache.Clear();
- _tuhaoTable = null;
- ReloadProjectsFromDatabase();
- ReloadTuhaoByProject("");
- }
- catch (Exception ex)
- {
- MessageBox.Show(this, "删除项目失败:\n" + ex.Message,
- "删除项目", MessageBoxButtons.OK, MessageBoxIcon.Error);
- }
- }
-
- // ---------- 项目表查找(button28)----------
-
- private void button28_Click(object sender, EventArgs e)
- {
- string field = this.comboBox2.Text == null ? "" : this.comboBox2.Text.Trim();
- string colName = MapSearchFieldToColumn(field);
- if (string.IsNullOrEmpty(colName))
- {
- MessageBox.Show(this,
- "请先在搜索条件下拉框中选择有效的搜索字段(项目名称 / 项目编号 / 客户名称)。",
- "查找", MessageBoxButtons.OK, MessageBoxIcon.Information);
- return;
- }
- string keyword = this.textBox1.Text == null ? "" : this.textBox1.Text.Trim();
- DataTable table = this.advancedDataGridView6.DataSource as DataTable;
- if (table == null)
- {
- MessageBox.Show(this, "项目表暂无数据,无法搜索。", "查找",
- MessageBoxButtons.OK, MessageBoxIcon.Information);
- return;
- }
- if (keyword.Length == 0)
- {
- if (table.DefaultView.RowFilter.Length > 0) table.DefaultView.RowFilter = "";
- return;
- }
- string escaped = EscapeLikeValue(keyword);
- try { table.DefaultView.RowFilter = "[" + colName + "] LIKE '%" + escaped + "%'"; }
- catch (System.Data.SyntaxErrorException ex)
- {
- MessageBox.Show(this, "搜索条件解析失败,请检查输入的关键词。\n详情:" + ex.Message,
- "查找", MessageBoxButtons.OK, MessageBoxIcon.Warning);
- return;
- }
- if (table.DefaultView.Count == 0)
- {
- MessageBox.Show(this, "没有找到 " + field + " 包含 “" + keyword + "” 的项目。",
- "查找", MessageBoxButtons.OK, MessageBoxIcon.Information);
- }
- }
-
- private static string MapSearchFieldToColumn(string field)
- {
- if (string.IsNullOrEmpty(field)) return "";
- string f = field.Replace(" ", "").Trim();
- if (f == "项目名称" || f == "名称") return "项目名称";
- if (f == "项目编号" || f == "编号") return "项目编号";
- if (f == "客户名称" || f == "客户") return "客户名称";
- return "";
- }
-
- private static string EscapeLikeValue(string value)
- {
- if (string.IsNullOrEmpty(value)) return "";
- var sb = new System.Text.StringBuilder(value.Length * 2);
- foreach (char c in value)
- {
- if (c == '\'') sb.Append("''");
- else if (c == '%' || c == '_' || c == '[' || c == ']') sb.Append('[').Append(c).Append(']');
- else sb.Append(c);
- }
- return sb.ToString();
- }
-
- // ---------- 导出数据(toolStripButton1)----------
-
- private void toolStripButton1_Click(object sender, EventArgs e)
- {
- string pid = "";
- try
- {
- var projects = ReadAllProjectsFromDatabase();
- if (projects == null || projects.Count == 0)
- {
- MessageBox.Show(this, "项目列表为空,无项目可导出。",
- "导出项目", MessageBoxButtons.OK, MessageBoxIcon.Information);
- return;
- }
- if (projects.Count == 1)
- {
- pid = projects[0].ContainsKey("项目编号") ? (projects[0]["项目编号"] ?? "").ToString() : "";
- }
- else
- {
- pid = PickProjectDialog(projects);
- if (string.IsNullOrWhiteSpace(pid)) return;
- }
- if (string.IsNullOrWhiteSpace(pid))
- {
- MessageBox.Show(this, "未能确定要导出的项目编号。",
- "导出项目", MessageBoxButtons.OK, MessageBoxIcon.Warning);
- return;
- }
-
- // 先保存当前项目的所有改动
- SaveAllToDatabaseSilent();
-
- string dbPath = GetQuoteDbPath(pid);
- if (!File.Exists(dbPath))
- {
- MessageBox.Show(this, "项目数据库文件不存在:\n" + dbPath,
- "导出项目", MessageBoxButtons.OK, MessageBoxIcon.Warning);
- return;
- }
- var meta = ReadProjectMetaData(pid);
- if (meta == null)
- {
- MessageBox.Show(this, "项目元数据读取失败,项目编号:" + pid,
- "导出项目", MessageBoxButtons.OK, MessageBoxIcon.Warning);
- return;
- }
- string projName = meta.ContainsKey("项目名称") ? (meta["项目名称"] ?? "").ToString() : "";
- string safeName = MakeSafeFileName(projName + "_" + pid);
- string defaultFileName = safeName + "_" + DateTime.Now.ToString("yyyyMMdd") + ".zip";
-
- string initialDir = "";
- try
- {
- string desktop = Environment.GetFolderPath(Environment.SpecialFolder.Desktop);
- if (!string.IsNullOrEmpty(desktop) && Directory.Exists(desktop)) initialDir = desktop;
- }
- catch { }
- if (string.IsNullOrEmpty(initialDir))
- {
- try
- {
- string docs = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments);
- if (!string.IsNullOrEmpty(docs) && Directory.Exists(docs)) initialDir = docs;
- }
- catch { }
- }
-
- // ★ 打包到临时 zip(不弹保存对话框,直接联动主窗口)
- string tempZip = Path.Combine(Path.GetTempPath(), "cadcj_导出_" + Guid.NewGuid().ToString("N") + ".zip");
- string tempDir = Path.Combine(Path.GetTempPath(), "cadcj_导出_" + Guid.NewGuid().ToString("N"));
- Directory.CreateDirectory(tempDir);
- try
- {
- // 复制 db(用 SQL ATTACH 绕开文件锁,兜底 File.Copy)
- string dstDb = Path.Combine(tempDir, "项目" + MakeSafeFileName(pid) + ".db");
- BackupSQLiteDb(dbPath, dstDb);
-
- // 写 meta.json
- var sb = new System.Text.StringBuilder();
- sb.Append("{\n \"项目编号\": \"");
- sb.Append(EscapeJsonString(pid));
- sb.Append("\",\n \"字段\": {");
- bool firstKv = true;
- foreach (var kv in meta)
- {
- if (firstKv) firstKv = false; else sb.Append(",");
- sb.Append("\n \"");
- sb.Append(EscapeJsonString(kv.Key));
- sb.Append("\": \"");
- sb.Append(EscapeJsonString((kv.Value ?? "").ToString()));
- sb.Append("\"");
- }
- sb.Append("\n }\n}");
- File.WriteAllText(Path.Combine(tempDir, "meta.json"), sb.ToString(), new System.Text.UTF8Encoding(false));
-
- // 打包 zip
- if (File.Exists(tempZip)) File.Delete(tempZip);
- System.IO.Compression.ZipFile.CreateFromDirectory(tempDir, tempZip);
-
- // ★ 查找主窗口 exe(cadcj 目录的上级目录)
- string mainExePath = null;
- try
- {
- string pluginDir = Path.GetDirectoryName(
- new System.Uri(System.Reflection.Assembly.GetExecutingAssembly().CodeBase).LocalPath);
- string parentDir = Path.GetFullPath(Path.Combine(pluginDir, ".."));
- string candidate = Path.Combine(parentDir, "成套报价软件.exe");
- if (File.Exists(candidate)) mainExePath = candidate;
- }
- catch { }
-
- if (!string.IsNullOrEmpty(mainExePath))
- {
- // ★ 启动主窗口并传递 zip 路径,主窗口自动导入并打开项目
- var psi = new System.Diagnostics.ProcessStartInfo
- {
- FileName = mainExePath,
- Arguments = "\"" + tempZip + "\"",
- UseShellExecute = true,
- };
- System.Diagnostics.Process.Start(psi);
- MessageBox.Show(this,
- "已发送到主窗口!\n\n项目:" + projName + " (" + pid + ")\n主窗口将自动导入并打开该项目。",
- "导出项目", MessageBoxButtons.OK, MessageBoxIcon.Information);
- }
- else
- {
- // ★ 找不到主窗口 exe,退回到保存对话框模式
- using (var sfd = new SaveFileDialog
- {
- Title = "导出项目",
- Filter = "项目包 (*.zip)|*.zip",
- FileName = defaultFileName,
- RestoreDirectory = true,
- })
- {
- if (!string.IsNullOrEmpty(initialDir)) sfd.InitialDirectory = initialDir;
- if (sfd.ShowDialog(this) != DialogResult.OK) return;
- string zipPath = sfd.FileName;
- File.Copy(tempZip, zipPath, true);
- MessageBox.Show(this,
- "导出成功!\n\n项目:" + projName + " (" + pid + ")\n文件:" + zipPath +
- "\n\n(未找到主窗口程序,已保存为zip文件,可手动导入)",
- "导出项目", MessageBoxButtons.OK, MessageBoxIcon.Information);
- }
- }
- }
- finally
- {
- try { Directory.Delete(tempDir, true); } catch { }
- // 临时 zip 不立即删除(主窗口可能正在读取)
- }
- }
- catch (Exception ex)
- {
- MessageBox.Show(this, "导出失败:\n" + ex.Message,
- "导出项目", MessageBoxButtons.OK, MessageBoxIcon.Error);
- }
- }
-
- /// 用 SQL ATTACH 复制 SQLite 库,兜底 File.Copy。
- private void BackupSQLiteDb(string srcDbPath, string dstDbPath)
- {
- try { if (File.Exists(dstDbPath)) File.Delete(dstDbPath); } catch { }
- Exception sqlErr = null;
- try
- {
- using (var srcConn = new System.Data.SQLite.SQLiteConnection(
- "Data Source=" + srcDbPath + ";Version=3;Pooling=False;ReadOnly=True;"))
- {
- srcConn.Open();
- using (var att = new System.Data.SQLite.SQLiteCommand("ATTACH DATABASE @path AS dst;", srcConn))
- {
- att.Parameters.AddWithValue("@path", dstDbPath);
- att.ExecuteNonQuery();
- }
- string selAll = "SELECT name, sql FROM sqlite_master WHERE type='table' AND name NOT LIKE 'sqlite_%';";
- var tables = new List>();
- using (var sel = new System.Data.SQLite.SQLiteCommand(selAll, srcConn))
- using (var rd = sel.ExecuteReader())
- {
- while (rd.Read())
- {
- string tn = rd.IsDBNull(0) ? "" : rd.GetString(0);
- string sql = rd.IsDBNull(1) ? "" : rd.GetString(1);
- if (!string.IsNullOrEmpty(tn)) tables.Add(new KeyValuePair(tn, sql));
- }
- }
- foreach (var kv in tables)
- {
- string tn = kv.Key;
- string sql = kv.Value;
- if (!string.IsNullOrEmpty(sql))
- {
- string dstSql = sql.Replace("CREATE TABLE " + tn, "CREATE TABLE dst." + tn);
- using (var c = new System.Data.SQLite.SQLiteCommand(dstSql, srcConn)) c.ExecuteNonQuery();
- }
- using (var c = new System.Data.SQLite.SQLiteCommand(
- "INSERT INTO dst.\"" + tn + "\" SELECT * FROM main.\"" + tn + "\";", srcConn))
- c.ExecuteNonQuery();
- }
- using (var det = new System.Data.SQLite.SQLiteCommand("DETACH DATABASE dst;", srcConn))
- det.ExecuteNonQuery();
- return;
- }
- }
- catch (Exception ex) { sqlErr = ex; }
- // 兜底:File.Copy
- try { System.Data.SQLite.SQLiteConnection.ClearAllPools(); } catch { }
- try { if (File.Exists(dstDbPath)) File.Delete(dstDbPath); } catch { }
- File.Copy(srcDbPath, dstDbPath, true);
- }
-
- /// 弹出一个简单对话框,让用户从项目列表中选一个项目,返回项目编号。
- private string PickProjectDialog(List> projects)
- {
- try
- {
- using (var dlg = new Form
- {
- Text = "选择要导出的项目",
- StartPosition = FormStartPosition.CenterParent,
- FormBorderStyle = FormBorderStyle.FixedDialog,
- MaximizeBox = false,
- MinimizeBox = false,
- ClientSize = new Size(520, 360),
- })
- {
- var lbl = new Label
- {
- Text = "请选择要导出的项目:",
- Location = new Point(12, 12),
- Size = new Size(496, 23),
- TextAlign = ContentAlignment.MiddleLeft,
- };
- dlg.Controls.Add(lbl);
- var lv = new ListView
- {
- Location = new Point(12, 40),
- Size = new Size(496, 260),
- View = View.Details,
- FullRowSelect = true,
- MultiSelect = false,
- HideSelection = false,
- };
- lv.Columns.Add("项目编号", 100);
- lv.Columns.Add("项目名称", 160);
- lv.Columns.Add("客户名称", 130);
- lv.Columns.Add("项目日期", 90);
- foreach (var p in projects)
- {
- string bh = p.ContainsKey("项目编号") ? (p["项目编号"] ?? "").ToString() : "";
- string mc = p.ContainsKey("项目名称") ? (p["项目名称"] ?? "").ToString() : "";
- string kh = p.ContainsKey("客户名称") ? (p["客户名称"] ?? "").ToString() : "";
- string rq = p.ContainsKey("项目日期") ? (p["项目日期"] ?? "").ToString() : "";
- var item = new ListViewItem(bh);
- item.SubItems.Add(mc);
- item.SubItems.Add(kh);
- item.SubItems.Add(rq);
- lv.Items.Add(item);
- }
- if (lv.Items.Count > 0) lv.Items[0].Selected = true;
- dlg.Controls.Add(lv);
- var btnOk = new Button
- {
- Text = "导出选中项",
- DialogResult = DialogResult.OK,
- Location = new Point(330, 310),
- Size = new Size(85, 28),
- };
- dlg.Controls.Add(btnOk);
- var btnCancel = new Button
- {
- Text = "取消",
- DialogResult = DialogResult.Cancel,
- Location = new Point(425, 310),
- Size = new Size(75, 28),
- };
- dlg.Controls.Add(btnCancel);
- dlg.AcceptButton = btnOk;
- dlg.CancelButton = btnCancel;
- if (dlg.ShowDialog(this) == DialogResult.OK && lv.SelectedItems.Count > 0)
- return lv.SelectedItems[0].Text;
- return "";
- }
- }
- catch { return ""; }
- }
-
- // ============================================================
- // 窗体关闭:回写当前项目的所有改动
- // ============================================================
-
- private void Form3_Disposed(object sender, EventArgs e)
- {
- try { SaveAllToDatabaseSilent(); }
- catch { }
-
- // ★ 取消 ObjectErased 和 DocumentActivated 订阅,避免事件泄漏
- try
- {
- Autodesk.AutoCAD.ApplicationServices.Application.DocumentManager.DocumentActivated -=
- DocumentManager_DocumentActivated;
- if (_erasedSubscribedDb != null)
- {
- _erasedSubscribedDb.ObjectErased -= Database_ObjectErased;
- _erasedSubscribedDb = null;
- }
- var doc = Autodesk.AutoCAD.ApplicationServices.Application.DocumentManager.MdiActiveDocument;
- if (doc != null && doc.Database != null)
- {
- doc.Database.ObjectErased -= Database_ObjectErased;
- }
- }
- catch { }
- }
- }
-}
diff --git a/cadbt/cadbt/cadcj/Form3.dependencies.txt b/cadbt/cadbt/cadcj/Form3.dependencies.txt
deleted file mode 100644
index 61a6cf0..0000000
--- a/cadbt/cadbt/cadcj/Form3.dependencies.txt
+++ /dev/null
@@ -1,34 +0,0 @@
-// ============================================================
-// Form3 依赖清单
-// 此文件记录窗体所使用的控件及其运行时依赖。
-// ============================================================
-
-// NuGet 包依赖:
-// ----------------
-// System.Data.SQLite.Core (版本 1.0.119.0)
-// 安装命令: dotnet add package System.Data.SQLite.Core --version 1.0.119.0
-// 或在 Visual Studio 中: 右键项目 → 管理 NuGet 包 → 搜索 System.Data.SQLite.Core
-
-// DLL 文件依赖:
-// ----------------
-// 来自 未知:
-// - AdvancedDataGridView.dll (托管 DLL)
-// 来自 System.Data.SQLite.Core:
-// - System.Data.SQLite.dll (托管 DLL)
-
-// 编译说明:
-// ----------------
-// 1. 确保 NuGet 包已安装到项目
-// 2. 编译时使用正确的 CPU 架构(x64 或 x86)
-// 3. 运行时确保所有 DLL 文件与 exe 在同一目录
-// 4. ★ 推荐用同目录下的 build.bat 一键编译(已自动配置 response file 和 manifest)
-// manifest 的 DPI 策略与设计器一致(dpiAware=unaware),保证所见即所得
-
-// 编译命令示例(x64):
-// csc /target:winexe /platform:x64 /out:Form3.exe
-// /win32manifest:app.manifest
-// /r:System.Windows.Forms.dll /r:System.Drawing.dll
-// /r:"AdvancedDataGridView.dll"
-// /r:"System.Data.SQLite.dll"
-// Form3.cs Form3.ui.cs
-
diff --git a/cadbt/cadbt/cadcj/Form3.ui.cs b/cadbt/cadbt/cadcj/Form3.ui.cs
deleted file mode 100644
index 25488f6..0000000
--- a/cadbt/cadbt/cadcj/Form3.ui.cs
+++ /dev/null
@@ -1,1410 +0,0 @@
-namespace MyApp
-{
- public partial class Form3 : System.Windows.Forms.Form
- {
- /// 必需的设计器变量。
- private System.ComponentModel.IContainer components = null;
-
- /// 清理正在使用的资源。
- protected override void Dispose(bool disposing)
- {
- if (disposing && (components != null))
- {
- components.Dispose();
- }
- base.Dispose(disposing);
- }
-
- #region Windows 窗体设计器生成的代码
-
- private void InitializeComponent()
- {
- this.components = new System.ComponentModel.Container();
-
- this.tabControl2 = new System.Windows.Forms.TabControl();
- this.tabPage3 = new System.Windows.Forms.TabPage();
- this.advancedDataGridView6 = new Zuby.ADGV.AdvancedDataGridView();
- ((System.ComponentModel.ISupportInitialize)(this.advancedDataGridView6)).BeginInit();
- this.panel1 = new System.Windows.Forms.Panel();
- this.button28 = new System.Windows.Forms.Button();
- this.textBox1 = new System.Windows.Forms.TextBox();
- this.comboBox2 = new System.Windows.Forms.ComboBox();
- this.tabPage4 = new System.Windows.Forms.TabPage();
- this.splitContainer2 = new System.Windows.Forms.SplitContainer();
- ((System.ComponentModel.ISupportInitialize)(this.splitContainer2)).BeginInit();
- this.advancedDataGridView9 = new Zuby.ADGV.AdvancedDataGridView();
- ((System.ComponentModel.ISupportInitialize)(this.advancedDataGridView9)).BeginInit();
- this.splitContainer3 = new System.Windows.Forms.SplitContainer();
- ((System.ComponentModel.ISupportInitialize)(this.splitContainer3)).BeginInit();
- this.advancedDataGridView4 = new Zuby.ADGV.AdvancedDataGridView();
- ((System.ComponentModel.ISupportInitialize)(this.advancedDataGridView4)).BeginInit();
- this.advancedDataGridView5 = new Zuby.ADGV.AdvancedDataGridView();
- ((System.ComponentModel.ISupportInitialize)(this.advancedDataGridView5)).BeginInit();
- this.toolStrip1 = new System.Windows.Forms.ToolStrip();
- this.toolStripButton1 = new System.Windows.Forms.ToolStripButton();
- this.toolStripButton5 = new System.Windows.Forms.ToolStripButton();
- this.toolStripButton6 = new System.Windows.Forms.ToolStripButton();
- this.toolStripButton2 = new System.Windows.Forms.ToolStripButton();
- this.toolStripButton3 = new System.Windows.Forms.ToolStripButton();
- this.toolStripButton4 = new System.Windows.Forms.ToolStripButton();
- this.toolStripButton7 = new System.Windows.Forms.ToolStripButton();
- this.SuspendLayout();
- //
- // tabControl2
- //
- this.tabControl2.Dock = System.Windows.Forms.DockStyle.Fill;
- this.tabControl2.Alignment = System.Windows.Forms.TabAlignment.Top;
- this.tabControl2.Appearance = System.Windows.Forms.TabAppearance.Normal;
- this.tabControl2.DrawMode = System.Windows.Forms.TabDrawMode.Normal;
- this.tabControl2.HotTrack = false;
- this.tabControl2.ItemSize = new System.Drawing.Size(60, 21);
- this.tabControl2.Multiline = false;
- this.tabControl2.Padding = new System.Drawing.Point(6, 3);
- this.tabControl2.RightToLeftLayout = false;
- this.tabControl2.SizeMode = System.Windows.Forms.TabSizeMode.Fixed;
- this.tabControl2.ShowToolTips = false;
- this.tabControl2.Enabled = true;
- this.tabControl2.Font = new System.Drawing.Font("宋体", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point);
- this.tabControl2.Margin = new System.Windows.Forms.Padding(3, 3, 3, 3);
- this.tabControl2.MaximumSize = new System.Drawing.Size(0, 0);
- this.tabControl2.MinimumSize = new System.Drawing.Size(0, 0);
- this.tabControl2.TabIndex = 0;
- this.tabControl2.TabStop = true;
- this.tabControl2.Name = "tabControl2";
-
- //
- // tabPage3
- //
- this.tabPage3.BackColor = System.Drawing.SystemColors.Control;
- this.tabPage3.UseVisualStyleBackColor = true;
- this.tabPage3.BorderStyle = System.Windows.Forms.BorderStyle.None;
- this.tabPage3.AutoScroll = false;
- this.tabPage3.AutoScrollMargin = new System.Drawing.Size(0, 0);
- this.tabPage3.AutoScrollMinSize = new System.Drawing.Size(0, 0);
- this.tabPage3.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Tile;
- this.tabPage3.Font = new System.Drawing.Font("宋体", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point);
- this.tabPage3.ForeColor = System.Drawing.SystemColors.ControlText;
- this.tabPage3.Margin = new System.Windows.Forms.Padding(3, 3, 3, 3);
- this.tabPage3.Padding = new System.Windows.Forms.Padding(3, 3, 3, 3);
- this.tabPage3.Size = new System.Drawing.Size(479, 717);
- this.tabPage3.Text = "项目";
- this.tabPage3.Name = "tabPage3";
-
- //
- // advancedDataGridView6
- //
- this.advancedDataGridView6.ColumnHeadersDefaultCellStyle.BackColor = System.Drawing.SystemColors.Control;
- this.advancedDataGridView6.ColumnHeadersDefaultCellStyle.ForeColor = System.Drawing.SystemColors.WindowText;
- this.advancedDataGridView6.ColumnHeadersDefaultCellStyle.SelectionBackColor = System.Drawing.SystemColors.Highlight;
- this.advancedDataGridView6.ColumnHeadersDefaultCellStyle.SelectionForeColor = System.Drawing.SystemColors.HighlightText;
- this.advancedDataGridView6.ColumnHeadersDefaultCellStyle.Font = new System.Drawing.Font("宋体", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, 1);
- this.advancedDataGridView6.ColumnHeadersDefaultCellStyle.WrapMode = System.Windows.Forms.DataGridViewTriState.True;
- this.advancedDataGridView6.ColumnHeadersDefaultCellStyle.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft;
- this.advancedDataGridView6.DefaultCellStyle.BackColor = System.Drawing.SystemColors.Window;
- this.advancedDataGridView6.DefaultCellStyle.ForeColor = System.Drawing.SystemColors.ControlText;
- this.advancedDataGridView6.DefaultCellStyle.SelectionBackColor = System.Drawing.SystemColors.Highlight;
- this.advancedDataGridView6.DefaultCellStyle.SelectionForeColor = System.Drawing.SystemColors.HighlightText;
- this.advancedDataGridView6.DefaultCellStyle.Font = new System.Drawing.Font("宋体", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, 1);
- this.advancedDataGridView6.DefaultCellStyle.WrapMode = System.Windows.Forms.DataGridViewTriState.False;
- this.advancedDataGridView6.DefaultCellStyle.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft;
- this.advancedDataGridView6.RowHeadersDefaultCellStyle.BackColor = System.Drawing.SystemColors.Control;
- this.advancedDataGridView6.RowHeadersDefaultCellStyle.ForeColor = System.Drawing.SystemColors.WindowText;
- this.advancedDataGridView6.RowHeadersDefaultCellStyle.SelectionBackColor = System.Drawing.SystemColors.Highlight;
- this.advancedDataGridView6.RowHeadersDefaultCellStyle.SelectionForeColor = System.Drawing.SystemColors.HighlightText;
- this.advancedDataGridView6.RowHeadersDefaultCellStyle.Font = new System.Drawing.Font("宋体", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, 1);
- this.advancedDataGridView6.RowHeadersDefaultCellStyle.WrapMode = System.Windows.Forms.DataGridViewTriState.True;
- this.advancedDataGridView6.RowHeadersDefaultCellStyle.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft;
- this.advancedDataGridView6.Dock = System.Windows.Forms.DockStyle.Fill;
- this.advancedDataGridView6.EnableExcelStyleSelection = true;
- this.advancedDataGridView6.EnableCellPaste = false;
- this.advancedDataGridView6.AllowUserToAddRows = false;
- this.advancedDataGridView6.AllowUserToDeleteRows = true;
- this.advancedDataGridView6.AllowUserToOrderColumns = false;
- this.advancedDataGridView6.AllowUserToResizeColumns = true;
- this.advancedDataGridView6.AllowUserToResizeRows = false;
- this.advancedDataGridView6.AutoSizeColumnsMode = System.Windows.Forms.DataGridViewAutoSizeColumnsMode.None;
- this.advancedDataGridView6.AutoSizeRowsMode = System.Windows.Forms.DataGridViewAutoSizeRowsMode.None;
- this.advancedDataGridView6.BackgroundColor = System.Drawing.Color.White;
- this.advancedDataGridView6.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
- this.advancedDataGridView6.CellBorderStyle = System.Windows.Forms.DataGridViewCellBorderStyle.Single;
- this.advancedDataGridView6.ClipboardCopyMode = System.Windows.Forms.DataGridViewClipboardCopyMode.EnableWithAutoHeaderText;
- this.advancedDataGridView6.ColumnHeadersBorderStyle = System.Windows.Forms.DataGridViewHeaderBorderStyle.Raised;
- this.advancedDataGridView6.ColumnHeadersHeight = 25;
- this.advancedDataGridView6.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.EnableResizing;
- this.advancedDataGridView6.ColumnHeadersVisible = true;
- this.advancedDataGridView6.EditMode = System.Windows.Forms.DataGridViewEditMode.EditOnKeystrokeOrF2;
- this.advancedDataGridView6.EnableHeadersVisualStyles = false;
- this.advancedDataGridView6.GridColor = System.Drawing.SystemColors.ControlDark;
- this.advancedDataGridView6.MultiSelect = true;
- this.advancedDataGridView6.ReadOnly = true;
- this.advancedDataGridView6.RowHeadersBorderStyle = System.Windows.Forms.DataGridViewHeaderBorderStyle.Raised;
- this.advancedDataGridView6.RowHeadersVisible = true;
- this.advancedDataGridView6.RowHeadersWidth = 41;
- this.advancedDataGridView6.RowHeadersWidthSizeMode = System.Windows.Forms.DataGridViewRowHeadersWidthSizeMode.EnableResizing;
- this.advancedDataGridView6.ScrollBars = System.Windows.Forms.ScrollBars.Both;
- this.advancedDataGridView6.SelectionMode = System.Windows.Forms.DataGridViewSelectionMode.RowHeaderSelect;
- this.advancedDataGridView6.ShowCellErrors = true;
- this.advancedDataGridView6.ShowCellToolTips = true;
- this.advancedDataGridView6.ShowEditingIcon = true;
- this.advancedDataGridView6.ShowRowErrors = true;
- this.advancedDataGridView6.StandardTab = false;
- this.advancedDataGridView6.VirtualMode = false;
- this.advancedDataGridView6.Enabled = true;
- this.advancedDataGridView6.Margin = new System.Windows.Forms.Padding(3, 3, 3, 3);
- this.advancedDataGridView6.MaximumSize = new System.Drawing.Size(0, 0);
- this.advancedDataGridView6.MinimumSize = new System.Drawing.Size(0, 0);
- this.advancedDataGridView6.TabIndex = 1;
- this.advancedDataGridView6.TabStop = true;
- this.advancedDataGridView6.Name = "advancedDataGridView6";
- this.advancedDataGridView6.Columns.Add(new System.Windows.Forms.DataGridViewTextBoxColumn());
- this.advancedDataGridView6.Columns[0].Name = "Column2";
- this.advancedDataGridView6.Columns[0].HeaderText = "项目编号";
- this.advancedDataGridView6.Columns[0].Width = 100;
- this.advancedDataGridView6.Columns[0].Visible = true;
- this.advancedDataGridView6.Columns[0].ReadOnly = true;
- this.advancedDataGridView6.Columns[0].Frozen = false;
- this.advancedDataGridView6.Columns[0].AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.NotSet;
- this.advancedDataGridView6.Columns[0].DataPropertyName = "项目编号";
- this.advancedDataGridView6.Columns[0].SortMode = System.Windows.Forms.DataGridViewColumnSortMode.NotSortable;
- this.advancedDataGridView6.Columns.Add(new System.Windows.Forms.DataGridViewTextBoxColumn());
- this.advancedDataGridView6.Columns[1].Name = "Column3";
- this.advancedDataGridView6.Columns[1].HeaderText = "项目名称";
- this.advancedDataGridView6.Columns[1].Width = 100;
- this.advancedDataGridView6.Columns[1].Visible = true;
- this.advancedDataGridView6.Columns[1].ReadOnly = true;
- this.advancedDataGridView6.Columns[1].Frozen = false;
- this.advancedDataGridView6.Columns[1].AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.NotSet;
- this.advancedDataGridView6.Columns[1].DataPropertyName = "项目名称";
- this.advancedDataGridView6.Columns[1].SortMode = System.Windows.Forms.DataGridViewColumnSortMode.NotSortable;
- this.advancedDataGridView6.Columns.Add(new System.Windows.Forms.DataGridViewTextBoxColumn());
- this.advancedDataGridView6.Columns[2].Name = "";
- this.advancedDataGridView6.Columns[2].HeaderText = "客户名称";
- this.advancedDataGridView6.Columns[2].Width = 100;
- this.advancedDataGridView6.Columns[2].Visible = true;
- this.advancedDataGridView6.Columns[2].ReadOnly = true;
- this.advancedDataGridView6.Columns[2].Frozen = false;
- this.advancedDataGridView6.Columns[2].AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.NotSet;
- this.advancedDataGridView6.Columns[2].DataPropertyName = "客户名称";
- this.advancedDataGridView6.Columns[2].SortMode = System.Windows.Forms.DataGridViewColumnSortMode.NotSortable;
- this.advancedDataGridView6.Columns.Add(new System.Windows.Forms.DataGridViewTextBoxColumn());
- this.advancedDataGridView6.Columns[3].Name = "";
- this.advancedDataGridView6.Columns[3].HeaderText = "客户地址";
- this.advancedDataGridView6.Columns[3].Width = 100;
- this.advancedDataGridView6.Columns[3].Visible = true;
- this.advancedDataGridView6.Columns[3].ReadOnly = true;
- this.advancedDataGridView6.Columns[3].Frozen = false;
- this.advancedDataGridView6.Columns[3].AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.NotSet;
- this.advancedDataGridView6.Columns[3].DataPropertyName = "客户地址";
- this.advancedDataGridView6.Columns[3].SortMode = System.Windows.Forms.DataGridViewColumnSortMode.NotSortable;
- this.advancedDataGridView6.Columns.Add(new System.Windows.Forms.DataGridViewTextBoxColumn());
- this.advancedDataGridView6.Columns[4].Name = "";
- this.advancedDataGridView6.Columns[4].HeaderText = "联系人";
- this.advancedDataGridView6.Columns[4].Width = 100;
- this.advancedDataGridView6.Columns[4].Visible = true;
- this.advancedDataGridView6.Columns[4].ReadOnly = true;
- this.advancedDataGridView6.Columns[4].Frozen = false;
- this.advancedDataGridView6.Columns[4].AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.NotSet;
- this.advancedDataGridView6.Columns[4].DataPropertyName = "联系人";
- this.advancedDataGridView6.Columns[4].SortMode = System.Windows.Forms.DataGridViewColumnSortMode.NotSortable;
- this.advancedDataGridView6.Columns.Add(new System.Windows.Forms.DataGridViewTextBoxColumn());
- this.advancedDataGridView6.Columns[5].Name = "";
- this.advancedDataGridView6.Columns[5].HeaderText = "联系电话";
- this.advancedDataGridView6.Columns[5].Width = 100;
- this.advancedDataGridView6.Columns[5].Visible = true;
- this.advancedDataGridView6.Columns[5].ReadOnly = true;
- this.advancedDataGridView6.Columns[5].Frozen = false;
- this.advancedDataGridView6.Columns[5].AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.NotSet;
- this.advancedDataGridView6.Columns[5].DataPropertyName = "联系电话";
- this.advancedDataGridView6.Columns[5].SortMode = System.Windows.Forms.DataGridViewColumnSortMode.NotSortable;
- this.advancedDataGridView6.Columns.Add(new System.Windows.Forms.DataGridViewTextBoxColumn());
- this.advancedDataGridView6.Columns[6].Name = "";
- this.advancedDataGridView6.Columns[6].HeaderText = "项目日期";
- this.advancedDataGridView6.Columns[6].Width = 100;
- this.advancedDataGridView6.Columns[6].Visible = true;
- this.advancedDataGridView6.Columns[6].ReadOnly = true;
- this.advancedDataGridView6.Columns[6].Frozen = false;
- this.advancedDataGridView6.Columns[6].AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.NotSet;
- this.advancedDataGridView6.Columns[6].DataPropertyName = "项目日期";
- this.advancedDataGridView6.Columns[6].SortMode = System.Windows.Forms.DataGridViewColumnSortMode.NotSortable;
- this.advancedDataGridView6.Columns.Add(new System.Windows.Forms.DataGridViewTextBoxColumn());
- this.advancedDataGridView6.Columns[7].Name = "";
- this.advancedDataGridView6.Columns[7].HeaderText = "箱柜台数";
- this.advancedDataGridView6.Columns[7].Width = 100;
- this.advancedDataGridView6.Columns[7].Visible = true;
- this.advancedDataGridView6.Columns[7].ReadOnly = true;
- this.advancedDataGridView6.Columns[7].Frozen = false;
- this.advancedDataGridView6.Columns[7].AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.NotSet;
- this.advancedDataGridView6.Columns[7].DataPropertyName = "箱柜台数";
- this.advancedDataGridView6.Columns[7].SortMode = System.Windows.Forms.DataGridViewColumnSortMode.NotSortable;
- this.advancedDataGridView6.Columns.Add(new System.Windows.Forms.DataGridViewTextBoxColumn());
- this.advancedDataGridView6.Columns[8].Name = "";
- this.advancedDataGridView6.Columns[8].HeaderText = "成本总价";
- this.advancedDataGridView6.Columns[8].Width = 100;
- this.advancedDataGridView6.Columns[8].Visible = true;
- this.advancedDataGridView6.Columns[8].ReadOnly = true;
- this.advancedDataGridView6.Columns[8].Frozen = false;
- this.advancedDataGridView6.Columns[8].AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.NotSet;
- this.advancedDataGridView6.Columns[8].DataPropertyName = "成本总价";
- this.advancedDataGridView6.Columns[8].SortMode = System.Windows.Forms.DataGridViewColumnSortMode.NotSortable;
- this.advancedDataGridView6.Columns.Add(new System.Windows.Forms.DataGridViewTextBoxColumn());
- this.advancedDataGridView6.Columns[9].Name = "";
- this.advancedDataGridView6.Columns[9].HeaderText = "报出总价";
- this.advancedDataGridView6.Columns[9].Width = 100;
- this.advancedDataGridView6.Columns[9].Visible = true;
- this.advancedDataGridView6.Columns[9].ReadOnly = true;
- this.advancedDataGridView6.Columns[9].Frozen = false;
- this.advancedDataGridView6.Columns[9].AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.NotSet;
- this.advancedDataGridView6.Columns[9].DataPropertyName = "报出总价";
- this.advancedDataGridView6.Columns[9].SortMode = System.Windows.Forms.DataGridViewColumnSortMode.NotSortable;
- this.advancedDataGridView6.Columns.Add(new System.Windows.Forms.DataGridViewTextBoxColumn());
- this.advancedDataGridView6.Columns[10].Name = "";
- this.advancedDataGridView6.Columns[10].HeaderText = "利润";
- this.advancedDataGridView6.Columns[10].Width = 100;
- this.advancedDataGridView6.Columns[10].Visible = true;
- this.advancedDataGridView6.Columns[10].ReadOnly = true;
- this.advancedDataGridView6.Columns[10].Frozen = false;
- this.advancedDataGridView6.Columns[10].AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.NotSet;
- this.advancedDataGridView6.Columns[10].DataPropertyName = "利润";
- this.advancedDataGridView6.Columns[10].SortMode = System.Windows.Forms.DataGridViewColumnSortMode.NotSortable;
- this.advancedDataGridView6.Columns.Add(new System.Windows.Forms.DataGridViewTextBoxColumn());
- this.advancedDataGridView6.Columns[11].Name = "";
- this.advancedDataGridView6.Columns[11].HeaderText = "利润率";
- this.advancedDataGridView6.Columns[11].Width = 100;
- this.advancedDataGridView6.Columns[11].Visible = true;
- this.advancedDataGridView6.Columns[11].ReadOnly = true;
- this.advancedDataGridView6.Columns[11].Frozen = false;
- this.advancedDataGridView6.Columns[11].AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.NotSet;
- this.advancedDataGridView6.Columns[11].DataPropertyName = "利润率";
- this.advancedDataGridView6.Columns[11].SortMode = System.Windows.Forms.DataGridViewColumnSortMode.NotSortable;
- this.advancedDataGridView6.Columns.Add(new System.Windows.Forms.DataGridViewTextBoxColumn());
- this.advancedDataGridView6.Columns[12].Name = "";
- this.advancedDataGridView6.Columns[12].HeaderText = "备注";
- this.advancedDataGridView6.Columns[12].Width = 100;
- this.advancedDataGridView6.Columns[12].Visible = true;
- this.advancedDataGridView6.Columns[12].ReadOnly = true;
- this.advancedDataGridView6.Columns[12].Frozen = false;
- this.advancedDataGridView6.Columns[12].AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.NotSet;
- this.advancedDataGridView6.Columns[12].DataPropertyName = "备注";
- this.advancedDataGridView6.Columns[12].SortMode = System.Windows.Forms.DataGridViewColumnSortMode.NotSortable;
-
- //
- // panel1
- //
- this.panel1.Dock = System.Windows.Forms.DockStyle.Top;
- this.panel1.AutoSize = false;
- this.panel1.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowOnly;
- this.panel1.BorderStyle = System.Windows.Forms.BorderStyle.None;
- this.panel1.TabStop = false;
- this.panel1.AutoScroll = false;
- this.panel1.AutoScrollMargin = new System.Drawing.Size(0, 0);
- this.panel1.AutoScrollMinSize = new System.Drawing.Size(0, 0);
- this.panel1.BackColor = System.Drawing.SystemColors.Control;
- this.panel1.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Tile;
- this.panel1.Enabled = true;
- this.panel1.Font = new System.Drawing.Font("宋体", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point);
- this.panel1.ForeColor = System.Drawing.SystemColors.ControlText;
- this.panel1.Margin = new System.Windows.Forms.Padding(3, 3, 3, 3);
- this.panel1.MaximumSize = new System.Drawing.Size(0, 0);
- this.panel1.MinimumSize = new System.Drawing.Size(0, 0);
- this.panel1.TabIndex = 0;
- this.panel1.Padding = new System.Windows.Forms.Padding(0, 0, 0, 0);
- this.panel1.Size = new System.Drawing.Size(473, 28);
- this.panel1.Location = new System.Drawing.Point(3, 3);
- this.panel1.Name = "panel1";
-
- //
- // button28
- //
- this.button28.Dock = System.Windows.Forms.DockStyle.None;
- this.button28.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowOnly;
- this.button28.DialogResult = System.Windows.Forms.DialogResult.None;
- this.button28.AutoEllipsis = false;
- this.button28.AutoSize = false;
- this.button28.BackColor = System.Drawing.SystemColors.Control;
- this.button28.FlatStyle = System.Windows.Forms.FlatStyle.Standard;
- this.button28.ImageAlign = System.Drawing.ContentAlignment.MiddleCenter;
- this.button28.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
- this.button28.TextImageRelation = System.Windows.Forms.TextImageRelation.Overlay;
- this.button28.UseMnemonic = true;
- this.button28.UseCompatibleTextRendering = false;
- this.button28.UseVisualStyleBackColor = true;
- this.button28.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Tile;
- this.button28.Enabled = true;
- this.button28.Font = new System.Drawing.Font("宋体", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point);
- this.button28.ForeColor = System.Drawing.SystemColors.ControlText;
- this.button28.Margin = new System.Windows.Forms.Padding(3, 3, 3, 3);
- this.button28.MaximumSize = new System.Drawing.Size(0, 0);
- this.button28.MinimumSize = new System.Drawing.Size(0, 0);
- this.button28.TabIndex = 2;
- this.button28.TabStop = true;
- this.button28.Padding = new System.Windows.Forms.Padding(0, 0, 0, 0);
- this.button28.Size = new System.Drawing.Size(75, 23);
- this.button28.Location = new System.Drawing.Point(335, 2);
- this.button28.Text = "查找";
- this.button28.Name = "button28";
-
- //
- // textBox1
- //
- this.textBox1.Dock = System.Windows.Forms.DockStyle.None;
- this.textBox1.AcceptsReturn = false;
- this.textBox1.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.None;
- this.textBox1.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.None;
- this.textBox1.CharacterCasing = System.Windows.Forms.CharacterCasing.Normal;
- this.textBox1.Multiline = false;
- this.textBox1.ScrollBars = System.Windows.Forms.ScrollBars.None;
- this.textBox1.TextAlign = System.Windows.Forms.HorizontalAlignment.Left;
- this.textBox1.UseSystemPasswordChar = false;
- this.textBox1.AcceptsTab = false;
- this.textBox1.ShortcutsEnabled = true;
- this.textBox1.BackColor = System.Drawing.SystemColors.Window;
- this.textBox1.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D;
- this.textBox1.ForeColor = System.Drawing.SystemColors.WindowText;
- this.textBox1.HideSelection = true;
- this.textBox1.MaxLength = 32767;
- this.textBox1.ReadOnly = false;
- this.textBox1.WordWrap = true;
- this.textBox1.Enabled = true;
- this.textBox1.Font = new System.Drawing.Font("宋体", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point);
- this.textBox1.Margin = new System.Windows.Forms.Padding(3, 3, 3, 3);
- this.textBox1.MaximumSize = new System.Drawing.Size(0, 0);
- this.textBox1.MinimumSize = new System.Drawing.Size(0, 0);
- this.textBox1.TabIndex = 1;
- this.textBox1.TabStop = true;
- this.textBox1.Size = new System.Drawing.Size(210, 21);
- this.textBox1.Location = new System.Drawing.Point(119, 4);
- this.textBox1.Name = "textBox1";
-
- //
- // comboBox2
- //
- this.comboBox2.Dock = System.Windows.Forms.DockStyle.None;
- this.comboBox2.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.None;
- this.comboBox2.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.None;
- this.comboBox2.BackColor = System.Drawing.SystemColors.Window;
- this.comboBox2.DrawMode = System.Windows.Forms.DrawMode.Normal;
- this.comboBox2.DropDownWidth = 108;
- this.comboBox2.DropDownHeight = 106;
- this.comboBox2.FlatStyle = System.Windows.Forms.FlatStyle.Standard;
- this.comboBox2.ForeColor = System.Drawing.SystemColors.WindowText;
- this.comboBox2.IntegralHeight = true;
- this.comboBox2.ItemHeight = 12;
- this.comboBox2.MaxDropDownItems = 8;
- this.comboBox2.MaximumSize = new System.Drawing.Size(0, 0);
- this.comboBox2.MinimumSize = new System.Drawing.Size(0, 0);
- this.comboBox2.MaxLength = 0;
- this.comboBox2.Sorted = false;
- this.comboBox2.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDown;
- this.comboBox2.FormattingEnabled = false;
- this.comboBox2.Enabled = true;
- this.comboBox2.Font = new System.Drawing.Font("宋体", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point);
- this.comboBox2.Margin = new System.Windows.Forms.Padding(3, 3, 3, 3);
- this.comboBox2.TabIndex = 0;
- this.comboBox2.TabStop = true;
- this.comboBox2.Size = new System.Drawing.Size(108, 20);
- this.comboBox2.Location = new System.Drawing.Point(5, 4);
- this.comboBox2.Text = "项目名称";
- this.comboBox2.Name = "comboBox2";
- this.comboBox2.Items.Add("项目名称");
- this.comboBox2.Items.Add("项目编号");
- this.comboBox2.Items.Add("客户名称");
-
- //
- // tabPage4
- //
- this.tabPage4.BackColor = System.Drawing.SystemColors.Control;
- this.tabPage4.UseVisualStyleBackColor = true;
- this.tabPage4.BorderStyle = System.Windows.Forms.BorderStyle.None;
- this.tabPage4.AutoScroll = false;
- this.tabPage4.AutoScrollMargin = new System.Drawing.Size(0, 0);
- this.tabPage4.AutoScrollMinSize = new System.Drawing.Size(0, 0);
- this.tabPage4.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Tile;
- this.tabPage4.Font = new System.Drawing.Font("宋体", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point);
- this.tabPage4.ForeColor = System.Drawing.SystemColors.ControlText;
- this.tabPage4.Margin = new System.Windows.Forms.Padding(3, 3, 3, 3);
- this.tabPage4.Padding = new System.Windows.Forms.Padding(3, 3, 3, 3);
- this.tabPage4.Size = new System.Drawing.Size(479, 692);
- this.tabPage4.Text = "报价";
- this.tabPage4.Name = "tabPage4";
-
- //
- // splitContainer2
- //
- this.splitContainer2.Dock = System.Windows.Forms.DockStyle.Fill;
- this.splitContainer2.BorderStyle = System.Windows.Forms.BorderStyle.None;
- this.splitContainer2.FixedPanel = System.Windows.Forms.FixedPanel.None;
- this.splitContainer2.IsSplitterFixed = false;
- this.splitContainer2.Orientation = System.Windows.Forms.Orientation.Horizontal;
- this.splitContainer2.Panel1Collapsed = false;
- this.splitContainer2.Panel2Collapsed = false;
- this.splitContainer2.Panel1MinSize = 25;
- this.splitContainer2.Panel2MinSize = 25;
- this.splitContainer2.SplitterIncrement = 1;
- this.splitContainer2.SplitterWidth = 6;
- this.splitContainer2.TabStop = true;
- this.splitContainer2.BackColor = System.Drawing.SystemColors.Control;
- this.splitContainer2.Enabled = true;
- this.splitContainer2.Font = new System.Drawing.Font("宋体", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point);
- this.splitContainer2.ForeColor = System.Drawing.SystemColors.ControlText;
- this.splitContainer2.Margin = new System.Windows.Forms.Padding(3, 3, 3, 3);
- this.splitContainer2.MaximumSize = new System.Drawing.Size(0, 0);
- this.splitContainer2.MinimumSize = new System.Drawing.Size(0, 0);
- this.splitContainer2.TabIndex = 0;
- this.splitContainer2.Name = "splitContainer2";
-
- //
- // advancedDataGridView9
- //
- this.advancedDataGridView9.ColumnHeadersDefaultCellStyle.BackColor = System.Drawing.SystemColors.Control;
- this.advancedDataGridView9.ColumnHeadersDefaultCellStyle.ForeColor = System.Drawing.SystemColors.WindowText;
- this.advancedDataGridView9.ColumnHeadersDefaultCellStyle.SelectionBackColor = System.Drawing.SystemColors.Highlight;
- this.advancedDataGridView9.ColumnHeadersDefaultCellStyle.SelectionForeColor = System.Drawing.SystemColors.HighlightText;
- this.advancedDataGridView9.ColumnHeadersDefaultCellStyle.Font = new System.Drawing.Font("宋体", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, 1);
- this.advancedDataGridView9.ColumnHeadersDefaultCellStyle.WrapMode = System.Windows.Forms.DataGridViewTriState.True;
- this.advancedDataGridView9.ColumnHeadersDefaultCellStyle.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleCenter;
- this.advancedDataGridView9.DefaultCellStyle.BackColor = System.Drawing.SystemColors.Window;
- this.advancedDataGridView9.DefaultCellStyle.ForeColor = System.Drawing.SystemColors.ControlText;
- this.advancedDataGridView9.DefaultCellStyle.SelectionBackColor = System.Drawing.SystemColors.Highlight;
- this.advancedDataGridView9.DefaultCellStyle.SelectionForeColor = System.Drawing.SystemColors.HighlightText;
- this.advancedDataGridView9.DefaultCellStyle.Font = new System.Drawing.Font("宋体", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, 1);
- this.advancedDataGridView9.DefaultCellStyle.WrapMode = System.Windows.Forms.DataGridViewTriState.False;
- this.advancedDataGridView9.DefaultCellStyle.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft;
- this.advancedDataGridView9.RowHeadersDefaultCellStyle.BackColor = System.Drawing.SystemColors.Control;
- this.advancedDataGridView9.RowHeadersDefaultCellStyle.ForeColor = System.Drawing.SystemColors.WindowText;
- this.advancedDataGridView9.RowHeadersDefaultCellStyle.SelectionBackColor = System.Drawing.SystemColors.Highlight;
- this.advancedDataGridView9.RowHeadersDefaultCellStyle.SelectionForeColor = System.Drawing.SystemColors.HighlightText;
- this.advancedDataGridView9.RowHeadersDefaultCellStyle.Font = new System.Drawing.Font("宋体", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, 1);
- this.advancedDataGridView9.RowHeadersDefaultCellStyle.WrapMode = System.Windows.Forms.DataGridViewTriState.True;
- this.advancedDataGridView9.RowHeadersDefaultCellStyle.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft;
- this.advancedDataGridView9.Dock = System.Windows.Forms.DockStyle.Fill;
- this.advancedDataGridView9.EnableExcelStyleSelection = true;
- this.advancedDataGridView9.EnableCellPaste = true;
- this.advancedDataGridView9.AllowUserToAddRows = false;
- this.advancedDataGridView9.AllowUserToDeleteRows = true;
- this.advancedDataGridView9.AllowUserToOrderColumns = false;
- this.advancedDataGridView9.AllowUserToResizeColumns = true;
- this.advancedDataGridView9.AllowUserToResizeRows = false;
- this.advancedDataGridView9.AutoSizeColumnsMode = System.Windows.Forms.DataGridViewAutoSizeColumnsMode.None;
- this.advancedDataGridView9.AutoSizeRowsMode = System.Windows.Forms.DataGridViewAutoSizeRowsMode.None;
- this.advancedDataGridView9.BackgroundColor = System.Drawing.Color.White;
- this.advancedDataGridView9.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
- this.advancedDataGridView9.CellBorderStyle = System.Windows.Forms.DataGridViewCellBorderStyle.Single;
- this.advancedDataGridView9.ClipboardCopyMode = System.Windows.Forms.DataGridViewClipboardCopyMode.EnableWithAutoHeaderText;
- this.advancedDataGridView9.ColumnHeadersBorderStyle = System.Windows.Forms.DataGridViewHeaderBorderStyle.Raised;
- this.advancedDataGridView9.ColumnHeadersHeight = 35;
- this.advancedDataGridView9.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.EnableResizing;
- this.advancedDataGridView9.ColumnHeadersVisible = true;
- this.advancedDataGridView9.EditMode = System.Windows.Forms.DataGridViewEditMode.EditOnKeystroke;
- this.advancedDataGridView9.EnableHeadersVisualStyles = false;
- this.advancedDataGridView9.GridColor = System.Drawing.SystemColors.ControlDark;
- this.advancedDataGridView9.MultiSelect = true;
- this.advancedDataGridView9.ReadOnly = false;
- this.advancedDataGridView9.RowHeadersBorderStyle = System.Windows.Forms.DataGridViewHeaderBorderStyle.Raised;
- this.advancedDataGridView9.RowHeadersVisible = true;
- this.advancedDataGridView9.RowHeadersWidth = 41;
- this.advancedDataGridView9.RowHeadersWidthSizeMode = System.Windows.Forms.DataGridViewRowHeadersWidthSizeMode.EnableResizing;
- this.advancedDataGridView9.ScrollBars = System.Windows.Forms.ScrollBars.Both;
- this.advancedDataGridView9.SelectionMode = System.Windows.Forms.DataGridViewSelectionMode.RowHeaderSelect;
- this.advancedDataGridView9.ShowCellErrors = true;
- this.advancedDataGridView9.ShowCellToolTips = true;
- this.advancedDataGridView9.ShowEditingIcon = true;
- this.advancedDataGridView9.ShowRowErrors = true;
- this.advancedDataGridView9.StandardTab = false;
- this.advancedDataGridView9.VirtualMode = false;
- this.advancedDataGridView9.Enabled = true;
- this.advancedDataGridView9.Margin = new System.Windows.Forms.Padding(3, 3, 3, 3);
- this.advancedDataGridView9.MaximumSize = new System.Drawing.Size(0, 0);
- this.advancedDataGridView9.MinimumSize = new System.Drawing.Size(0, 0);
- this.advancedDataGridView9.TabIndex = 0;
- this.advancedDataGridView9.TabStop = true;
- this.advancedDataGridView9.Name = "advancedDataGridView9";
- this.advancedDataGridView9.Columns.Add(new System.Windows.Forms.DataGridViewTextBoxColumn());
- this.advancedDataGridView9.Columns[0].Name = "";
- this.advancedDataGridView9.Columns[0].HeaderText = "序号";
- this.advancedDataGridView9.Columns[0].Width = 35;
- this.advancedDataGridView9.Columns[0].Visible = true;
- this.advancedDataGridView9.Columns[0].ReadOnly = false;
- this.advancedDataGridView9.Columns[0].Frozen = true;
- this.advancedDataGridView9.Columns[0].AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.None;
- this.advancedDataGridView9.Columns[0].DataPropertyName = "序号";
- this.advancedDataGridView9.Columns[0].SortMode = System.Windows.Forms.DataGridViewColumnSortMode.NotSortable;
- this.advancedDataGridView9.Columns[0].DefaultCellStyle.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleCenter;
- this.advancedDataGridView9.Columns.Add(new System.Windows.Forms.DataGridViewTextBoxColumn());
- this.advancedDataGridView9.Columns[1].Name = "";
- this.advancedDataGridView9.Columns[1].HeaderText = "图号";
- this.advancedDataGridView9.Columns[1].Width = 100;
- this.advancedDataGridView9.Columns[1].Visible = true;
- this.advancedDataGridView9.Columns[1].ReadOnly = false;
- this.advancedDataGridView9.Columns[1].Frozen = false;
- this.advancedDataGridView9.Columns[1].AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.NotSet;
- this.advancedDataGridView9.Columns[1].DataPropertyName = "图号";
- this.advancedDataGridView9.Columns[1].SortMode = System.Windows.Forms.DataGridViewColumnSortMode.NotSortable;
- this.advancedDataGridView9.Columns.Add(new System.Windows.Forms.DataGridViewTextBoxColumn());
- this.advancedDataGridView9.Columns[2].Name = "";
- this.advancedDataGridView9.Columns[2].HeaderText = "图名";
- this.advancedDataGridView9.Columns[2].Width = 100;
- this.advancedDataGridView9.Columns[2].Visible = true;
- this.advancedDataGridView9.Columns[2].ReadOnly = false;
- this.advancedDataGridView9.Columns[2].Frozen = false;
- this.advancedDataGridView9.Columns[2].AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.NotSet;
- this.advancedDataGridView9.Columns[2].DataPropertyName = "图名";
- this.advancedDataGridView9.Columns[2].SortMode = System.Windows.Forms.DataGridViewColumnSortMode.NotSortable;
- this.advancedDataGridView9.Columns.Add(new System.Windows.Forms.DataGridViewTextBoxColumn());
- this.advancedDataGridView9.Columns[3].Name = "";
- this.advancedDataGridView9.Columns[3].HeaderText = "台数";
- this.advancedDataGridView9.Columns[3].Width = 35;
- this.advancedDataGridView9.Columns[3].Visible = true;
- this.advancedDataGridView9.Columns[3].ReadOnly = false;
- this.advancedDataGridView9.Columns[3].Frozen = false;
- this.advancedDataGridView9.Columns[3].AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.NotSet;
- this.advancedDataGridView9.Columns[3].DataPropertyName = "台数";
- this.advancedDataGridView9.Columns[3].SortMode = System.Windows.Forms.DataGridViewColumnSortMode.NotSortable;
- this.advancedDataGridView9.Columns[3].DefaultCellStyle.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleCenter;
- this.advancedDataGridView9.Columns.Add(new System.Windows.Forms.DataGridViewTextBoxColumn());
- this.advancedDataGridView9.Columns[4].Name = "";
- this.advancedDataGridView9.Columns[4].HeaderText = "箱柜数量";
- this.advancedDataGridView9.Columns[4].Width = 35;
- this.advancedDataGridView9.Columns[4].Visible = true;
- this.advancedDataGridView9.Columns[4].ReadOnly = false;
- this.advancedDataGridView9.Columns[4].Frozen = false;
- this.advancedDataGridView9.Columns[4].AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.NotSet;
- this.advancedDataGridView9.Columns[4].DataPropertyName = "箱柜数量";
- this.advancedDataGridView9.Columns[4].SortMode = System.Windows.Forms.DataGridViewColumnSortMode.NotSortable;
- this.advancedDataGridView9.Columns[4].DefaultCellStyle.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleCenter;
- this.advancedDataGridView9.Columns.Add(new System.Windows.Forms.DataGridViewTextBoxColumn());
- this.advancedDataGridView9.Columns[5].Name = "";
- this.advancedDataGridView9.Columns[5].HeaderText = "单价";
- this.advancedDataGridView9.Columns[5].Width = 100;
- this.advancedDataGridView9.Columns[5].Visible = true;
- this.advancedDataGridView9.Columns[5].ReadOnly = false;
- this.advancedDataGridView9.Columns[5].Frozen = false;
- this.advancedDataGridView9.Columns[5].AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.NotSet;
- this.advancedDataGridView9.Columns[5].DataPropertyName = "单价";
- this.advancedDataGridView9.Columns[5].SortMode = System.Windows.Forms.DataGridViewColumnSortMode.NotSortable;
- this.advancedDataGridView9.Columns.Add(new System.Windows.Forms.DataGridViewTextBoxColumn());
- this.advancedDataGridView9.Columns[6].Name = "";
- this.advancedDataGridView9.Columns[6].HeaderText = "总价";
- this.advancedDataGridView9.Columns[6].Width = 100;
- this.advancedDataGridView9.Columns[6].Visible = true;
- this.advancedDataGridView9.Columns[6].ReadOnly = false;
- this.advancedDataGridView9.Columns[6].Frozen = false;
- this.advancedDataGridView9.Columns[6].AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.NotSet;
- this.advancedDataGridView9.Columns[6].DataPropertyName = "总价";
- this.advancedDataGridView9.Columns[6].SortMode = System.Windows.Forms.DataGridViewColumnSortMode.NotSortable;
- this.advancedDataGridView9.Columns.Add(new System.Windows.Forms.DataGridViewTextBoxColumn());
- this.advancedDataGridView9.Columns[7].Name = "";
- this.advancedDataGridView9.Columns[7].HeaderText = "成本总价";
- this.advancedDataGridView9.Columns[7].Width = 100;
- this.advancedDataGridView9.Columns[7].Visible = true;
- this.advancedDataGridView9.Columns[7].ReadOnly = false;
- this.advancedDataGridView9.Columns[7].Frozen = false;
- this.advancedDataGridView9.Columns[7].AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.NotSet;
- this.advancedDataGridView9.Columns[7].DataPropertyName = "成本总价";
- this.advancedDataGridView9.Columns[7].SortMode = System.Windows.Forms.DataGridViewColumnSortMode.NotSortable;
- this.advancedDataGridView9.Columns.Add(new System.Windows.Forms.DataGridViewTextBoxColumn());
- this.advancedDataGridView9.Columns[8].Name = "";
- this.advancedDataGridView9.Columns[8].HeaderText = "毛利";
- this.advancedDataGridView9.Columns[8].Width = 100;
- this.advancedDataGridView9.Columns[8].Visible = true;
- this.advancedDataGridView9.Columns[8].ReadOnly = false;
- this.advancedDataGridView9.Columns[8].Frozen = false;
- this.advancedDataGridView9.Columns[8].AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.NotSet;
- this.advancedDataGridView9.Columns[8].DataPropertyName = "毛利";
- this.advancedDataGridView9.Columns[8].SortMode = System.Windows.Forms.DataGridViewColumnSortMode.NotSortable;
- this.advancedDataGridView9.Columns.Add(new System.Windows.Forms.DataGridViewTextBoxColumn());
- this.advancedDataGridView9.Columns[9].Name = "";
- this.advancedDataGridView9.Columns[9].HeaderText = "毛利率";
- this.advancedDataGridView9.Columns[9].Width = 100;
- this.advancedDataGridView9.Columns[9].Visible = true;
- this.advancedDataGridView9.Columns[9].ReadOnly = false;
- this.advancedDataGridView9.Columns[9].Frozen = false;
- this.advancedDataGridView9.Columns[9].AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.NotSet;
- this.advancedDataGridView9.Columns[9].DataPropertyName = "毛利率";
- this.advancedDataGridView9.Columns[9].SortMode = System.Windows.Forms.DataGridViewColumnSortMode.NotSortable;
-
- //
- // splitContainer3
- //
- this.splitContainer3.Dock = System.Windows.Forms.DockStyle.Fill;
- this.splitContainer3.BorderStyle = System.Windows.Forms.BorderStyle.None;
- this.splitContainer3.FixedPanel = System.Windows.Forms.FixedPanel.None;
- this.splitContainer3.IsSplitterFixed = false;
- this.splitContainer3.Orientation = System.Windows.Forms.Orientation.Horizontal;
- this.splitContainer3.Panel1Collapsed = false;
- this.splitContainer3.Panel2Collapsed = false;
- this.splitContainer3.Panel1MinSize = 25;
- this.splitContainer3.Panel2MinSize = 25;
- this.splitContainer3.SplitterIncrement = 1;
- this.splitContainer3.SplitterWidth = 6;
- this.splitContainer3.TabStop = true;
- this.splitContainer3.BackColor = System.Drawing.SystemColors.Control;
- this.splitContainer3.Enabled = true;
- this.splitContainer3.Font = new System.Drawing.Font("宋体", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point);
- this.splitContainer3.ForeColor = System.Drawing.SystemColors.ControlText;
- this.splitContainer3.Margin = new System.Windows.Forms.Padding(3, 3, 3, 3);
- this.splitContainer3.MaximumSize = new System.Drawing.Size(0, 0);
- this.splitContainer3.MinimumSize = new System.Drawing.Size(0, 0);
- this.splitContainer3.TabIndex = 0;
- this.splitContainer3.Name = "splitContainer3";
-
- //
- // advancedDataGridView4
- //
- this.advancedDataGridView4.ColumnHeadersDefaultCellStyle.BackColor = System.Drawing.SystemColors.Control;
- this.advancedDataGridView4.ColumnHeadersDefaultCellStyle.ForeColor = System.Drawing.SystemColors.WindowText;
- this.advancedDataGridView4.ColumnHeadersDefaultCellStyle.SelectionBackColor = System.Drawing.SystemColors.Highlight;
- this.advancedDataGridView4.ColumnHeadersDefaultCellStyle.SelectionForeColor = System.Drawing.SystemColors.HighlightText;
- this.advancedDataGridView4.ColumnHeadersDefaultCellStyle.Font = new System.Drawing.Font("宋体", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, 1);
- this.advancedDataGridView4.ColumnHeadersDefaultCellStyle.WrapMode = System.Windows.Forms.DataGridViewTriState.True;
- this.advancedDataGridView4.ColumnHeadersDefaultCellStyle.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleCenter;
- this.advancedDataGridView4.DefaultCellStyle.BackColor = System.Drawing.SystemColors.Window;
- this.advancedDataGridView4.DefaultCellStyle.ForeColor = System.Drawing.SystemColors.ControlText;
- this.advancedDataGridView4.DefaultCellStyle.SelectionBackColor = System.Drawing.SystemColors.Highlight;
- this.advancedDataGridView4.DefaultCellStyle.SelectionForeColor = System.Drawing.SystemColors.HighlightText;
- this.advancedDataGridView4.DefaultCellStyle.Font = new System.Drawing.Font("宋体", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, 1);
- this.advancedDataGridView4.DefaultCellStyle.WrapMode = System.Windows.Forms.DataGridViewTriState.False;
- this.advancedDataGridView4.DefaultCellStyle.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft;
- this.advancedDataGridView4.RowHeadersDefaultCellStyle.BackColor = System.Drawing.SystemColors.Control;
- this.advancedDataGridView4.RowHeadersDefaultCellStyle.ForeColor = System.Drawing.SystemColors.WindowText;
- this.advancedDataGridView4.RowHeadersDefaultCellStyle.SelectionBackColor = System.Drawing.SystemColors.Highlight;
- this.advancedDataGridView4.RowHeadersDefaultCellStyle.SelectionForeColor = System.Drawing.SystemColors.HighlightText;
- this.advancedDataGridView4.RowHeadersDefaultCellStyle.Font = new System.Drawing.Font("宋体", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, 1);
- this.advancedDataGridView4.RowHeadersDefaultCellStyle.WrapMode = System.Windows.Forms.DataGridViewTriState.True;
- this.advancedDataGridView4.RowHeadersDefaultCellStyle.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft;
- this.advancedDataGridView4.Dock = System.Windows.Forms.DockStyle.Fill;
- this.advancedDataGridView4.EnableExcelStyleSelection = true;
- this.advancedDataGridView4.EnableCellPaste = true;
- this.advancedDataGridView4.AllowUserToAddRows = false;
- this.advancedDataGridView4.AllowUserToDeleteRows = true;
- this.advancedDataGridView4.AllowUserToOrderColumns = false;
- this.advancedDataGridView4.AllowUserToResizeColumns = true;
- this.advancedDataGridView4.AllowUserToResizeRows = false;
- this.advancedDataGridView4.AutoSizeColumnsMode = System.Windows.Forms.DataGridViewAutoSizeColumnsMode.None;
- this.advancedDataGridView4.AutoSizeRowsMode = System.Windows.Forms.DataGridViewAutoSizeRowsMode.None;
- this.advancedDataGridView4.BackgroundColor = System.Drawing.Color.White;
- this.advancedDataGridView4.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
- this.advancedDataGridView4.CellBorderStyle = System.Windows.Forms.DataGridViewCellBorderStyle.Single;
- this.advancedDataGridView4.ClipboardCopyMode = System.Windows.Forms.DataGridViewClipboardCopyMode.EnableWithAutoHeaderText;
- this.advancedDataGridView4.ColumnHeadersBorderStyle = System.Windows.Forms.DataGridViewHeaderBorderStyle.Raised;
- this.advancedDataGridView4.ColumnHeadersHeight = 35;
- this.advancedDataGridView4.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.EnableResizing;
- this.advancedDataGridView4.ColumnHeadersVisible = true;
- this.advancedDataGridView4.EditMode = System.Windows.Forms.DataGridViewEditMode.EditOnKeystroke;
- this.advancedDataGridView4.EnableHeadersVisualStyles = false;
- this.advancedDataGridView4.GridColor = System.Drawing.SystemColors.ControlDark;
- this.advancedDataGridView4.MultiSelect = true;
- this.advancedDataGridView4.ReadOnly = false;
- this.advancedDataGridView4.RowHeadersBorderStyle = System.Windows.Forms.DataGridViewHeaderBorderStyle.Raised;
- this.advancedDataGridView4.RowHeadersVisible = true;
- this.advancedDataGridView4.RowHeadersWidth = 41;
- this.advancedDataGridView4.RowHeadersWidthSizeMode = System.Windows.Forms.DataGridViewRowHeadersWidthSizeMode.EnableResizing;
- this.advancedDataGridView4.ScrollBars = System.Windows.Forms.ScrollBars.Both;
- this.advancedDataGridView4.SelectionMode = System.Windows.Forms.DataGridViewSelectionMode.RowHeaderSelect;
- this.advancedDataGridView4.ShowCellErrors = true;
- this.advancedDataGridView4.ShowCellToolTips = true;
- this.advancedDataGridView4.ShowEditingIcon = true;
- this.advancedDataGridView4.ShowRowErrors = true;
- this.advancedDataGridView4.StandardTab = false;
- this.advancedDataGridView4.VirtualMode = false;
- this.advancedDataGridView4.Enabled = true;
- this.advancedDataGridView4.Margin = new System.Windows.Forms.Padding(3, 3, 3, 3);
- this.advancedDataGridView4.MaximumSize = new System.Drawing.Size(0, 0);
- this.advancedDataGridView4.MinimumSize = new System.Drawing.Size(0, 0);
- this.advancedDataGridView4.TabIndex = 0;
- this.advancedDataGridView4.TabStop = true;
- this.advancedDataGridView4.Name = "advancedDataGridView4";
- this.advancedDataGridView4.Columns.Add(new System.Windows.Forms.DataGridViewTextBoxColumn());
- this.advancedDataGridView4.Columns[0].Name = "";
- this.advancedDataGridView4.Columns[0].HeaderText = "序号";
- this.advancedDataGridView4.Columns[0].Width = 35;
- this.advancedDataGridView4.Columns[0].Visible = true;
- this.advancedDataGridView4.Columns[0].ReadOnly = false;
- this.advancedDataGridView4.Columns[0].Frozen = false;
- this.advancedDataGridView4.Columns[0].AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.NotSet;
- this.advancedDataGridView4.Columns[0].DataPropertyName = "序号";
- this.advancedDataGridView4.Columns[0].SortMode = System.Windows.Forms.DataGridViewColumnSortMode.NotSortable;
- this.advancedDataGridView4.Columns[0].DefaultCellStyle.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleCenter;
- this.advancedDataGridView4.Columns.Add(new System.Windows.Forms.DataGridViewTextBoxColumn());
- this.advancedDataGridView4.Columns[1].Name = "";
- this.advancedDataGridView4.Columns[1].HeaderText = "箱号";
- this.advancedDataGridView4.Columns[1].Width = 150;
- this.advancedDataGridView4.Columns[1].Visible = true;
- this.advancedDataGridView4.Columns[1].ReadOnly = false;
- this.advancedDataGridView4.Columns[1].Frozen = false;
- this.advancedDataGridView4.Columns[1].AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.NotSet;
- this.advancedDataGridView4.Columns[1].DataPropertyName = "箱号";
- this.advancedDataGridView4.Columns[1].SortMode = System.Windows.Forms.DataGridViewColumnSortMode.NotSortable;
- this.advancedDataGridView4.Columns.Add(new System.Windows.Forms.DataGridViewTextBoxColumn());
- this.advancedDataGridView4.Columns[2].Name = "";
- this.advancedDataGridView4.Columns[2].HeaderText = "箱名";
- this.advancedDataGridView4.Columns[2].Width = 150;
- this.advancedDataGridView4.Columns[2].Visible = true;
- this.advancedDataGridView4.Columns[2].ReadOnly = false;
- this.advancedDataGridView4.Columns[2].Frozen = false;
- this.advancedDataGridView4.Columns[2].AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.NotSet;
- this.advancedDataGridView4.Columns[2].DataPropertyName = "箱名";
- this.advancedDataGridView4.Columns[2].SortMode = System.Windows.Forms.DataGridViewColumnSortMode.NotSortable;
- this.advancedDataGridView4.Columns[2].DefaultCellStyle.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleCenter;
- this.advancedDataGridView4.Columns.Add(new System.Windows.Forms.DataGridViewTextBoxColumn());
- this.advancedDataGridView4.Columns[3].Name = "";
- this.advancedDataGridView4.Columns[3].HeaderText = "型号";
- this.advancedDataGridView4.Columns[3].Width = 150;
- this.advancedDataGridView4.Columns[3].Visible = true;
- this.advancedDataGridView4.Columns[3].ReadOnly = false;
- this.advancedDataGridView4.Columns[3].Frozen = false;
- this.advancedDataGridView4.Columns[3].AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.NotSet;
- this.advancedDataGridView4.Columns[3].DataPropertyName = "型号";
- this.advancedDataGridView4.Columns[3].SortMode = System.Windows.Forms.DataGridViewColumnSortMode.NotSortable;
- this.advancedDataGridView4.Columns.Add(new System.Windows.Forms.DataGridViewTextBoxColumn());
- this.advancedDataGridView4.Columns[4].Name = "";
- this.advancedDataGridView4.Columns[4].HeaderText = "规格";
- this.advancedDataGridView4.Columns[4].Width = 150;
- this.advancedDataGridView4.Columns[4].Visible = true;
- this.advancedDataGridView4.Columns[4].ReadOnly = false;
- this.advancedDataGridView4.Columns[4].Frozen = false;
- this.advancedDataGridView4.Columns[4].AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.NotSet;
- this.advancedDataGridView4.Columns[4].DataPropertyName = "规格";
- this.advancedDataGridView4.Columns[4].SortMode = System.Windows.Forms.DataGridViewColumnSortMode.NotSortable;
- this.advancedDataGridView4.Columns.Add(new System.Windows.Forms.DataGridViewTextBoxColumn());
- this.advancedDataGridView4.Columns[5].Name = "";
- this.advancedDataGridView4.Columns[5].HeaderText = "单位";
- this.advancedDataGridView4.Columns[5].Width = 35;
- this.advancedDataGridView4.Columns[5].Visible = true;
- this.advancedDataGridView4.Columns[5].ReadOnly = false;
- this.advancedDataGridView4.Columns[5].Frozen = false;
- this.advancedDataGridView4.Columns[5].AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.NotSet;
- this.advancedDataGridView4.Columns[5].DataPropertyName = "单位";
- this.advancedDataGridView4.Columns[5].SortMode = System.Windows.Forms.DataGridViewColumnSortMode.NotSortable;
- this.advancedDataGridView4.Columns[5].DefaultCellStyle.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleCenter;
- this.advancedDataGridView4.Columns.Add(new System.Windows.Forms.DataGridViewTextBoxColumn());
- this.advancedDataGridView4.Columns[6].Name = "";
- this.advancedDataGridView4.Columns[6].HeaderText = "数量";
- this.advancedDataGridView4.Columns[6].Width = 45;
- this.advancedDataGridView4.Columns[6].Visible = true;
- this.advancedDataGridView4.Columns[6].ReadOnly = false;
- this.advancedDataGridView4.Columns[6].Frozen = false;
- this.advancedDataGridView4.Columns[6].AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.NotSet;
- this.advancedDataGridView4.Columns[6].DataPropertyName = "数量";
- this.advancedDataGridView4.Columns[6].SortMode = System.Windows.Forms.DataGridViewColumnSortMode.NotSortable;
- this.advancedDataGridView4.Columns[6].DefaultCellStyle.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleCenter;
- this.advancedDataGridView4.Columns.Add(new System.Windows.Forms.DataGridViewTextBoxColumn());
- this.advancedDataGridView4.Columns[7].Name = "";
- this.advancedDataGridView4.Columns[7].HeaderText = "单台成本";
- this.advancedDataGridView4.Columns[7].Width = 100;
- this.advancedDataGridView4.Columns[7].Visible = true;
- this.advancedDataGridView4.Columns[7].ReadOnly = false;
- this.advancedDataGridView4.Columns[7].Frozen = false;
- this.advancedDataGridView4.Columns[7].AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.NotSet;
- this.advancedDataGridView4.Columns[7].DataPropertyName = "单台成本";
- this.advancedDataGridView4.Columns[7].SortMode = System.Windows.Forms.DataGridViewColumnSortMode.NotSortable;
- this.advancedDataGridView4.Columns.Add(new System.Windows.Forms.DataGridViewTextBoxColumn());
- this.advancedDataGridView4.Columns[8].Name = "";
- this.advancedDataGridView4.Columns[8].HeaderText = "成本价";
- this.advancedDataGridView4.Columns[8].Width = 100;
- this.advancedDataGridView4.Columns[8].Visible = true;
- this.advancedDataGridView4.Columns[8].ReadOnly = false;
- this.advancedDataGridView4.Columns[8].Frozen = false;
- this.advancedDataGridView4.Columns[8].AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.NotSet;
- this.advancedDataGridView4.Columns[8].DataPropertyName = "成本价";
- this.advancedDataGridView4.Columns[8].SortMode = System.Windows.Forms.DataGridViewColumnSortMode.NotSortable;
- this.advancedDataGridView4.Columns.Add(new System.Windows.Forms.DataGridViewTextBoxColumn());
- this.advancedDataGridView4.Columns[9].Name = "";
- this.advancedDataGridView4.Columns[9].HeaderText = "单台报出";
- this.advancedDataGridView4.Columns[9].Width = 100;
- this.advancedDataGridView4.Columns[9].Visible = true;
- this.advancedDataGridView4.Columns[9].ReadOnly = false;
- this.advancedDataGridView4.Columns[9].Frozen = false;
- this.advancedDataGridView4.Columns[9].AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.NotSet;
- this.advancedDataGridView4.Columns[9].DataPropertyName = "单台报出";
- this.advancedDataGridView4.Columns[9].SortMode = System.Windows.Forms.DataGridViewColumnSortMode.NotSortable;
- this.advancedDataGridView4.Columns.Add(new System.Windows.Forms.DataGridViewTextBoxColumn());
- this.advancedDataGridView4.Columns[10].Name = "";
- this.advancedDataGridView4.Columns[10].HeaderText = "报出价";
- this.advancedDataGridView4.Columns[10].Width = 100;
- this.advancedDataGridView4.Columns[10].Visible = true;
- this.advancedDataGridView4.Columns[10].ReadOnly = false;
- this.advancedDataGridView4.Columns[10].Frozen = false;
- this.advancedDataGridView4.Columns[10].AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.NotSet;
- this.advancedDataGridView4.Columns[10].DataPropertyName = "报出价";
- this.advancedDataGridView4.Columns[10].SortMode = System.Windows.Forms.DataGridViewColumnSortMode.NotSortable;
- this.advancedDataGridView4.Columns.Add(new System.Windows.Forms.DataGridViewTextBoxColumn());
- this.advancedDataGridView4.Columns[11].Name = "";
- this.advancedDataGridView4.Columns[11].HeaderText = "利润";
- this.advancedDataGridView4.Columns[11].Width = 100;
- this.advancedDataGridView4.Columns[11].Visible = true;
- this.advancedDataGridView4.Columns[11].ReadOnly = false;
- this.advancedDataGridView4.Columns[11].Frozen = false;
- this.advancedDataGridView4.Columns[11].AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.NotSet;
- this.advancedDataGridView4.Columns[11].DataPropertyName = "利润";
- this.advancedDataGridView4.Columns[11].SortMode = System.Windows.Forms.DataGridViewColumnSortMode.NotSortable;
- this.advancedDataGridView4.Columns.Add(new System.Windows.Forms.DataGridViewTextBoxColumn());
- this.advancedDataGridView4.Columns[12].Name = "";
- this.advancedDataGridView4.Columns[12].HeaderText = "利润率";
- this.advancedDataGridView4.Columns[12].Width = 100;
- this.advancedDataGridView4.Columns[12].Visible = true;
- this.advancedDataGridView4.Columns[12].ReadOnly = false;
- this.advancedDataGridView4.Columns[12].Frozen = false;
- this.advancedDataGridView4.Columns[12].AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.NotSet;
- this.advancedDataGridView4.Columns[12].DataPropertyName = "利润率";
- this.advancedDataGridView4.Columns[12].SortMode = System.Windows.Forms.DataGridViewColumnSortMode.NotSortable;
- this.advancedDataGridView4.Columns.Add(new System.Windows.Forms.DataGridViewTextBoxColumn());
- this.advancedDataGridView4.Columns[13].Name = "";
- this.advancedDataGridView4.Columns[13].HeaderText = "毛利率";
- this.advancedDataGridView4.Columns[13].Width = 100;
- this.advancedDataGridView4.Columns[13].Visible = true;
- this.advancedDataGridView4.Columns[13].ReadOnly = false;
- this.advancedDataGridView4.Columns[13].Frozen = false;
- this.advancedDataGridView4.Columns[13].AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.NotSet;
- this.advancedDataGridView4.Columns[13].DataPropertyName = "毛利率";
- this.advancedDataGridView4.Columns[13].SortMode = System.Windows.Forms.DataGridViewColumnSortMode.NotSortable;
- this.advancedDataGridView4.Columns.Add(new System.Windows.Forms.DataGridViewTextBoxColumn());
- this.advancedDataGridView4.Columns[14].Name = "";
- this.advancedDataGridView4.Columns[14].HeaderText = "箱柜类型";
- this.advancedDataGridView4.Columns[14].Width = 100;
- this.advancedDataGridView4.Columns[14].Visible = true;
- this.advancedDataGridView4.Columns[14].ReadOnly = false;
- this.advancedDataGridView4.Columns[14].Frozen = false;
- this.advancedDataGridView4.Columns[14].AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.NotSet;
- this.advancedDataGridView4.Columns[14].DataPropertyName = "箱柜类型";
- this.advancedDataGridView4.Columns[14].SortMode = System.Windows.Forms.DataGridViewColumnSortMode.NotSortable;
- this.advancedDataGridView4.Columns.Add(new System.Windows.Forms.DataGridViewTextBoxColumn());
- this.advancedDataGridView4.Columns[15].Name = "";
- this.advancedDataGridView4.Columns[15].HeaderText = "备注";
- this.advancedDataGridView4.Columns[15].Width = 100;
- this.advancedDataGridView4.Columns[15].Visible = true;
- this.advancedDataGridView4.Columns[15].ReadOnly = false;
- this.advancedDataGridView4.Columns[15].Frozen = false;
- this.advancedDataGridView4.Columns[15].AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.NotSet;
- this.advancedDataGridView4.Columns[15].DataPropertyName = "备注";
- this.advancedDataGridView4.Columns[15].SortMode = System.Windows.Forms.DataGridViewColumnSortMode.NotSortable;
- this.advancedDataGridView4.Columns.Add(new System.Windows.Forms.DataGridViewTextBoxColumn());
- this.advancedDataGridView4.Columns[16].Name = "";
- this.advancedDataGridView4.Columns[16].HeaderText = "图纸";
- this.advancedDataGridView4.Columns[16].Width = 100;
- this.advancedDataGridView4.Columns[16].Visible = true;
- this.advancedDataGridView4.Columns[16].ReadOnly = false;
- this.advancedDataGridView4.Columns[16].Frozen = false;
- this.advancedDataGridView4.Columns[16].AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.NotSet;
- this.advancedDataGridView4.Columns[16].DataPropertyName = "图纸";
- this.advancedDataGridView4.Columns[16].SortMode = System.Windows.Forms.DataGridViewColumnSortMode.NotSortable;
-
- //
- // advancedDataGridView5
- //
- this.advancedDataGridView5.ColumnHeadersDefaultCellStyle.BackColor = System.Drawing.SystemColors.Control;
- this.advancedDataGridView5.ColumnHeadersDefaultCellStyle.ForeColor = System.Drawing.SystemColors.WindowText;
- this.advancedDataGridView5.ColumnHeadersDefaultCellStyle.SelectionBackColor = System.Drawing.SystemColors.Highlight;
- this.advancedDataGridView5.ColumnHeadersDefaultCellStyle.SelectionForeColor = System.Drawing.SystemColors.HighlightText;
- this.advancedDataGridView5.ColumnHeadersDefaultCellStyle.Font = new System.Drawing.Font("宋体", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, 1);
- this.advancedDataGridView5.ColumnHeadersDefaultCellStyle.WrapMode = System.Windows.Forms.DataGridViewTriState.True;
- this.advancedDataGridView5.ColumnHeadersDefaultCellStyle.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleCenter;
- this.advancedDataGridView5.DefaultCellStyle.BackColor = System.Drawing.SystemColors.Window;
- this.advancedDataGridView5.DefaultCellStyle.ForeColor = System.Drawing.SystemColors.ControlText;
- this.advancedDataGridView5.DefaultCellStyle.SelectionBackColor = System.Drawing.SystemColors.Highlight;
- this.advancedDataGridView5.DefaultCellStyle.SelectionForeColor = System.Drawing.SystemColors.HighlightText;
- this.advancedDataGridView5.DefaultCellStyle.Font = new System.Drawing.Font("宋体", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, 1);
- this.advancedDataGridView5.DefaultCellStyle.WrapMode = System.Windows.Forms.DataGridViewTriState.False;
- this.advancedDataGridView5.DefaultCellStyle.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft;
- this.advancedDataGridView5.RowHeadersDefaultCellStyle.BackColor = System.Drawing.SystemColors.Control;
- this.advancedDataGridView5.RowHeadersDefaultCellStyle.ForeColor = System.Drawing.SystemColors.WindowText;
- this.advancedDataGridView5.RowHeadersDefaultCellStyle.SelectionBackColor = System.Drawing.SystemColors.Highlight;
- this.advancedDataGridView5.RowHeadersDefaultCellStyle.SelectionForeColor = System.Drawing.SystemColors.HighlightText;
- this.advancedDataGridView5.RowHeadersDefaultCellStyle.Font = new System.Drawing.Font("宋体", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, 1);
- this.advancedDataGridView5.RowHeadersDefaultCellStyle.WrapMode = System.Windows.Forms.DataGridViewTriState.True;
- this.advancedDataGridView5.RowHeadersDefaultCellStyle.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft;
- this.advancedDataGridView5.Dock = System.Windows.Forms.DockStyle.Fill;
- this.advancedDataGridView5.EnableExcelStyleSelection = true;
- this.advancedDataGridView5.EnableCellPaste = true;
- this.advancedDataGridView5.AllowUserToAddRows = false;
- this.advancedDataGridView5.AllowUserToDeleteRows = true;
- this.advancedDataGridView5.AllowUserToOrderColumns = false;
- this.advancedDataGridView5.AllowUserToResizeColumns = true;
- this.advancedDataGridView5.AllowUserToResizeRows = false;
- this.advancedDataGridView5.AutoSizeColumnsMode = System.Windows.Forms.DataGridViewAutoSizeColumnsMode.None;
- this.advancedDataGridView5.AutoSizeRowsMode = System.Windows.Forms.DataGridViewAutoSizeRowsMode.None;
- this.advancedDataGridView5.BackgroundColor = System.Drawing.Color.White;
- this.advancedDataGridView5.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
- this.advancedDataGridView5.CellBorderStyle = System.Windows.Forms.DataGridViewCellBorderStyle.Single;
- this.advancedDataGridView5.ClipboardCopyMode = System.Windows.Forms.DataGridViewClipboardCopyMode.EnableWithAutoHeaderText;
- this.advancedDataGridView5.ColumnHeadersBorderStyle = System.Windows.Forms.DataGridViewHeaderBorderStyle.Raised;
- this.advancedDataGridView5.ColumnHeadersHeight = 35;
- this.advancedDataGridView5.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.EnableResizing;
- this.advancedDataGridView5.ColumnHeadersVisible = true;
- this.advancedDataGridView5.EditMode = System.Windows.Forms.DataGridViewEditMode.EditOnKeystroke;
- this.advancedDataGridView5.EnableHeadersVisualStyles = false;
- this.advancedDataGridView5.GridColor = System.Drawing.SystemColors.ControlDark;
- this.advancedDataGridView5.MultiSelect = true;
- this.advancedDataGridView5.ReadOnly = false;
- this.advancedDataGridView5.RowHeadersBorderStyle = System.Windows.Forms.DataGridViewHeaderBorderStyle.Raised;
- this.advancedDataGridView5.RowHeadersVisible = true;
- this.advancedDataGridView5.RowHeadersWidth = 41;
- this.advancedDataGridView5.RowHeadersWidthSizeMode = System.Windows.Forms.DataGridViewRowHeadersWidthSizeMode.EnableResizing;
- this.advancedDataGridView5.ScrollBars = System.Windows.Forms.ScrollBars.Both;
- this.advancedDataGridView5.SelectionMode = System.Windows.Forms.DataGridViewSelectionMode.RowHeaderSelect;
- this.advancedDataGridView5.ShowCellErrors = true;
- this.advancedDataGridView5.ShowCellToolTips = true;
- this.advancedDataGridView5.ShowEditingIcon = true;
- this.advancedDataGridView5.ShowRowErrors = true;
- this.advancedDataGridView5.StandardTab = false;
- this.advancedDataGridView5.VirtualMode = false;
- this.advancedDataGridView5.Enabled = true;
- this.advancedDataGridView5.Margin = new System.Windows.Forms.Padding(3, 3, 3, 3);
- this.advancedDataGridView5.MaximumSize = new System.Drawing.Size(0, 0);
- this.advancedDataGridView5.MinimumSize = new System.Drawing.Size(0, 0);
- this.advancedDataGridView5.TabIndex = 0;
- this.advancedDataGridView5.TabStop = true;
- this.advancedDataGridView5.Name = "advancedDataGridView5";
- this.advancedDataGridView5.Columns.Add(new System.Windows.Forms.DataGridViewTextBoxColumn());
- this.advancedDataGridView5.Columns[0].Name = "";
- this.advancedDataGridView5.Columns[0].HeaderText = "序号";
- this.advancedDataGridView5.Columns[0].Width = 35;
- this.advancedDataGridView5.Columns[0].Visible = true;
- this.advancedDataGridView5.Columns[0].ReadOnly = false;
- this.advancedDataGridView5.Columns[0].Frozen = false;
- this.advancedDataGridView5.Columns[0].AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.NotSet;
- this.advancedDataGridView5.Columns[0].DataPropertyName = "序号";
- this.advancedDataGridView5.Columns[0].SortMode = System.Windows.Forms.DataGridViewColumnSortMode.NotSortable;
- this.advancedDataGridView5.Columns[0].DefaultCellStyle.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleCenter;
- this.advancedDataGridView5.Columns.Add(new System.Windows.Forms.DataGridViewTextBoxColumn());
- this.advancedDataGridView5.Columns[1].Name = "";
- this.advancedDataGridView5.Columns[1].HeaderText = "元件名称";
- this.advancedDataGridView5.Columns[1].Width = 150;
- this.advancedDataGridView5.Columns[1].Visible = true;
- this.advancedDataGridView5.Columns[1].ReadOnly = false;
- this.advancedDataGridView5.Columns[1].Frozen = false;
- this.advancedDataGridView5.Columns[1].AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.NotSet;
- this.advancedDataGridView5.Columns[1].DataPropertyName = "元件名称";
- this.advancedDataGridView5.Columns[1].SortMode = System.Windows.Forms.DataGridViewColumnSortMode.NotSortable;
- this.advancedDataGridView5.Columns.Add(new System.Windows.Forms.DataGridViewTextBoxColumn());
- this.advancedDataGridView5.Columns[2].Name = "";
- this.advancedDataGridView5.Columns[2].HeaderText = "规格";
- this.advancedDataGridView5.Columns[2].Width = 150;
- this.advancedDataGridView5.Columns[2].Visible = true;
- this.advancedDataGridView5.Columns[2].ReadOnly = false;
- this.advancedDataGridView5.Columns[2].Frozen = false;
- this.advancedDataGridView5.Columns[2].AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.NotSet;
- this.advancedDataGridView5.Columns[2].DataPropertyName = "规格";
- this.advancedDataGridView5.Columns[2].SortMode = System.Windows.Forms.DataGridViewColumnSortMode.NotSortable;
- this.advancedDataGridView5.Columns.Add(new System.Windows.Forms.DataGridViewTextBoxColumn());
- this.advancedDataGridView5.Columns[3].Name = "";
- this.advancedDataGridView5.Columns[3].HeaderText = "单位";
- this.advancedDataGridView5.Columns[3].Width = 35;
- this.advancedDataGridView5.Columns[3].Visible = true;
- this.advancedDataGridView5.Columns[3].ReadOnly = false;
- this.advancedDataGridView5.Columns[3].Frozen = false;
- this.advancedDataGridView5.Columns[3].AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.NotSet;
- this.advancedDataGridView5.Columns[3].DataPropertyName = "单位";
- this.advancedDataGridView5.Columns[3].SortMode = System.Windows.Forms.DataGridViewColumnSortMode.NotSortable;
- this.advancedDataGridView5.Columns[3].DefaultCellStyle.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleCenter;
- this.advancedDataGridView5.Columns.Add(new System.Windows.Forms.DataGridViewTextBoxColumn());
- this.advancedDataGridView5.Columns[4].Name = "";
- this.advancedDataGridView5.Columns[4].HeaderText = "数量";
- this.advancedDataGridView5.Columns[4].Width = 40;
- this.advancedDataGridView5.Columns[4].Visible = true;
- this.advancedDataGridView5.Columns[4].ReadOnly = false;
- this.advancedDataGridView5.Columns[4].Frozen = false;
- this.advancedDataGridView5.Columns[4].AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.NotSet;
- this.advancedDataGridView5.Columns[4].DataPropertyName = "数量";
- this.advancedDataGridView5.Columns[4].SortMode = System.Windows.Forms.DataGridViewColumnSortMode.NotSortable;
- this.advancedDataGridView5.Columns[4].DefaultCellStyle.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleCenter;
- this.advancedDataGridView5.Columns.Add(new System.Windows.Forms.DataGridViewTextBoxColumn());
- this.advancedDataGridView5.Columns[5].Name = "";
- this.advancedDataGridView5.Columns[5].HeaderText = "表价";
- this.advancedDataGridView5.Columns[5].Width = 100;
- this.advancedDataGridView5.Columns[5].Visible = true;
- this.advancedDataGridView5.Columns[5].ReadOnly = false;
- this.advancedDataGridView5.Columns[5].Frozen = false;
- this.advancedDataGridView5.Columns[5].AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.NotSet;
- this.advancedDataGridView5.Columns[5].DataPropertyName = "表价";
- this.advancedDataGridView5.Columns[5].SortMode = System.Windows.Forms.DataGridViewColumnSortMode.NotSortable;
- this.advancedDataGridView5.Columns.Add(new System.Windows.Forms.DataGridViewTextBoxColumn());
- this.advancedDataGridView5.Columns[6].Name = "";
- this.advancedDataGridView5.Columns[6].HeaderText = "采购单价";
- this.advancedDataGridView5.Columns[6].Width = 100;
- this.advancedDataGridView5.Columns[6].Visible = true;
- this.advancedDataGridView5.Columns[6].ReadOnly = false;
- this.advancedDataGridView5.Columns[6].Frozen = false;
- this.advancedDataGridView5.Columns[6].AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.NotSet;
- this.advancedDataGridView5.Columns[6].DataPropertyName = "采购单价";
- this.advancedDataGridView5.Columns[6].SortMode = System.Windows.Forms.DataGridViewColumnSortMode.NotSortable;
- this.advancedDataGridView5.Columns.Add(new System.Windows.Forms.DataGridViewTextBoxColumn());
- this.advancedDataGridView5.Columns[7].Name = "";
- this.advancedDataGridView5.Columns[7].HeaderText = "采购系数";
- this.advancedDataGridView5.Columns[7].Width = 100;
- this.advancedDataGridView5.Columns[7].Visible = true;
- this.advancedDataGridView5.Columns[7].ReadOnly = false;
- this.advancedDataGridView5.Columns[7].Frozen = false;
- this.advancedDataGridView5.Columns[7].AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.NotSet;
- this.advancedDataGridView5.Columns[7].DataPropertyName = "采购系数";
- this.advancedDataGridView5.Columns[7].SortMode = System.Windows.Forms.DataGridViewColumnSortMode.NotSortable;
- this.advancedDataGridView5.Columns.Add(new System.Windows.Forms.DataGridViewTextBoxColumn());
- this.advancedDataGridView5.Columns[8].Name = "";
- this.advancedDataGridView5.Columns[8].HeaderText = "采购价";
- this.advancedDataGridView5.Columns[8].Width = 100;
- this.advancedDataGridView5.Columns[8].Visible = true;
- this.advancedDataGridView5.Columns[8].ReadOnly = false;
- this.advancedDataGridView5.Columns[8].Frozen = false;
- this.advancedDataGridView5.Columns[8].AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.NotSet;
- this.advancedDataGridView5.Columns[8].DataPropertyName = "采购价";
- this.advancedDataGridView5.Columns[8].SortMode = System.Windows.Forms.DataGridViewColumnSortMode.NotSortable;
- this.advancedDataGridView5.Columns.Add(new System.Windows.Forms.DataGridViewTextBoxColumn());
- this.advancedDataGridView5.Columns[9].Name = "";
- this.advancedDataGridView5.Columns[9].HeaderText = "报出单价";
- this.advancedDataGridView5.Columns[9].Width = 100;
- this.advancedDataGridView5.Columns[9].Visible = true;
- this.advancedDataGridView5.Columns[9].ReadOnly = false;
- this.advancedDataGridView5.Columns[9].Frozen = false;
- this.advancedDataGridView5.Columns[9].AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.NotSet;
- this.advancedDataGridView5.Columns[9].DataPropertyName = "报出单价";
- this.advancedDataGridView5.Columns[9].SortMode = System.Windows.Forms.DataGridViewColumnSortMode.NotSortable;
- this.advancedDataGridView5.Columns.Add(new System.Windows.Forms.DataGridViewTextBoxColumn());
- this.advancedDataGridView5.Columns[10].Name = "";
- this.advancedDataGridView5.Columns[10].HeaderText = "报出系数";
- this.advancedDataGridView5.Columns[10].Width = 100;
- this.advancedDataGridView5.Columns[10].Visible = true;
- this.advancedDataGridView5.Columns[10].ReadOnly = false;
- this.advancedDataGridView5.Columns[10].Frozen = false;
- this.advancedDataGridView5.Columns[10].AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.NotSet;
- this.advancedDataGridView5.Columns[10].DataPropertyName = "报出系数";
- this.advancedDataGridView5.Columns[10].SortMode = System.Windows.Forms.DataGridViewColumnSortMode.NotSortable;
- this.advancedDataGridView5.Columns.Add(new System.Windows.Forms.DataGridViewTextBoxColumn());
- this.advancedDataGridView5.Columns[11].Name = "";
- this.advancedDataGridView5.Columns[11].HeaderText = "报出价";
- this.advancedDataGridView5.Columns[11].Width = 100;
- this.advancedDataGridView5.Columns[11].Visible = true;
- this.advancedDataGridView5.Columns[11].ReadOnly = false;
- this.advancedDataGridView5.Columns[11].Frozen = false;
- this.advancedDataGridView5.Columns[11].AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.NotSet;
- this.advancedDataGridView5.Columns[11].DataPropertyName = "报出价";
- this.advancedDataGridView5.Columns[11].SortMode = System.Windows.Forms.DataGridViewColumnSortMode.NotSortable;
- this.advancedDataGridView5.Columns.Add(new System.Windows.Forms.DataGridViewTextBoxColumn());
- this.advancedDataGridView5.Columns[12].Name = "";
- this.advancedDataGridView5.Columns[12].HeaderText = "图纸规格";
- this.advancedDataGridView5.Columns[12].Width = 100;
- this.advancedDataGridView5.Columns[12].Visible = true;
- this.advancedDataGridView5.Columns[12].ReadOnly = false;
- this.advancedDataGridView5.Columns[12].Frozen = false;
- this.advancedDataGridView5.Columns[12].AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.NotSet;
- this.advancedDataGridView5.Columns[12].DataPropertyName = "图纸规格";
- this.advancedDataGridView5.Columns[12].SortMode = System.Windows.Forms.DataGridViewColumnSortMode.NotSortable;
- this.advancedDataGridView5.Columns.Add(new System.Windows.Forms.DataGridViewTextBoxColumn());
- this.advancedDataGridView5.Columns[13].Name = "";
- this.advancedDataGridView5.Columns[13].HeaderText = "品牌";
- this.advancedDataGridView5.Columns[13].Width = 100;
- this.advancedDataGridView5.Columns[13].Visible = true;
- this.advancedDataGridView5.Columns[13].ReadOnly = false;
- this.advancedDataGridView5.Columns[13].Frozen = false;
- this.advancedDataGridView5.Columns[13].AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.NotSet;
- this.advancedDataGridView5.Columns[13].DataPropertyName = "品牌";
- this.advancedDataGridView5.Columns[13].SortMode = System.Windows.Forms.DataGridViewColumnSortMode.NotSortable;
- this.advancedDataGridView5.Columns.Add(new System.Windows.Forms.DataGridViewTextBoxColumn());
- this.advancedDataGridView5.Columns[14].Name = "";
- this.advancedDataGridView5.Columns[14].HeaderText = "系列";
- this.advancedDataGridView5.Columns[14].Width = 100;
- this.advancedDataGridView5.Columns[14].Visible = true;
- this.advancedDataGridView5.Columns[14].ReadOnly = false;
- this.advancedDataGridView5.Columns[14].Frozen = false;
- this.advancedDataGridView5.Columns[14].AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.NotSet;
- this.advancedDataGridView5.Columns[14].DataPropertyName = "系列";
- this.advancedDataGridView5.Columns[14].SortMode = System.Windows.Forms.DataGridViewColumnSortMode.NotSortable;
- this.advancedDataGridView5.Columns.Add(new System.Windows.Forms.DataGridViewTextBoxColumn());
- this.advancedDataGridView5.Columns[15].Name = "";
- this.advancedDataGridView5.Columns[15].HeaderText = "类型";
- this.advancedDataGridView5.Columns[15].Width = 100;
- this.advancedDataGridView5.Columns[15].Visible = true;
- this.advancedDataGridView5.Columns[15].ReadOnly = false;
- this.advancedDataGridView5.Columns[15].Frozen = false;
- this.advancedDataGridView5.Columns[15].AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.NotSet;
- this.advancedDataGridView5.Columns[15].DataPropertyName = "类型";
- this.advancedDataGridView5.Columns[15].SortMode = System.Windows.Forms.DataGridViewColumnSortMode.NotSortable;
- this.advancedDataGridView5.Columns.Add(new System.Windows.Forms.DataGridViewTextBoxColumn());
- this.advancedDataGridView5.Columns[16].Name = "";
- this.advancedDataGridView5.Columns[16].HeaderText = "备注";
- this.advancedDataGridView5.Columns[16].Width = 100;
- this.advancedDataGridView5.Columns[16].Visible = true;
- this.advancedDataGridView5.Columns[16].ReadOnly = false;
- this.advancedDataGridView5.Columns[16].Frozen = false;
- this.advancedDataGridView5.Columns[16].AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.NotSet;
- this.advancedDataGridView5.Columns[16].DataPropertyName = "备注";
- this.advancedDataGridView5.Columns[16].SortMode = System.Windows.Forms.DataGridViewColumnSortMode.NotSortable;
-
- //
- // toolStrip1
- //
- this.toolStrip1.Dock = System.Windows.Forms.DockStyle.Top;
- this.toolStrip1.AutoSize = true;
- this.toolStrip1.AllowItemReorder = false;
- this.toolStrip1.AllowMerge = true;
- this.toolStrip1.BackColor = System.Drawing.SystemColors.Control;
- this.toolStrip1.CanOverflow = true;
- this.toolStrip1.Font = new System.Drawing.Font("Microsoft YaHei UI", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point);
- this.toolStrip1.GripStyle = System.Windows.Forms.ToolStripGripStyle.Visible;
- this.toolStrip1.GripMargin = new System.Windows.Forms.Padding(2, 2, 2, 2);
- this.toolStrip1.ImageScalingSize = new System.Drawing.Size(16, 16);
- this.toolStrip1.LayoutStyle = System.Windows.Forms.ToolStripLayoutStyle.HorizontalStackWithOverflow;
- this.toolStrip1.Stretch = false;
- this.toolStrip1.RenderMode = System.Windows.Forms.ToolStripRenderMode.ManagerRenderMode;
- this.toolStrip1.ShowItemToolTips = true;
- this.toolStrip1.TabStop = false;
- this.toolStrip1.TextDirection = System.Windows.Forms.ToolStripTextDirection.Horizontal;
- this.toolStrip1.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Tile;
- this.toolStrip1.Enabled = true;
- this.toolStrip1.Margin = new System.Windows.Forms.Padding(0, 0, 0, 0);
- this.toolStrip1.MaximumSize = new System.Drawing.Size(0, 0);
- this.toolStrip1.MinimumSize = new System.Drawing.Size(0, 0);
- this.toolStrip1.TabIndex = 1;
- this.toolStrip1.Padding = new System.Windows.Forms.Padding(0, 0, 1, 0);
- this.toolStrip1.Size = new System.Drawing.Size(487, 25);
- this.toolStrip1.Location = new System.Drawing.Point(0, 0);
- this.toolStrip1.Name = "toolStrip1";
-
- //
- // toolStripButton1
- //
- this.toolStripButton1.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Text;
- this.toolStripButton1.ToolTipText = "导出数据";
- this.toolStripButton1.Size = new System.Drawing.Size(60, 22);
- this.toolStripButton1.Text = "导出数据";
- this.toolStripButton1.Name = "toolStripButton1";
-
- //
- // toolStripButton5
- //
- this.toolStripButton5.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Text;
- this.toolStripButton5.ToolTipText = "新建项目";
- this.toolStripButton5.Size = new System.Drawing.Size(60, 22);
- this.toolStripButton5.Text = "新建项目";
- this.toolStripButton5.Name = "toolStripButton5";
-
- //
- // toolStripButton6
- //
- this.toolStripButton6.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Text;
- this.toolStripButton6.ToolTipText = "删除项目";
- this.toolStripButton6.Size = new System.Drawing.Size(60, 22);
- this.toolStripButton6.Text = "删除项目";
- this.toolStripButton6.Name = "toolStripButton6";
-
- //
- // toolStripButton2
- //
- this.toolStripButton2.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Text;
- this.toolStripButton2.ToolTipText = "扒图号";
- this.toolStripButton2.Size = new System.Drawing.Size(48, 22);
- this.toolStripButton2.Text = "扒图号";
- this.toolStripButton2.Name = "toolStripButton2";
-
- //
- // toolStripButton3
- //
- this.toolStripButton3.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Text;
- this.toolStripButton3.ToolTipText = "扒箱号";
- this.toolStripButton3.Size = new System.Drawing.Size(48, 22);
- this.toolStripButton3.Text = "扒箱号";
- this.toolStripButton3.Name = "toolStripButton3";
-
- //
- // toolStripButton4
- //
- this.toolStripButton4.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Text;
- this.toolStripButton4.ToolTipText = "扒元件";
- this.toolStripButton4.Size = new System.Drawing.Size(48, 22);
- this.toolStripButton4.Text = "扒元件";
- this.toolStripButton4.Name = "toolStripButton4";
-
- //
- // toolStripButton7
- //
- this.toolStripButton7.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Text;
- this.toolStripButton7.ImageTransparentColor = System.Drawing.Color.Magenta;
- this.toolStripButton7.Size = new System.Drawing.Size(36, 22);
- this.toolStripButton7.Text = "设置";
- this.toolStripButton7.Name = "toolStripButton7";
-
- // Form3
- this.Controls.AddRange(new System.Windows.Forms.Control[] {
- this.tabControl2,
- this.toolStrip1,
- });
- // tabControl2
- this.tabControl2.Controls.AddRange(new System.Windows.Forms.Control[] {
- this.tabPage3,
- this.tabPage4,
- });
- // tabPage3
- this.tabPage3.Controls.AddRange(new System.Windows.Forms.Control[] {
- this.advancedDataGridView6,
- this.panel1,
- });
- // panel1
- this.panel1.Controls.AddRange(new System.Windows.Forms.Control[] {
- this.button28,
- this.textBox1,
- this.comboBox2,
- });
- // tabPage4
- this.tabPage4.Controls.AddRange(new System.Windows.Forms.Control[] {
- this.splitContainer2,
- });
- // Panel1
- this.splitContainer2.Panel1.Controls.AddRange(new System.Windows.Forms.Control[] {
- this.advancedDataGridView9,
- });
- // Panel2
- this.splitContainer2.Panel2.Controls.AddRange(new System.Windows.Forms.Control[] {
- this.splitContainer3,
- });
- // Panel1
- this.splitContainer3.Panel1.Controls.AddRange(new System.Windows.Forms.Control[] {
- this.advancedDataGridView4,
- });
- // Panel2
- this.splitContainer3.Panel2.Controls.AddRange(new System.Windows.Forms.Control[] {
- this.advancedDataGridView5,
- });
- // toolStrip1
- this.toolStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
- this.toolStripButton1,
- this.toolStripButton5,
- this.toolStripButton6,
- this.toolStripButton2,
- this.toolStripButton3,
- this.toolStripButton4,
- this.toolStripButton7,
- });
- //
- // Form3
- //
- this.Dock = System.Windows.Forms.DockStyle.None;
- this.AutoScroll = false;
- this.AutoSize = false;
- this.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowOnly;
- this.AutoValidate = System.Windows.Forms.AutoValidate.EnablePreventFocusChange;
- this.BackColor = System.Drawing.SystemColors.Control;
- this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.Sizable;
- this.ControlBox = true;
- this.HelpButton = false;
- this.IsMdiContainer = false;
- this.KeyPreview = false;
- this.MaximumSize = new System.Drawing.Size(0, 0);
- this.MinimumSize = new System.Drawing.Size(0, 0);
- this.MaximizeBox = true;
- this.MinimizeBox = true;
- this.Opacity = 1;
- this.RightToLeftLayout = false;
- this.ShowInTaskbar = true;
- this.ShowIcon = true;
- this.SizeGripStyle = System.Windows.Forms.SizeGripStyle.Auto;
- this.StartPosition = System.Windows.Forms.FormStartPosition.WindowsDefaultLocation;
- this.TopMost = false;
- this.WindowState = System.Windows.Forms.FormWindowState.Normal;
- this.AutoScrollMargin = new System.Drawing.Size(0, 0);
- this.AutoScrollMinSize = new System.Drawing.Size(0, 0);
- this.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Tile;
- this.Enabled = true;
- this.Font = new System.Drawing.Font("宋体", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point);
- this.ForeColor = System.Drawing.SystemColors.ControlText;
- this.Padding = new System.Windows.Forms.Padding(0, 0, 0, 0);
- this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None;
- this.Size = new System.Drawing.Size(503, 785);
- this.Text = "Form3";
- this.Name = "Form3";
- ((System.ComponentModel.ISupportInitialize)(this.advancedDataGridView6)).EndInit();
- ((System.ComponentModel.ISupportInitialize)(this.splitContainer2)).EndInit();
- ((System.ComponentModel.ISupportInitialize)(this.advancedDataGridView9)).EndInit();
- ((System.ComponentModel.ISupportInitialize)(this.splitContainer3)).EndInit();
- ((System.ComponentModel.ISupportInitialize)(this.advancedDataGridView4)).EndInit();
- ((System.ComponentModel.ISupportInitialize)(this.advancedDataGridView5)).EndInit();
- this.ResumeLayout(false);
- this.PerformLayout();
- this.splitContainer2.SplitterDistance = 173;
- this.splitContainer3.SplitterDistance = 239;
-
- // === DataGridView Excel 风格选中效果 ===
-
- // === SQLite 设计时数据绑定(由设计器注入) ===
- // 在 Form.Load 事件中加载所有绑定数据
- this.Load += (sender, e) => LoadAllSqliteData();
- }
-
- #endregion
-
- private System.Windows.Forms.TabControl tabControl2;
- private System.Windows.Forms.TabPage tabPage3;
- private Zuby.ADGV.AdvancedDataGridView advancedDataGridView6;
- private System.Windows.Forms.Panel panel1;
- private System.Windows.Forms.Button button28;
- private System.Windows.Forms.TextBox textBox1;
- private System.Windows.Forms.ComboBox comboBox2;
- private System.Windows.Forms.TabPage tabPage4;
- private System.Windows.Forms.SplitContainer splitContainer2;
- private Zuby.ADGV.AdvancedDataGridView advancedDataGridView9;
- private System.Windows.Forms.SplitContainer splitContainer3;
- private Zuby.ADGV.AdvancedDataGridView advancedDataGridView4;
- private Zuby.ADGV.AdvancedDataGridView advancedDataGridView5;
- private System.Windows.Forms.ToolStrip toolStrip1;
- private System.Windows.Forms.ToolStripButton toolStripButton1;
- private System.Windows.Forms.ToolStripButton toolStripButton5;
- private System.Windows.Forms.ToolStripButton toolStripButton6;
- private System.Windows.Forms.ToolStripButton toolStripButton2;
- private System.Windows.Forms.ToolStripButton toolStripButton3;
- private System.Windows.Forms.ToolStripButton toolStripButton4;
- private System.Windows.Forms.ToolStripButton toolStripButton7;
-
- /// 加载所有 SQLite 设计数据绑定。
- private void LoadAllSqliteData()
- {
- if (!System.Environment.Is64BitProcess)
- {
- System.Windows.Forms.MessageBox.Show(
- "当前程序以 32 位进程运行,但 System.Data.SQLite.dll 是 64 位(x64)。\n" +
- "请用 /platform:x64 编译本程序(运行同目录下 build.bat 即可)。",
- "SQLite 加载失败", System.Windows.Forms.MessageBoxButtons.OK, System.Windows.Forms.MessageBoxIcon.Warning);
- return;
- }
- try { LoadSqliteData_advancedDataGridView6(); } catch (System.Exception ex_advancedDataGridView6) { System.Windows.Forms.MessageBox.Show("加载数据失败 (advancedDataGridView6): " + ex_advancedDataGridView6.Message); }
- }
-
- /// 为 advancedDataGridView6 加载 SQLite 数据(由设计器生成)。
- private void LoadSqliteData_advancedDataGridView6()
- {
- // ★ 数据库路径:优先用插件真实目录(_baseDir 在 Form3.cs,注册表/CodeBase 解析),
- // 在 CAD 中加载时 BaseDirectory 指向 CAD 安装目录会找不到库
- string dbPath = System.IO.Path.Combine(
- GetPluginBaseDirForUi(), @"sjk\advancedDataGridView6Table.db");
- if (!System.IO.File.Exists(dbPath))
- {
- // ★ 静默跳过(不弹窗):构造函数里的 Load 事件已用正确路径重新加载
- System.Diagnostics.Debug.WriteLine("找不到数据库文件: " + dbPath);
- return;
- }
-
- string connStr = "Data Source=" + dbPath + ";Version=3;busy_timeout=3000;";
- var table = new System.Data.DataTable();
- using (var conn = new System.Data.SQLite.SQLiteConnection(connStr))
- {
- conn.Open();
- string sql = @"SELECT * FROM advancedDataGridView6Table";
- using (var adapter = new System.Data.SQLite.SQLiteDataAdapter(sql, conn))
- {
- adapter.Fill(table);
- }
- }
-
- this.advancedDataGridView6.AutoGenerateColumns = false;
- // KeepCustomColumns=true:设计器中自定义的列不会被覆盖,
- // 数据库列通过 DataPropertyName 与控件列关联。
- // 若列名与数据库列名相同,运行时会自动绑定数据。
- this.advancedDataGridView6.DataSource = table;
- }
-
- ///
- /// ui.cs 侧获取插件目录:复用 Form3.cs 的 _baseDir
- /// (partial 类同字段;_baseDir 在 Form3.cs 中由注册表/CodeBase 解析)
- ///
- private string GetPluginBaseDirForUi()
- {
- return _baseDir;
- }
- }
-}
diff --git a/cadbt/cadbt/cadcj/Form3.ui.cs.bak_xiangming b/cadbt/cadbt/cadcj/Form3.ui.cs.bak_xiangming
deleted file mode 100644
index d9e7a56..0000000
--- a/cadbt/cadbt/cadcj/Form3.ui.cs.bak_xiangming
+++ /dev/null
@@ -1,1399 +0,0 @@
-namespace MyApp
-{
- public partial class Form3 : System.Windows.Forms.Form
- {
- /// 必需的设计器变量。
- private System.ComponentModel.IContainer components = null;
-
- /// 清理正在使用的资源。
- protected override void Dispose(bool disposing)
- {
- if (disposing && (components != null))
- {
- components.Dispose();
- }
- base.Dispose(disposing);
- }
-
- #region Windows 窗体设计器生成的代码
-
- private void InitializeComponent()
- {
- this.components = new System.ComponentModel.Container();
-
- this.tabControl2 = new System.Windows.Forms.TabControl();
- this.tabPage3 = new System.Windows.Forms.TabPage();
- this.advancedDataGridView6 = new Zuby.ADGV.AdvancedDataGridView();
- ((System.ComponentModel.ISupportInitialize)(this.advancedDataGridView6)).BeginInit();
- this.panel1 = new System.Windows.Forms.Panel();
- this.button28 = new System.Windows.Forms.Button();
- this.textBox1 = new System.Windows.Forms.TextBox();
- this.comboBox2 = new System.Windows.Forms.ComboBox();
- this.tabPage4 = new System.Windows.Forms.TabPage();
- this.splitContainer2 = new System.Windows.Forms.SplitContainer();
- ((System.ComponentModel.ISupportInitialize)(this.splitContainer2)).BeginInit();
- this.advancedDataGridView9 = new Zuby.ADGV.AdvancedDataGridView();
- ((System.ComponentModel.ISupportInitialize)(this.advancedDataGridView9)).BeginInit();
- this.splitContainer3 = new System.Windows.Forms.SplitContainer();
- ((System.ComponentModel.ISupportInitialize)(this.splitContainer3)).BeginInit();
- this.advancedDataGridView4 = new Zuby.ADGV.AdvancedDataGridView();
- ((System.ComponentModel.ISupportInitialize)(this.advancedDataGridView4)).BeginInit();
- this.advancedDataGridView5 = new Zuby.ADGV.AdvancedDataGridView();
- ((System.ComponentModel.ISupportInitialize)(this.advancedDataGridView5)).BeginInit();
- this.toolStrip1 = new System.Windows.Forms.ToolStrip();
- this.toolStripButton1 = new System.Windows.Forms.ToolStripButton();
- this.toolStripButton5 = new System.Windows.Forms.ToolStripButton();
- this.toolStripButton6 = new System.Windows.Forms.ToolStripButton();
- this.toolStripButton2 = new System.Windows.Forms.ToolStripButton();
- this.toolStripButton3 = new System.Windows.Forms.ToolStripButton();
- this.toolStripButton4 = new System.Windows.Forms.ToolStripButton();
- this.toolStripButton7 = new System.Windows.Forms.ToolStripButton();
- this.SuspendLayout();
- //
- // tabControl2
- //
- this.tabControl2.Dock = System.Windows.Forms.DockStyle.Fill;
- this.tabControl2.Alignment = System.Windows.Forms.TabAlignment.Top;
- this.tabControl2.Appearance = System.Windows.Forms.TabAppearance.Normal;
- this.tabControl2.DrawMode = System.Windows.Forms.TabDrawMode.Normal;
- this.tabControl2.HotTrack = false;
- this.tabControl2.ItemSize = new System.Drawing.Size(60, 21);
- this.tabControl2.Multiline = false;
- this.tabControl2.Padding = new System.Drawing.Point(6, 3);
- this.tabControl2.RightToLeftLayout = false;
- this.tabControl2.SizeMode = System.Windows.Forms.TabSizeMode.Fixed;
- this.tabControl2.ShowToolTips = false;
- this.tabControl2.Enabled = true;
- this.tabControl2.Font = new System.Drawing.Font("宋体", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point);
- this.tabControl2.Margin = new System.Windows.Forms.Padding(3, 3, 3, 3);
- this.tabControl2.MaximumSize = new System.Drawing.Size(0, 0);
- this.tabControl2.MinimumSize = new System.Drawing.Size(0, 0);
- this.tabControl2.TabIndex = 0;
- this.tabControl2.TabStop = true;
- this.tabControl2.Name = "tabControl2";
-
- //
- // tabPage3
- //
- this.tabPage3.BackColor = System.Drawing.SystemColors.Control;
- this.tabPage3.UseVisualStyleBackColor = true;
- this.tabPage3.BorderStyle = System.Windows.Forms.BorderStyle.None;
- this.tabPage3.AutoScroll = false;
- this.tabPage3.AutoScrollMargin = new System.Drawing.Size(0, 0);
- this.tabPage3.AutoScrollMinSize = new System.Drawing.Size(0, 0);
- this.tabPage3.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Tile;
- this.tabPage3.Font = new System.Drawing.Font("宋体", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point);
- this.tabPage3.ForeColor = System.Drawing.SystemColors.ControlText;
- this.tabPage3.Margin = new System.Windows.Forms.Padding(3, 3, 3, 3);
- this.tabPage3.Padding = new System.Windows.Forms.Padding(3, 3, 3, 3);
- this.tabPage3.Size = new System.Drawing.Size(479, 717);
- this.tabPage3.Text = "项目";
- this.tabPage3.Name = "tabPage3";
-
- //
- // advancedDataGridView6
- //
- this.advancedDataGridView6.ColumnHeadersDefaultCellStyle.BackColor = System.Drawing.SystemColors.Control;
- this.advancedDataGridView6.ColumnHeadersDefaultCellStyle.ForeColor = System.Drawing.SystemColors.WindowText;
- this.advancedDataGridView6.ColumnHeadersDefaultCellStyle.SelectionBackColor = System.Drawing.SystemColors.Highlight;
- this.advancedDataGridView6.ColumnHeadersDefaultCellStyle.SelectionForeColor = System.Drawing.SystemColors.HighlightText;
- this.advancedDataGridView6.ColumnHeadersDefaultCellStyle.Font = new System.Drawing.Font("宋体", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, 1);
- this.advancedDataGridView6.ColumnHeadersDefaultCellStyle.WrapMode = System.Windows.Forms.DataGridViewTriState.True;
- this.advancedDataGridView6.ColumnHeadersDefaultCellStyle.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft;
- this.advancedDataGridView6.DefaultCellStyle.BackColor = System.Drawing.SystemColors.Window;
- this.advancedDataGridView6.DefaultCellStyle.ForeColor = System.Drawing.SystemColors.ControlText;
- this.advancedDataGridView6.DefaultCellStyle.SelectionBackColor = System.Drawing.SystemColors.Highlight;
- this.advancedDataGridView6.DefaultCellStyle.SelectionForeColor = System.Drawing.SystemColors.HighlightText;
- this.advancedDataGridView6.DefaultCellStyle.Font = new System.Drawing.Font("宋体", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, 1);
- this.advancedDataGridView6.DefaultCellStyle.WrapMode = System.Windows.Forms.DataGridViewTriState.False;
- this.advancedDataGridView6.DefaultCellStyle.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft;
- this.advancedDataGridView6.RowHeadersDefaultCellStyle.BackColor = System.Drawing.SystemColors.Control;
- this.advancedDataGridView6.RowHeadersDefaultCellStyle.ForeColor = System.Drawing.SystemColors.WindowText;
- this.advancedDataGridView6.RowHeadersDefaultCellStyle.SelectionBackColor = System.Drawing.SystemColors.Highlight;
- this.advancedDataGridView6.RowHeadersDefaultCellStyle.SelectionForeColor = System.Drawing.SystemColors.HighlightText;
- this.advancedDataGridView6.RowHeadersDefaultCellStyle.Font = new System.Drawing.Font("宋体", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, 1);
- this.advancedDataGridView6.RowHeadersDefaultCellStyle.WrapMode = System.Windows.Forms.DataGridViewTriState.True;
- this.advancedDataGridView6.RowHeadersDefaultCellStyle.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft;
- this.advancedDataGridView6.Dock = System.Windows.Forms.DockStyle.Fill;
- this.advancedDataGridView6.EnableExcelStyleSelection = true;
- this.advancedDataGridView6.EnableCellPaste = false;
- this.advancedDataGridView6.AllowUserToAddRows = false;
- this.advancedDataGridView6.AllowUserToDeleteRows = true;
- this.advancedDataGridView6.AllowUserToOrderColumns = false;
- this.advancedDataGridView6.AllowUserToResizeColumns = true;
- this.advancedDataGridView6.AllowUserToResizeRows = false;
- this.advancedDataGridView6.AutoSizeColumnsMode = System.Windows.Forms.DataGridViewAutoSizeColumnsMode.None;
- this.advancedDataGridView6.AutoSizeRowsMode = System.Windows.Forms.DataGridViewAutoSizeRowsMode.None;
- this.advancedDataGridView6.BackgroundColor = System.Drawing.Color.White;
- this.advancedDataGridView6.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
- this.advancedDataGridView6.CellBorderStyle = System.Windows.Forms.DataGridViewCellBorderStyle.Single;
- this.advancedDataGridView6.ClipboardCopyMode = System.Windows.Forms.DataGridViewClipboardCopyMode.EnableWithAutoHeaderText;
- this.advancedDataGridView6.ColumnHeadersBorderStyle = System.Windows.Forms.DataGridViewHeaderBorderStyle.Raised;
- this.advancedDataGridView6.ColumnHeadersHeight = 25;
- this.advancedDataGridView6.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.EnableResizing;
- this.advancedDataGridView6.ColumnHeadersVisible = true;
- this.advancedDataGridView6.EditMode = System.Windows.Forms.DataGridViewEditMode.EditOnKeystrokeOrF2;
- this.advancedDataGridView6.EnableHeadersVisualStyles = false;
- this.advancedDataGridView6.GridColor = System.Drawing.SystemColors.ControlDark;
- this.advancedDataGridView6.MultiSelect = true;
- this.advancedDataGridView6.ReadOnly = true;
- this.advancedDataGridView6.RowHeadersBorderStyle = System.Windows.Forms.DataGridViewHeaderBorderStyle.Raised;
- this.advancedDataGridView6.RowHeadersVisible = true;
- this.advancedDataGridView6.RowHeadersWidth = 41;
- this.advancedDataGridView6.RowHeadersWidthSizeMode = System.Windows.Forms.DataGridViewRowHeadersWidthSizeMode.EnableResizing;
- this.advancedDataGridView6.ScrollBars = System.Windows.Forms.ScrollBars.Both;
- this.advancedDataGridView6.SelectionMode = System.Windows.Forms.DataGridViewSelectionMode.RowHeaderSelect;
- this.advancedDataGridView6.ShowCellErrors = true;
- this.advancedDataGridView6.ShowCellToolTips = true;
- this.advancedDataGridView6.ShowEditingIcon = true;
- this.advancedDataGridView6.ShowRowErrors = true;
- this.advancedDataGridView6.StandardTab = false;
- this.advancedDataGridView6.VirtualMode = false;
- this.advancedDataGridView6.Enabled = true;
- this.advancedDataGridView6.Margin = new System.Windows.Forms.Padding(3, 3, 3, 3);
- this.advancedDataGridView6.MaximumSize = new System.Drawing.Size(0, 0);
- this.advancedDataGridView6.MinimumSize = new System.Drawing.Size(0, 0);
- this.advancedDataGridView6.TabIndex = 1;
- this.advancedDataGridView6.TabStop = true;
- this.advancedDataGridView6.Name = "advancedDataGridView6";
- this.advancedDataGridView6.Columns.Add(new System.Windows.Forms.DataGridViewTextBoxColumn());
- this.advancedDataGridView6.Columns[0].Name = "Column2";
- this.advancedDataGridView6.Columns[0].HeaderText = "项目编号";
- this.advancedDataGridView6.Columns[0].Width = 100;
- this.advancedDataGridView6.Columns[0].Visible = true;
- this.advancedDataGridView6.Columns[0].ReadOnly = true;
- this.advancedDataGridView6.Columns[0].Frozen = false;
- this.advancedDataGridView6.Columns[0].AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.NotSet;
- this.advancedDataGridView6.Columns[0].DataPropertyName = "项目编号";
- this.advancedDataGridView6.Columns[0].SortMode = System.Windows.Forms.DataGridViewColumnSortMode.NotSortable;
- this.advancedDataGridView6.Columns.Add(new System.Windows.Forms.DataGridViewTextBoxColumn());
- this.advancedDataGridView6.Columns[1].Name = "Column3";
- this.advancedDataGridView6.Columns[1].HeaderText = "项目名称";
- this.advancedDataGridView6.Columns[1].Width = 100;
- this.advancedDataGridView6.Columns[1].Visible = true;
- this.advancedDataGridView6.Columns[1].ReadOnly = true;
- this.advancedDataGridView6.Columns[1].Frozen = false;
- this.advancedDataGridView6.Columns[1].AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.NotSet;
- this.advancedDataGridView6.Columns[1].DataPropertyName = "项目名称";
- this.advancedDataGridView6.Columns[1].SortMode = System.Windows.Forms.DataGridViewColumnSortMode.NotSortable;
- this.advancedDataGridView6.Columns.Add(new System.Windows.Forms.DataGridViewTextBoxColumn());
- this.advancedDataGridView6.Columns[2].Name = "";
- this.advancedDataGridView6.Columns[2].HeaderText = "客户名称";
- this.advancedDataGridView6.Columns[2].Width = 100;
- this.advancedDataGridView6.Columns[2].Visible = true;
- this.advancedDataGridView6.Columns[2].ReadOnly = true;
- this.advancedDataGridView6.Columns[2].Frozen = false;
- this.advancedDataGridView6.Columns[2].AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.NotSet;
- this.advancedDataGridView6.Columns[2].DataPropertyName = "客户名称";
- this.advancedDataGridView6.Columns[2].SortMode = System.Windows.Forms.DataGridViewColumnSortMode.NotSortable;
- this.advancedDataGridView6.Columns.Add(new System.Windows.Forms.DataGridViewTextBoxColumn());
- this.advancedDataGridView6.Columns[3].Name = "";
- this.advancedDataGridView6.Columns[3].HeaderText = "客户地址";
- this.advancedDataGridView6.Columns[3].Width = 100;
- this.advancedDataGridView6.Columns[3].Visible = true;
- this.advancedDataGridView6.Columns[3].ReadOnly = true;
- this.advancedDataGridView6.Columns[3].Frozen = false;
- this.advancedDataGridView6.Columns[3].AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.NotSet;
- this.advancedDataGridView6.Columns[3].DataPropertyName = "客户地址";
- this.advancedDataGridView6.Columns[3].SortMode = System.Windows.Forms.DataGridViewColumnSortMode.NotSortable;
- this.advancedDataGridView6.Columns.Add(new System.Windows.Forms.DataGridViewTextBoxColumn());
- this.advancedDataGridView6.Columns[4].Name = "";
- this.advancedDataGridView6.Columns[4].HeaderText = "联系人";
- this.advancedDataGridView6.Columns[4].Width = 100;
- this.advancedDataGridView6.Columns[4].Visible = true;
- this.advancedDataGridView6.Columns[4].ReadOnly = true;
- this.advancedDataGridView6.Columns[4].Frozen = false;
- this.advancedDataGridView6.Columns[4].AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.NotSet;
- this.advancedDataGridView6.Columns[4].DataPropertyName = "联系人";
- this.advancedDataGridView6.Columns[4].SortMode = System.Windows.Forms.DataGridViewColumnSortMode.NotSortable;
- this.advancedDataGridView6.Columns.Add(new System.Windows.Forms.DataGridViewTextBoxColumn());
- this.advancedDataGridView6.Columns[5].Name = "";
- this.advancedDataGridView6.Columns[5].HeaderText = "联系电话";
- this.advancedDataGridView6.Columns[5].Width = 100;
- this.advancedDataGridView6.Columns[5].Visible = true;
- this.advancedDataGridView6.Columns[5].ReadOnly = true;
- this.advancedDataGridView6.Columns[5].Frozen = false;
- this.advancedDataGridView6.Columns[5].AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.NotSet;
- this.advancedDataGridView6.Columns[5].DataPropertyName = "联系电话";
- this.advancedDataGridView6.Columns[5].SortMode = System.Windows.Forms.DataGridViewColumnSortMode.NotSortable;
- this.advancedDataGridView6.Columns.Add(new System.Windows.Forms.DataGridViewTextBoxColumn());
- this.advancedDataGridView6.Columns[6].Name = "";
- this.advancedDataGridView6.Columns[6].HeaderText = "项目日期";
- this.advancedDataGridView6.Columns[6].Width = 100;
- this.advancedDataGridView6.Columns[6].Visible = true;
- this.advancedDataGridView6.Columns[6].ReadOnly = true;
- this.advancedDataGridView6.Columns[6].Frozen = false;
- this.advancedDataGridView6.Columns[6].AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.NotSet;
- this.advancedDataGridView6.Columns[6].DataPropertyName = "项目日期";
- this.advancedDataGridView6.Columns[6].SortMode = System.Windows.Forms.DataGridViewColumnSortMode.NotSortable;
- this.advancedDataGridView6.Columns.Add(new System.Windows.Forms.DataGridViewTextBoxColumn());
- this.advancedDataGridView6.Columns[7].Name = "";
- this.advancedDataGridView6.Columns[7].HeaderText = "箱柜台数";
- this.advancedDataGridView6.Columns[7].Width = 100;
- this.advancedDataGridView6.Columns[7].Visible = true;
- this.advancedDataGridView6.Columns[7].ReadOnly = true;
- this.advancedDataGridView6.Columns[7].Frozen = false;
- this.advancedDataGridView6.Columns[7].AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.NotSet;
- this.advancedDataGridView6.Columns[7].DataPropertyName = "箱柜台数";
- this.advancedDataGridView6.Columns[7].SortMode = System.Windows.Forms.DataGridViewColumnSortMode.NotSortable;
- this.advancedDataGridView6.Columns.Add(new System.Windows.Forms.DataGridViewTextBoxColumn());
- this.advancedDataGridView6.Columns[8].Name = "";
- this.advancedDataGridView6.Columns[8].HeaderText = "成本总价";
- this.advancedDataGridView6.Columns[8].Width = 100;
- this.advancedDataGridView6.Columns[8].Visible = true;
- this.advancedDataGridView6.Columns[8].ReadOnly = true;
- this.advancedDataGridView6.Columns[8].Frozen = false;
- this.advancedDataGridView6.Columns[8].AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.NotSet;
- this.advancedDataGridView6.Columns[8].DataPropertyName = "成本总价";
- this.advancedDataGridView6.Columns[8].SortMode = System.Windows.Forms.DataGridViewColumnSortMode.NotSortable;
- this.advancedDataGridView6.Columns.Add(new System.Windows.Forms.DataGridViewTextBoxColumn());
- this.advancedDataGridView6.Columns[9].Name = "";
- this.advancedDataGridView6.Columns[9].HeaderText = "报出总价";
- this.advancedDataGridView6.Columns[9].Width = 100;
- this.advancedDataGridView6.Columns[9].Visible = true;
- this.advancedDataGridView6.Columns[9].ReadOnly = true;
- this.advancedDataGridView6.Columns[9].Frozen = false;
- this.advancedDataGridView6.Columns[9].AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.NotSet;
- this.advancedDataGridView6.Columns[9].DataPropertyName = "报出总价";
- this.advancedDataGridView6.Columns[9].SortMode = System.Windows.Forms.DataGridViewColumnSortMode.NotSortable;
- this.advancedDataGridView6.Columns.Add(new System.Windows.Forms.DataGridViewTextBoxColumn());
- this.advancedDataGridView6.Columns[10].Name = "";
- this.advancedDataGridView6.Columns[10].HeaderText = "利润";
- this.advancedDataGridView6.Columns[10].Width = 100;
- this.advancedDataGridView6.Columns[10].Visible = true;
- this.advancedDataGridView6.Columns[10].ReadOnly = true;
- this.advancedDataGridView6.Columns[10].Frozen = false;
- this.advancedDataGridView6.Columns[10].AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.NotSet;
- this.advancedDataGridView6.Columns[10].DataPropertyName = "利润";
- this.advancedDataGridView6.Columns[10].SortMode = System.Windows.Forms.DataGridViewColumnSortMode.NotSortable;
- this.advancedDataGridView6.Columns.Add(new System.Windows.Forms.DataGridViewTextBoxColumn());
- this.advancedDataGridView6.Columns[11].Name = "";
- this.advancedDataGridView6.Columns[11].HeaderText = "利润率";
- this.advancedDataGridView6.Columns[11].Width = 100;
- this.advancedDataGridView6.Columns[11].Visible = true;
- this.advancedDataGridView6.Columns[11].ReadOnly = true;
- this.advancedDataGridView6.Columns[11].Frozen = false;
- this.advancedDataGridView6.Columns[11].AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.NotSet;
- this.advancedDataGridView6.Columns[11].DataPropertyName = "利润率";
- this.advancedDataGridView6.Columns[11].SortMode = System.Windows.Forms.DataGridViewColumnSortMode.NotSortable;
- this.advancedDataGridView6.Columns.Add(new System.Windows.Forms.DataGridViewTextBoxColumn());
- this.advancedDataGridView6.Columns[12].Name = "";
- this.advancedDataGridView6.Columns[12].HeaderText = "备注";
- this.advancedDataGridView6.Columns[12].Width = 100;
- this.advancedDataGridView6.Columns[12].Visible = true;
- this.advancedDataGridView6.Columns[12].ReadOnly = true;
- this.advancedDataGridView6.Columns[12].Frozen = false;
- this.advancedDataGridView6.Columns[12].AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.NotSet;
- this.advancedDataGridView6.Columns[12].DataPropertyName = "备注";
- this.advancedDataGridView6.Columns[12].SortMode = System.Windows.Forms.DataGridViewColumnSortMode.NotSortable;
-
- //
- // panel1
- //
- this.panel1.Dock = System.Windows.Forms.DockStyle.Top;
- this.panel1.AutoSize = false;
- this.panel1.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowOnly;
- this.panel1.BorderStyle = System.Windows.Forms.BorderStyle.None;
- this.panel1.TabStop = false;
- this.panel1.AutoScroll = false;
- this.panel1.AutoScrollMargin = new System.Drawing.Size(0, 0);
- this.panel1.AutoScrollMinSize = new System.Drawing.Size(0, 0);
- this.panel1.BackColor = System.Drawing.SystemColors.Control;
- this.panel1.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Tile;
- this.panel1.Enabled = true;
- this.panel1.Font = new System.Drawing.Font("宋体", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point);
- this.panel1.ForeColor = System.Drawing.SystemColors.ControlText;
- this.panel1.Margin = new System.Windows.Forms.Padding(3, 3, 3, 3);
- this.panel1.MaximumSize = new System.Drawing.Size(0, 0);
- this.panel1.MinimumSize = new System.Drawing.Size(0, 0);
- this.panel1.TabIndex = 0;
- this.panel1.Padding = new System.Windows.Forms.Padding(0, 0, 0, 0);
- this.panel1.Size = new System.Drawing.Size(473, 28);
- this.panel1.Location = new System.Drawing.Point(3, 3);
- this.panel1.Name = "panel1";
-
- //
- // button28
- //
- this.button28.Dock = System.Windows.Forms.DockStyle.None;
- this.button28.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowOnly;
- this.button28.DialogResult = System.Windows.Forms.DialogResult.None;
- this.button28.AutoEllipsis = false;
- this.button28.AutoSize = false;
- this.button28.BackColor = System.Drawing.SystemColors.Control;
- this.button28.FlatStyle = System.Windows.Forms.FlatStyle.Standard;
- this.button28.ImageAlign = System.Drawing.ContentAlignment.MiddleCenter;
- this.button28.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
- this.button28.TextImageRelation = System.Windows.Forms.TextImageRelation.Overlay;
- this.button28.UseMnemonic = true;
- this.button28.UseCompatibleTextRendering = false;
- this.button28.UseVisualStyleBackColor = true;
- this.button28.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Tile;
- this.button28.Enabled = true;
- this.button28.Font = new System.Drawing.Font("宋体", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point);
- this.button28.ForeColor = System.Drawing.SystemColors.ControlText;
- this.button28.Margin = new System.Windows.Forms.Padding(3, 3, 3, 3);
- this.button28.MaximumSize = new System.Drawing.Size(0, 0);
- this.button28.MinimumSize = new System.Drawing.Size(0, 0);
- this.button28.TabIndex = 2;
- this.button28.TabStop = true;
- this.button28.Padding = new System.Windows.Forms.Padding(0, 0, 0, 0);
- this.button28.Size = new System.Drawing.Size(75, 23);
- this.button28.Location = new System.Drawing.Point(335, 2);
- this.button28.Text = "查找";
- this.button28.Name = "button28";
-
- //
- // textBox1
- //
- this.textBox1.Dock = System.Windows.Forms.DockStyle.None;
- this.textBox1.AcceptsReturn = false;
- this.textBox1.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.None;
- this.textBox1.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.None;
- this.textBox1.CharacterCasing = System.Windows.Forms.CharacterCasing.Normal;
- this.textBox1.Multiline = false;
- this.textBox1.ScrollBars = System.Windows.Forms.ScrollBars.None;
- this.textBox1.TextAlign = System.Windows.Forms.HorizontalAlignment.Left;
- this.textBox1.UseSystemPasswordChar = false;
- this.textBox1.AcceptsTab = false;
- this.textBox1.ShortcutsEnabled = true;
- this.textBox1.BackColor = System.Drawing.SystemColors.Window;
- this.textBox1.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D;
- this.textBox1.ForeColor = System.Drawing.SystemColors.WindowText;
- this.textBox1.HideSelection = true;
- this.textBox1.MaxLength = 32767;
- this.textBox1.ReadOnly = false;
- this.textBox1.WordWrap = true;
- this.textBox1.Enabled = true;
- this.textBox1.Font = new System.Drawing.Font("宋体", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point);
- this.textBox1.Margin = new System.Windows.Forms.Padding(3, 3, 3, 3);
- this.textBox1.MaximumSize = new System.Drawing.Size(0, 0);
- this.textBox1.MinimumSize = new System.Drawing.Size(0, 0);
- this.textBox1.TabIndex = 1;
- this.textBox1.TabStop = true;
- this.textBox1.Size = new System.Drawing.Size(210, 21);
- this.textBox1.Location = new System.Drawing.Point(119, 4);
- this.textBox1.Name = "textBox1";
-
- //
- // comboBox2
- //
- this.comboBox2.Dock = System.Windows.Forms.DockStyle.None;
- this.comboBox2.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.None;
- this.comboBox2.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.None;
- this.comboBox2.BackColor = System.Drawing.SystemColors.Window;
- this.comboBox2.DrawMode = System.Windows.Forms.DrawMode.Normal;
- this.comboBox2.DropDownWidth = 108;
- this.comboBox2.DropDownHeight = 106;
- this.comboBox2.FlatStyle = System.Windows.Forms.FlatStyle.Standard;
- this.comboBox2.ForeColor = System.Drawing.SystemColors.WindowText;
- this.comboBox2.IntegralHeight = true;
- this.comboBox2.ItemHeight = 12;
- this.comboBox2.MaxDropDownItems = 8;
- this.comboBox2.MaximumSize = new System.Drawing.Size(0, 0);
- this.comboBox2.MinimumSize = new System.Drawing.Size(0, 0);
- this.comboBox2.MaxLength = 0;
- this.comboBox2.Sorted = false;
- this.comboBox2.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDown;
- this.comboBox2.FormattingEnabled = false;
- this.comboBox2.Enabled = true;
- this.comboBox2.Font = new System.Drawing.Font("宋体", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point);
- this.comboBox2.Margin = new System.Windows.Forms.Padding(3, 3, 3, 3);
- this.comboBox2.TabIndex = 0;
- this.comboBox2.TabStop = true;
- this.comboBox2.Size = new System.Drawing.Size(108, 20);
- this.comboBox2.Location = new System.Drawing.Point(5, 4);
- this.comboBox2.Text = "项目名称";
- this.comboBox2.Name = "comboBox2";
- this.comboBox2.Items.Add("项目名称");
- this.comboBox2.Items.Add("项目编号");
- this.comboBox2.Items.Add("客户名称");
-
- //
- // tabPage4
- //
- this.tabPage4.BackColor = System.Drawing.SystemColors.Control;
- this.tabPage4.UseVisualStyleBackColor = true;
- this.tabPage4.BorderStyle = System.Windows.Forms.BorderStyle.None;
- this.tabPage4.AutoScroll = false;
- this.tabPage4.AutoScrollMargin = new System.Drawing.Size(0, 0);
- this.tabPage4.AutoScrollMinSize = new System.Drawing.Size(0, 0);
- this.tabPage4.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Tile;
- this.tabPage4.Font = new System.Drawing.Font("宋体", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point);
- this.tabPage4.ForeColor = System.Drawing.SystemColors.ControlText;
- this.tabPage4.Margin = new System.Windows.Forms.Padding(3, 3, 3, 3);
- this.tabPage4.Padding = new System.Windows.Forms.Padding(3, 3, 3, 3);
- this.tabPage4.Size = new System.Drawing.Size(479, 692);
- this.tabPage4.Text = "报价";
- this.tabPage4.Name = "tabPage4";
-
- //
- // splitContainer2
- //
- this.splitContainer2.Dock = System.Windows.Forms.DockStyle.Fill;
- this.splitContainer2.BorderStyle = System.Windows.Forms.BorderStyle.None;
- this.splitContainer2.FixedPanel = System.Windows.Forms.FixedPanel.None;
- this.splitContainer2.IsSplitterFixed = false;
- this.splitContainer2.Orientation = System.Windows.Forms.Orientation.Horizontal;
- this.splitContainer2.Panel1Collapsed = false;
- this.splitContainer2.Panel2Collapsed = false;
- this.splitContainer2.Panel1MinSize = 25;
- this.splitContainer2.Panel2MinSize = 25;
- this.splitContainer2.SplitterIncrement = 1;
- this.splitContainer2.SplitterWidth = 6;
- this.splitContainer2.TabStop = true;
- this.splitContainer2.BackColor = System.Drawing.SystemColors.Control;
- this.splitContainer2.Enabled = true;
- this.splitContainer2.Font = new System.Drawing.Font("宋体", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point);
- this.splitContainer2.ForeColor = System.Drawing.SystemColors.ControlText;
- this.splitContainer2.Margin = new System.Windows.Forms.Padding(3, 3, 3, 3);
- this.splitContainer2.MaximumSize = new System.Drawing.Size(0, 0);
- this.splitContainer2.MinimumSize = new System.Drawing.Size(0, 0);
- this.splitContainer2.TabIndex = 0;
- this.splitContainer2.Name = "splitContainer2";
-
- //
- // advancedDataGridView9
- //
- this.advancedDataGridView9.ColumnHeadersDefaultCellStyle.BackColor = System.Drawing.SystemColors.Control;
- this.advancedDataGridView9.ColumnHeadersDefaultCellStyle.ForeColor = System.Drawing.SystemColors.WindowText;
- this.advancedDataGridView9.ColumnHeadersDefaultCellStyle.SelectionBackColor = System.Drawing.SystemColors.Highlight;
- this.advancedDataGridView9.ColumnHeadersDefaultCellStyle.SelectionForeColor = System.Drawing.SystemColors.HighlightText;
- this.advancedDataGridView9.ColumnHeadersDefaultCellStyle.Font = new System.Drawing.Font("宋体", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, 1);
- this.advancedDataGridView9.ColumnHeadersDefaultCellStyle.WrapMode = System.Windows.Forms.DataGridViewTriState.True;
- this.advancedDataGridView9.ColumnHeadersDefaultCellStyle.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleCenter;
- this.advancedDataGridView9.DefaultCellStyle.BackColor = System.Drawing.SystemColors.Window;
- this.advancedDataGridView9.DefaultCellStyle.ForeColor = System.Drawing.SystemColors.ControlText;
- this.advancedDataGridView9.DefaultCellStyle.SelectionBackColor = System.Drawing.SystemColors.Highlight;
- this.advancedDataGridView9.DefaultCellStyle.SelectionForeColor = System.Drawing.SystemColors.HighlightText;
- this.advancedDataGridView9.DefaultCellStyle.Font = new System.Drawing.Font("宋体", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, 1);
- this.advancedDataGridView9.DefaultCellStyle.WrapMode = System.Windows.Forms.DataGridViewTriState.False;
- this.advancedDataGridView9.DefaultCellStyle.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft;
- this.advancedDataGridView9.RowHeadersDefaultCellStyle.BackColor = System.Drawing.SystemColors.Control;
- this.advancedDataGridView9.RowHeadersDefaultCellStyle.ForeColor = System.Drawing.SystemColors.WindowText;
- this.advancedDataGridView9.RowHeadersDefaultCellStyle.SelectionBackColor = System.Drawing.SystemColors.Highlight;
- this.advancedDataGridView9.RowHeadersDefaultCellStyle.SelectionForeColor = System.Drawing.SystemColors.HighlightText;
- this.advancedDataGridView9.RowHeadersDefaultCellStyle.Font = new System.Drawing.Font("宋体", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, 1);
- this.advancedDataGridView9.RowHeadersDefaultCellStyle.WrapMode = System.Windows.Forms.DataGridViewTriState.True;
- this.advancedDataGridView9.RowHeadersDefaultCellStyle.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft;
- this.advancedDataGridView9.Dock = System.Windows.Forms.DockStyle.Fill;
- this.advancedDataGridView9.EnableExcelStyleSelection = true;
- this.advancedDataGridView9.EnableCellPaste = true;
- this.advancedDataGridView9.AllowUserToAddRows = false;
- this.advancedDataGridView9.AllowUserToDeleteRows = true;
- this.advancedDataGridView9.AllowUserToOrderColumns = false;
- this.advancedDataGridView9.AllowUserToResizeColumns = true;
- this.advancedDataGridView9.AllowUserToResizeRows = false;
- this.advancedDataGridView9.AutoSizeColumnsMode = System.Windows.Forms.DataGridViewAutoSizeColumnsMode.None;
- this.advancedDataGridView9.AutoSizeRowsMode = System.Windows.Forms.DataGridViewAutoSizeRowsMode.None;
- this.advancedDataGridView9.BackgroundColor = System.Drawing.Color.White;
- this.advancedDataGridView9.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
- this.advancedDataGridView9.CellBorderStyle = System.Windows.Forms.DataGridViewCellBorderStyle.Single;
- this.advancedDataGridView9.ClipboardCopyMode = System.Windows.Forms.DataGridViewClipboardCopyMode.EnableWithAutoHeaderText;
- this.advancedDataGridView9.ColumnHeadersBorderStyle = System.Windows.Forms.DataGridViewHeaderBorderStyle.Raised;
- this.advancedDataGridView9.ColumnHeadersHeight = 35;
- this.advancedDataGridView9.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.EnableResizing;
- this.advancedDataGridView9.ColumnHeadersVisible = true;
- this.advancedDataGridView9.EditMode = System.Windows.Forms.DataGridViewEditMode.EditOnKeystroke;
- this.advancedDataGridView9.EnableHeadersVisualStyles = false;
- this.advancedDataGridView9.GridColor = System.Drawing.SystemColors.ControlDark;
- this.advancedDataGridView9.MultiSelect = true;
- this.advancedDataGridView9.ReadOnly = false;
- this.advancedDataGridView9.RowHeadersBorderStyle = System.Windows.Forms.DataGridViewHeaderBorderStyle.Raised;
- this.advancedDataGridView9.RowHeadersVisible = true;
- this.advancedDataGridView9.RowHeadersWidth = 41;
- this.advancedDataGridView9.RowHeadersWidthSizeMode = System.Windows.Forms.DataGridViewRowHeadersWidthSizeMode.EnableResizing;
- this.advancedDataGridView9.ScrollBars = System.Windows.Forms.ScrollBars.Both;
- this.advancedDataGridView9.SelectionMode = System.Windows.Forms.DataGridViewSelectionMode.RowHeaderSelect;
- this.advancedDataGridView9.ShowCellErrors = true;
- this.advancedDataGridView9.ShowCellToolTips = true;
- this.advancedDataGridView9.ShowEditingIcon = true;
- this.advancedDataGridView9.ShowRowErrors = true;
- this.advancedDataGridView9.StandardTab = false;
- this.advancedDataGridView9.VirtualMode = false;
- this.advancedDataGridView9.Enabled = true;
- this.advancedDataGridView9.Margin = new System.Windows.Forms.Padding(3, 3, 3, 3);
- this.advancedDataGridView9.MaximumSize = new System.Drawing.Size(0, 0);
- this.advancedDataGridView9.MinimumSize = new System.Drawing.Size(0, 0);
- this.advancedDataGridView9.TabIndex = 0;
- this.advancedDataGridView9.TabStop = true;
- this.advancedDataGridView9.Name = "advancedDataGridView9";
- this.advancedDataGridView9.Columns.Add(new System.Windows.Forms.DataGridViewTextBoxColumn());
- this.advancedDataGridView9.Columns[0].Name = "";
- this.advancedDataGridView9.Columns[0].HeaderText = "序号";
- this.advancedDataGridView9.Columns[0].Width = 35;
- this.advancedDataGridView9.Columns[0].Visible = true;
- this.advancedDataGridView9.Columns[0].ReadOnly = false;
- this.advancedDataGridView9.Columns[0].Frozen = true;
- this.advancedDataGridView9.Columns[0].AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.None;
- this.advancedDataGridView9.Columns[0].DataPropertyName = "序号";
- this.advancedDataGridView9.Columns[0].SortMode = System.Windows.Forms.DataGridViewColumnSortMode.NotSortable;
- this.advancedDataGridView9.Columns[0].DefaultCellStyle.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleCenter;
- this.advancedDataGridView9.Columns.Add(new System.Windows.Forms.DataGridViewTextBoxColumn());
- this.advancedDataGridView9.Columns[1].Name = "";
- this.advancedDataGridView9.Columns[1].HeaderText = "图号";
- this.advancedDataGridView9.Columns[1].Width = 100;
- this.advancedDataGridView9.Columns[1].Visible = true;
- this.advancedDataGridView9.Columns[1].ReadOnly = false;
- this.advancedDataGridView9.Columns[1].Frozen = false;
- this.advancedDataGridView9.Columns[1].AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.NotSet;
- this.advancedDataGridView9.Columns[1].DataPropertyName = "图号";
- this.advancedDataGridView9.Columns[1].SortMode = System.Windows.Forms.DataGridViewColumnSortMode.NotSortable;
- this.advancedDataGridView9.Columns.Add(new System.Windows.Forms.DataGridViewTextBoxColumn());
- this.advancedDataGridView9.Columns[2].Name = "";
- this.advancedDataGridView9.Columns[2].HeaderText = "图名";
- this.advancedDataGridView9.Columns[2].Width = 100;
- this.advancedDataGridView9.Columns[2].Visible = true;
- this.advancedDataGridView9.Columns[2].ReadOnly = false;
- this.advancedDataGridView9.Columns[2].Frozen = false;
- this.advancedDataGridView9.Columns[2].AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.NotSet;
- this.advancedDataGridView9.Columns[2].DataPropertyName = "图名";
- this.advancedDataGridView9.Columns[2].SortMode = System.Windows.Forms.DataGridViewColumnSortMode.NotSortable;
- this.advancedDataGridView9.Columns.Add(new System.Windows.Forms.DataGridViewTextBoxColumn());
- this.advancedDataGridView9.Columns[3].Name = "";
- this.advancedDataGridView9.Columns[3].HeaderText = "台数";
- this.advancedDataGridView9.Columns[3].Width = 35;
- this.advancedDataGridView9.Columns[3].Visible = true;
- this.advancedDataGridView9.Columns[3].ReadOnly = false;
- this.advancedDataGridView9.Columns[3].Frozen = false;
- this.advancedDataGridView9.Columns[3].AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.NotSet;
- this.advancedDataGridView9.Columns[3].DataPropertyName = "台数";
- this.advancedDataGridView9.Columns[3].SortMode = System.Windows.Forms.DataGridViewColumnSortMode.NotSortable;
- this.advancedDataGridView9.Columns[3].DefaultCellStyle.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleCenter;
- this.advancedDataGridView9.Columns.Add(new System.Windows.Forms.DataGridViewTextBoxColumn());
- this.advancedDataGridView9.Columns[4].Name = "";
- this.advancedDataGridView9.Columns[4].HeaderText = "箱柜数量";
- this.advancedDataGridView9.Columns[4].Width = 35;
- this.advancedDataGridView9.Columns[4].Visible = true;
- this.advancedDataGridView9.Columns[4].ReadOnly = false;
- this.advancedDataGridView9.Columns[4].Frozen = false;
- this.advancedDataGridView9.Columns[4].AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.NotSet;
- this.advancedDataGridView9.Columns[4].DataPropertyName = "箱柜数量";
- this.advancedDataGridView9.Columns[4].SortMode = System.Windows.Forms.DataGridViewColumnSortMode.NotSortable;
- this.advancedDataGridView9.Columns[4].DefaultCellStyle.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleCenter;
- this.advancedDataGridView9.Columns.Add(new System.Windows.Forms.DataGridViewTextBoxColumn());
- this.advancedDataGridView9.Columns[5].Name = "";
- this.advancedDataGridView9.Columns[5].HeaderText = "单价";
- this.advancedDataGridView9.Columns[5].Width = 100;
- this.advancedDataGridView9.Columns[5].Visible = true;
- this.advancedDataGridView9.Columns[5].ReadOnly = false;
- this.advancedDataGridView9.Columns[5].Frozen = false;
- this.advancedDataGridView9.Columns[5].AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.NotSet;
- this.advancedDataGridView9.Columns[5].DataPropertyName = "单价";
- this.advancedDataGridView9.Columns[5].SortMode = System.Windows.Forms.DataGridViewColumnSortMode.NotSortable;
- this.advancedDataGridView9.Columns.Add(new System.Windows.Forms.DataGridViewTextBoxColumn());
- this.advancedDataGridView9.Columns[6].Name = "";
- this.advancedDataGridView9.Columns[6].HeaderText = "总价";
- this.advancedDataGridView9.Columns[6].Width = 100;
- this.advancedDataGridView9.Columns[6].Visible = true;
- this.advancedDataGridView9.Columns[6].ReadOnly = false;
- this.advancedDataGridView9.Columns[6].Frozen = false;
- this.advancedDataGridView9.Columns[6].AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.NotSet;
- this.advancedDataGridView9.Columns[6].DataPropertyName = "总价";
- this.advancedDataGridView9.Columns[6].SortMode = System.Windows.Forms.DataGridViewColumnSortMode.NotSortable;
- this.advancedDataGridView9.Columns.Add(new System.Windows.Forms.DataGridViewTextBoxColumn());
- this.advancedDataGridView9.Columns[7].Name = "";
- this.advancedDataGridView9.Columns[7].HeaderText = "成本总价";
- this.advancedDataGridView9.Columns[7].Width = 100;
- this.advancedDataGridView9.Columns[7].Visible = true;
- this.advancedDataGridView9.Columns[7].ReadOnly = false;
- this.advancedDataGridView9.Columns[7].Frozen = false;
- this.advancedDataGridView9.Columns[7].AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.NotSet;
- this.advancedDataGridView9.Columns[7].DataPropertyName = "成本总价";
- this.advancedDataGridView9.Columns[7].SortMode = System.Windows.Forms.DataGridViewColumnSortMode.NotSortable;
- this.advancedDataGridView9.Columns.Add(new System.Windows.Forms.DataGridViewTextBoxColumn());
- this.advancedDataGridView9.Columns[8].Name = "";
- this.advancedDataGridView9.Columns[8].HeaderText = "毛利";
- this.advancedDataGridView9.Columns[8].Width = 100;
- this.advancedDataGridView9.Columns[8].Visible = true;
- this.advancedDataGridView9.Columns[8].ReadOnly = false;
- this.advancedDataGridView9.Columns[8].Frozen = false;
- this.advancedDataGridView9.Columns[8].AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.NotSet;
- this.advancedDataGridView9.Columns[8].DataPropertyName = "毛利";
- this.advancedDataGridView9.Columns[8].SortMode = System.Windows.Forms.DataGridViewColumnSortMode.NotSortable;
- this.advancedDataGridView9.Columns.Add(new System.Windows.Forms.DataGridViewTextBoxColumn());
- this.advancedDataGridView9.Columns[9].Name = "";
- this.advancedDataGridView9.Columns[9].HeaderText = "毛利率";
- this.advancedDataGridView9.Columns[9].Width = 100;
- this.advancedDataGridView9.Columns[9].Visible = true;
- this.advancedDataGridView9.Columns[9].ReadOnly = false;
- this.advancedDataGridView9.Columns[9].Frozen = false;
- this.advancedDataGridView9.Columns[9].AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.NotSet;
- this.advancedDataGridView9.Columns[9].DataPropertyName = "毛利率";
- this.advancedDataGridView9.Columns[9].SortMode = System.Windows.Forms.DataGridViewColumnSortMode.NotSortable;
-
- //
- // splitContainer3
- //
- this.splitContainer3.Dock = System.Windows.Forms.DockStyle.Fill;
- this.splitContainer3.BorderStyle = System.Windows.Forms.BorderStyle.None;
- this.splitContainer3.FixedPanel = System.Windows.Forms.FixedPanel.None;
- this.splitContainer3.IsSplitterFixed = false;
- this.splitContainer3.Orientation = System.Windows.Forms.Orientation.Horizontal;
- this.splitContainer3.Panel1Collapsed = false;
- this.splitContainer3.Panel2Collapsed = false;
- this.splitContainer3.Panel1MinSize = 25;
- this.splitContainer3.Panel2MinSize = 25;
- this.splitContainer3.SplitterIncrement = 1;
- this.splitContainer3.SplitterWidth = 6;
- this.splitContainer3.TabStop = true;
- this.splitContainer3.BackColor = System.Drawing.SystemColors.Control;
- this.splitContainer3.Enabled = true;
- this.splitContainer3.Font = new System.Drawing.Font("宋体", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point);
- this.splitContainer3.ForeColor = System.Drawing.SystemColors.ControlText;
- this.splitContainer3.Margin = new System.Windows.Forms.Padding(3, 3, 3, 3);
- this.splitContainer3.MaximumSize = new System.Drawing.Size(0, 0);
- this.splitContainer3.MinimumSize = new System.Drawing.Size(0, 0);
- this.splitContainer3.TabIndex = 0;
- this.splitContainer3.Name = "splitContainer3";
-
- //
- // advancedDataGridView4
- //
- this.advancedDataGridView4.ColumnHeadersDefaultCellStyle.BackColor = System.Drawing.SystemColors.Control;
- this.advancedDataGridView4.ColumnHeadersDefaultCellStyle.ForeColor = System.Drawing.SystemColors.WindowText;
- this.advancedDataGridView4.ColumnHeadersDefaultCellStyle.SelectionBackColor = System.Drawing.SystemColors.Highlight;
- this.advancedDataGridView4.ColumnHeadersDefaultCellStyle.SelectionForeColor = System.Drawing.SystemColors.HighlightText;
- this.advancedDataGridView4.ColumnHeadersDefaultCellStyle.Font = new System.Drawing.Font("宋体", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, 1);
- this.advancedDataGridView4.ColumnHeadersDefaultCellStyle.WrapMode = System.Windows.Forms.DataGridViewTriState.True;
- this.advancedDataGridView4.ColumnHeadersDefaultCellStyle.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleCenter;
- this.advancedDataGridView4.DefaultCellStyle.BackColor = System.Drawing.SystemColors.Window;
- this.advancedDataGridView4.DefaultCellStyle.ForeColor = System.Drawing.SystemColors.ControlText;
- this.advancedDataGridView4.DefaultCellStyle.SelectionBackColor = System.Drawing.SystemColors.Highlight;
- this.advancedDataGridView4.DefaultCellStyle.SelectionForeColor = System.Drawing.SystemColors.HighlightText;
- this.advancedDataGridView4.DefaultCellStyle.Font = new System.Drawing.Font("宋体", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, 1);
- this.advancedDataGridView4.DefaultCellStyle.WrapMode = System.Windows.Forms.DataGridViewTriState.False;
- this.advancedDataGridView4.DefaultCellStyle.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft;
- this.advancedDataGridView4.RowHeadersDefaultCellStyle.BackColor = System.Drawing.SystemColors.Control;
- this.advancedDataGridView4.RowHeadersDefaultCellStyle.ForeColor = System.Drawing.SystemColors.WindowText;
- this.advancedDataGridView4.RowHeadersDefaultCellStyle.SelectionBackColor = System.Drawing.SystemColors.Highlight;
- this.advancedDataGridView4.RowHeadersDefaultCellStyle.SelectionForeColor = System.Drawing.SystemColors.HighlightText;
- this.advancedDataGridView4.RowHeadersDefaultCellStyle.Font = new System.Drawing.Font("宋体", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, 1);
- this.advancedDataGridView4.RowHeadersDefaultCellStyle.WrapMode = System.Windows.Forms.DataGridViewTriState.True;
- this.advancedDataGridView4.RowHeadersDefaultCellStyle.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft;
- this.advancedDataGridView4.Dock = System.Windows.Forms.DockStyle.Fill;
- this.advancedDataGridView4.EnableExcelStyleSelection = true;
- this.advancedDataGridView4.EnableCellPaste = true;
- this.advancedDataGridView4.AllowUserToAddRows = false;
- this.advancedDataGridView4.AllowUserToDeleteRows = true;
- this.advancedDataGridView4.AllowUserToOrderColumns = false;
- this.advancedDataGridView4.AllowUserToResizeColumns = true;
- this.advancedDataGridView4.AllowUserToResizeRows = false;
- this.advancedDataGridView4.AutoSizeColumnsMode = System.Windows.Forms.DataGridViewAutoSizeColumnsMode.None;
- this.advancedDataGridView4.AutoSizeRowsMode = System.Windows.Forms.DataGridViewAutoSizeRowsMode.None;
- this.advancedDataGridView4.BackgroundColor = System.Drawing.Color.White;
- this.advancedDataGridView4.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
- this.advancedDataGridView4.CellBorderStyle = System.Windows.Forms.DataGridViewCellBorderStyle.Single;
- this.advancedDataGridView4.ClipboardCopyMode = System.Windows.Forms.DataGridViewClipboardCopyMode.EnableWithAutoHeaderText;
- this.advancedDataGridView4.ColumnHeadersBorderStyle = System.Windows.Forms.DataGridViewHeaderBorderStyle.Raised;
- this.advancedDataGridView4.ColumnHeadersHeight = 35;
- this.advancedDataGridView4.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.EnableResizing;
- this.advancedDataGridView4.ColumnHeadersVisible = true;
- this.advancedDataGridView4.EditMode = System.Windows.Forms.DataGridViewEditMode.EditOnKeystroke;
- this.advancedDataGridView4.EnableHeadersVisualStyles = false;
- this.advancedDataGridView4.GridColor = System.Drawing.SystemColors.ControlDark;
- this.advancedDataGridView4.MultiSelect = true;
- this.advancedDataGridView4.ReadOnly = false;
- this.advancedDataGridView4.RowHeadersBorderStyle = System.Windows.Forms.DataGridViewHeaderBorderStyle.Raised;
- this.advancedDataGridView4.RowHeadersVisible = true;
- this.advancedDataGridView4.RowHeadersWidth = 41;
- this.advancedDataGridView4.RowHeadersWidthSizeMode = System.Windows.Forms.DataGridViewRowHeadersWidthSizeMode.EnableResizing;
- this.advancedDataGridView4.ScrollBars = System.Windows.Forms.ScrollBars.Both;
- this.advancedDataGridView4.SelectionMode = System.Windows.Forms.DataGridViewSelectionMode.RowHeaderSelect;
- this.advancedDataGridView4.ShowCellErrors = true;
- this.advancedDataGridView4.ShowCellToolTips = true;
- this.advancedDataGridView4.ShowEditingIcon = true;
- this.advancedDataGridView4.ShowRowErrors = true;
- this.advancedDataGridView4.StandardTab = false;
- this.advancedDataGridView4.VirtualMode = false;
- this.advancedDataGridView4.Enabled = true;
- this.advancedDataGridView4.Margin = new System.Windows.Forms.Padding(3, 3, 3, 3);
- this.advancedDataGridView4.MaximumSize = new System.Drawing.Size(0, 0);
- this.advancedDataGridView4.MinimumSize = new System.Drawing.Size(0, 0);
- this.advancedDataGridView4.TabIndex = 0;
- this.advancedDataGridView4.TabStop = true;
- this.advancedDataGridView4.Name = "advancedDataGridView4";
- this.advancedDataGridView4.Columns.Add(new System.Windows.Forms.DataGridViewTextBoxColumn());
- this.advancedDataGridView4.Columns[0].Name = "";
- this.advancedDataGridView4.Columns[0].HeaderText = "序号";
- this.advancedDataGridView4.Columns[0].Width = 35;
- this.advancedDataGridView4.Columns[0].Visible = true;
- this.advancedDataGridView4.Columns[0].ReadOnly = false;
- this.advancedDataGridView4.Columns[0].Frozen = false;
- this.advancedDataGridView4.Columns[0].AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.NotSet;
- this.advancedDataGridView4.Columns[0].DataPropertyName = "序号";
- this.advancedDataGridView4.Columns[0].SortMode = System.Windows.Forms.DataGridViewColumnSortMode.NotSortable;
- this.advancedDataGridView4.Columns[0].DefaultCellStyle.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleCenter;
- this.advancedDataGridView4.Columns.Add(new System.Windows.Forms.DataGridViewTextBoxColumn());
- this.advancedDataGridView4.Columns[1].Name = "";
- this.advancedDataGridView4.Columns[1].HeaderText = "箱号";
- this.advancedDataGridView4.Columns[1].Width = 150;
- this.advancedDataGridView4.Columns[1].Visible = true;
- this.advancedDataGridView4.Columns[1].ReadOnly = false;
- this.advancedDataGridView4.Columns[1].Frozen = false;
- this.advancedDataGridView4.Columns[1].AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.NotSet;
- this.advancedDataGridView4.Columns[1].DataPropertyName = "箱号";
- this.advancedDataGridView4.Columns[1].SortMode = System.Windows.Forms.DataGridViewColumnSortMode.NotSortable;
- this.advancedDataGridView4.Columns.Add(new System.Windows.Forms.DataGridViewTextBoxColumn());
- this.advancedDataGridView4.Columns[2].Name = "";
- this.advancedDataGridView4.Columns[2].HeaderText = "型号";
- this.advancedDataGridView4.Columns[2].Width = 150;
- this.advancedDataGridView4.Columns[2].Visible = true;
- this.advancedDataGridView4.Columns[2].ReadOnly = false;
- this.advancedDataGridView4.Columns[2].Frozen = false;
- this.advancedDataGridView4.Columns[2].AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.NotSet;
- this.advancedDataGridView4.Columns[2].DataPropertyName = "型号";
- this.advancedDataGridView4.Columns[2].SortMode = System.Windows.Forms.DataGridViewColumnSortMode.NotSortable;
- this.advancedDataGridView4.Columns.Add(new System.Windows.Forms.DataGridViewTextBoxColumn());
- this.advancedDataGridView4.Columns[3].Name = "";
- this.advancedDataGridView4.Columns[3].HeaderText = "规格";
- this.advancedDataGridView4.Columns[3].Width = 150;
- this.advancedDataGridView4.Columns[3].Visible = true;
- this.advancedDataGridView4.Columns[3].ReadOnly = false;
- this.advancedDataGridView4.Columns[3].Frozen = false;
- this.advancedDataGridView4.Columns[3].AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.NotSet;
- this.advancedDataGridView4.Columns[3].DataPropertyName = "规格";
- this.advancedDataGridView4.Columns[3].SortMode = System.Windows.Forms.DataGridViewColumnSortMode.NotSortable;
- this.advancedDataGridView4.Columns.Add(new System.Windows.Forms.DataGridViewTextBoxColumn());
- this.advancedDataGridView4.Columns[4].Name = "";
- this.advancedDataGridView4.Columns[4].HeaderText = "单位";
- this.advancedDataGridView4.Columns[4].Width = 35;
- this.advancedDataGridView4.Columns[4].Visible = true;
- this.advancedDataGridView4.Columns[4].ReadOnly = false;
- this.advancedDataGridView4.Columns[4].Frozen = false;
- this.advancedDataGridView4.Columns[4].AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.NotSet;
- this.advancedDataGridView4.Columns[4].DataPropertyName = "单位";
- this.advancedDataGridView4.Columns[4].SortMode = System.Windows.Forms.DataGridViewColumnSortMode.NotSortable;
- this.advancedDataGridView4.Columns[4].DefaultCellStyle.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleCenter;
- this.advancedDataGridView4.Columns.Add(new System.Windows.Forms.DataGridViewTextBoxColumn());
- this.advancedDataGridView4.Columns[5].Name = "";
- this.advancedDataGridView4.Columns[5].HeaderText = "数量";
- this.advancedDataGridView4.Columns[5].Width = 45;
- this.advancedDataGridView4.Columns[5].Visible = true;
- this.advancedDataGridView4.Columns[5].ReadOnly = false;
- this.advancedDataGridView4.Columns[5].Frozen = false;
- this.advancedDataGridView4.Columns[5].AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.NotSet;
- this.advancedDataGridView4.Columns[5].DataPropertyName = "数量";
- this.advancedDataGridView4.Columns[5].SortMode = System.Windows.Forms.DataGridViewColumnSortMode.NotSortable;
- this.advancedDataGridView4.Columns[5].DefaultCellStyle.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleCenter;
- this.advancedDataGridView4.Columns.Add(new System.Windows.Forms.DataGridViewTextBoxColumn());
- this.advancedDataGridView4.Columns[6].Name = "";
- this.advancedDataGridView4.Columns[6].HeaderText = "单台成本";
- this.advancedDataGridView4.Columns[6].Width = 100;
- this.advancedDataGridView4.Columns[6].Visible = true;
- this.advancedDataGridView4.Columns[6].ReadOnly = false;
- this.advancedDataGridView4.Columns[6].Frozen = false;
- this.advancedDataGridView4.Columns[6].AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.NotSet;
- this.advancedDataGridView4.Columns[6].DataPropertyName = "单台成本";
- this.advancedDataGridView4.Columns[6].SortMode = System.Windows.Forms.DataGridViewColumnSortMode.NotSortable;
- this.advancedDataGridView4.Columns.Add(new System.Windows.Forms.DataGridViewTextBoxColumn());
- this.advancedDataGridView4.Columns[7].Name = "";
- this.advancedDataGridView4.Columns[7].HeaderText = "成本价";
- this.advancedDataGridView4.Columns[7].Width = 100;
- this.advancedDataGridView4.Columns[7].Visible = true;
- this.advancedDataGridView4.Columns[7].ReadOnly = false;
- this.advancedDataGridView4.Columns[7].Frozen = false;
- this.advancedDataGridView4.Columns[7].AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.NotSet;
- this.advancedDataGridView4.Columns[7].DataPropertyName = "成本价";
- this.advancedDataGridView4.Columns[7].SortMode = System.Windows.Forms.DataGridViewColumnSortMode.NotSortable;
- this.advancedDataGridView4.Columns.Add(new System.Windows.Forms.DataGridViewTextBoxColumn());
- this.advancedDataGridView4.Columns[8].Name = "";
- this.advancedDataGridView4.Columns[8].HeaderText = "单台报出";
- this.advancedDataGridView4.Columns[8].Width = 100;
- this.advancedDataGridView4.Columns[8].Visible = true;
- this.advancedDataGridView4.Columns[8].ReadOnly = false;
- this.advancedDataGridView4.Columns[8].Frozen = false;
- this.advancedDataGridView4.Columns[8].AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.NotSet;
- this.advancedDataGridView4.Columns[8].DataPropertyName = "单台报出";
- this.advancedDataGridView4.Columns[8].SortMode = System.Windows.Forms.DataGridViewColumnSortMode.NotSortable;
- this.advancedDataGridView4.Columns.Add(new System.Windows.Forms.DataGridViewTextBoxColumn());
- this.advancedDataGridView4.Columns[9].Name = "";
- this.advancedDataGridView4.Columns[9].HeaderText = "报出价";
- this.advancedDataGridView4.Columns[9].Width = 100;
- this.advancedDataGridView4.Columns[9].Visible = true;
- this.advancedDataGridView4.Columns[9].ReadOnly = false;
- this.advancedDataGridView4.Columns[9].Frozen = false;
- this.advancedDataGridView4.Columns[9].AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.NotSet;
- this.advancedDataGridView4.Columns[9].DataPropertyName = "报出价";
- this.advancedDataGridView4.Columns[9].SortMode = System.Windows.Forms.DataGridViewColumnSortMode.NotSortable;
- this.advancedDataGridView4.Columns.Add(new System.Windows.Forms.DataGridViewTextBoxColumn());
- this.advancedDataGridView4.Columns[10].Name = "";
- this.advancedDataGridView4.Columns[10].HeaderText = "利润";
- this.advancedDataGridView4.Columns[10].Width = 100;
- this.advancedDataGridView4.Columns[10].Visible = true;
- this.advancedDataGridView4.Columns[10].ReadOnly = false;
- this.advancedDataGridView4.Columns[10].Frozen = false;
- this.advancedDataGridView4.Columns[10].AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.NotSet;
- this.advancedDataGridView4.Columns[10].DataPropertyName = "利润";
- this.advancedDataGridView4.Columns[10].SortMode = System.Windows.Forms.DataGridViewColumnSortMode.NotSortable;
- this.advancedDataGridView4.Columns.Add(new System.Windows.Forms.DataGridViewTextBoxColumn());
- this.advancedDataGridView4.Columns[11].Name = "";
- this.advancedDataGridView4.Columns[11].HeaderText = "利润率";
- this.advancedDataGridView4.Columns[11].Width = 100;
- this.advancedDataGridView4.Columns[11].Visible = true;
- this.advancedDataGridView4.Columns[11].ReadOnly = false;
- this.advancedDataGridView4.Columns[11].Frozen = false;
- this.advancedDataGridView4.Columns[11].AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.NotSet;
- this.advancedDataGridView4.Columns[11].DataPropertyName = "利润率";
- this.advancedDataGridView4.Columns[11].SortMode = System.Windows.Forms.DataGridViewColumnSortMode.NotSortable;
- this.advancedDataGridView4.Columns.Add(new System.Windows.Forms.DataGridViewTextBoxColumn());
- this.advancedDataGridView4.Columns[12].Name = "";
- this.advancedDataGridView4.Columns[12].HeaderText = "毛利率";
- this.advancedDataGridView4.Columns[12].Width = 100;
- this.advancedDataGridView4.Columns[12].Visible = true;
- this.advancedDataGridView4.Columns[12].ReadOnly = false;
- this.advancedDataGridView4.Columns[12].Frozen = false;
- this.advancedDataGridView4.Columns[12].AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.NotSet;
- this.advancedDataGridView4.Columns[12].DataPropertyName = "毛利率";
- this.advancedDataGridView4.Columns[12].SortMode = System.Windows.Forms.DataGridViewColumnSortMode.NotSortable;
- this.advancedDataGridView4.Columns.Add(new System.Windows.Forms.DataGridViewTextBoxColumn());
- this.advancedDataGridView4.Columns[13].Name = "";
- this.advancedDataGridView4.Columns[13].HeaderText = "箱柜类型";
- this.advancedDataGridView4.Columns[13].Width = 100;
- this.advancedDataGridView4.Columns[13].Visible = true;
- this.advancedDataGridView4.Columns[13].ReadOnly = false;
- this.advancedDataGridView4.Columns[13].Frozen = false;
- this.advancedDataGridView4.Columns[13].AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.NotSet;
- this.advancedDataGridView4.Columns[13].DataPropertyName = "箱柜类型";
- this.advancedDataGridView4.Columns[13].SortMode = System.Windows.Forms.DataGridViewColumnSortMode.NotSortable;
- this.advancedDataGridView4.Columns.Add(new System.Windows.Forms.DataGridViewTextBoxColumn());
- this.advancedDataGridView4.Columns[14].Name = "";
- this.advancedDataGridView4.Columns[14].HeaderText = "备注";
- this.advancedDataGridView4.Columns[14].Width = 100;
- this.advancedDataGridView4.Columns[14].Visible = true;
- this.advancedDataGridView4.Columns[14].ReadOnly = false;
- this.advancedDataGridView4.Columns[14].Frozen = false;
- this.advancedDataGridView4.Columns[14].AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.NotSet;
- this.advancedDataGridView4.Columns[14].DataPropertyName = "备注";
- this.advancedDataGridView4.Columns[14].SortMode = System.Windows.Forms.DataGridViewColumnSortMode.NotSortable;
- this.advancedDataGridView4.Columns.Add(new System.Windows.Forms.DataGridViewTextBoxColumn());
- this.advancedDataGridView4.Columns[15].Name = "";
- this.advancedDataGridView4.Columns[15].HeaderText = "图纸";
- this.advancedDataGridView4.Columns[15].Width = 100;
- this.advancedDataGridView4.Columns[15].Visible = true;
- this.advancedDataGridView4.Columns[15].ReadOnly = false;
- this.advancedDataGridView4.Columns[15].Frozen = false;
- this.advancedDataGridView4.Columns[15].AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.NotSet;
- this.advancedDataGridView4.Columns[15].DataPropertyName = "图纸";
- this.advancedDataGridView4.Columns[15].SortMode = System.Windows.Forms.DataGridViewColumnSortMode.NotSortable;
-
- //
- // advancedDataGridView5
- //
- this.advancedDataGridView5.ColumnHeadersDefaultCellStyle.BackColor = System.Drawing.SystemColors.Control;
- this.advancedDataGridView5.ColumnHeadersDefaultCellStyle.ForeColor = System.Drawing.SystemColors.WindowText;
- this.advancedDataGridView5.ColumnHeadersDefaultCellStyle.SelectionBackColor = System.Drawing.SystemColors.Highlight;
- this.advancedDataGridView5.ColumnHeadersDefaultCellStyle.SelectionForeColor = System.Drawing.SystemColors.HighlightText;
- this.advancedDataGridView5.ColumnHeadersDefaultCellStyle.Font = new System.Drawing.Font("宋体", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, 1);
- this.advancedDataGridView5.ColumnHeadersDefaultCellStyle.WrapMode = System.Windows.Forms.DataGridViewTriState.True;
- this.advancedDataGridView5.ColumnHeadersDefaultCellStyle.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleCenter;
- this.advancedDataGridView5.DefaultCellStyle.BackColor = System.Drawing.SystemColors.Window;
- this.advancedDataGridView5.DefaultCellStyle.ForeColor = System.Drawing.SystemColors.ControlText;
- this.advancedDataGridView5.DefaultCellStyle.SelectionBackColor = System.Drawing.SystemColors.Highlight;
- this.advancedDataGridView5.DefaultCellStyle.SelectionForeColor = System.Drawing.SystemColors.HighlightText;
- this.advancedDataGridView5.DefaultCellStyle.Font = new System.Drawing.Font("宋体", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, 1);
- this.advancedDataGridView5.DefaultCellStyle.WrapMode = System.Windows.Forms.DataGridViewTriState.False;
- this.advancedDataGridView5.DefaultCellStyle.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft;
- this.advancedDataGridView5.RowHeadersDefaultCellStyle.BackColor = System.Drawing.SystemColors.Control;
- this.advancedDataGridView5.RowHeadersDefaultCellStyle.ForeColor = System.Drawing.SystemColors.WindowText;
- this.advancedDataGridView5.RowHeadersDefaultCellStyle.SelectionBackColor = System.Drawing.SystemColors.Highlight;
- this.advancedDataGridView5.RowHeadersDefaultCellStyle.SelectionForeColor = System.Drawing.SystemColors.HighlightText;
- this.advancedDataGridView5.RowHeadersDefaultCellStyle.Font = new System.Drawing.Font("宋体", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, 1);
- this.advancedDataGridView5.RowHeadersDefaultCellStyle.WrapMode = System.Windows.Forms.DataGridViewTriState.True;
- this.advancedDataGridView5.RowHeadersDefaultCellStyle.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft;
- this.advancedDataGridView5.Dock = System.Windows.Forms.DockStyle.Fill;
- this.advancedDataGridView5.EnableExcelStyleSelection = true;
- this.advancedDataGridView5.EnableCellPaste = true;
- this.advancedDataGridView5.AllowUserToAddRows = false;
- this.advancedDataGridView5.AllowUserToDeleteRows = true;
- this.advancedDataGridView5.AllowUserToOrderColumns = false;
- this.advancedDataGridView5.AllowUserToResizeColumns = true;
- this.advancedDataGridView5.AllowUserToResizeRows = false;
- this.advancedDataGridView5.AutoSizeColumnsMode = System.Windows.Forms.DataGridViewAutoSizeColumnsMode.None;
- this.advancedDataGridView5.AutoSizeRowsMode = System.Windows.Forms.DataGridViewAutoSizeRowsMode.None;
- this.advancedDataGridView5.BackgroundColor = System.Drawing.Color.White;
- this.advancedDataGridView5.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
- this.advancedDataGridView5.CellBorderStyle = System.Windows.Forms.DataGridViewCellBorderStyle.Single;
- this.advancedDataGridView5.ClipboardCopyMode = System.Windows.Forms.DataGridViewClipboardCopyMode.EnableWithAutoHeaderText;
- this.advancedDataGridView5.ColumnHeadersBorderStyle = System.Windows.Forms.DataGridViewHeaderBorderStyle.Raised;
- this.advancedDataGridView5.ColumnHeadersHeight = 35;
- this.advancedDataGridView5.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.EnableResizing;
- this.advancedDataGridView5.ColumnHeadersVisible = true;
- this.advancedDataGridView5.EditMode = System.Windows.Forms.DataGridViewEditMode.EditOnKeystroke;
- this.advancedDataGridView5.EnableHeadersVisualStyles = false;
- this.advancedDataGridView5.GridColor = System.Drawing.SystemColors.ControlDark;
- this.advancedDataGridView5.MultiSelect = true;
- this.advancedDataGridView5.ReadOnly = false;
- this.advancedDataGridView5.RowHeadersBorderStyle = System.Windows.Forms.DataGridViewHeaderBorderStyle.Raised;
- this.advancedDataGridView5.RowHeadersVisible = true;
- this.advancedDataGridView5.RowHeadersWidth = 41;
- this.advancedDataGridView5.RowHeadersWidthSizeMode = System.Windows.Forms.DataGridViewRowHeadersWidthSizeMode.EnableResizing;
- this.advancedDataGridView5.ScrollBars = System.Windows.Forms.ScrollBars.Both;
- this.advancedDataGridView5.SelectionMode = System.Windows.Forms.DataGridViewSelectionMode.RowHeaderSelect;
- this.advancedDataGridView5.ShowCellErrors = true;
- this.advancedDataGridView5.ShowCellToolTips = true;
- this.advancedDataGridView5.ShowEditingIcon = true;
- this.advancedDataGridView5.ShowRowErrors = true;
- this.advancedDataGridView5.StandardTab = false;
- this.advancedDataGridView5.VirtualMode = false;
- this.advancedDataGridView5.Enabled = true;
- this.advancedDataGridView5.Margin = new System.Windows.Forms.Padding(3, 3, 3, 3);
- this.advancedDataGridView5.MaximumSize = new System.Drawing.Size(0, 0);
- this.advancedDataGridView5.MinimumSize = new System.Drawing.Size(0, 0);
- this.advancedDataGridView5.TabIndex = 0;
- this.advancedDataGridView5.TabStop = true;
- this.advancedDataGridView5.Name = "advancedDataGridView5";
- this.advancedDataGridView5.Columns.Add(new System.Windows.Forms.DataGridViewTextBoxColumn());
- this.advancedDataGridView5.Columns[0].Name = "";
- this.advancedDataGridView5.Columns[0].HeaderText = "序号";
- this.advancedDataGridView5.Columns[0].Width = 35;
- this.advancedDataGridView5.Columns[0].Visible = true;
- this.advancedDataGridView5.Columns[0].ReadOnly = false;
- this.advancedDataGridView5.Columns[0].Frozen = false;
- this.advancedDataGridView5.Columns[0].AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.NotSet;
- this.advancedDataGridView5.Columns[0].DataPropertyName = "序号";
- this.advancedDataGridView5.Columns[0].SortMode = System.Windows.Forms.DataGridViewColumnSortMode.NotSortable;
- this.advancedDataGridView5.Columns[0].DefaultCellStyle.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleCenter;
- this.advancedDataGridView5.Columns.Add(new System.Windows.Forms.DataGridViewTextBoxColumn());
- this.advancedDataGridView5.Columns[1].Name = "";
- this.advancedDataGridView5.Columns[1].HeaderText = "元件名称";
- this.advancedDataGridView5.Columns[1].Width = 150;
- this.advancedDataGridView5.Columns[1].Visible = true;
- this.advancedDataGridView5.Columns[1].ReadOnly = false;
- this.advancedDataGridView5.Columns[1].Frozen = false;
- this.advancedDataGridView5.Columns[1].AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.NotSet;
- this.advancedDataGridView5.Columns[1].DataPropertyName = "元件名称";
- this.advancedDataGridView5.Columns[1].SortMode = System.Windows.Forms.DataGridViewColumnSortMode.NotSortable;
- this.advancedDataGridView5.Columns.Add(new System.Windows.Forms.DataGridViewTextBoxColumn());
- this.advancedDataGridView5.Columns[2].Name = "";
- this.advancedDataGridView5.Columns[2].HeaderText = "规格";
- this.advancedDataGridView5.Columns[2].Width = 150;
- this.advancedDataGridView5.Columns[2].Visible = true;
- this.advancedDataGridView5.Columns[2].ReadOnly = false;
- this.advancedDataGridView5.Columns[2].Frozen = false;
- this.advancedDataGridView5.Columns[2].AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.NotSet;
- this.advancedDataGridView5.Columns[2].DataPropertyName = "规格";
- this.advancedDataGridView5.Columns[2].SortMode = System.Windows.Forms.DataGridViewColumnSortMode.NotSortable;
- this.advancedDataGridView5.Columns.Add(new System.Windows.Forms.DataGridViewTextBoxColumn());
- this.advancedDataGridView5.Columns[3].Name = "";
- this.advancedDataGridView5.Columns[3].HeaderText = "单位";
- this.advancedDataGridView5.Columns[3].Width = 35;
- this.advancedDataGridView5.Columns[3].Visible = true;
- this.advancedDataGridView5.Columns[3].ReadOnly = false;
- this.advancedDataGridView5.Columns[3].Frozen = false;
- this.advancedDataGridView5.Columns[3].AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.NotSet;
- this.advancedDataGridView5.Columns[3].DataPropertyName = "单位";
- this.advancedDataGridView5.Columns[3].SortMode = System.Windows.Forms.DataGridViewColumnSortMode.NotSortable;
- this.advancedDataGridView5.Columns[3].DefaultCellStyle.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleCenter;
- this.advancedDataGridView5.Columns.Add(new System.Windows.Forms.DataGridViewTextBoxColumn());
- this.advancedDataGridView5.Columns[4].Name = "";
- this.advancedDataGridView5.Columns[4].HeaderText = "数量";
- this.advancedDataGridView5.Columns[4].Width = 40;
- this.advancedDataGridView5.Columns[4].Visible = true;
- this.advancedDataGridView5.Columns[4].ReadOnly = false;
- this.advancedDataGridView5.Columns[4].Frozen = false;
- this.advancedDataGridView5.Columns[4].AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.NotSet;
- this.advancedDataGridView5.Columns[4].DataPropertyName = "数量";
- this.advancedDataGridView5.Columns[4].SortMode = System.Windows.Forms.DataGridViewColumnSortMode.NotSortable;
- this.advancedDataGridView5.Columns[4].DefaultCellStyle.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleCenter;
- this.advancedDataGridView5.Columns.Add(new System.Windows.Forms.DataGridViewTextBoxColumn());
- this.advancedDataGridView5.Columns[5].Name = "";
- this.advancedDataGridView5.Columns[5].HeaderText = "表价";
- this.advancedDataGridView5.Columns[5].Width = 100;
- this.advancedDataGridView5.Columns[5].Visible = true;
- this.advancedDataGridView5.Columns[5].ReadOnly = false;
- this.advancedDataGridView5.Columns[5].Frozen = false;
- this.advancedDataGridView5.Columns[5].AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.NotSet;
- this.advancedDataGridView5.Columns[5].DataPropertyName = "表价";
- this.advancedDataGridView5.Columns[5].SortMode = System.Windows.Forms.DataGridViewColumnSortMode.NotSortable;
- this.advancedDataGridView5.Columns.Add(new System.Windows.Forms.DataGridViewTextBoxColumn());
- this.advancedDataGridView5.Columns[6].Name = "";
- this.advancedDataGridView5.Columns[6].HeaderText = "采购单价";
- this.advancedDataGridView5.Columns[6].Width = 100;
- this.advancedDataGridView5.Columns[6].Visible = true;
- this.advancedDataGridView5.Columns[6].ReadOnly = false;
- this.advancedDataGridView5.Columns[6].Frozen = false;
- this.advancedDataGridView5.Columns[6].AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.NotSet;
- this.advancedDataGridView5.Columns[6].DataPropertyName = "采购单价";
- this.advancedDataGridView5.Columns[6].SortMode = System.Windows.Forms.DataGridViewColumnSortMode.NotSortable;
- this.advancedDataGridView5.Columns.Add(new System.Windows.Forms.DataGridViewTextBoxColumn());
- this.advancedDataGridView5.Columns[7].Name = "";
- this.advancedDataGridView5.Columns[7].HeaderText = "采购系数";
- this.advancedDataGridView5.Columns[7].Width = 100;
- this.advancedDataGridView5.Columns[7].Visible = true;
- this.advancedDataGridView5.Columns[7].ReadOnly = false;
- this.advancedDataGridView5.Columns[7].Frozen = false;
- this.advancedDataGridView5.Columns[7].AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.NotSet;
- this.advancedDataGridView5.Columns[7].DataPropertyName = "采购系数";
- this.advancedDataGridView5.Columns[7].SortMode = System.Windows.Forms.DataGridViewColumnSortMode.NotSortable;
- this.advancedDataGridView5.Columns.Add(new System.Windows.Forms.DataGridViewTextBoxColumn());
- this.advancedDataGridView5.Columns[8].Name = "";
- this.advancedDataGridView5.Columns[8].HeaderText = "采购价";
- this.advancedDataGridView5.Columns[8].Width = 100;
- this.advancedDataGridView5.Columns[8].Visible = true;
- this.advancedDataGridView5.Columns[8].ReadOnly = false;
- this.advancedDataGridView5.Columns[8].Frozen = false;
- this.advancedDataGridView5.Columns[8].AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.NotSet;
- this.advancedDataGridView5.Columns[8].DataPropertyName = "采购价";
- this.advancedDataGridView5.Columns[8].SortMode = System.Windows.Forms.DataGridViewColumnSortMode.NotSortable;
- this.advancedDataGridView5.Columns.Add(new System.Windows.Forms.DataGridViewTextBoxColumn());
- this.advancedDataGridView5.Columns[9].Name = "";
- this.advancedDataGridView5.Columns[9].HeaderText = "报出单价";
- this.advancedDataGridView5.Columns[9].Width = 100;
- this.advancedDataGridView5.Columns[9].Visible = true;
- this.advancedDataGridView5.Columns[9].ReadOnly = false;
- this.advancedDataGridView5.Columns[9].Frozen = false;
- this.advancedDataGridView5.Columns[9].AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.NotSet;
- this.advancedDataGridView5.Columns[9].DataPropertyName = "报出单价";
- this.advancedDataGridView5.Columns[9].SortMode = System.Windows.Forms.DataGridViewColumnSortMode.NotSortable;
- this.advancedDataGridView5.Columns.Add(new System.Windows.Forms.DataGridViewTextBoxColumn());
- this.advancedDataGridView5.Columns[10].Name = "";
- this.advancedDataGridView5.Columns[10].HeaderText = "报出系数";
- this.advancedDataGridView5.Columns[10].Width = 100;
- this.advancedDataGridView5.Columns[10].Visible = true;
- this.advancedDataGridView5.Columns[10].ReadOnly = false;
- this.advancedDataGridView5.Columns[10].Frozen = false;
- this.advancedDataGridView5.Columns[10].AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.NotSet;
- this.advancedDataGridView5.Columns[10].DataPropertyName = "报出系数";
- this.advancedDataGridView5.Columns[10].SortMode = System.Windows.Forms.DataGridViewColumnSortMode.NotSortable;
- this.advancedDataGridView5.Columns.Add(new System.Windows.Forms.DataGridViewTextBoxColumn());
- this.advancedDataGridView5.Columns[11].Name = "";
- this.advancedDataGridView5.Columns[11].HeaderText = "报出价";
- this.advancedDataGridView5.Columns[11].Width = 100;
- this.advancedDataGridView5.Columns[11].Visible = true;
- this.advancedDataGridView5.Columns[11].ReadOnly = false;
- this.advancedDataGridView5.Columns[11].Frozen = false;
- this.advancedDataGridView5.Columns[11].AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.NotSet;
- this.advancedDataGridView5.Columns[11].DataPropertyName = "报出价";
- this.advancedDataGridView5.Columns[11].SortMode = System.Windows.Forms.DataGridViewColumnSortMode.NotSortable;
- this.advancedDataGridView5.Columns.Add(new System.Windows.Forms.DataGridViewTextBoxColumn());
- this.advancedDataGridView5.Columns[12].Name = "";
- this.advancedDataGridView5.Columns[12].HeaderText = "图纸规格";
- this.advancedDataGridView5.Columns[12].Width = 100;
- this.advancedDataGridView5.Columns[12].Visible = true;
- this.advancedDataGridView5.Columns[12].ReadOnly = false;
- this.advancedDataGridView5.Columns[12].Frozen = false;
- this.advancedDataGridView5.Columns[12].AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.NotSet;
- this.advancedDataGridView5.Columns[12].DataPropertyName = "图纸规格";
- this.advancedDataGridView5.Columns[12].SortMode = System.Windows.Forms.DataGridViewColumnSortMode.NotSortable;
- this.advancedDataGridView5.Columns.Add(new System.Windows.Forms.DataGridViewTextBoxColumn());
- this.advancedDataGridView5.Columns[13].Name = "";
- this.advancedDataGridView5.Columns[13].HeaderText = "品牌";
- this.advancedDataGridView5.Columns[13].Width = 100;
- this.advancedDataGridView5.Columns[13].Visible = true;
- this.advancedDataGridView5.Columns[13].ReadOnly = false;
- this.advancedDataGridView5.Columns[13].Frozen = false;
- this.advancedDataGridView5.Columns[13].AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.NotSet;
- this.advancedDataGridView5.Columns[13].DataPropertyName = "品牌";
- this.advancedDataGridView5.Columns[13].SortMode = System.Windows.Forms.DataGridViewColumnSortMode.NotSortable;
- this.advancedDataGridView5.Columns.Add(new System.Windows.Forms.DataGridViewTextBoxColumn());
- this.advancedDataGridView5.Columns[14].Name = "";
- this.advancedDataGridView5.Columns[14].HeaderText = "系列";
- this.advancedDataGridView5.Columns[14].Width = 100;
- this.advancedDataGridView5.Columns[14].Visible = true;
- this.advancedDataGridView5.Columns[14].ReadOnly = false;
- this.advancedDataGridView5.Columns[14].Frozen = false;
- this.advancedDataGridView5.Columns[14].AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.NotSet;
- this.advancedDataGridView5.Columns[14].DataPropertyName = "系列";
- this.advancedDataGridView5.Columns[14].SortMode = System.Windows.Forms.DataGridViewColumnSortMode.NotSortable;
- this.advancedDataGridView5.Columns.Add(new System.Windows.Forms.DataGridViewTextBoxColumn());
- this.advancedDataGridView5.Columns[15].Name = "";
- this.advancedDataGridView5.Columns[15].HeaderText = "类型";
- this.advancedDataGridView5.Columns[15].Width = 100;
- this.advancedDataGridView5.Columns[15].Visible = true;
- this.advancedDataGridView5.Columns[15].ReadOnly = false;
- this.advancedDataGridView5.Columns[15].Frozen = false;
- this.advancedDataGridView5.Columns[15].AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.NotSet;
- this.advancedDataGridView5.Columns[15].DataPropertyName = "类型";
- this.advancedDataGridView5.Columns[15].SortMode = System.Windows.Forms.DataGridViewColumnSortMode.NotSortable;
- this.advancedDataGridView5.Columns.Add(new System.Windows.Forms.DataGridViewTextBoxColumn());
- this.advancedDataGridView5.Columns[16].Name = "";
- this.advancedDataGridView5.Columns[16].HeaderText = "备注";
- this.advancedDataGridView5.Columns[16].Width = 100;
- this.advancedDataGridView5.Columns[16].Visible = true;
- this.advancedDataGridView5.Columns[16].ReadOnly = false;
- this.advancedDataGridView5.Columns[16].Frozen = false;
- this.advancedDataGridView5.Columns[16].AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.NotSet;
- this.advancedDataGridView5.Columns[16].DataPropertyName = "备注";
- this.advancedDataGridView5.Columns[16].SortMode = System.Windows.Forms.DataGridViewColumnSortMode.NotSortable;
-
- //
- // toolStrip1
- //
- this.toolStrip1.Dock = System.Windows.Forms.DockStyle.Top;
- this.toolStrip1.AutoSize = true;
- this.toolStrip1.AllowItemReorder = false;
- this.toolStrip1.AllowMerge = true;
- this.toolStrip1.BackColor = System.Drawing.SystemColors.Control;
- this.toolStrip1.CanOverflow = true;
- this.toolStrip1.Font = new System.Drawing.Font("Microsoft YaHei UI", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point);
- this.toolStrip1.GripStyle = System.Windows.Forms.ToolStripGripStyle.Visible;
- this.toolStrip1.GripMargin = new System.Windows.Forms.Padding(2, 2, 2, 2);
- this.toolStrip1.ImageScalingSize = new System.Drawing.Size(16, 16);
- this.toolStrip1.LayoutStyle = System.Windows.Forms.ToolStripLayoutStyle.HorizontalStackWithOverflow;
- this.toolStrip1.Stretch = false;
- this.toolStrip1.RenderMode = System.Windows.Forms.ToolStripRenderMode.ManagerRenderMode;
- this.toolStrip1.ShowItemToolTips = true;
- this.toolStrip1.TabStop = false;
- this.toolStrip1.TextDirection = System.Windows.Forms.ToolStripTextDirection.Horizontal;
- this.toolStrip1.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Tile;
- this.toolStrip1.Enabled = true;
- this.toolStrip1.Margin = new System.Windows.Forms.Padding(0, 0, 0, 0);
- this.toolStrip1.MaximumSize = new System.Drawing.Size(0, 0);
- this.toolStrip1.MinimumSize = new System.Drawing.Size(0, 0);
- this.toolStrip1.TabIndex = 1;
- this.toolStrip1.Padding = new System.Windows.Forms.Padding(0, 0, 1, 0);
- this.toolStrip1.Size = new System.Drawing.Size(487, 25);
- this.toolStrip1.Location = new System.Drawing.Point(0, 0);
- this.toolStrip1.Name = "toolStrip1";
-
- //
- // toolStripButton1
- //
- this.toolStripButton1.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Text;
- this.toolStripButton1.ToolTipText = "导出数据";
- this.toolStripButton1.Size = new System.Drawing.Size(60, 22);
- this.toolStripButton1.Text = "导出数据";
- this.toolStripButton1.Name = "toolStripButton1";
-
- //
- // toolStripButton5
- //
- this.toolStripButton5.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Text;
- this.toolStripButton5.ToolTipText = "新建项目";
- this.toolStripButton5.Size = new System.Drawing.Size(60, 22);
- this.toolStripButton5.Text = "新建项目";
- this.toolStripButton5.Name = "toolStripButton5";
-
- //
- // toolStripButton6
- //
- this.toolStripButton6.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Text;
- this.toolStripButton6.ToolTipText = "删除项目";
- this.toolStripButton6.Size = new System.Drawing.Size(60, 22);
- this.toolStripButton6.Text = "删除项目";
- this.toolStripButton6.Name = "toolStripButton6";
-
- //
- // toolStripButton2
- //
- this.toolStripButton2.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Text;
- this.toolStripButton2.ToolTipText = "扒图号";
- this.toolStripButton2.Size = new System.Drawing.Size(48, 22);
- this.toolStripButton2.Text = "扒图号";
- this.toolStripButton2.Name = "toolStripButton2";
-
- //
- // toolStripButton3
- //
- this.toolStripButton3.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Text;
- this.toolStripButton3.ToolTipText = "扒箱号";
- this.toolStripButton3.Size = new System.Drawing.Size(48, 22);
- this.toolStripButton3.Text = "扒箱号";
- this.toolStripButton3.Name = "toolStripButton3";
-
- //
- // toolStripButton4
- //
- this.toolStripButton4.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Text;
- this.toolStripButton4.ToolTipText = "扒元件";
- this.toolStripButton4.Size = new System.Drawing.Size(48, 22);
- this.toolStripButton4.Text = "扒元件";
- this.toolStripButton4.Name = "toolStripButton4";
-
- //
- // toolStripButton7
- //
- this.toolStripButton7.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Text;
- this.toolStripButton7.ImageTransparentColor = System.Drawing.Color.Magenta;
- this.toolStripButton7.Size = new System.Drawing.Size(36, 22);
- this.toolStripButton7.Text = "设置";
- this.toolStripButton7.Name = "toolStripButton7";
-
- // Form3
- this.Controls.AddRange(new System.Windows.Forms.Control[] {
- this.tabControl2,
- this.toolStrip1,
- });
- // tabControl2
- this.tabControl2.Controls.AddRange(new System.Windows.Forms.Control[] {
- this.tabPage3,
- this.tabPage4,
- });
- // tabPage3
- this.tabPage3.Controls.AddRange(new System.Windows.Forms.Control[] {
- this.advancedDataGridView6,
- this.panel1,
- });
- // panel1
- this.panel1.Controls.AddRange(new System.Windows.Forms.Control[] {
- this.button28,
- this.textBox1,
- this.comboBox2,
- });
- // tabPage4
- this.tabPage4.Controls.AddRange(new System.Windows.Forms.Control[] {
- this.splitContainer2,
- });
- // Panel1
- this.splitContainer2.Panel1.Controls.AddRange(new System.Windows.Forms.Control[] {
- this.advancedDataGridView9,
- });
- // Panel2
- this.splitContainer2.Panel2.Controls.AddRange(new System.Windows.Forms.Control[] {
- this.splitContainer3,
- });
- // Panel1
- this.splitContainer3.Panel1.Controls.AddRange(new System.Windows.Forms.Control[] {
- this.advancedDataGridView4,
- });
- // Panel2
- this.splitContainer3.Panel2.Controls.AddRange(new System.Windows.Forms.Control[] {
- this.advancedDataGridView5,
- });
- // toolStrip1
- this.toolStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
- this.toolStripButton1,
- this.toolStripButton5,
- this.toolStripButton6,
- this.toolStripButton2,
- this.toolStripButton3,
- this.toolStripButton4,
- this.toolStripButton7,
- });
- //
- // Form3
- //
- this.Dock = System.Windows.Forms.DockStyle.None;
- this.AutoScroll = false;
- this.AutoSize = false;
- this.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowOnly;
- this.AutoValidate = System.Windows.Forms.AutoValidate.EnablePreventFocusChange;
- this.BackColor = System.Drawing.SystemColors.Control;
- this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.Sizable;
- this.ControlBox = true;
- this.HelpButton = false;
- this.IsMdiContainer = false;
- this.KeyPreview = false;
- this.MaximumSize = new System.Drawing.Size(0, 0);
- this.MinimumSize = new System.Drawing.Size(0, 0);
- this.MaximizeBox = true;
- this.MinimizeBox = true;
- this.Opacity = 1;
- this.RightToLeftLayout = false;
- this.ShowInTaskbar = true;
- this.ShowIcon = true;
- this.SizeGripStyle = System.Windows.Forms.SizeGripStyle.Auto;
- this.StartPosition = System.Windows.Forms.FormStartPosition.WindowsDefaultLocation;
- this.TopMost = false;
- this.WindowState = System.Windows.Forms.FormWindowState.Normal;
- this.AutoScrollMargin = new System.Drawing.Size(0, 0);
- this.AutoScrollMinSize = new System.Drawing.Size(0, 0);
- this.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Tile;
- this.Enabled = true;
- this.Font = new System.Drawing.Font("宋体", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point);
- this.ForeColor = System.Drawing.SystemColors.ControlText;
- this.Padding = new System.Windows.Forms.Padding(0, 0, 0, 0);
- this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None;
- this.Size = new System.Drawing.Size(503, 785);
- this.Text = "Form3";
- this.Name = "Form3";
- ((System.ComponentModel.ISupportInitialize)(this.advancedDataGridView6)).EndInit();
- ((System.ComponentModel.ISupportInitialize)(this.splitContainer2)).EndInit();
- ((System.ComponentModel.ISupportInitialize)(this.advancedDataGridView9)).EndInit();
- ((System.ComponentModel.ISupportInitialize)(this.splitContainer3)).EndInit();
- ((System.ComponentModel.ISupportInitialize)(this.advancedDataGridView4)).EndInit();
- ((System.ComponentModel.ISupportInitialize)(this.advancedDataGridView5)).EndInit();
- this.ResumeLayout(false);
- this.PerformLayout();
- this.splitContainer2.SplitterDistance = 173;
- this.splitContainer3.SplitterDistance = 239;
-
- // === DataGridView Excel 风格选中效果 ===
-
- // === SQLite 设计时数据绑定(由设计器注入) ===
- // 在 Form.Load 事件中加载所有绑定数据
- this.Load += (sender, e) => LoadAllSqliteData();
- }
-
- #endregion
-
- private System.Windows.Forms.TabControl tabControl2;
- private System.Windows.Forms.TabPage tabPage3;
- private Zuby.ADGV.AdvancedDataGridView advancedDataGridView6;
- private System.Windows.Forms.Panel panel1;
- private System.Windows.Forms.Button button28;
- private System.Windows.Forms.TextBox textBox1;
- private System.Windows.Forms.ComboBox comboBox2;
- private System.Windows.Forms.TabPage tabPage4;
- private System.Windows.Forms.SplitContainer splitContainer2;
- private Zuby.ADGV.AdvancedDataGridView advancedDataGridView9;
- private System.Windows.Forms.SplitContainer splitContainer3;
- private Zuby.ADGV.AdvancedDataGridView advancedDataGridView4;
- private Zuby.ADGV.AdvancedDataGridView advancedDataGridView5;
- private System.Windows.Forms.ToolStrip toolStrip1;
- private System.Windows.Forms.ToolStripButton toolStripButton1;
- private System.Windows.Forms.ToolStripButton toolStripButton5;
- private System.Windows.Forms.ToolStripButton toolStripButton6;
- private System.Windows.Forms.ToolStripButton toolStripButton2;
- private System.Windows.Forms.ToolStripButton toolStripButton3;
- private System.Windows.Forms.ToolStripButton toolStripButton4;
- private System.Windows.Forms.ToolStripButton toolStripButton7;
-
- /// 加载所有 SQLite 设计数据绑定。
- private void LoadAllSqliteData()
- {
- if (!System.Environment.Is64BitProcess)
- {
- System.Windows.Forms.MessageBox.Show(
- "当前程序以 32 位进程运行,但 System.Data.SQLite.dll 是 64 位(x64)。\n" +
- "请用 /platform:x64 编译本程序(运行同目录下 build.bat 即可)。",
- "SQLite 加载失败", System.Windows.Forms.MessageBoxButtons.OK, System.Windows.Forms.MessageBoxIcon.Warning);
- return;
- }
- try { LoadSqliteData_advancedDataGridView6(); } catch (System.Exception ex_advancedDataGridView6) { System.Windows.Forms.MessageBox.Show("加载数据失败 (advancedDataGridView6): " + ex_advancedDataGridView6.Message); }
- }
-
- /// 为 advancedDataGridView6 加载 SQLite 数据(由设计器生成)。
- private void LoadSqliteData_advancedDataGridView6()
- {
- // ★ 数据库路径:优先用插件真实目录(_baseDir 在 Form3.cs,注册表/CodeBase 解析),
- // 在 CAD 中加载时 BaseDirectory 指向 CAD 安装目录会找不到库
- string dbPath = System.IO.Path.Combine(
- GetPluginBaseDirForUi(), @"sjk\advancedDataGridView6Table.db");
- if (!System.IO.File.Exists(dbPath))
- {
- // ★ 静默跳过(不弹窗):构造函数里的 Load 事件已用正确路径重新加载
- System.Diagnostics.Debug.WriteLine("找不到数据库文件: " + dbPath);
- return;
- }
-
- string connStr = "Data Source=" + dbPath + ";Version=3;busy_timeout=3000;";
- var table = new System.Data.DataTable();
- using (var conn = new System.Data.SQLite.SQLiteConnection(connStr))
- {
- conn.Open();
- string sql = @"SELECT * FROM advancedDataGridView6Table";
- using (var adapter = new System.Data.SQLite.SQLiteDataAdapter(sql, conn))
- {
- adapter.Fill(table);
- }
- }
-
- this.advancedDataGridView6.AutoGenerateColumns = false;
- // KeepCustomColumns=true:设计器中自定义的列不会被覆盖,
- // 数据库列通过 DataPropertyName 与控件列关联。
- // 若列名与数据库列名相同,运行时会自动绑定数据。
- this.advancedDataGridView6.DataSource = table;
- }
-
- ///
- /// ui.cs 侧获取插件目录:复用 Form3.cs 的 _baseDir
- /// (partial 类同字段;_baseDir 在 Form3.cs 中由注册表/CodeBase 解析)
- ///
- private string GetPluginBaseDirForUi()
- {
- return _baseDir;
- }
- }
-}
diff --git a/cadbt/cadbt/cadcj/PaTextSelector.cs b/cadbt/cadbt/cadcj/PaTextSelector.cs
deleted file mode 100644
index 02268fc..0000000
--- a/cadbt/cadbt/cadcj/PaTextSelector.cs
+++ /dev/null
@@ -1,830 +0,0 @@
-// ============================================================
-// 扒图号/扒箱号/扒元件 - CAD文本框选交互
-// · 直接框选一次完成(无需点完成按钮)
-// · 只框选 DBText/MText(线条自动过滤)
-// · 不改文字颜色,而是在每个文字周围画彩色矩形框
-// (图号=红色框, 箱号=绿色框, 元件=蓝色框)
-// · 清除时删除所有彩色矩形框
-// ============================================================
-using System;
-using System.Collections.Generic;
-using Autodesk.AutoCAD.DatabaseServices;
-using Autodesk.AutoCAD.EditorInput;
-using Autodesk.AutoCAD.ApplicationServices;
-using Autodesk.AutoCAD.Geometry;
-using Autodesk.AutoCAD.Colors;
-using AcAp = Autodesk.AutoCAD.ApplicationServices.Application;
-
-namespace MyApp
-{
- ///
- /// 扒数据模式:图号/箱号/元件
- ///
- public enum PaMode
- {
- Tuhao, // 扒图号
- Xianghao, // 扒箱号
- Yuanjian // 扒元件
- }
-
- ///
- /// 扒图结果:一条文本 + 它对应的彩色框的 Handle(句柄字符串)
- /// 用于关联表格数据行与 CAD 框实体,实现点击行定位、删除行删框。
- /// ★ TextHandle:源文本实体自身的 Handle,用于判断"是否同一个文本"
- /// (不同位置的相同内容文本 Handle 不同,不算重复)。
- ///
- public class PaTextResult
- {
- public string Text;
- public string FrameHandle;
- public string TextHandle = "";
- }
-
- ///
- /// CAD 文本框选交互:框选一次即完成,在文字周围画彩色矩形框(不改文字颜色)。
- ///
- public static class PaTextSelector
- {
- // 三种模式对应不同的矩形框颜色(ACI:3=绿,4=青,1=红)
- private const short TuhaoColorIndex = 3; // 图号=绿
- private const short XianghaoColorIndex = 4; // 箱号=青
- private const short YuanjianColorIndex = 1; // 元件=红
-
- // 矩形框图层名(便于批量清除)
- public const string PaLayerName = "__CADCJ_PA_FRAME";
-
- ///
- /// 连续扒数据事件:每次框选完成(松开鼠标)就触发一次,把这一批文本+框Handle送给调用方。
- /// 调用方在 Form3 里把数据插入到表格,然后控制流回到 PickTexts 继续下一次框选。
- ///
- public static event System.Action> BatchTextsPicked;
-
- ///
- /// 连续框选模式:用户点一次按钮进入,可以连续框选多次,每次框选立即送出一批文本。
- /// 按回车/空格完成当前批次,ESC 退出连续模式。
- /// 方向决定行为:
- /// · 左上→右下(正向框选):每个文本一条记录
- /// · 右下→左上(反向框选,CAD里称为"交叉框选"):多条文本合并为一条
- ///
- /// 扒数据模式(决定矩形框颜色)
- public static void PickTextsContinuous(PaMode mode)
- {
- var doc = AcAp.DocumentManager.MdiActiveDocument;
- if (doc == null) return;
- var ed = doc.Editor;
-
- // ★ 强制开启透明度显示(TRANSPARENCYDISPLAY=1)
- // 否则 Hatch.Transparency 在某些电脑上不生效,蒙版显示为不透明
- try { AcAp.SetSystemVariable("TRANSPARENCYDISPLAY", 1); } catch { }
-
- // ★ 当前模式(允许右键切换,所以用变量保存当前模式)
- PaMode currentMode = mode;
-
- try
- {
- var typeValues = new TypedValue[]
- {
- new TypedValue(-4, "")
- };
- var filter = new SelectionFilter(typeValues);
-
- // ★ 连续循环:每次框选完立即触发事件,直到用户按 ESC
- while (true)
- {
- // 根据当前模式获取颜色和名称
- short colorIndex;
- string modeName;
- switch (currentMode)
- {
- case PaMode.Tuhao: colorIndex = TuhaoColorIndex; modeName = "图号"; break;
- case PaMode.Xianghao: colorIndex = XianghaoColorIndex; modeName = "箱号"; break;
- default: colorIndex = YuanjianColorIndex; modeName = "元件"; break;
- }
-
- // 第一角点
- // ★ AllowNone=true:右键会返回 None,用来切换模式;ESC 返回 Cancel 退出
- var po1 = new PromptPointOptions("\n框选【" + modeName + "】起点(右键切换模式,ESC结束): ");
- po1.AllowNone = true;
- var pres1 = ed.GetPoint(po1);
- if (pres1.Status == PromptStatus.Cancel) break; // ESC 退出
- if (pres1.Status == PromptStatus.None)
- {
- // ★ 右键:切换到下一个模式(图号→箱号→元件→退出)
- PaMode next = GetNextMode(currentMode);
- if (next == currentMode)
- {
- // 元件模式右键 → 退出
- ed.WriteMessage("\n[扒数据] 已退出连续模式。");
- break;
- }
- currentMode = next;
- ed.WriteMessage("\n[扒数据] 切换到【" + GetModeName(currentMode) + "】模式。");
- continue;
- }
- if (pres1.Status != PromptStatus.OK) break;
- Point3d pt1 = pres1.Value;
-
- // 对角点
- // ★ AllowNone=true:右键也允许切换模式(回到第一角点重新开始)
- var co = new PromptCornerOptions("\n对角点: ", pt1);
- co.AllowNone = true;
- var cres = ed.GetCorner(co);
- if (cres.Status == PromptStatus.Cancel) break; // ESC 退出
- if (cres.Status == PromptStatus.None)
- {
- // ★ 右键:切换到下一个模式,回到第一角点
- PaMode next = GetNextMode(currentMode);
- if (next == currentMode)
- {
- ed.WriteMessage("\n[扒数据] 已退出连续模式。");
- break;
- }
- currentMode = next;
- ed.WriteMessage("\n[扒数据] 切换到【" + GetModeName(currentMode) + "】模式。");
- continue;
- }
- if (cres.Status != PromptStatus.OK) break;
- Point3d pt2 = cres.Value;
-
- // ★ 关键:判断方向(任意一项反向即为"交叉框选"=合并模式)
- // pt1.X > pt2.X = 从右往左框选(pt1 在 pt2 右边)
- // pt1.Y < pt2.Y = 从下往上框选(pt1 在 pt2 下方)
- // 任一条件满足都视为反向框选 → 多文本合并为一条
- bool isCrossing = (pt1.X > pt2.X) || (pt1.Y < pt2.Y);
-
- double minX = Math.Min(pt1.X, pt2.X);
- double maxX = Math.Max(pt1.X, pt2.X);
- double minY = Math.Min(pt1.Y, pt2.Y);
- double maxY = Math.Max(pt1.Y, pt2.Y);
- Point3d minPt = new Point3d(minX, minY, 0);
- Point3d maxPt = new Point3d(maxX, maxY, 0);
-
- // ★ 统一用交叉窗口选择:只要框碰到文字(部分重叠)即选中,
- // 不再要求把文字完全框住(旧版正向框选用 SelectWindow 必须全包,漏选严重)。
- // 框选方向只决定业务模式(正向=逐条,反向=合并),不再影响选择方式。
- PromptSelectionResult res = ed.SelectCrossingWindow(minPt, maxPt, filter);
-
- if (res.Status != PromptStatus.OK) continue; // 这一次没选中,继续下一次
- ObjectId[] ids = res.Value.GetObjectIds();
- if (ids.Length == 0) continue;
-
- // 收集文本
- var items = new List();
- using (var tr = doc.Database.TransactionManager.StartTransaction())
- {
- foreach (ObjectId id in ids)
- {
- var ent = tr.GetObject(id, OpenMode.ForRead) as Entity;
- if (ent == null) continue;
- string text = "";
- Point3d pos = Point3d.Origin;
- Extents3d? bounds = null;
- var dt = ent as DBText;
- var mt = ent as MText;
- if (dt != null)
- {
- text = dt.TextString;
- try
- {
- // ★ 用 CAD 自身的 GeometricExtents 获取文本框边界
- // 宽度通常准确,高度包含字体预留空间偏大
- // 所以高度用字高重新估算,宽度用 GeometricExtents
- bounds = dt.GeometricExtents;
- if (bounds.HasValue)
- {
- double h = dt.Height;
- if (h > 0)
- {
- // ★ 宽度:直接用 GeometricExtents 的宽度(CAD 自身文本框宽度)
- double left = bounds.Value.MinPoint.X;
- double right = bounds.Value.MaxPoint.X;
- // ★ 高度:用字高紧凑估算(底部=baseline下0.2h,顶部=baseline上1.0h)
- double bottom = dt.Position.Y - h * 0.2;
- double top = dt.Position.Y + h * 1.0;
- bounds = new Extents3d(
- new Point3d(left, bottom, 0),
- new Point3d(right, top, 0));
- }
- }
- }
- catch { }
- // ★ 用文字中心点作为排序基准
- if (bounds.HasValue)
- pos = new Point3d(
- (bounds.Value.MinPoint.X + bounds.Value.MaxPoint.X) / 2.0,
- (bounds.Value.MinPoint.Y + bounds.Value.MaxPoint.Y) / 2.0,
- 0);
- else
- pos = dt.Position;
- }
- else if (mt != null)
- {
- text = mt.Text;
- try { bounds = mt.GeometricExtents; } catch { }
- if (bounds.HasValue)
- pos = new Point3d(
- (bounds.Value.MinPoint.X + bounds.Value.MaxPoint.X) / 2.0,
- (bounds.Value.MinPoint.Y + bounds.Value.MaxPoint.Y) / 2.0,
- 0);
- else
- pos = mt.Location;
- }
- if (!string.IsNullOrEmpty(text))
- {
- items.Add(new TextItem
- {
- Text = text.Trim(),
- Position = pos,
- Bounds = bounds,
- ObjectId = id,
- TextHandle = ent.Handle.ToString()
- });
- }
- }
- tr.Commit();
- }
-
- if (items.Count == 0) continue;
-
- // ★ 按列分组排序:先从左到右分列,列内从上到下
- // 用户需求示例:1在上 2在下(左列) 3在上 4在下(右列)
- // 期望顺序:1、2、3、4(先左列从上到下,再右列从上到下)
- // 算法:
- // 1. 按X左边界升序
- // 2. 扫描分列:X范围有重叠的归为同一列(垂直方向对齐的文字)
- // 3. 每列内按Y降序(上在前)
- // 4. 列间按X升序(左在前)合并
- {
- System.Func getLeft = it =>
- it.Bounds.HasValue ? it.Bounds.Value.MinPoint.X : it.Position.X;
- System.Func getRight = it =>
- it.Bounds.HasValue ? it.Bounds.Value.MaxPoint.X : it.Position.X;
- System.Func getCenterY = it =>
- it.Bounds.HasValue ? (it.Bounds.Value.MinPoint.Y + it.Bounds.Value.MaxPoint.Y) / 2.0 : it.Position.Y;
-
- // 1. 按X左边界升序
- items.Sort((a, b) => getLeft(a).CompareTo(getLeft(b)));
-
- // 2. 扫描分列:X范围有重叠的归为同一列
- var columns = new List>();
- double curMaxRight = double.NegativeInfinity;
- List curCol = null;
- foreach (var it in items)
- {
- double left = getLeft(it);
- double right = getRight(it);
- if (curCol == null || left > curMaxRight)
- {
- // 新列
- curCol = new List();
- columns.Add(curCol);
- curMaxRight = right;
- }
- else
- {
- // 加入当前列,更新右边界
- if (right > curMaxRight) curMaxRight = right;
- }
- curCol.Add(it);
- }
-
- // 3. 每列内按Y降序(上在前)
- foreach (var col in columns)
- {
- col.Sort((a, b) => getCenterY(b).CompareTo(getCenterY(a)));
- }
-
- // 4. 合并(列间已按X升序)
- items.Clear();
- foreach (var col in columns) items.AddRange(col);
- }
-
- var result = new List();
- if (isCrossing && items.Count > 1)
- {
- // ★ 反向框选 + 多条文本:合并模式
- // 画一个大框,所有文本共用这个框Handle
- // 每个文本作为独立的 PaTextResult 传出(共用同一个框Handle),
- // 让 Form3 能检查每个文本是否已存在并自动合并已存在的元件
- string mergedHandle = DrawMergedFrame(items, colorIndex);
- foreach (var it in items)
- {
- if (!string.IsNullOrEmpty(it.Text))
- {
- result.Add(new PaTextResult
- {
- Text = it.Text.Trim(),
- FrameHandle = mergedHandle,
- TextHandle = it.TextHandle
- });
- }
- }
- }
- else if (currentMode == PaMode.Yuanjian)
- {
- // 元件模式(正向框选或单条):每个文字一条,每个文字一个框
- var handles = DrawTextFrames(items, colorIndex);
- for (int i = 0; i < items.Count; i++)
- {
- string h = i < handles.Count ? handles[i] : "";
- result.Add(new PaTextResult
- {
- Text = items[i].Text,
- FrameHandle = h,
- TextHandle = items[i].TextHandle
- });
- }
- }
- else
- {
- // 图号/箱号(正向框选或单条):去重(同名只算一条),框对应
- var seen = new HashSet();
- var seenTextHandles = new HashSet();
- var handles = DrawTextFrames(items, colorIndex);
- for (int i = 0; i < items.Count; i++)
- {
- // ★ 用文本实体Handle去重(同一个文本实体只算一条),
- // 不同位置的相同内容文本算两条
- if (seenTextHandles.Add(items[i].TextHandle) && seen.Add(items[i].Text))
- {
- string h = i < handles.Count ? handles[i] : "";
- result.Add(new PaTextResult
- {
- Text = items[i].Text,
- FrameHandle = h,
- TextHandle = items[i].TextHandle
- });
- }
- }
- }
-
- // ★ 立即把这一批数据(文本+框Handle)送给调用方(插入到表格)
- if (result.Count > 0)
- {
- var handler = BatchTextsPicked;
- if (handler != null)
- {
- try { handler(currentMode, result); } catch { }
- }
-
- // ★ 扒完一批后自动切换到下一个模式(图号→箱号→元件)
- // 元件模式扒完后保持元件模式不变(继续扒下一个箱号的元件)
- if (currentMode == PaMode.Tuhao)
- {
- currentMode = PaMode.Xianghao;
- ed.WriteMessage("\n[扒数据] 图号已扒完,自动切换到【箱号】模式。");
- }
- else if (currentMode == PaMode.Xianghao)
- {
- currentMode = PaMode.Yuanjian;
- ed.WriteMessage("\n[扒数据] 箱号已扒完,自动切换到【元件】模式。");
- }
- }
- // 继续下一次框选
- }
- }
- catch (System.Exception ex)
- {
- try { ed.WriteMessage("\n[扒数据] 异常: " + ex.Message); } catch { }
- }
- }
-
- ///
- /// 获取右键切换的下一个扒图模式。
- /// 顺序:图号 → 箱号 → 元件 → 退出(返回当前模式表示退出)。
- ///
- private static PaMode GetNextMode(PaMode current)
- {
- switch (current)
- {
- case PaMode.Tuhao: return PaMode.Xianghao;
- case PaMode.Xianghao: return PaMode.Yuanjian;
- default: return PaMode.Yuanjian; // 元件右键 → 返回自身,外层判断退出
- }
- }
-
- /// 获取模式的中文名称(用于切换提示)。
- private static string GetModeName(PaMode mode)
- {
- switch (mode)
- {
- case PaMode.Tuhao: return "图号";
- case PaMode.Xianghao: return "箱号";
- default: return "元件";
- }
- }
-
- ///
- /// 反向框选合并时:计算所有文字的总边界,画一个大框包住所有文字。
- /// 返回:大框的 Handle 字符串(失败返回空字符串)。
- ///
- private static string DrawMergedFrame(List items, short colorIndex)
- {
- string handle = "";
- try
- {
- var doc = AcAp.DocumentManager.MdiActiveDocument;
- if (doc == null) return handle;
- var db = doc.Database;
-
- // 先计算所有文字的合并 Extents
- double? minX = null, minY = null, maxX = null, maxY = null;
- foreach (var item in items)
- {
- if (item.Bounds == null) continue;
- Extents3d ext = item.Bounds.Value;
- if (minX == null || ext.MinPoint.X < minX.Value) minX = ext.MinPoint.X;
- if (minY == null || ext.MinPoint.Y < minY.Value) minY = ext.MinPoint.Y;
- if (maxX == null || ext.MaxPoint.X > maxX.Value) maxX = ext.MaxPoint.X;
- if (maxY == null || ext.MaxPoint.Y > maxY.Value) maxY = ext.MaxPoint.Y;
- }
- if (minX == null) return handle;
-
- using (var tr = db.TransactionManager.StartTransaction())
- {
- // 确保专用图层存在
- LayerTable lt = (LayerTable)tr.GetObject(db.LayerTableId, OpenMode.ForRead);
- ObjectId layerId;
- if (lt.Has(PaLayerName))
- {
- layerId = lt[PaLayerName];
- }
- else
- {
- lt.UpgradeOpen();
- var layerDef = new LayerTableRecord { Name = PaLayerName };
- layerId = lt.Add(layerDef);
- tr.AddNewlyCreatedDBObject(layerDef, true);
- }
-
- var ms = (BlockTableRecord)tr.GetObject(db.CurrentSpaceId, OpenMode.ForWrite);
-
- // ★ 先删除这批文字之前已有的旧框(避免小框和大框同时存在)
- // 遍历当前空间,找出 __CADCJ_PA_FRAME 图层上与这批文字 Bounds 相交的实体,
- // 通过 EraseGroupForEntity 删除整个组(边框+蒙版一起删)
- var idsToDelete = new List();
- foreach (ObjectId entId in ms)
- {
- var ent = tr.GetObject(entId, OpenMode.ForRead, false, true) as Entity;
- if (ent == null) continue;
- if (ent.LayerId != layerId) continue;
- if (ent.IsErased) continue;
- Extents3d? entExt = null;
- try { entExt = ent.GeometricExtents; } catch { }
- if (!entExt.HasValue) continue;
- // 检查是否与任何文字 item 的 Bounds 相交
- foreach (var item in items)
- {
- if (item.Bounds == null) continue;
- if (BoundsIntersect(entExt.Value, item.Bounds.Value))
- {
- idsToDelete.Add(entId);
- break;
- }
- }
- }
- foreach (ObjectId id in idsToDelete)
- {
- // ★ 先删除同组的其他实体(Hatch),再删除主实体
- EraseGroupForEntity(tr, id);
- var ent = tr.GetObject(id, OpenMode.ForWrite);
- if (!ent.IsErased) ent.Erase();
- }
-
- // ★ 边距极小:总宽高的 2%,最小 0.5
- double totalW = maxX.Value - minX.Value;
- double totalH = maxY.Value - minY.Value;
- double padX = Math.Max(totalW * 0.02, 0.5);
- double padY = Math.Max(totalH * 0.02, 0.5);
-
- // 大框四角点(带边距,X和Y方向各自按比例)
- Point3d p1 = new Point3d(minX.Value - padX, minY.Value - padY, 0);
- Point3d p2 = new Point3d(maxX.Value + padX, minY.Value - padY, 0);
- Point3d p3 = new Point3d(maxX.Value + padX, maxY.Value + padY, 0);
- Point3d p4 = new Point3d(minX.Value - padX, maxY.Value + padY, 0);
-
- var pl = new Polyline();
- pl.AddVertexAt(0, new Point2d(p1.X, p1.Y), 0, 0, 0);
- pl.AddVertexAt(1, new Point2d(p2.X, p2.Y), 0, 0, 0);
- pl.AddVertexAt(2, new Point2d(p3.X, p3.Y), 0, 0, 0);
- pl.AddVertexAt(3, new Point2d(p4.X, p4.Y), 0, 0, 0);
- pl.Closed = true;
- pl.Color = Color.FromColorIndex(ColorMethod.ByAci, colorIndex);
- pl.LayerId = layerId;
- pl.LineWeight = LineWeight.LineWeight070;
-
- ms.AppendEntity(pl);
- tr.AddNewlyCreatedDBObject(pl, true);
- // ★ 记录大框的 Handle
- handle = pl.Handle.ToString();
-
- // ★ 添加半透明填充蒙版(用 Hatch 实体,支持透明度)
- var hatch = new Hatch();
- hatch.SetHatchPattern(HatchPatternType.PreDefined, "SOLID");
- hatch.Color = Color.FromColorIndex(ColorMethod.ByAci, colorIndex);
- hatch.Transparency = new Transparency(65); // 65% 透明度
- hatch.LayerId = layerId;
- ms.AppendEntity(hatch);
- tr.AddNewlyCreatedDBObject(hatch, true);
-
- ObjectIdCollection hatchLoopIds = new ObjectIdCollection();
- hatchLoopIds.Add(pl.Id);
- hatch.AppendLoop(HatchLoopTypes.Default, hatchLoopIds);
-
- // ★ 把 Polyline 和 Hatch 创建为一个组(整体选中/整体删除)
- MakeFrameGroup(db, tr, pl.Id, hatch.Id);
-
- tr.Commit();
- }
-
- doc.Editor.UpdateScreen();
- doc.Editor.Regen();
- }
- catch (Exception ex)
- {
- try
- {
- var doc = AcAp.DocumentManager.MdiActiveDocument;
- if (doc != null) doc.Editor.WriteMessage("\n[扒数据] 画合并框失败: " + ex.Message);
- }
- catch { }
- }
- return handle;
- }
-
- ///
- /// 检查两个 Extents3d 是否相交(用于删除旧框时判断范围重叠)。
- ///
- private static bool BoundsIntersect(Extents3d a, Extents3d b)
- {
- // X 方向不相交
- if (a.MaxPoint.X < b.MinPoint.X || a.MinPoint.X > b.MaxPoint.X) return false;
- // Y 方向不相交
- if (a.MaxPoint.Y < b.MinPoint.Y || a.MinPoint.Y > b.MaxPoint.Y) return false;
- return true;
- }
-
- ///
- /// ★ 把 Polyline(边框) 和 Hatch(蒙版) 创建为一个命名组,
- /// 这样用户在 CAD 里选中/删除其中一个时,整个组(边框+蒙版)会一起被选中/删除。
- ///
- private static void MakeFrameGroup(Database db, Transaction tr, ObjectId plId, ObjectId hatchId)
- {
- try
- {
- var groupDict = (DBDictionary)tr.GetObject(db.GroupDictionaryId, OpenMode.ForWrite);
- // 组名用 Polyline 的 Handle 保证唯一
- string groupName = "CADCJ_PA_FRAME_" + plId.Handle.ToString();
- var group = new Group(groupName, true); // true = 可选中
- group.Append(new ObjectIdCollection(new[] { plId, hatchId }));
- groupDict.SetAt(groupName, group);
- tr.AddNewlyCreatedDBObject(group, true);
- }
- catch { }
- }
-
- ///
- /// ★ 删除包含指定实体的所有 Group 内的所有实体(连同 Group 本身一起删除)。
- /// 用于"删除框时自动删除关联的蒙版"。
- ///
- public static void EraseGroupForEntity(Transaction tr, ObjectId entId)
- {
- try
- {
- var ent = tr.GetObject(entId, OpenMode.ForRead) as Entity;
- if (ent == null) return;
- // 获取实体的所有 PersistentReactor(Group 会作为 reactor 记录)
- ObjectIdCollection reactors = ent.GetPersistentReactorIds();
- var idsToErase = new List();
- var groupsToErase = new List();
- foreach (ObjectId reactorId in reactors)
- {
- var grp = tr.GetObject(reactorId, OpenMode.ForRead) as Group;
- if (grp == null) continue;
- // 收集 Group 内所有实体
- foreach (ObjectId memberId in grp.GetAllEntityIds())
- {
- if (!idsToErase.Contains(memberId)) idsToErase.Add(memberId);
- }
- groupsToErase.Add(reactorId);
- }
- // 删除 Group 内所有实体
- foreach (ObjectId memberId in idsToErase)
- {
- if (memberId == entId) continue; // 主实体由调用方删除
- try
- {
- var member = tr.GetObject(memberId, OpenMode.ForWrite);
- if (!member.IsErased) member.Erase();
- }
- catch { }
- }
- // 删除 Group 本身
- foreach (ObjectId groupId in groupsToErase)
- {
- try
- {
- var grp = tr.GetObject(groupId, OpenMode.ForWrite);
- if (!grp.IsErased) grp.Erase();
- }
- catch { }
- }
- }
- catch { }
- }
-
- ///
- /// 在每个文字周围画一个彩色矩形框(LWPolyline),不改文字本身的颜色。
- /// 所有矩形框放在专用图层 __CADCJ_PA_FRAME 上,方便批量清除。
- /// 返回:每个 item 对应的框 Handle 字符串列表(和 items 顺序一致;无 Bounds 的为空字符串)。
- ///
- private static List DrawTextFrames(List items, short colorIndex)
- {
- var handles = new List();
- try
- {
- var doc = AcAp.DocumentManager.MdiActiveDocument;
- if (doc == null) return handles;
- var db = doc.Database;
-
- using (var tr = db.TransactionManager.StartTransaction())
- {
- // 确保专用图层存在(如果不存在就创建)
- LayerTable lt = (LayerTable)tr.GetObject(db.LayerTableId, OpenMode.ForRead);
- ObjectId layerId;
- if (lt.Has(PaLayerName))
- {
- layerId = lt[PaLayerName];
- }
- else
- {
- lt.UpgradeOpen();
- var layerDef = new LayerTableRecord { Name = PaLayerName };
- layerId = lt.Add(layerDef);
- tr.AddNewlyCreatedDBObject(layerDef, true);
- }
-
- // 获取当前空间(模型空间或图纸空间)
- var bt = (BlockTable)tr.GetObject(db.BlockTableId, OpenMode.ForRead);
- var ms = (BlockTableRecord)tr.GetObject(db.CurrentSpaceId, OpenMode.ForWrite);
-
- foreach (var item in items)
- {
- if (item.Bounds == null) { handles.Add(""); continue; }
- Extents3d ext = item.Bounds.Value;
-
- // ★ 用文字的实际位置和高度估算更紧凑的范围
- // GeometricExtents 可能包含字体预留的 ascent/descent 空间,
- // 这里用文字中心点和估算的宽高来定义框,使其更贴合文字
- double textW, textH;
- if (ext.MaxPoint.Y - ext.MinPoint.Y > ext.MaxPoint.X - ext.MinPoint.X * 3)
- {
- // 如果高度远大于宽度(多行或特殊情况),用 GeometricExtents
- textW = ext.MaxPoint.X - ext.MinPoint.X;
- textH = ext.MaxPoint.Y - ext.MinPoint.Y;
- }
- else
- {
- // 单行文字:用中心点和估算尺寸
- textW = ext.MaxPoint.X - ext.MinPoint.X;
- textH = ext.MaxPoint.Y - ext.MinPoint.Y;
- }
-
- // ★ 边距极小:文字宽高的 3%,最小 0.3
- double padX = Math.Max(textW * 0.03, 0.3);
- double padY = Math.Max(textH * 0.03, 0.3);
-
- // 矩形四角点(带极小边距)
- Point3d p1 = new Point3d(ext.MinPoint.X - padX, ext.MinPoint.Y - padY, 0);
- Point3d p2 = new Point3d(ext.MaxPoint.X + padX, ext.MinPoint.Y - padY, 0);
- Point3d p3 = new Point3d(ext.MaxPoint.X + padX, ext.MaxPoint.Y + padY, 0);
- Point3d p4 = new Point3d(ext.MinPoint.X - padX, ext.MaxPoint.Y + padY, 0);
-
- // 创建 LWPolyline 矩形
- var pl = new Polyline();
- pl.AddVertexAt(0, new Point2d(p1.X, p1.Y), 0, 0, 0);
- pl.AddVertexAt(1, new Point2d(p2.X, p2.Y), 0, 0, 0);
- pl.AddVertexAt(2, new Point2d(p3.X, p3.Y), 0, 0, 0);
- pl.AddVertexAt(3, new Point2d(p4.X, p4.Y), 0, 0, 0);
- pl.Closed = true;
-
- // 设置颜色和图层
- pl.Color = Color.FromColorIndex(ColorMethod.ByAci, colorIndex);
- pl.LayerId = layerId;
- // 线宽更粗,看得清
- pl.LineWeight = LineWeight.LineWeight070;
-
- ms.AppendEntity(pl);
- tr.AddNewlyCreatedDBObject(pl, true);
- // ★ 记录框的 Handle,用于关联表格数据行
- handles.Add(pl.Handle.ToString());
-
- // ★ 添加半透明填充蒙版(用 Hatch 实体,支持透明度)
- var hatch = new Hatch();
- hatch.SetHatchPattern(HatchPatternType.PreDefined, "SOLID");
- hatch.Color = Color.FromColorIndex(ColorMethod.ByAci, colorIndex);
- hatch.Transparency = new Transparency(65); // 65% 透明度
- hatch.LayerId = layerId;
- ms.AppendEntity(hatch);
- tr.AddNewlyCreatedDBObject(hatch, true);
-
- ObjectIdCollection hatchLoopIds = new ObjectIdCollection();
- hatchLoopIds.Add(pl.Id);
- hatch.AppendLoop(HatchLoopTypes.Default, hatchLoopIds);
-
- // ★ 把 Polyline 和 Hatch 创建为一个组(整体选中/整体删除)
- MakeFrameGroup(db, tr, pl.Id, hatch.Id);
- }
-
- tr.Commit();
- }
-
- // 刷新显示
- doc.Editor.UpdateScreen();
- doc.Editor.Regen();
- }
- catch (Exception ex)
- {
- try
- {
- var doc = AcAp.DocumentManager.MdiActiveDocument;
- if (doc != null) doc.Editor.WriteMessage("\n[扒数据] 画框失败: " + ex.Message);
- }
- catch { }
- }
- return handles;
- }
-
- ///
- /// 清除所有扒数据时画的彩色矩形框(删除 __CADCJ_PA_FRAME 图层上的所有对象)。
- /// 不动文字本身,文字保持原色。
- ///
- public static void ClearAllHighlight()
- {
- try
- {
- var doc = AcAp.DocumentManager.MdiActiveDocument;
- if (doc == null) return;
- var db = doc.Database;
-
- using (var tr = db.TransactionManager.StartTransaction())
- {
- var bt = (BlockTable)tr.GetObject(db.BlockTableId, OpenMode.ForRead);
- // 遍历所有块定义(模型空间+所有布局),删除目标图层上的对象
- foreach (ObjectId btrId in bt)
- {
- var btr = (BlockTableRecord)tr.GetObject(btrId, OpenMode.ForRead);
- var ids = new List();
- foreach (ObjectId entId in btr)
- {
- var ent = tr.GetObject(entId, OpenMode.ForRead, false, true) as Entity;
- if (ent == null) continue;
- if (ent.Layer == PaLayerName)
- {
- ids.Add(entId);
- }
- }
- if (ids.Count > 0)
- {
- btr.UpgradeOpen();
- foreach (ObjectId id in ids)
- {
- // ★ 先删除同组的其他实体,再删除主实体
- EraseGroupForEntity(tr, id);
- var ent = tr.GetObject(id, OpenMode.ForWrite);
- if (!ent.IsErased) ent.Erase();
- }
- }
- }
- tr.Commit();
- }
-
- doc.Editor.UpdateScreen();
- doc.Editor.Regen();
-
- try { doc.Editor.WriteMessage("\n[扒数据] 已清除所有标记框。"); } catch { }
- }
- catch (Exception ex)
- {
- try
- {
- var doc = AcAp.DocumentManager.MdiActiveDocument;
- if (doc != null) doc.Editor.WriteMessage("\n[扒数据] 清除失败: " + ex.Message);
- }
- catch { }
- }
- }
-
- private class TextItem
- {
- public string Text;
- public Point3d Position;
- public Extents3d? Bounds;
- public ObjectId ObjectId;
- public string TextHandle = "";
- }
- }
-}
diff --git a/cadbt/cadbt/cadcj/System.Data.SQLite.dll b/cadbt/cadbt/cadcj/System.Data.SQLite.dll
deleted file mode 100644
index 3b0ae33..0000000
Binary files a/cadbt/cadbt/cadcj/System.Data.SQLite.dll and /dev/null differ
diff --git a/cadbt/cadbt/cadcj/app.manifest b/cadbt/cadbt/cadcj/app.manifest
deleted file mode 100644
index d330f4d..0000000
--- a/cadbt/cadbt/cadcj/app.manifest
+++ /dev/null
@@ -1,29 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- false
- unaware
-
-
-
diff --git a/cadbt/cadbt/cadcj/build.bat b/cadbt/cadbt/cadcj/build.bat
deleted file mode 100644
index 0e47615..0000000
--- a/cadbt/cadbt/cadcj/build.bat
+++ /dev/null
@@ -1,19 +0,0 @@
-@echo off
-REM ============================================
-REM Auto-generated build script
-REM All non-ASCII paths are in build.rsp (UTF-8)
-REM Keep this .bat file ASCII-only to avoid cmd codepage issues
-REM ============================================
-
-cd /d "%~dp0"
-
-"%SystemRoot%\Microsoft.NET\Framework64\v4.0.30319\csc.exe" @build.rsp
-
-if %ERRORLEVEL% EQU 0 (
- echo Build OK. Launching...
- powershell -NoProfile -Command "Start-Process -FilePath ('%~dp0' + (Select-String -Path build.rsp -Pattern '^/out:(.+)$').Matches.Groups[1].Value)"
-) else (
- echo Build FAILED - see messages above
- pause
-)
-
diff --git a/cadbt/cadbt/cadcj/build.rsp b/cadbt/cadbt/cadcj/build.rsp
deleted file mode 100644
index 4a61435..0000000
--- a/cadbt/cadbt/cadcj/build.rsp
+++ /dev/null
@@ -1,27 +0,0 @@
-# Auto-generated csc response file
-/target:library
-/platform:x64
-/utf8output
-/out:cadcj.dll
-/win32manifest:app.manifest
-/r:System.Windows.Forms.dll
-/r:System.Drawing.dll
-/r:System.dll
-/r:System.Data.dll
-/r:System.Core.dll
-/r:System.Xml.dll
-/r:"C:\Windows\Microsoft.NET\Framework64\v4.0.30319\WPF\PresentationCore.dll"
-/r:"C:\Windows\Microsoft.NET\Framework64\v4.0.30319\WPF\WindowsBase.dll"
-/r:System.IO.Compression.dll
-/r:System.IO.Compression.FileSystem.dll
-/r:"AdvancedDataGridView.dll"
-/r:"System.Data.SQLite.dll"
-/r:"E:\cad2\AutoCAD 2018\acdbmgd.dll"
-/r:"E:\cad2\AutoCAD 2018\acmgd.dll"
-/r:"E:\cad2\AutoCAD 2018\accoremgd.dll"
-CadPlugin.cs
-Form3.cs
-Form3.ui.cs
-PaTextSelector.cs
-新建项目.cs
-新建项目.ui.cs
diff --git a/cadbt/cadbt/cadcj/build_v2.rsp b/cadbt/cadbt/cadcj/build_v2.rsp
deleted file mode 100644
index a576258..0000000
--- a/cadbt/cadbt/cadcj/build_v2.rsp
+++ /dev/null
@@ -1,25 +0,0 @@
-/target:library
-/platform:x64
-/utf8output
-/out:cadcj_v2.dll
-/r:System.Windows.Forms.dll
-/r:System.Drawing.dll
-/r:System.dll
-/r:System.Data.dll
-/r:System.Core.dll
-/r:System.Xml.dll
-/r:"C:\Windows\Microsoft.NET\Framework64\v4.0.30319\WPF\PresentationCore.dll"
-/r:"C:\Windows\Microsoft.NET\Framework64\v4.0.30319\WPF\WindowsBase.dll"
-/r:System.IO.Compression.dll
-/r:System.IO.Compression.FileSystem.dll
-/r:"AdvancedDataGridView.dll"
-/r:"System.Data.SQLite.dll"
-/r:"D:\ProgramData\cad\AutoCAD 2018\acdbmgd.dll"
-/r:"D:\ProgramData\cad\AutoCAD 2018\acmgd.dll"
-/r:"D:\ProgramData\cad\AutoCAD 2018\accoremgd.dll"
-CadPlugin.cs
-Form3.cs
-Form3.ui.cs
-PaTextSelector.cs
-新建项目.cs
-新建项目.ui.cs
diff --git a/cadbt/cadbt/cadcj/cadcj.dll b/cadbt/cadbt/cadcj/cadcj.dll
deleted file mode 100644
index a0c8f9e..0000000
Binary files a/cadbt/cadbt/cadcj/cadcj.dll and /dev/null differ
diff --git a/cadbt/cadbt/cadcj/deepseek.json b/cadbt/cadbt/cadcj/deepseek.json
deleted file mode 100644
index 9725285..0000000
--- a/cadbt/cadbt/cadcj/deepseek.json
+++ /dev/null
@@ -1,7 +0,0 @@
-{
- "ApiKey": "sk-65b3963488ab420aa9df3e4dafa02768",
- "BaseUrl": "https://api.deepseek.com",
- "Model": "deepseek-v4-flash",
- "Enabled": false,
- "WebSearch": true
-}
\ No newline at end of file
diff --git a/cadbt/cadbt/cadcj/sjk/advancedDataGridView6Table.db b/cadbt/cadbt/cadcj/sjk/advancedDataGridView6Table.db
deleted file mode 100644
index de2322b..0000000
Binary files a/cadbt/cadbt/cadcj/sjk/advancedDataGridView6Table.db and /dev/null differ
diff --git a/cadbt/cadbt/cadcj/sjk/bjb/项目20260807001.db b/cadbt/cadbt/cadcj/sjk/bjb/项目20260807001.db
deleted file mode 100644
index 0d7e119..0000000
Binary files a/cadbt/cadbt/cadcj/sjk/bjb/项目20260807001.db and /dev/null differ
diff --git a/cadbt/cadbt/cadcj/x64/SQLite.Interop.dll b/cadbt/cadbt/cadcj/x64/SQLite.Interop.dll
deleted file mode 100644
index 1a86bfd..0000000
Binary files a/cadbt/cadbt/cadcj/x64/SQLite.Interop.dll and /dev/null differ
diff --git a/cadbt/cadbt/cadcj/卸载CAD插件.bat b/cadbt/cadbt/cadcj/卸载CAD插件.bat
deleted file mode 100644
index 89013b5..0000000
--- a/cadbt/cadbt/cadcj/卸载CAD插件.bat
+++ /dev/null
@@ -1,26 +0,0 @@
-@echo off
-chcp 936 >nul
-title ³ÉÌױ¨¼Û CAD ²å¼þжÔسÌÐò
-
-REM Çл»µ½Åú´¦ÀíÎļþËùÔÚĿ¼£¨֧³ִÓÈÎÒâλÖÃÔËÐУ©
-cd /d "%~dp0"
-
-REM ¼ì²é PowerShell ½ű¾ÊǷñ´æÔÚ
-if not exist "жÔØCAD²å¼þ.ps1" (
- echo [´íÎó] δÕҵ½ жÔØCAD²å¼þ.ps1
- echo Çëȷ±£±¾Åú´¦ÀíÎļþÓë жÔØCAD²å¼þ.ps1 ÔÚͬһĿ¼¡£
- pause
- exit /b 1
-)
-
-REM ÒԹÜÀíԱÉí·ÝÔËÐÐ PowerShell ½ű¾£¨±ÜÃâ HKLM ɾ³ýÌáȨµ¯´°Öжϣ©
-powershell -NoProfile -ExecutionPolicy Bypass -Command "Start-Process powershell -ArgumentList '-NoProfile','-ExecutionPolicy','Bypass','-File','%~dp0жÔØCAD²å¼þ.ps1' -Verb RunAs -Wait"
-
-REM ÈôÓû§ȡÏûÌáȨ£¬Ôò·ÇÌáȨÔËÐУ¨HKLM ɾ³ý»á×Զ¯ÌáȨ£¬acaddoc.lsp ºÍ TRUSTEDPATHS ÎÞÐè¹ÜÀíԱ£©
-if errorlevel 1 (
- echo.
- echo [Ìáʾ] ¹ÜÀíԱÌáȨ±»ȡÏû£¬³¢ÊԷÇÌáȨÔËÐÐ...
- powershell -NoProfile -ExecutionPolicy Bypass -File "жÔØCAD²å¼þ.ps1"
-)
-
-pause
\ No newline at end of file
diff --git a/cadbt/cadbt/cadcj/卸载CAD插件.ps1 b/cadbt/cadbt/cadcj/卸载CAD插件.ps1
deleted file mode 100644
index 42581eb..0000000
--- a/cadbt/cadbt/cadcj/卸载CAD插件.ps1
+++ /dev/null
@@ -1,263 +0,0 @@
-# ===========================================================================
-# 成套报价 CAD 插件 - 通用卸载脚本
-# 自动检测 AutoCAD 并移除所有安装时写入的配置
-# 用法:以管理员身份运行,或在 PowerShell 中执行本脚本
-# ===========================================================================
-
-# --- 0. 环境与自检 ---
-$ErrorActionPreference = 'Stop'
-# $PSScriptRoot 在 -File 模式下可靠返回脚本所在目录(PS 3.0+)
-$scriptDir = if ($PSScriptRoot) { $PSScriptRoot } else { Split-Path -Parent $MyInvocation.MyCommand.Path }
-$scriptDir = $scriptDir.TrimEnd('\') # 统一去除尾部反斜杠,便于比较
-
-# 检测是否管理员(写 HKLM 需要)
-$isAdmin = ([Security.Principal.WindowsPrincipal] [Security.Principal.WindowsIdentity]::GetCurrent()).IsInRole([Security.Principal.WindowsBuiltInRole]::Administrator)
-if (-not $isAdmin) {
- Write-Host "[提示] 当前未以管理员身份运行,HKLM 注册表删除将自动提权。" -ForegroundColor Yellow
- Write-Host " acaddoc.lsp 和 TRUSTEDPATHS 无需管理员权限。" -ForegroundColor Yellow
- Write-Host ""
-}
-
-Write-Host "======================================================" -ForegroundColor Cyan
-Write-Host " 成套报价 CAD 插件卸载程序" -ForegroundColor Cyan
-Write-Host " 插件目录: $scriptDir" -ForegroundColor Cyan
-Write-Host "======================================================" -ForegroundColor Cyan
-Write-Host ""
-
-# --- 1. 检测已安装的 AutoCAD 版本 ---
-Write-Host "[1/4] 检测 AutoCAD 安装..." -ForegroundColor Green
-
-$acadInstalls = @()
-$regRoots = @(
- 'HKLM:\SOFTWARE\Autodesk\AutoCAD',
- 'HKLM:\SOFTWARE\WOW6432Node\Autodesk\AutoCAD'
-)
-
-foreach ($root in $regRoots) {
- if (-not (Test-Path $root)) { continue }
- Get-ChildItem $root -ErrorAction SilentlyContinue | Where-Object { $_.PSChildName -match '^R\d+\.0$' } | ForEach-Object {
- $verKey = $_.PSPath
- $verNum = $_.PSChildName
- Get-ChildItem $verKey -ErrorAction SilentlyContinue | Where-Object { $_.PSChildName -match '^ACAD-\d+:\d+$' } | ForEach-Object {
- $langKey = $_.PSPath
- $props = Get-ItemProperty -Path $langKey -ErrorAction SilentlyContinue
- $loc = $props.AcadLocation
- $prod = $props.ProductName
- if ($loc -and (Test-Path $loc)) {
- $acadInstalls += [PSCustomObject]@{
- Version = $verNum
- LangKey = $_.PSChildName
- Location = $loc
- Product = $prod
- HKLMKey = $langKey
- }
- }
- }
- }
-}
-
-if ($acadInstalls.Count -eq 0) {
- Write-Host "[警告] 未检测到已安装的 AutoCAD,无法清理注册表。" -ForegroundColor Yellow
- Write-Host " 如有手动残留的 acaddoc.lsp,请手动检查。" -ForegroundColor Yellow
- if (-not $env:CADCJ_SILENT) { Read-Host "按回车退出" }
- exit 0
-}
-
-Write-Host "找到 $($acadInstalls.Count) 个 AutoCAD 安装:" -ForegroundColor Green
-for ($i = 0; $i -lt $acadInstalls.Count; $i++) {
- $a = $acadInstalls[$i]
- Write-Host (" [{0}] {1} ({2}) - {3}" -f $i, $a.Product, $a.Version, $a.Location) -ForegroundColor White
-}
-Write-Host ""
-
-# 若有多个,让用户选择
-$target = $acadInstalls[0]
-if ($acadInstalls.Count -gt 1) {
- if ($env:CADCJ_SILENT) {
- Write-Host "[静默模式] 检测到多个 AutoCAD,默认选择第一个: $($target.Product)" -ForegroundColor Yellow
- } else {
- do {
- $sel = Read-Host "请选择要卸载的 AutoCAD 序号 (0-$($acadInstalls.Count - 1)),默认 0"
- if ([string]::IsNullOrWhiteSpace($sel)) { $sel = '0' }
- } until ($sel -match '^\d+$' -and [int]$sel -lt $acadInstalls.Count)
- $target = $acadInstalls[[int]$sel]
- }
-}
-
-Write-Host ""
-Write-Host ("目标: {0} ({1})" -f $target.Product, $target.Version) -ForegroundColor Cyan
-Write-Host ""
-
-# --- 2. 删除 HKLM 注册表 CADCJ 节点 ---
-Write-Host "[2/4] 删除 HKLM 自动加载注册表..." -ForegroundColor Green
-
-$hklmPath = $target.HKLMKey -replace '^HKLM:\\', ''
-$appsPath = "HKLM:\$hklmPath\Apps\CADCJ"
-
-if (-not (Test-Path $appsPath)) {
- Write-Host " HKLM 中无 CADCJ 节点,跳过" -ForegroundColor DarkGray
-} else {
- if ($isAdmin) {
- Remove-Item -Path $appsPath -Recurse -Force -ErrorAction SilentlyContinue
- if (-not (Test-Path $appsPath)) {
- Write-Host " 已删除 HKLM 注册表节点" -ForegroundColor Green
- } else {
- Write-Host " [警告] 删除失败,请检查权限" -ForegroundColor Yellow
- }
- } else {
- # 提权删除
- $tmpPs1 = Join-Path $env:TEMP "cadcj_uninstall_hklm.ps1"
- $tmpContent = @"
-`$ErrorActionPreference = 'Stop'
-`$path = '$appsPath'
-if (Test-Path `$path) { Remove-Item -Path `$path -Recurse -Force }
-if (-not (Test-Path `$path)) { Write-Host ' HKLM 注册表节点已删除' } else { Write-Host ' [警告] 删除失败' }
-"@
- $tmpContent | Out-File -FilePath $tmpPs1 -Encoding UTF8 -Force
- $p = Start-Process -FilePath "powershell.exe" -ArgumentList "-NoProfile","-ExecutionPolicy","Bypass","-File",$tmpPs1 -Verb RunAs -Wait -PassThru
- if ($p.ExitCode -eq 0) {
- Write-Host " 已删除 HKLM 注册表节点" -ForegroundColor Green
- } else {
- Write-Host " [警告] HKLM 删除失败(用户取消提权?)" -ForegroundColor Yellow
- }
- Remove-Item $tmpPs1 -Force -ErrorAction SilentlyContinue
- }
-}
-Write-Host ""
-
-# --- 3. 从所有 TRUSTEDPATHS 移除插件目录 ---
-Write-Host "[3/4] 移除受信任路径(TRUSTEDPATHS)..." -ForegroundColor Green
-
-$hkcuRoot = "HKCU:\SOFTWARE\Autodesk\AutoCAD\$($target.Version)\$($target.LangKey)"
-
-$targets = @()
-$topVar = Join-Path $hkcuRoot 'Variables'
-if (Test-Path $topVar) { $targets += $topVar }
-$profRoot = Join-Path $hkcuRoot 'Profiles'
-if (Test-Path $profRoot) {
- Get-ChildItem $profRoot -ErrorAction SilentlyContinue | ForEach-Object {
- $pv = Join-Path $_.PSPath 'Variables'
- if (Test-Path $pv) { $targets += $pv }
- }
-}
-
-$removedCount = 0
-foreach ($t in $targets) {
- $cur = (Get-ItemProperty -Path $t -Name 'TRUSTEDPATHS' -ErrorAction SilentlyContinue).TRUSTEDPATHS
- if (-not $cur) { continue }
- # 分割后去除每段首尾空白,统一比较
- $allParts = $cur.Split(';') | ForEach-Object { $_.Trim() } | Where-Object { $_ -ne '' }
- $keepParts = $allParts | Where-Object { -not $_.Equals($scriptDir, [StringComparison]::OrdinalIgnoreCase) }
- $hasOurs = ($allParts | Where-Object { $_.Equals($scriptDir, [StringComparison]::OrdinalIgnoreCase) }).Count -gt 0
- $shortName = $t -replace '.*\\Profiles\\','Profile\' -replace '\\Variables',''
- if (-not $hasOurs) {
- Write-Host " 未包含: $shortName 跳过" -ForegroundColor DarkGray
- continue
- }
- if ($keepParts.Count -eq 0) {
- # 全部都是本目录,删除整个值
- Remove-ItemProperty -Path $t -Name 'TRUSTEDPATHS' -ErrorAction SilentlyContinue
- Write-Host " 已清空: $shortName" -ForegroundColor Green
- } else {
- $newVal = $keepParts -join ';'
- Set-ItemProperty -Path $t -Name 'TRUSTEDPATHS' -Value $newVal -Type String -Force
- Write-Host " 已移除: $shortName" -ForegroundColor Green
- }
- $removedCount++
-}
-if ($removedCount -eq 0) {
- Write-Host " 无需修改(TRUSTEDPATHS 中未包含本目录)" -ForegroundColor DarkGray
-}
-Write-Host ""
-
-# --- 4. 清理 acaddoc.lsp 中的 CADCJ 加载逻辑 ---
-Write-Host "[4/4] 清理 acaddoc.lsp 自动加载脚本..." -ForegroundColor Green
-
-$acadDirName = Split-Path $target.Location -Leaf
-$roamingBase = Join-Path $env:APPDATA "Autodesk\$acadDirName\$($target.Version)\chs\Support"
-$installSupport = Join-Path $target.Location "Support"
-
-$candidateDirs = @($roamingBase, $installSupport) | Select-Object -Unique
-$supDir = $null
-foreach ($d in $candidateDirs) {
- if (Test-Path $d) { $supDir = $d; break }
-}
-
-if (-not $supDir) {
- Write-Host " 未找到 Support 目录,跳过" -ForegroundColor DarkGray
-} else {
- $lspPath = Join-Path $supDir 'acaddoc.lsp'
- if (-not (Test-Path $lspPath)) {
- Write-Host " acaddoc.lsp 不存在,跳过" -ForegroundColor DarkGray
- } else {
- # 读取(尝试 GB2312,失败则用默认编码)
- $content = $null
- try {
- $content = [System.IO.File]::ReadAllText($lspPath, [System.Text.Encoding]::GetEncoding('GB2312'))
- } catch {
- $content = Get-Content $lspPath -Raw -ErrorAction SilentlyContinue
- }
-
- if (-not $content) {
- Write-Host " acaddoc.lsp 为空或无法读取,跳过" -ForegroundColor DarkGray
- } elseif ($content -notmatch 'CADCJ|cadcj') {
- Write-Host " acaddoc.lsp 中无 CADCJ 加载逻辑,跳过" -ForegroundColor DarkGray
- } else {
- # 判断是否为纯 CADCJ 文件(以 ;;; CADCJ 开头或整个文件就是 CADCJ 块)
- # 移除 CADCJ 加载块(从 ;;; CADCJ 标记开始到 (princ) 结束)
- $pattern = '(?s)\s*;;; CADCJ.*?\(princ\)\s*'
- $newContent = [regex]::Replace($content, $pattern, "`r`n")
- # 清理多余空行
- $newContent = $newContent -replace "(`r`n){3,}", "`r`n`r`n"
- $newContent = $newContent.TrimEnd()
-
- try {
- if ([string]::IsNullOrWhiteSpace($newContent)) {
- # 文件清空了,删除文件
- Remove-Item $lspPath -Force
- Write-Host " 已删除: $lspPath(文件仅含 CADCJ 内容)" -ForegroundColor Green
- } else {
- # 保留其他内容,只移除 CADCJ 块
- [System.IO.File]::WriteAllText($lspPath, $newContent + "`r`n", [System.Text.Encoding]::GetEncoding('GB2312'))
- Write-Host " 已清理 CADCJ 加载逻辑,保留其他内容: $lspPath" -ForegroundColor Green
- }
- } catch {
- # 写入失败时提权
- Write-Host " 写入失败,尝试提权: $($_.Exception.Message)" -ForegroundColor Yellow
- $tmpLsp = Join-Path $env:TEMP 'cadcj_acaddoc_clean.lsp'
- if ([string]::IsNullOrWhiteSpace($newContent)) {
- $delCmd = "Remove-Item '$lspPath' -Force -ErrorAction SilentlyContinue"
- $p = Start-Process -FilePath "powershell.exe" -ArgumentList "-NoProfile","-Command",$delCmd -Verb RunAs -Wait -PassThru
- if ($p.ExitCode -eq 0) {
- Write-Host " 已删除(提权): $lspPath" -ForegroundColor Green
- }
- } else {
- [System.IO.File]::WriteAllText($tmpLsp, $newContent + "`r`n", [System.Text.Encoding]::GetEncoding('GB2312'))
- $copyCmd = "Copy-Item '$tmpLsp' '$lspPath' -Force"
- $p = Start-Process -FilePath "powershell.exe" -ArgumentList "-NoProfile","-Command",$copyCmd -Verb RunAs -Wait -PassThru
- if ($p.ExitCode -eq 0) {
- Write-Host " 已清理(提权): $lspPath" -ForegroundColor Green
- }
- }
- Remove-Item $tmpLsp -Force -ErrorAction SilentlyContinue
- }
- }
- }
-}
-Write-Host ""
-
-# --- 完成 ---
-Write-Host "======================================================" -ForegroundColor Cyan
-Write-Host " 卸载完成!" -ForegroundColor Green
-Write-Host "======================================================" -ForegroundColor Cyan
-Write-Host ""
-Write-Host "卸载摘要:" -ForegroundColor White
-Write-Host " AutoCAD: $($target.Product) ($($target.Version))" -ForegroundColor White
-Write-Host " HKLM 注册: 已删除 CADCJ 节点" -ForegroundColor White
-Write-Host " TRUSTEDPATHS: 已移除 $scriptDir" -ForegroundColor White
-Write-Host " acaddoc.lsp: 已清理 CADCJ 加载逻辑" -ForegroundColor White
-Write-Host ""
-Write-Host "插件文件本身未删除(cadcj.dll 等),如需彻底删除请手动移除目录:" -ForegroundColor Yellow
-Write-Host " $scriptDir" -ForegroundColor Yellow
-Write-Host ""
-if (-not $env:CADCJ_SILENT) { Read-Host "按回车退出" }
diff --git a/cadbt/cadbt/cadcj/安装CAD插件.bat b/cadbt/cadbt/cadcj/安装CAD插件.bat
deleted file mode 100644
index 45fc4d4..0000000
--- a/cadbt/cadbt/cadcj/安装CAD插件.bat
+++ /dev/null
@@ -1,26 +0,0 @@
-@echo off
-chcp 936 >nul
-title ³ÉÌױ¨¼Û CAD ²å¼þ°²װ³ÌÐò
-
-REM Çл»µ½Åú´¦ÀíÎļþËùÔÚĿ¼£¨֧³ִÓÈÎÒâλÖÃÔËÐУ©
-cd /d "%~dp0"
-
-REM ¼ì²é PowerShell ½ű¾ÊǷñ´æÔÚ
-if not exist "°²װCAD²å¼þ.ps1" (
- echo [´íÎó] δÕҵ½ °²װCAD²å¼þ.ps1
- echo Çëȷ±£±¾Åú´¦ÀíÎļþÓë °²װCAD²å¼þ.ps1 ÔÚͬһĿ¼¡£
- pause
- exit /b 1
-)
-
-REM ÒԹÜÀíԱÉí·ÝÔËÐÐ PowerShell ½ű¾£¨±ÜÃâ HKLM дÈëÌáȨµ¯´°Öжϣ©
-powershell -NoProfile -ExecutionPolicy Bypass -Command "Start-Process powershell -ArgumentList '-NoProfile','-ExecutionPolicy','Bypass','-File','%~dp0°²װCAD²å¼þ.ps1' -Verb RunAs -Wait"
-
-REM ÈôÓû§ȡÏûÌáȨ£¬Ôò·ÇÌáȨÔËÐУ¨HKLM дÈë»á×Զ¯ÌáȨ£¬acaddoc.lsp ºÍ TRUSTEDPATHS ÎÞÐè¹ÜÀíԱ£©
-if errorlevel 1 (
- echo.
- echo [Ìáʾ] ¹ÜÀíԱÌáȨ±»ȡÏû£¬³¢ÊԷÇÌáȨÔËÐÐ...
- powershell -NoProfile -ExecutionPolicy Bypass -File "°²װCAD²å¼þ.ps1"
-)
-
-pause
\ No newline at end of file
diff --git a/cadbt/cadbt/cadcj/安装CAD插件.ps1 b/cadbt/cadbt/cadcj/安装CAD插件.ps1
deleted file mode 100644
index 3016a0d..0000000
--- a/cadbt/cadbt/cadcj/安装CAD插件.ps1
+++ /dev/null
@@ -1,309 +0,0 @@
-# ===========================================================================
-# 成套报价 CAD 插件 - 通用安装脚本
-# 适用于任何电脑、任何已安装的 AutoCAD 版本(2010+)
-# 用法:以管理员身份运行,或在 PowerShell 中执行本脚本
-# ===========================================================================
-
-# --- 0. 环境与自检 ---
-$ErrorActionPreference = 'Stop'
-# $PSScriptRoot 在 -File 模式下可靠返回脚本所在目录(PS 3.0+)
-$scriptDir = if ($PSScriptRoot) { $PSScriptRoot } else { Split-Path -Parent $MyInvocation.MyCommand.Path }
-$scriptDir = $scriptDir.TrimEnd('\') # 统一去除尾部反斜杠,便于比较
-$dllPath = Join-Path $scriptDir 'cadcj.dll'
-
-if (-not (Test-Path $dllPath)) {
- Write-Host "[错误] 未找到 cadcj.dll,请确保脚本与 cadcj.dll 在同一目录。" -ForegroundColor Red
- Write-Host " 当前目录: $scriptDir" -ForegroundColor Yellow
- if (-not $env:CADCJ_SILENT) { Read-Host "按回车退出" }
- exit 1
-}
-
-# 检测是否管理员(写 HKLM 需要)
-$isAdmin = ([Security.Principal.WindowsPrincipal] [Security.Principal.WindowsIdentity]::GetCurrent()).IsInRole([Security.Principal.WindowsBuiltInRole]::Administrator)
-if (-not $isAdmin) {
- Write-Host "[提示] 当前未以管理员身份运行,HKLM 注册表写入将自动提权。" -ForegroundColor Yellow
- Write-Host " acaddoc.lsp 和 TRUSTEDPATHS 无需管理员权限。" -ForegroundColor Yellow
- Write-Host ""
-}
-
-Write-Host "======================================================" -ForegroundColor Cyan
-Write-Host " 成套报价 CAD 插件安装程序" -ForegroundColor Cyan
-Write-Host " 插件目录: $scriptDir" -ForegroundColor Cyan
-Write-Host "======================================================" -ForegroundColor Cyan
-Write-Host ""
-
-# --- 1. 检测已安装的 AutoCAD 版本 ---
-Write-Host "[1/4] 检测 AutoCAD 安装..." -ForegroundColor Green
-
-# 同时检测 64 位和 32 位注册表视图
-$acadInstalls = @()
-$regRoots = @(
- 'HKLM:\SOFTWARE\Autodesk\AutoCAD',
- 'HKLM:\SOFTWARE\WOW6432Node\Autodesk\AutoCAD'
-)
-
-foreach ($root in $regRoots) {
- if (-not (Test-Path $root)) { continue }
- # 遍历每个 Rxx.0 版本(如 R22.0=2018, R23.0=2020, R24.0=2022...)
- Get-ChildItem $root -ErrorAction SilentlyContinue | Where-Object { $_.PSChildName -match '^R\d+\.0$' } | ForEach-Object {
- $verKey = $_.PSPath
- $verNum = $_.PSChildName # 如 R22.0
- # 遍历该版本下的语言变体(如 ACAD-1001:804)
- Get-ChildItem $verKey -ErrorAction SilentlyContinue | Where-Object { $_.PSChildName -match '^ACAD-\d+:\d+$' } | ForEach-Object {
- $langKey = $_.PSPath
- $props = Get-ItemProperty -Path $langKey -ErrorAction SilentlyContinue
- $loc = $props.AcadLocation
- $prod = $props.ProductName
- if ($loc -and (Test-Path $loc)) {
- $acadInstalls += [PSCustomObject]@{
- Version = $verNum
- LangKey = $_.PSChildName
- Location = $loc
- Product = $prod
- RegRoot = $root
- HKLMKey = $langKey
- }
- }
- }
- }
-}
-
-if ($acadInstalls.Count -eq 0) {
- Write-Host "[错误] 未检测到已安装的 AutoCAD。" -ForegroundColor Red
- if (-not $env:CADCJ_SILENT) { Read-Host "按回车退出" }
- exit 1
-}
-
-Write-Host "找到 $($acadInstalls.Count) 个 AutoCAD 安装:" -ForegroundColor Green
-for ($i = 0; $i -lt $acadInstalls.Count; $i++) {
- $a = $acadInstalls[$i]
- Write-Host (" [{0}] {1} ({2}) - {3}" -f $i, $a.Product, $a.Version, $a.Location) -ForegroundColor White
-}
-Write-Host ""
-
-# 若有多个,让用户选择
-$target = $acadInstalls[0]
-if ($acadInstalls.Count -gt 1) {
- if ($env:CADCJ_SILENT) {
- # 静默模式:默认选第一个,不交互
- Write-Host "[静默模式] 检测到多个 AutoCAD,默认选择第一个: $($target.Product)" -ForegroundColor Yellow
- } else {
- do {
- $sel = Read-Host "请选择要安装的 AutoCAD 序号 (0-$($acadInstalls.Count - 1)),默认 0"
- if ([string]::IsNullOrWhiteSpace($sel)) { $sel = '0' }
- } until ($sel -match '^\d+$' -and [int]$sel -lt $acadInstalls.Count)
- $target = $acadInstalls[[int]$sel]
- }
-}
-
-Write-Host ""
-Write-Host ("目标: {0} ({1})" -f $target.Product, $target.Version) -ForegroundColor Cyan
-Write-Host ("路径: {0}" -f $target.Location) -ForegroundColor Cyan
-Write-Host ""
-
-# --- 2. 修正 MODULE 路径到 HKLM ---
-Write-Host "[2/4] 注册 AutoCAD 自动加载(HKLM)..." -ForegroundColor Green
-
-# HKLM 路径(去除 HKLM: 前缀,得到 SOFTWARE\Autodesk\AutoCAD\Rxx.0\ACAD-xxxx:xxx\Apps\CADCJ)
-$hklmPath = $target.HKLMKey -replace '^HKLM:\\', ''
-$appsPath = "HKLM:\$hklmPath\Apps\CADCJ"
-
-# 写入函数(管理员直接写,非管理员生成临时 ps1 提权执行)
-function Write-HklmReg {
- param($Path, $Dll)
- if (-not (Test-Path $Path)) { New-Item -Path $Path -Force | Out-Null }
- Set-ItemProperty -Path $Path -Name 'DESCRIPTION' -Value '成套报价插件' -Type String -Force
- Set-ItemProperty -Path $Path -Name 'LOADCTRLS' -Value 2 -Type DWord -Force
- Set-ItemProperty -Path $Path -Name 'MANAGED' -Value 1 -Type DWord -Force
- Set-ItemProperty -Path $Path -Name 'MODULE' -Value $Dll -Type String -Force
-}
-
-if ($isAdmin) {
- Write-HklmReg -Path $appsPath -Dll $dllPath
- Write-Host " HKLM 注册完成" -ForegroundColor Green
-} else {
- # 生成临时 ps1 提权执行(避免字符串嵌套转义问题)
- $tmpPs1 = Join-Path $env:TEMP "cadcj_install_hklm.ps1"
- $tmpContent = @"
-`$ErrorActionPreference = 'Stop'
-`$path = '$appsPath'
-`$dll = '$dllPath'
-if (-not (Test-Path `$path)) { New-Item -Path `$path -Force | Out-Null }
-Set-ItemProperty -Path `$path -Name 'DESCRIPTION' -Value '成套报价插件' -Type String -Force
-Set-ItemProperty -Path `$path -Name 'LOADCTRLS' -Value 2 -Type DWord -Force
-Set-ItemProperty -Path `$path -Name 'MANAGED' -Value 1 -Type DWord -Force
-Set-ItemProperty -Path `$path -Name 'MODULE' -Value `$dll -Type String -Force
-Write-Host ' HKLM 注册完成'
-"@
- $tmpContent | Out-File -FilePath $tmpPs1 -Encoding UTF8 -Force
- $p = Start-Process -FilePath "powershell.exe" -ArgumentList "-NoProfile","-ExecutionPolicy","Bypass","-File",$tmpPs1 -Verb RunAs -Wait -PassThru
- if ($p.ExitCode -ne 0) {
- Write-Host "[警告] HKLM 写入失败(用户取消提权?)。不影响后续安装,acaddoc.lsp 会自动加载。" -ForegroundColor Yellow
- } else {
- Write-Host " HKLM 注册完成" -ForegroundColor Green
- }
- Remove-Item $tmpPs1 -Force -ErrorAction SilentlyContinue
-}
-Write-Host ""
-
-# --- 3. 添加 TRUSTEDPATHS 到所有用户配置(HKCU) ---
-Write-Host "[3/4] 添加受信任路径(TRUSTEDPATHS)..." -ForegroundColor Green
-
-# 确定 HKCU 根路径
-$hkcuRoot = "HKCU:\SOFTWARE\Autodesk\AutoCAD\$($target.Version)\$($target.LangKey)"
-
-$targets = @()
-# 顶层 Variables
-$topVar = Join-Path $hkcuRoot 'Variables'
-if (Test-Path $topVar) { $targets += $topVar }
-# 各 Profile 下的 Variables
-$profRoot = Join-Path $hkcuRoot 'Profiles'
-if (Test-Path $profRoot) {
- Get-ChildItem $profRoot -ErrorAction SilentlyContinue | ForEach-Object {
- $pv = Join-Path $_.PSPath 'Variables'
- if (Test-Path $pv) { $targets += $pv }
- }
-}
-
-$addedCount = 0
-foreach ($t in $targets) {
- $cur = (Get-ItemProperty -Path $t -Name 'TRUSTEDPATHS' -ErrorAction SilentlyContinue).TRUSTEDPATHS
- if ($cur -and ($cur.Split(';') -contains $scriptDir)) {
- Write-Host " 已存在: $($t -replace '.*\\Profiles\\','Profile\') 跳过" -ForegroundColor DarkGray
- continue
- }
- if ($cur) {
- $newVal = "$cur;$scriptDir"
- } else {
- $newVal = $scriptDir
- }
- try {
- New-ItemProperty -Path $t -Name 'TRUSTEDPATHS' -Value $newVal -PropertyType String -Force | Out-Null
- $shortName = $t -replace '.*\\Profiles\\','Profile\' -replace '\\Variables',''
- Write-Host " 已添加: $shortName" -ForegroundColor Green
- $addedCount++
- } catch {
- Write-Host " 失败: $t - $($_.Exception.Message)" -ForegroundColor Red
- }
-}
-if ($addedCount -eq 0 -and $targets.Count -gt 0) {
- Write-Host " 所有配置已包含本目录,无需修改" -ForegroundColor DarkGray
-}
-Write-Host ""
-
-# --- 4. 创建 acaddoc.lsp 自动加载(核心机制) ---
-Write-Host "[4/4] 创建 acaddoc.lsp 自动加载脚本..." -ForegroundColor Green
-
-# 确定 Support 目录(优先用户漫游目录,其次 AutoCAD 安装目录)
-# 漫游目录路径模式:%APPDATA%\Autodesk\AutoCAD 20XX\Rxx.0\chs\Support
-$acadDirName = Split-Path $target.Location -Leaf # 如 "AutoCAD 2018"
-$roamingBase = Join-Path $env:APPDATA "Autodesk\$acadDirName\$($target.Version)\chs\Support"
-$installSupport = Join-Path $target.Location "Support"
-
-$candidateDirs = @($roamingBase, $installSupport) | Select-Object -Unique
-$supDir = $null
-foreach ($d in $candidateDirs) {
- if (Test-Path $d) { $supDir = $d; break }
-}
-if (-not $supDir) {
- # 创建漫游目录
- $supDir = $roamingBase
- New-Item -ItemType Directory -Path $supDir -Force | Out-Null
- Write-Host " 创建目录: $supDir" -ForegroundColor Yellow
-}
-
-$lspPath = Join-Path $supDir 'acaddoc.lsp'
-
-# LISP 代码(路径用双反斜杠转义)
-$dllPathEscaped = $dllPath -replace '\\','\\\\'
-$lispCode = @"
-;;; CADCJ 自动加载 - 由安装脚本生成
-;;; 每会话首次打开文档时通过 NETLOAD 加载成套报价插件
-;;; 使用内存全局变量,进程退出后自动清除,避免持久化导致跳过加载
-(vl-load-com)
-(if (not *cadcj-loaded*)
- (progn
- (setq *cadcj-loaded* t)
- (setq #cadcj-fd (getvar "FILEDIA"))
- (setvar "FILEDIA" 0)
- (vl-catch-all-apply
- '(lambda ()
- (command "NETLOAD" "$dllPathEscaped")
- )
- )
- (setvar "FILEDIA" #cadcj-fd)
- (vl-propagate '*cadcj-loaded*)
- )
-)
-(princ)
-"@
-
-# 检查是否已有 acaddoc.lsp(避免覆盖用户现有内容)
-$needMerge = $false
-if (Test-Path $lspPath) {
- $existing = Get-Content $lspPath -Raw -ErrorAction SilentlyContinue
- if ($existing -and ($existing -match 'CADCJ|cadcj')) {
- Write-Host " acaddoc.lsp 已包含 CADCJ 加载逻辑,跳过" -ForegroundColor DarkGray
- } elseif ($existing) {
- $needMerge = $true
- Write-Host " 检测到现有 acaddoc.lsp,将追加 CADCJ 加载逻辑" -ForegroundColor Yellow
- }
-}
-
-try {
- if ($needMerge) {
- # 追加到现有文件末尾
- $existing + "`r`n" + $lispCode | Out-File -FilePath $lspPath -Encoding Default -Append -Force
- } else {
- # GB2312 编码写入(AutoCAD 正确读取中文路径)
- [System.IO.File]::WriteAllText($lspPath, $lispCode, [System.Text.Encoding]::GetEncoding('GB2312'))
- }
- Write-Host " 已创建: $lspPath" -ForegroundColor Green
-} catch {
- # AppData 写入失败时提权
- Write-Host " 写入失败,尝试提权: $($_.Exception.Message)" -ForegroundColor Yellow
- $tmpLsp = Join-Path $env:TEMP 'cadcj_acaddoc.lsp'
- [System.IO.File]::WriteAllText($tmpLsp, $lispCode, [System.Text.Encoding]::GetEncoding('GB2312'))
- $copyCmd = "Copy-Item '$tmpLsp' '$lspPath' -Force"
- $p = Start-Process -FilePath "powershell.exe" -ArgumentList "-NoProfile","-Command",$copyCmd -Verb RunAs -Wait -PassThru
- if ($p.ExitCode -eq 0) {
- Write-Host " 已创建(提权): $lspPath" -ForegroundColor Green
- } else {
- Write-Host " [错误] 无法创建 acaddoc.lsp" -ForegroundColor Red
- }
- Remove-Item $tmpLsp -Force -ErrorAction SilentlyContinue
-}
-Write-Host ""
-
-# --- 5. 同步更新 .reg 文件(便于记录) ---
-$regFile = Join-Path $scriptDir '注册CAD自动加载.reg'
-$regKeyHklm = $appsPath -replace '^HKLM:\\','HKEY_LOCAL_MACHINE\'
-$regContent = @"
-Windows Registry Editor Version 5.00
-
-[$regKeyHklm]
-"DESCRIPTION"="成套报价插件"
-"LOADCTRLS"=dword:00000002
-"MANAGED"=dword:00000001
-"MODULE"="$($dllPath -replace '\\','\\')"
-"@
-try {
- $regContent | Out-File -FilePath $regFile -Encoding Default -Force
- Write-Host " 已更新: $regFile" -ForegroundColor DarkGray
-} catch {}
-Write-Host ""
-
-# --- 完成 ---
-Write-Host "======================================================" -ForegroundColor Cyan
-Write-Host " 安装完成!" -ForegroundColor Green
-Write-Host "======================================================" -ForegroundColor Cyan
-Write-Host ""
-Write-Host "安装摘要:" -ForegroundColor White
-Write-Host " AutoCAD: $($target.Product) ($($target.Version))" -ForegroundColor White
-Write-Host " 插件DLL: $dllPath" -ForegroundColor White
-Write-Host " LSP文件: $lspPath" -ForegroundColor White
-Write-Host " 加载方式: acaddoc.lsp (NETLOAD)" -ForegroundColor White
-Write-Host ""
-Write-Host "现在启动 AutoCAD 并打开任意图纸,插件会自动加载。" -ForegroundColor Yellow
-Write-Host ""
-if (-not $env:CADCJ_SILENT) { Read-Host "按回车退出" }
diff --git a/cadbt/cadbt/cadcj/安装到CAD.bat b/cadbt/cadbt/cadcj/安装到CAD.bat
deleted file mode 100644
index b5afc9a..0000000
--- a/cadbt/cadbt/cadcj/安装到CAD.bat
+++ /dev/null
@@ -1,71 +0,0 @@
-@echo off
-chcp 65001 >nul
-REM ============================================
-REM 成套报价 CAD 插件 - 就地安装脚本
-REM 功能:把【本脚本所在目录】的 cadcj.dll 注册为 CAD 自动加载
-REM 原则:在哪个目录运行,就安装哪个目录(测试目录/安装目录通用)
-REM 用法:双击运行(无需管理员权限,写的是用户级注册表 HKCU)
-REM 更新 DLL 后:先关 CAD → 替换本目录 cadcj.dll → 再运行本脚本不需要,
-REM 注册表已指向本目录,直接重启 CAD 即加载新版
-REM ============================================
-
-setlocal enabledelayedexpansion
-
-REM 取脚本所在目录(去掉尾部反斜杠)
-set "INSTDIR=%~dp0"
-if "%INSTDIR:~-1%"=="\" set "INSTDIR=%INSTDIR:~0,-1%"
-set "DLLPATH=%INSTDIR%\cadcj.dll"
-
-REM 检查本目录是否有 cadcj.dll
-if not exist "%DLLPATH%" (
- echo [错误] 本目录没有 cadcj.dll,无法安装。
- echo 当前目录: %INSTDIR%
- pause
- exit /b 1
-)
-
-echo ==============================================
-echo 成套报价 CAD 插件 - 就地安装
-echo 插件目录: %INSTDIR%
-echo ==============================================
-echo.
-
-REM 检查 CAD 是否在运行(在运行也能写注册表,但新DLL要重启CAD才生效)
-tasklist /FI "IMAGENAME eq acad.exe" 2>nul | find /I "acad.exe" >nul
-if %ERRORLEVEL% EQU 0 (
- echo [提示] AutoCAD 正在运行:注册完成后请重启 CAD 才能生效。
- echo.
-)
-
-REM 枚举所有已安装的 AutoCAD 版本(HKCU 用户级,无需管理员)
-REM ★ findstr "^HKEY_" 只取子键行,过滤掉 CurVer 这类值行
-set FOUND=0
-for /f "delims=" %%K in ('reg query "HKCU\SOFTWARE\Autodesk\AutoCAD" 2^>nul ^| findstr /I /C:"HKEY_"') do (
- for /f "delims=" %%P in ('reg query "%%K" 2^>nul ^| findstr /I /C:"HKEY_" ^| findstr /I "ACAD-"') do (
- set "APPSKEY=%%P\Apps\CADCJ"
- reg add "!APPSKEY!" /v LOADCTRLS /t REG_DWORD /d 2 /f >nul
- reg add "!APPSKEY!" /v MANAGED /t REG_DWORD /d 1 /f >nul
- reg add "!APPSKEY!" /v MODULE /t REG_SZ /d "%DLLPATH%" /f >nul
- reg add "!APPSKEY!" /v DESCRIPTION /t REG_SZ /d "ChengTao BaoJia Plugin" /f >nul
- echo [OK] 已注册: !APPSKEY!
- echo MODULE = %DLLPATH%
- set FOUND=1
- )
-)
-
-if %FOUND% EQU 0 (
- echo [错误] 未检测到已安装的 AutoCAD(R22.0=2018 等)。
- echo 请确认 AutoCAD 已安装后重试。
- pause
- exit /b 1
-)
-
-echo.
-echo ==============================================
-echo 安装完成!
-echo CAD 自动加载: %DLLPATH%
-echo 用户库CSV : 本目录下最新的 用户库_*.csv
-echo 数据库sjk : 本目录 sjk\ 下
-echo 重启 AutoCAD 即生效。
-echo ==============================================
-pause
diff --git a/cadbt/cadbt/cadcj/新建 文本文档.txt b/cadbt/cadbt/cadcj/新建 文本文档.txt
deleted file mode 100644
index ae4c7de..0000000
--- a/cadbt/cadbt/cadcj/新建 文本文档.txt
+++ /dev/null
@@ -1,1108 +0,0 @@
-fetch("https://www.ztdq.com/search/match?keyword=3xLMZ1-0.5", {
- "headers": {
- "accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7",
- "accept-language": "zh-CN,zh;q=0.9",
- "priority": "u=0, i",
- "sec-ch-ua": "\"Not(A:Brand\";v=\"8\", \"Chromium\";v=\"144\"",
- "sec-ch-ua-mobile": "?0",
- "sec-ch-ua-platform": "\"Windows\"",
- "sec-fetch-dest": "document",
- "sec-fetch-mode": "navigate",
- "sec-fetch-site": "same-origin",
- "sec-fetch-user": "?1",
- "upgrade-insecure-requests": "1",
- "x-uctiming-46938875": "1786729133893",
- "cookie": "select_channel_pattern=; GUID=guid.84a8344f778096e7d29e84724df70962; areaCityCode=650100; areaProvinceCode=650000; traceId=2917fe2d44e593a940b70814f251135a",
- "Referer": "https://www.ztdq.com/product/select-model"
- },
- "body": null,
- "method": "GET"
-}); ;
-fetch("https://www.ztdq.com/search/match-by-keyword?keyword=3xLMZ1-0.5%E6%98%AF%E4%BB%80%E4%B9%88%E7%94%B5%E5%99%A8%E5%9E%8B%E5%8F%B7&_=1786729083534", {
- "headers": {
- "accept": "*/*",
- "accept-language": "zh-CN,zh;q=0.9",
- "priority": "u=1, i",
- "sec-ch-ua": "\"Not(A:Brand\";v=\"8\", \"Chromium\";v=\"144\"",
- "sec-ch-ua-mobile": "?0",
- "sec-ch-ua-platform": "\"Windows\"",
- "sec-fetch-dest": "empty",
- "sec-fetch-mode": "cors",
- "sec-fetch-site": "same-origin",
- "x-requested-with": "XMLHttpRequest",
- "cookie": "select_channel_pattern=; GUID=guid.84a8344f778096e7d29e84724df70962; areaCityCode=650100; areaProvinceCode=650000; traceId=2917fe2d44e593a940b70814f251135a",
- "Referer": "https://www.ztdq.com/product/select-model"
- },
- "body": null,
- "method": "GET"
-}); ;
-fetch("https://www.ztdq.com/search/match-by-keyword?keyword=3xLMZ1-0.5&_=1786729083535", {
- "headers": {
- "accept": "*/*",
- "accept-language": "zh-CN,zh;q=0.9",
- "priority": "u=1, i",
- "sec-ch-ua": "\"Not(A:Brand\";v=\"8\", \"Chromium\";v=\"144\"",
- "sec-ch-ua-mobile": "?0",
- "sec-ch-ua-platform": "\"Windows\"",
- "sec-fetch-dest": "empty",
- "sec-fetch-mode": "cors",
- "sec-fetch-site": "same-origin",
- "x-requested-with": "XMLHttpRequest",
- "cookie": "select_channel_pattern=; GUID=guid.84a8344f778096e7d29e84724df70962; areaCityCode=650100; areaProvinceCode=650000; traceId=2917fe2d44e593a940b70814f251135a",
- "Referer": "https://www.ztdq.com/product/select-model"
- },
- "body": null,
- "method": "GET"
-}); ;
-fetch("https://www.ztdq.com/search/match-by-keyword?keyword=3xLMZ1-0.5&_=1786729083536", {
- "headers": {
- "accept": "*/*",
- "accept-language": "zh-CN,zh;q=0.9",
- "priority": "u=1, i",
- "sec-ch-ua": "\"Not(A:Brand\";v=\"8\", \"Chromium\";v=\"144\"",
- "sec-ch-ua-mobile": "?0",
- "sec-ch-ua-platform": "\"Windows\"",
- "sec-fetch-dest": "empty",
- "sec-fetch-mode": "cors",
- "sec-fetch-site": "same-origin",
- "x-requested-with": "XMLHttpRequest",
- "cookie": "select_channel_pattern=; GUID=guid.84a8344f778096e7d29e84724df70962; areaCityCode=650100; areaProvinceCode=650000; traceId=2917fe2d44e593a940b70814f251135a",
- "Referer": "https://www.ztdq.com/product/select-model"
- },
- "body": null,
- "method": "GET"
-}); ;
-fetch("https://www.ztdq.com/static/layui/css/layui.css", {
- "headers": {
- "sec-ch-ua": "\"Not(A:Brand\";v=\"8\", \"Chromium\";v=\"144\"",
- "sec-ch-ua-mobile": "?0",
- "sec-ch-ua-platform": "\"Windows\"",
- "Referer": "https://www.ztdq.com/search/match?keyword=3xLMZ1-0.5"
- },
- "body": null,
- "method": "GET"
-}); ;
-fetch("https://www.ztdq.com/static/css/web-iconfont.css?version=1.1.1", {
- "headers": {
- "sec-ch-ua": "\"Not(A:Brand\";v=\"8\", \"Chromium\";v=\"144\"",
- "sec-ch-ua-mobile": "?0",
- "sec-ch-ua-platform": "\"Windows\"",
- "Referer": "https://www.ztdq.com/search/match?keyword=3xLMZ1-0.5"
- },
- "body": null,
- "method": "GET"
-}); ;
-fetch("https://www.ztdq.com/static/css/iconfont.css?2019", {
- "headers": {
- "sec-ch-ua": "\"Not(A:Brand\";v=\"8\", \"Chromium\";v=\"144\"",
- "sec-ch-ua-mobile": "?0",
- "sec-ch-ua-platform": "\"Windows\"",
- "Referer": "https://www.ztdq.com/search/match?keyword=3xLMZ1-0.5"
- },
- "body": null,
- "method": "GET"
-}); ;
-fetch("https://www.ztdq.com/static/css/ui_layout.css?v=20260806180032", {
- "headers": {
- "accept": "text/css,*/*;q=0.1",
- "accept-language": "zh-CN,zh;q=0.9",
- "priority": "u=0",
- "sec-ch-ua": "\"Not(A:Brand\";v=\"8\", \"Chromium\";v=\"144\"",
- "sec-ch-ua-mobile": "?0",
- "sec-ch-ua-platform": "\"Windows\"",
- "sec-fetch-dest": "style",
- "sec-fetch-mode": "no-cors",
- "sec-fetch-site": "same-origin",
- "cookie": "select_channel_pattern=; GUID=guid.84a8344f778096e7d29e84724df70962; areaCityCode=650100; areaProvinceCode=650000; traceId=69a932b40981127b8e9b0194c4eabbd1",
- "Referer": "https://www.ztdq.com/search/match?keyword=3xLMZ1-0.5"
- },
- "body": null,
- "method": "GET"
-}); ;
-fetch("https://www.ztdq.com/static/css/style_gks.css?v=20260806180032", {
- "headers": {
- "accept": "text/css,*/*;q=0.1",
- "accept-language": "zh-CN,zh;q=0.9",
- "priority": "u=0",
- "sec-ch-ua": "\"Not(A:Brand\";v=\"8\", \"Chromium\";v=\"144\"",
- "sec-ch-ua-mobile": "?0",
- "sec-ch-ua-platform": "\"Windows\"",
- "sec-fetch-dest": "style",
- "sec-fetch-mode": "no-cors",
- "sec-fetch-site": "same-origin",
- "cookie": "select_channel_pattern=; GUID=guid.84a8344f778096e7d29e84724df70962; areaCityCode=650100; areaProvinceCode=650000; traceId=69a932b40981127b8e9b0194c4eabbd1",
- "Referer": "https://www.ztdq.com/search/match?keyword=3xLMZ1-0.5"
- },
- "body": null,
- "method": "GET"
-}); ;
-fetch("https://www.ztdq.com/static/script/jquery-1.12.4.min.js", {
- "headers": {
- "sec-ch-ua": "\"Not(A:Brand\";v=\"8\", \"Chromium\";v=\"144\"",
- "sec-ch-ua-mobile": "?0",
- "sec-ch-ua-platform": "\"Windows\"",
- "Referer": "https://www.ztdq.com/search/match?keyword=3xLMZ1-0.5"
- },
- "body": null,
- "method": "GET"
-}); ;
-fetch("https://www.ztdq.com/static/script/autocomplete.js?v=20260806180032", {
- "headers": {
- "accept": "*/*",
- "accept-language": "zh-CN,zh;q=0.9",
- "priority": "u=1",
- "sec-ch-ua": "\"Not(A:Brand\";v=\"8\", \"Chromium\";v=\"144\"",
- "sec-ch-ua-mobile": "?0",
- "sec-ch-ua-platform": "\"Windows\"",
- "sec-fetch-dest": "script",
- "sec-fetch-mode": "no-cors",
- "sec-fetch-site": "same-origin",
- "cookie": "select_channel_pattern=; GUID=guid.84a8344f778096e7d29e84724df70962; areaCityCode=650100; areaProvinceCode=650000; traceId=69a932b40981127b8e9b0194c4eabbd1",
- "Referer": "https://www.ztdq.com/search/match?keyword=3xLMZ1-0.5"
- },
- "body": null,
- "method": "GET"
-}); ;
-fetch("https://www.ztdq.com/static/script/layer.js", {
- "headers": {
- "sec-ch-ua": "\"Not(A:Brand\";v=\"8\", \"Chromium\";v=\"144\"",
- "sec-ch-ua-mobile": "?0",
- "sec-ch-ua-platform": "\"Windows\"",
- "Referer": "https://www.ztdq.com/search/match?keyword=3xLMZ1-0.5"
- },
- "body": null,
- "method": "GET"
-}); ;
-fetch("https://www.ztdq.com/static/layui/layui.js?v=20260806180032", {
- "headers": {
- "accept": "*/*",
- "accept-language": "zh-CN,zh;q=0.9",
- "priority": "u=1",
- "sec-ch-ua": "\"Not(A:Brand\";v=\"8\", \"Chromium\";v=\"144\"",
- "sec-ch-ua-mobile": "?0",
- "sec-ch-ua-platform": "\"Windows\"",
- "sec-fetch-dest": "script",
- "sec-fetch-mode": "no-cors",
- "sec-fetch-site": "same-origin",
- "cookie": "select_channel_pattern=; GUID=guid.84a8344f778096e7d29e84724df70962; areaCityCode=650100; areaProvinceCode=650000; traceId=69a932b40981127b8e9b0194c4eabbd1",
- "Referer": "https://www.ztdq.com/search/match?keyword=3xLMZ1-0.5"
- },
- "body": null,
- "method": "GET"
-}); ;
-fetch("https://www.ztdq.com/static/script/gks-util.js?v=20260806180032", {
- "headers": {
- "accept": "*/*",
- "accept-language": "zh-CN,zh;q=0.9",
- "priority": "u=1",
- "sec-ch-ua": "\"Not(A:Brand\";v=\"8\", \"Chromium\";v=\"144\"",
- "sec-ch-ua-mobile": "?0",
- "sec-ch-ua-platform": "\"Windows\"",
- "sec-fetch-dest": "script",
- "sec-fetch-mode": "no-cors",
- "sec-fetch-site": "same-origin",
- "cookie": "select_channel_pattern=; GUID=guid.84a8344f778096e7d29e84724df70962; areaCityCode=650100; areaProvinceCode=650000; traceId=69a932b40981127b8e9b0194c4eabbd1",
- "Referer": "https://www.ztdq.com/search/match?keyword=3xLMZ1-0.5"
- },
- "body": null,
- "method": "GET"
-}); ;
-fetch("https://www.ztdq.com/static/script/check-login-v2.js?v=20260806180032", {
- "headers": {
- "accept": "*/*",
- "accept-language": "zh-CN,zh;q=0.9",
- "priority": "u=1",
- "sec-ch-ua": "\"Not(A:Brand\";v=\"8\", \"Chromium\";v=\"144\"",
- "sec-ch-ua-mobile": "?0",
- "sec-ch-ua-platform": "\"Windows\"",
- "sec-fetch-dest": "script",
- "sec-fetch-mode": "no-cors",
- "sec-fetch-site": "same-origin",
- "cookie": "select_channel_pattern=; GUID=guid.84a8344f778096e7d29e84724df70962; areaCityCode=650100; areaProvinceCode=650000; traceId=69a932b40981127b8e9b0194c4eabbd1",
- "Referer": "https://www.ztdq.com/search/match?keyword=3xLMZ1-0.5"
- },
- "body": null,
- "method": "GET"
-}); ;
-fetch("https://www.ztdq.com/static/script/zebra_tooltips.js?v=20260806180032", {
- "headers": {
- "accept": "*/*",
- "accept-language": "zh-CN,zh;q=0.9",
- "priority": "u=1",
- "sec-ch-ua": "\"Not(A:Brand\";v=\"8\", \"Chromium\";v=\"144\"",
- "sec-ch-ua-mobile": "?0",
- "sec-ch-ua-platform": "\"Windows\"",
- "sec-fetch-dest": "script",
- "sec-fetch-mode": "no-cors",
- "sec-fetch-site": "same-origin",
- "cookie": "select_channel_pattern=; GUID=guid.84a8344f778096e7d29e84724df70962; areaCityCode=650100; areaProvinceCode=650000; traceId=69a932b40981127b8e9b0194c4eabbd1",
- "Referer": "https://www.ztdq.com/search/match?keyword=3xLMZ1-0.5"
- },
- "body": null,
- "method": "GET"
-}); ;
-fetch("https://www.gongkongsaas.com/static/css/tippy-v2.css", {
- "headers": {
- "accept": "text/css,*/*;q=0.1",
- "accept-language": "zh-CN,zh;q=0.9",
- "priority": "u=0",
- "sec-ch-ua": "\"Not(A:Brand\";v=\"8\", \"Chromium\";v=\"144\"",
- "sec-ch-ua-mobile": "?0",
- "sec-ch-ua-platform": "\"Windows\"",
- "sec-fetch-dest": "style",
- "sec-fetch-mode": "no-cors",
- "sec-fetch-site": "cross-site",
- "sec-fetch-storage-access": "active",
- "Referer": "https://www.ztdq.com/"
- },
- "body": null,
- "method": "GET"
-}); ;
-fetch("https://www.gongkongsaas.com/static/script/popper-v2.js?v=20260806180032", {
- "headers": {
- "accept": "*/*",
- "accept-language": "zh-CN,zh;q=0.9",
- "priority": "u=1",
- "sec-ch-ua": "\"Not(A:Brand\";v=\"8\", \"Chromium\";v=\"144\"",
- "sec-ch-ua-mobile": "?0",
- "sec-ch-ua-platform": "\"Windows\"",
- "sec-fetch-dest": "script",
- "sec-fetch-mode": "no-cors",
- "sec-fetch-site": "cross-site",
- "sec-fetch-storage-access": "active",
- "Referer": "https://www.ztdq.com/"
- },
- "body": null,
- "method": "GET"
-}); ;
-fetch("https://www.gongkongsaas.com/static/script/tippy-v2.js?v=20260806180032", {
- "headers": {
- "accept": "*/*",
- "accept-language": "zh-CN,zh;q=0.9",
- "priority": "u=1",
- "sec-ch-ua": "\"Not(A:Brand\";v=\"8\", \"Chromium\";v=\"144\"",
- "sec-ch-ua-mobile": "?0",
- "sec-ch-ua-platform": "\"Windows\"",
- "sec-fetch-dest": "script",
- "sec-fetch-mode": "no-cors",
- "sec-fetch-site": "cross-site",
- "sec-fetch-storage-access": "active",
- "Referer": "https://www.ztdq.com/"
- },
- "body": null,
- "method": "GET"
-}); ;
-fetch("https://www.ztdq.com/upload/logo/logo.png", {
- "headers": {
- "sec-ch-ua": "\"Not(A:Brand\";v=\"8\", \"Chromium\";v=\"144\"",
- "sec-ch-ua-mobile": "?0",
- "sec-ch-ua-platform": "\"Windows\"",
- "Referer": "https://www.ztdq.com/search/match?keyword=3xLMZ1-0.5"
- },
- "body": null,
- "method": "GET"
-}); ;
-fetch("https://image.gongkongsaas.com/upload/recommend/image/2021/01/08/6aabe5ccf91240cd8f7c5d6816f20b97.png", {
- "headers": {
- "sec-ch-ua": "\"Not(A:Brand\";v=\"8\", \"Chromium\";v=\"144\"",
- "sec-ch-ua-mobile": "?0",
- "sec-ch-ua-platform": "\"Windows\"",
- "Referer": "https://www.ztdq.com/"
- },
- "body": null,
- "method": "GET"
-}); ;
-fetch("https://www.ztdq.com/search/static/style/oos-recommend-bundle.css?v=20260806180032", {
- "headers": {
- "accept": "text/css,*/*;q=0.1",
- "accept-language": "zh-CN,zh;q=0.9",
- "priority": "u=2",
- "sec-ch-ua": "\"Not(A:Brand\";v=\"8\", \"Chromium\";v=\"144\"",
- "sec-ch-ua-mobile": "?0",
- "sec-ch-ua-platform": "\"Windows\"",
- "sec-fetch-dest": "style",
- "sec-fetch-mode": "no-cors",
- "sec-fetch-site": "same-origin",
- "cookie": "select_channel_pattern=; GUID=guid.84a8344f778096e7d29e84724df70962; areaCityCode=650100; areaProvinceCode=650000; traceId=69a932b40981127b8e9b0194c4eabbd1",
- "Referer": "https://www.ztdq.com/search/match?keyword=3xLMZ1-0.5"
- },
- "body": null,
- "method": "GET"
-}); ;
-fetch("https://www.ztdq.com/search/static/script/oos-recommend/oos-recommend-bundle.js?v=20260806180032", {
- "headers": {
- "accept": "*/*",
- "accept-language": "zh-CN,zh;q=0.9",
- "priority": "u=2",
- "sec-ch-ua": "\"Not(A:Brand\";v=\"8\", \"Chromium\";v=\"144\"",
- "sec-ch-ua-mobile": "?0",
- "sec-ch-ua-platform": "\"Windows\"",
- "sec-fetch-dest": "script",
- "sec-fetch-mode": "no-cors",
- "sec-fetch-site": "same-origin",
- "cookie": "select_channel_pattern=; GUID=guid.84a8344f778096e7d29e84724df70962; areaCityCode=650100; areaProvinceCode=650000; traceId=69a932b40981127b8e9b0194c4eabbd1",
- "Referer": "https://www.ztdq.com/search/match?keyword=3xLMZ1-0.5"
- },
- "body": null,
- "method": "GET"
-}); ;
-fetch("chrome-extension://bpoadfkcbjbfhfodiogcnhhhpibjhbnh/default_config.content.json", {
- "referrer": "",
- "body": null,
- "method": "GET"
-}); ;
-fetch("https://www.ztdq.com/static/script/skin/default/layer.css?v=3.0.3303", {
- "headers": {
- "sec-ch-ua": "\"Not(A:Brand\";v=\"8\", \"Chromium\";v=\"144\"",
- "sec-ch-ua-mobile": "?0",
- "sec-ch-ua-platform": "\"Windows\"",
- "Referer": "https://www.ztdq.com/search/match?keyword=3xLMZ1-0.5"
- },
- "body": null,
- "method": "GET"
-}); ;
-fetch("https://www.ztdq.com/search/static/script/oos-recommend/oos-test.js?v=20260806180032", {
- "headers": {
- "accept": "*/*",
- "accept-language": "zh-CN,zh;q=0.9",
- "priority": "u=2",
- "sec-ch-ua": "\"Not(A:Brand\";v=\"8\", \"Chromium\";v=\"144\"",
- "sec-ch-ua-mobile": "?0",
- "sec-ch-ua-platform": "\"Windows\"",
- "sec-fetch-dest": "script",
- "sec-fetch-mode": "no-cors",
- "sec-fetch-site": "same-origin",
- "cookie": "select_channel_pattern=; GUID=guid.84a8344f778096e7d29e84724df70962; areaCityCode=650100; areaProvinceCode=650000; traceId=69a932b40981127b8e9b0194c4eabbd1",
- "Referer": "https://www.ztdq.com/search/match?keyword=3xLMZ1-0.5"
- },
- "body": null,
- "method": "GET"
-}); ;
-fetch("https://www.ztdq.com/static/script/iscroll.js?v=20260806180032", {
- "headers": {
- "accept": "*/*",
- "accept-language": "zh-CN,zh;q=0.9",
- "priority": "u=2",
- "sec-ch-ua": "\"Not(A:Brand\";v=\"8\", \"Chromium\";v=\"144\"",
- "sec-ch-ua-mobile": "?0",
- "sec-ch-ua-platform": "\"Windows\"",
- "sec-fetch-dest": "script",
- "sec-fetch-mode": "no-cors",
- "sec-fetch-site": "same-origin",
- "cookie": "select_channel_pattern=; GUID=guid.84a8344f778096e7d29e84724df70962; areaCityCode=650100; areaProvinceCode=650000; traceId=69a932b40981127b8e9b0194c4eabbd1",
- "Referer": "https://www.ztdq.com/search/match?keyword=3xLMZ1-0.5"
- },
- "body": null,
- "method": "GET"
-}); ;
-fetch("https://www.ztdq.com/static/script/shopCartAnimatie.js?v=20260806180032", {
- "headers": {
- "accept": "*/*",
- "accept-language": "zh-CN,zh;q=0.9",
- "priority": "u=2",
- "sec-ch-ua": "\"Not(A:Brand\";v=\"8\", \"Chromium\";v=\"144\"",
- "sec-ch-ua-mobile": "?0",
- "sec-ch-ua-platform": "\"Windows\"",
- "sec-fetch-dest": "script",
- "sec-fetch-mode": "no-cors",
- "sec-fetch-site": "same-origin",
- "cookie": "select_channel_pattern=; GUID=guid.84a8344f778096e7d29e84724df70962; areaCityCode=650100; areaProvinceCode=650000; traceId=69a932b40981127b8e9b0194c4eabbd1",
- "Referer": "https://www.ztdq.com/search/match?keyword=3xLMZ1-0.5"
- },
- "body": null,
- "method": "GET"
-}); ;
-fetch("https://www.ztdq.com/static/script/gksProduct.js?v=20260806180032", {
- "headers": {
- "accept": "*/*",
- "accept-language": "zh-CN,zh;q=0.9",
- "priority": "u=2",
- "sec-ch-ua": "\"Not(A:Brand\";v=\"8\", \"Chromium\";v=\"144\"",
- "sec-ch-ua-mobile": "?0",
- "sec-ch-ua-platform": "\"Windows\"",
- "sec-fetch-dest": "script",
- "sec-fetch-mode": "no-cors",
- "sec-fetch-site": "same-origin",
- "cookie": "select_channel_pattern=; GUID=guid.84a8344f778096e7d29e84724df70962; areaCityCode=650100; areaProvinceCode=650000; traceId=69a932b40981127b8e9b0194c4eabbd1",
- "Referer": "https://www.ztdq.com/search/match?keyword=3xLMZ1-0.5"
- },
- "body": null,
- "method": "GET"
-}); ;
-fetch("https://www.ztdq.com/static/css/configure.css", {
- "headers": {
- "sec-ch-ua": "\"Not(A:Brand\";v=\"8\", \"Chromium\";v=\"144\"",
- "sec-ch-ua-mobile": "?0",
- "sec-ch-ua-platform": "\"Windows\"",
- "Referer": "https://www.ztdq.com/search/match?keyword=3xLMZ1-0.5"
- },
- "body": null,
- "method": "GET"
-}); ;
-fetch("https://www.ztdq.com/static/css/basic.css", {
- "headers": {
- "sec-ch-ua": "\"Not(A:Brand\";v=\"8\", \"Chromium\";v=\"144\"",
- "sec-ch-ua-mobile": "?0",
- "sec-ch-ua-platform": "\"Windows\"",
- "Referer": "https://www.ztdq.com/search/match?keyword=3xLMZ1-0.5"
- },
- "body": null,
- "method": "GET"
-}); ;
-fetch("https://www.ztdq.com/shop/shop-service/get-shop-service-config", {
- "headers": {
- "accept": "application/json, text/javascript, */*; q=0.01",
- "accept-language": "zh-CN,zh;q=0.9",
- "content-type": "application/json",
- "priority": "u=1, i",
- "sec-ch-ua": "\"Not(A:Brand\";v=\"8\", \"Chromium\";v=\"144\"",
- "sec-ch-ua-mobile": "?0",
- "sec-ch-ua-platform": "\"Windows\"",
- "sec-fetch-dest": "empty",
- "sec-fetch-mode": "cors",
- "sec-fetch-site": "same-origin",
- "x-requested-with": "XMLHttpRequest",
- "cookie": "select_channel_pattern=; GUID=guid.84a8344f778096e7d29e84724df70962; areaCityCode=650100; areaProvinceCode=650000; traceId=69a932b40981127b8e9b0194c4eabbd1",
- "Referer": "https://www.ztdq.com/search/match?keyword=3xLMZ1-0.5"
- },
- "body": "[\"baiduStatCode\"]",
- "method": "POST"
-}); ;
-fetch("https://www.ztdq.com/static/script/index.iife.js", {
- "headers": {
- "sec-ch-ua": "\"Not(A:Brand\";v=\"8\", \"Chromium\";v=\"144\"",
- "sec-ch-ua-mobile": "?0",
- "sec-ch-ua-platform": "\"Windows\"",
- "Referer": "https://www.ztdq.com/search/match?keyword=3xLMZ1-0.5"
- },
- "body": null,
- "method": "GET"
-}); ;
-fetch("https://www.ztdq.com/static/css/iconfont/gks-web-icon/iconfont.woff", {
- "headers": {
- "sec-ch-ua": "\"Not(A:Brand\";v=\"8\", \"Chromium\";v=\"144\"",
- "sec-ch-ua-mobile": "?0",
- "sec-ch-ua-platform": "\"Windows\"",
- "Referer": "https://www.ztdq.com/static/css/web-iconfont.css?version=1.1.1"
- },
- "body": null,
- "method": "GET"
-}); ;
-fetch("https://www.ztdq.com/static/css/iconfont/gks-icon/iconfont.woff", {
- "headers": {
- "sec-ch-ua": "\"Not(A:Brand\";v=\"8\", \"Chromium\";v=\"144\"",
- "sec-ch-ua-mobile": "?0",
- "sec-ch-ua-platform": "\"Windows\"",
- "Referer": "https://www.ztdq.com/static/css/iconfont.css?2019"
- },
- "body": null,
- "method": "GET"
-}); ;
-fetch("https://www.ztdq.com/common/location/get-province-and-city-arr", {
- "headers": {
- "accept": "application/json, text/javascript, */*; q=0.01",
- "accept-language": "zh-CN,zh;q=0.9",
- "content-type": "application/json",
- "priority": "u=1, i",
- "sec-ch-ua": "\"Not(A:Brand\";v=\"8\", \"Chromium\";v=\"144\"",
- "sec-ch-ua-mobile": "?0",
- "sec-ch-ua-platform": "\"Windows\"",
- "sec-fetch-dest": "empty",
- "sec-fetch-mode": "cors",
- "sec-fetch-site": "same-origin",
- "x-requested-with": "XMLHttpRequest",
- "cookie": "select_channel_pattern=; GUID=guid.84a8344f778096e7d29e84724df70962; areaCityCode=650100; areaProvinceCode=650000; traceId=69a932b40981127b8e9b0194c4eabbd1",
- "Referer": "https://www.ztdq.com/search/match?keyword=3xLMZ1-0.5"
- },
- "body": null,
- "method": "GET"
-}); ;
-fetch("https://www.ztdq.com/recommend/model-plugin-item-template-content/get-content-by-template-code?templateCode=43", {
- "headers": {
- "accept": "*/*",
- "accept-language": "zh-CN,zh;q=0.9",
- "priority": "u=1, i",
- "sec-ch-ua": "\"Not(A:Brand\";v=\"8\", \"Chromium\";v=\"144\"",
- "sec-ch-ua-mobile": "?0",
- "sec-ch-ua-platform": "\"Windows\"",
- "sec-fetch-dest": "empty",
- "sec-fetch-mode": "cors",
- "sec-fetch-site": "same-origin",
- "x-requested-with": "XMLHttpRequest",
- "cookie": "select_channel_pattern=; GUID=guid.84a8344f778096e7d29e84724df70962; areaCityCode=650100; areaProvinceCode=650000; traceId=69a932b40981127b8e9b0194c4eabbd1",
- "Referer": "https://www.ztdq.com/search/match?keyword=3xLMZ1-0.5"
- },
- "body": null,
- "method": "GET"
-}); ;
-fetch("https://www.ztdq.com/static/script/dragula.js?_=1786729134189", {
- "headers": {
- "accept": "text/javascript, application/javascript, application/ecmascript, application/x-ecmascript, */*; q=0.01",
- "accept-language": "zh-CN,zh;q=0.9",
- "priority": "u=1, i",
- "sec-ch-ua": "\"Not(A:Brand\";v=\"8\", \"Chromium\";v=\"144\"",
- "sec-ch-ua-mobile": "?0",
- "sec-ch-ua-platform": "\"Windows\"",
- "sec-fetch-dest": "empty",
- "sec-fetch-mode": "cors",
- "sec-fetch-site": "same-origin",
- "x-requested-with": "XMLHttpRequest",
- "cookie": "select_channel_pattern=; GUID=guid.84a8344f778096e7d29e84724df70962; areaCityCode=650100; areaProvinceCode=650000; traceId=69a932b40981127b8e9b0194c4eabbd1",
- "Referer": "https://www.ztdq.com/search/match?keyword=3xLMZ1-0.5"
- },
- "body": null,
- "method": "GET"
-}); ;
-fetch("https://www.ztdq.com/recommend/model-plugin-item-template-content/get-content-by-template-code?templateCode=29", {
- "headers": {
- "accept": "*/*",
- "accept-language": "zh-CN,zh;q=0.9",
- "priority": "u=1, i",
- "sec-ch-ua": "\"Not(A:Brand\";v=\"8\", \"Chromium\";v=\"144\"",
- "sec-ch-ua-mobile": "?0",
- "sec-ch-ua-platform": "\"Windows\"",
- "sec-fetch-dest": "empty",
- "sec-fetch-mode": "cors",
- "sec-fetch-site": "same-origin",
- "x-requested-with": "XMLHttpRequest",
- "cookie": "select_channel_pattern=; GUID=guid.84a8344f778096e7d29e84724df70962; areaCityCode=650100; areaProvinceCode=650000; traceId=69a932b40981127b8e9b0194c4eabbd1",
- "Referer": "https://www.ztdq.com/search/match?keyword=3xLMZ1-0.5"
- },
- "body": null,
- "method": "GET"
-}); ;
-fetch("https://www.ztdq.com/recommend/model-plugin-item-template-content/get-content-by-template-code?templateCode=32", {
- "headers": {
- "accept": "*/*",
- "accept-language": "zh-CN,zh;q=0.9",
- "priority": "u=1, i",
- "sec-ch-ua": "\"Not(A:Brand\";v=\"8\", \"Chromium\";v=\"144\"",
- "sec-ch-ua-mobile": "?0",
- "sec-ch-ua-platform": "\"Windows\"",
- "sec-fetch-dest": "empty",
- "sec-fetch-mode": "cors",
- "sec-fetch-site": "same-origin",
- "x-requested-with": "XMLHttpRequest",
- "cookie": "select_channel_pattern=; GUID=guid.84a8344f778096e7d29e84724df70962; areaCityCode=650100; areaProvinceCode=650000; traceId=69a932b40981127b8e9b0194c4eabbd1",
- "Referer": "https://www.ztdq.com/search/match?keyword=3xLMZ1-0.5"
- },
- "body": null,
- "method": "GET"
-}); ;
-fetch("https://www.ztdq.com/recommend/model-plugin-item-template-content/get-content-by-template-code?templateCode=45", {
- "headers": {
- "accept": "*/*",
- "accept-language": "zh-CN,zh;q=0.9",
- "priority": "u=1, i",
- "sec-ch-ua": "\"Not(A:Brand\";v=\"8\", \"Chromium\";v=\"144\"",
- "sec-ch-ua-mobile": "?0",
- "sec-ch-ua-platform": "\"Windows\"",
- "sec-fetch-dest": "empty",
- "sec-fetch-mode": "cors",
- "sec-fetch-site": "same-origin",
- "x-requested-with": "XMLHttpRequest",
- "cookie": "select_channel_pattern=; GUID=guid.84a8344f778096e7d29e84724df70962; areaCityCode=650100; areaProvinceCode=650000; traceId=69a932b40981127b8e9b0194c4eabbd1",
- "Referer": "https://www.ztdq.com/search/match?keyword=3xLMZ1-0.5"
- },
- "body": null,
- "method": "GET"
-}); ;
-fetch("https://www.ztdq.com/static/script/event-tracking.js?v=${jsVersion}", {
- "headers": {
- "accept": "text/javascript, application/javascript, application/ecmascript, application/x-ecmascript, */*; q=0.01",
- "sec-ch-ua": "\"Not(A:Brand\";v=\"8\", \"Chromium\";v=\"144\"",
- "sec-ch-ua-mobile": "?0",
- "sec-ch-ua-platform": "\"Windows\"",
- "x-requested-with": "XMLHttpRequest",
- "Referer": "https://www.ztdq.com/search/match?keyword=3xLMZ1-0.5"
- },
- "body": null,
- "method": "GET"
-}); ;
-fetch("https://www.ztdq.com/search/match/match-brand?keyword=3xLMZ1-0.5&_=1786729134190", {
- "headers": {
- "accept": "*/*",
- "accept-language": "zh-CN,zh;q=0.9",
- "priority": "u=1, i",
- "sec-ch-ua": "\"Not(A:Brand\";v=\"8\", \"Chromium\";v=\"144\"",
- "sec-ch-ua-mobile": "?0",
- "sec-ch-ua-platform": "\"Windows\"",
- "sec-fetch-dest": "empty",
- "sec-fetch-mode": "cors",
- "sec-fetch-site": "same-origin",
- "x-requested-with": "XMLHttpRequest",
- "cookie": "select_channel_pattern=; GUID=guid.84a8344f778096e7d29e84724df70962; areaCityCode=650100; areaProvinceCode=650000; traceId=69a932b40981127b8e9b0194c4eabbd1",
- "Referer": "https://www.ztdq.com/search/match?keyword=3xLMZ1-0.5"
- },
- "body": null,
- "method": "GET"
-}); ;
-fetch("https://www.ztdq.com/search/match/check-search-using-v2?_=1786729134191", {
- "headers": {
- "accept": "application/json, text/javascript, */*; q=0.01",
- "accept-language": "zh-CN,zh;q=0.9",
- "content-type": "application/json",
- "priority": "u=1, i",
- "sec-ch-ua": "\"Not(A:Brand\";v=\"8\", \"Chromium\";v=\"144\"",
- "sec-ch-ua-mobile": "?0",
- "sec-ch-ua-platform": "\"Windows\"",
- "sec-fetch-dest": "empty",
- "sec-fetch-mode": "cors",
- "sec-fetch-site": "same-origin",
- "x-requested-with": "XMLHttpRequest",
- "cookie": "select_channel_pattern=; GUID=guid.84a8344f778096e7d29e84724df70962; areaCityCode=650100; areaProvinceCode=650000; traceId=69a932b40981127b8e9b0194c4eabbd1",
- "Referer": "https://www.ztdq.com/search/match?keyword=3xLMZ1-0.5"
- },
- "body": null,
- "method": "GET"
-}); ;
-fetch("https://www.ztdq.com/recommend/model-plugin-item-template-content/get-content-by-template-code?templateCode=42&_=1786729134192", {
- "headers": {
- "accept": "*/*",
- "accept-language": "zh-CN,zh;q=0.9",
- "priority": "u=1, i",
- "sec-ch-ua": "\"Not(A:Brand\";v=\"8\", \"Chromium\";v=\"144\"",
- "sec-ch-ua-mobile": "?0",
- "sec-ch-ua-platform": "\"Windows\"",
- "sec-fetch-dest": "empty",
- "sec-fetch-mode": "cors",
- "sec-fetch-site": "same-origin",
- "x-requested-with": "XMLHttpRequest",
- "cookie": "select_channel_pattern=; GUID=guid.84a8344f778096e7d29e84724df70962; areaCityCode=650100; areaProvinceCode=650000; traceId=69a932b40981127b8e9b0194c4eabbd1",
- "Referer": "https://www.ztdq.com/search/match?keyword=3xLMZ1-0.5"
- },
- "body": null,
- "method": "GET"
-}); ;
-fetch("https://www.ztdq.com/product/public/category/list-on-sale-category-tree?_=1786729134193", {
- "headers": {
- "accept": "*/*",
- "accept-language": "zh-CN,zh;q=0.9",
- "priority": "u=1, i",
- "sec-ch-ua": "\"Not(A:Brand\";v=\"8\", \"Chromium\";v=\"144\"",
- "sec-ch-ua-mobile": "?0",
- "sec-ch-ua-platform": "\"Windows\"",
- "sec-fetch-dest": "empty",
- "sec-fetch-mode": "cors",
- "sec-fetch-site": "same-origin",
- "x-requested-with": "XMLHttpRequest",
- "cookie": "select_channel_pattern=; GUID=guid.84a8344f778096e7d29e84724df70962; areaCityCode=650100; areaProvinceCode=650000; traceId=5359fb1cb172c32aa52f4b73e94517e8",
- "Referer": "https://www.ztdq.com/search/match?keyword=3xLMZ1-0.5"
- },
- "body": null,
- "method": "GET"
-}); ;
-fetch("https://www.ztdq.com/static/script/skin/default/loading-2.gif", {
- "headers": {
- "sec-ch-ua": "\"Not(A:Brand\";v=\"8\", \"Chromium\";v=\"144\"",
- "sec-ch-ua-mobile": "?0",
- "sec-ch-ua-platform": "\"Windows\"",
- "Referer": "https://www.ztdq.com/static/script/skin/default/layer.css?v=3.0.3303"
- },
- "body": null,
- "method": "GET"
-}); ;
-fetch("https://www.ztdq.com/search/static/script/search-match.js?v=20260806180032", {
- "headers": {
- "accept": "text/javascript, application/javascript, application/ecmascript, application/x-ecmascript, */*; q=0.01",
- "accept-language": "zh-CN,zh;q=0.9",
- "priority": "u=0, i",
- "sec-ch-ua": "\"Not(A:Brand\";v=\"8\", \"Chromium\";v=\"144\"",
- "sec-ch-ua-mobile": "?0",
- "sec-ch-ua-platform": "\"Windows\"",
- "sec-fetch-dest": "empty",
- "sec-fetch-mode": "cors",
- "sec-fetch-site": "same-origin",
- "x-requested-with": "XMLHttpRequest",
- "cookie": "select_channel_pattern=; GUID=guid.84a8344f778096e7d29e84724df70962; areaCityCode=650100; areaProvinceCode=650000; traceId=5359fb1cb172c32aa52f4b73e94517e8",
- "Referer": "https://www.ztdq.com/search/match?keyword=3xLMZ1-0.5"
- },
- "body": null,
- "method": "GET"
-}); ;
-fetch("https://www.ztdq.com/static/layui/lay/modules/form.js", {
- "headers": {
- "accept": "*/*",
- "accept-language": "zh-CN,zh;q=0.9",
- "sec-ch-ua": "\"Not(A:Brand\";v=\"8\", \"Chromium\";v=\"144\"",
- "sec-ch-ua-mobile": "?0",
- "sec-ch-ua-platform": "\"Windows\"",
- "sec-fetch-dest": "script",
- "sec-fetch-mode": "no-cors",
- "sec-fetch-site": "same-origin",
- "cookie": "select_channel_pattern=; GUID=guid.84a8344f778096e7d29e84724df70962; areaCityCode=650100; areaProvinceCode=650000; traceId=5359fb1cb172c32aa52f4b73e94517e8",
- "Referer": "https://www.ztdq.com/search/match?keyword=3xLMZ1-0.5"
- },
- "body": null,
- "method": "GET"
-}); ;
-fetch("https://www.ztdq.com/shop/shop-info/list-home-page-help-center-menu?_=1786729134194", {
- "headers": {
- "accept": "application/json, text/javascript, */*; q=0.01",
- "accept-language": "zh-CN,zh;q=0.9",
- "content-type": "application/json; charset=utf-8",
- "priority": "u=1, i",
- "sec-ch-ua": "\"Not(A:Brand\";v=\"8\", \"Chromium\";v=\"144\"",
- "sec-ch-ua-mobile": "?0",
- "sec-ch-ua-platform": "\"Windows\"",
- "sec-fetch-dest": "empty",
- "sec-fetch-mode": "cors",
- "sec-fetch-site": "same-origin",
- "x-requested-with": "XMLHttpRequest",
- "cookie": "select_channel_pattern=; GUID=guid.84a8344f778096e7d29e84724df70962; areaCityCode=650100; areaProvinceCode=650000; traceId=5359fb1cb172c32aa52f4b73e94517e8",
- "Referer": "https://www.ztdq.com/search/match?keyword=3xLMZ1-0.5"
- },
- "body": null,
- "method": "GET"
-}); ;
-fetch("https://image.gongkongsaas.com/upload/recommend/image/2023/09/16/b749ec75e9dc4ba29af6758f479f1b6b.png", {
- "headers": {
- "sec-ch-ua": "\"Not(A:Brand\";v=\"8\", \"Chromium\";v=\"144\"",
- "sec-ch-ua-mobile": "?0",
- "sec-ch-ua-platform": "\"Windows\"",
- "Referer": "https://www.ztdq.com/"
- },
- "body": null,
- "method": "GET"
-}); ;
-fetch("https://www.ztdq.com/common/location/get-province-and-city-arr?_=1786729134195", {
- "headers": {
- "accept": "application/json, text/javascript, */*; q=0.01",
- "accept-language": "zh-CN,zh;q=0.9",
- "content-type": "application/json",
- "priority": "u=1, i",
- "sec-ch-ua": "\"Not(A:Brand\";v=\"8\", \"Chromium\";v=\"144\"",
- "sec-ch-ua-mobile": "?0",
- "sec-ch-ua-platform": "\"Windows\"",
- "sec-fetch-dest": "empty",
- "sec-fetch-mode": "cors",
- "sec-fetch-site": "same-origin",
- "x-requested-with": "XMLHttpRequest",
- "cookie": "select_channel_pattern=; GUID=guid.84a8344f778096e7d29e84724df70962; areaCityCode=650100; areaProvinceCode=650000; traceId=5359fb1cb172c32aa52f4b73e94517e8",
- "Referer": "https://www.ztdq.com/search/match?keyword=3xLMZ1-0.5"
- },
- "body": null,
- "method": "GET"
-}); ;
-fetch("https://image.gongkongsaas.com/upload/recommend/image/2023/10/10/0b61a6f054284d35a9a3ad8767374fbb.png", {
- "headers": {
- "sec-ch-ua": "\"Not(A:Brand\";v=\"8\", \"Chromium\";v=\"144\"",
- "sec-ch-ua-mobile": "?0",
- "sec-ch-ua-platform": "\"Windows\"",
- "Referer": "https://www.ztdq.com/"
- },
- "body": null,
- "method": "GET"
-}); ;
-fetch("https://www.ztdq.com/recommend/head-status-bar/get-qq-by-shop-id?_=1786729134196", {
- "headers": {
- "accept": "*/*",
- "accept-language": "zh-CN,zh;q=0.9",
- "priority": "u=1, i",
- "sec-ch-ua": "\"Not(A:Brand\";v=\"8\", \"Chromium\";v=\"144\"",
- "sec-ch-ua-mobile": "?0",
- "sec-ch-ua-platform": "\"Windows\"",
- "sec-fetch-dest": "empty",
- "sec-fetch-mode": "cors",
- "sec-fetch-site": "same-origin",
- "x-requested-with": "XMLHttpRequest",
- "cookie": "select_channel_pattern=; GUID=guid.84a8344f778096e7d29e84724df70962; areaCityCode=650100; areaProvinceCode=650000; traceId=5359fb1cb172c32aa52f4b73e94517e8",
- "Referer": "https://www.ztdq.com/search/match?keyword=3xLMZ1-0.5"
- },
- "body": null,
- "method": "GET"
-}); ;
-fetch("https://www.ztdq.com/static/images/QQ.png", {
- "headers": {
- "sec-ch-ua": "\"Not(A:Brand\";v=\"8\", \"Chromium\";v=\"144\"",
- "sec-ch-ua-mobile": "?0",
- "sec-ch-ua-platform": "\"Windows\"",
- "Referer": "https://www.ztdq.com/search/match?keyword=3xLMZ1-0.5"
- },
- "body": null,
- "method": "GET"
-}); ;
-fetch("https://image.gongkongsaas.com/upload/recommend/image/2023/10/13/dffc91ed9534417eb46dcee822d254a7.jpg", {
- "headers": {
- "sec-ch-ua": "\"Not(A:Brand\";v=\"8\", \"Chromium\";v=\"144\"",
- "sec-ch-ua-mobile": "?0",
- "sec-ch-ua-platform": "\"Windows\"",
- "Referer": "https://www.ztdq.com/"
- },
- "body": null,
- "method": "GET"
-}); ;
-fetch("https://www.ztdq.com/upload/logo/favorites_icon.png?v=202676825941", {
- "headers": {
- "accept": "image/avif,image/webp,image/apng,image/svg+xml,image/*,*/*;q=0.8",
- "accept-language": "zh-CN,zh;q=0.9",
- "priority": "u=1, i",
- "sec-ch-ua": "\"Not(A:Brand\";v=\"8\", \"Chromium\";v=\"144\"",
- "sec-ch-ua-mobile": "?0",
- "sec-ch-ua-platform": "\"Windows\"",
- "sec-fetch-dest": "image",
- "sec-fetch-mode": "no-cors",
- "sec-fetch-site": "same-origin",
- "cookie": "select_channel_pattern=; GUID=guid.84a8344f778096e7d29e84724df70962; areaCityCode=650100; areaProvinceCode=650000; traceId=5359fb1cb172c32aa52f4b73e94517e8",
- "Referer": "https://www.ztdq.com/search/match?keyword=3xLMZ1-0.5"
- },
- "body": null,
- "method": "GET"
-}); ;
-fetch("https://image.gongkongsaas.com/upload/product/image/9/2018/08/16/92607f3ef6024850bea27bc09a33627d.jpg", {
- "headers": {
- "sec-ch-ua": "\"Not(A:Brand\";v=\"8\", \"Chromium\";v=\"144\"",
- "sec-ch-ua-mobile": "?0",
- "sec-ch-ua-platform": "\"Windows\"",
- "Referer": "https://www.ztdq.com/"
- },
- "body": null,
- "method": "GET"
-}); ;
-fetch("https://image.gongkongsaas.com/upload/product/image/9/2018/08/15/82c33c444b2e48b49cce38e0dd49e964.png", {
- "headers": {
- "sec-ch-ua": "\"Not(A:Brand\";v=\"8\", \"Chromium\";v=\"144\"",
- "sec-ch-ua-mobile": "?0",
- "sec-ch-ua-platform": "\"Windows\"",
- "Referer": "https://www.ztdq.com/"
- },
- "body": null,
- "method": "GET"
-}); ;
-fetch("https://image.gongkongsaas.com/upload/product/image/9/2018/12/11/a1e319a1c8a2454da904f6bfca951e05.jpg", {
- "headers": {
- "sec-ch-ua": "\"Not(A:Brand\";v=\"8\", \"Chromium\";v=\"144\"",
- "sec-ch-ua-mobile": "?0",
- "sec-ch-ua-platform": "\"Windows\"",
- "Referer": "https://www.ztdq.com/"
- },
- "body": null,
- "method": "GET"
-}); ;
-fetch("https://image.gongkongsaas.com/upload/product/image/9/2018/08/15/e2e76ca399cd4e07b42afb58c1900809.png", {
- "headers": {
- "sec-ch-ua": "\"Not(A:Brand\";v=\"8\", \"Chromium\";v=\"144\"",
- "sec-ch-ua-mobile": "?0",
- "sec-ch-ua-platform": "\"Windows\"",
- "Referer": "https://www.ztdq.com/"
- },
- "body": null,
- "method": "GET"
-}); ;
-fetch("https://image.gongkongsaas.com/upload/product/image/9/2022/04/27/b94ad5914a6b45e6aeda80c62194c073.png", {
- "headers": {
- "sec-ch-ua": "\"Not(A:Brand\";v=\"8\", \"Chromium\";v=\"144\"",
- "sec-ch-ua-mobile": "?0",
- "sec-ch-ua-platform": "\"Windows\"",
- "Referer": "https://www.ztdq.com/"
- },
- "body": null,
- "method": "GET"
-}); ;
-fetch("https://image.gongkongsaas.com/upload/product/image/9/2022/04/27/697e20c54f764d1f85f1589874250c81.jpg", {
- "headers": {
- "sec-ch-ua": "\"Not(A:Brand\";v=\"8\", \"Chromium\";v=\"144\"",
- "sec-ch-ua-mobile": "?0",
- "sec-ch-ua-platform": "\"Windows\"",
- "Referer": "https://www.ztdq.com/"
- },
- "body": null,
- "method": "GET"
-}); ;
-fetch("https://image.gongkongsaas.com/upload/product/image/9/2022/04/26/978f324f54a24920aac8293c6be9b383.png", {
- "headers": {
- "sec-ch-ua": "\"Not(A:Brand\";v=\"8\", \"Chromium\";v=\"144\"",
- "sec-ch-ua-mobile": "?0",
- "sec-ch-ua-platform": "\"Windows\"",
- "Referer": "https://www.ztdq.com/"
- },
- "body": null,
- "method": "GET"
-}); ;
-fetch("https://www.ztdq.com/static/layui/lay/modules/layer.js", {
- "headers": {
- "accept": "*/*",
- "accept-language": "zh-CN,zh;q=0.9",
- "sec-ch-ua": "\"Not(A:Brand\";v=\"8\", \"Chromium\";v=\"144\"",
- "sec-ch-ua-mobile": "?0",
- "sec-ch-ua-platform": "\"Windows\"",
- "sec-fetch-dest": "script",
- "sec-fetch-mode": "no-cors",
- "sec-fetch-site": "same-origin",
- "cookie": "select_channel_pattern=; GUID=guid.84a8344f778096e7d29e84724df70962; areaCityCode=650100; areaProvinceCode=650000; traceId=5359fb1cb172c32aa52f4b73e94517e8",
- "Referer": "https://www.ztdq.com/search/match?keyword=3xLMZ1-0.5"
- },
- "body": null,
- "method": "GET"
-}); ;
-fetch("https://www.ztdq.com/recommend/guide/get-guide-by-user", {
- "headers": {
- "accept": "application/json, text/plain, */*",
- "accept-language": "zh-CN,zh;q=0.9",
- "content-type": "application/json",
- "priority": "u=1, i",
- "sec-ch-ua": "\"Not(A:Brand\";v=\"8\", \"Chromium\";v=\"144\"",
- "sec-ch-ua-mobile": "?0",
- "sec-ch-ua-platform": "\"Windows\"",
- "sec-fetch-dest": "empty",
- "sec-fetch-mode": "cors",
- "sec-fetch-site": "same-origin",
- "cookie": "select_channel_pattern=; GUID=guid.84a8344f778096e7d29e84724df70962; areaCityCode=650100; areaProvinceCode=650000; traceId=5359fb1cb172c32aa52f4b73e94517e8",
- "Referer": "https://www.ztdq.com/search/match?keyword=3xLMZ1-0.5"
- },
- "body": "{\"pagePath\":\"/search/match\"}",
- "method": "POST"
-}); ;
-fetch("https://www.ztdq.com/search/match/match-model-v2", {
- "headers": {
- "accept": "application/json, text/javascript, */*; q=0.01",
- "accept-language": "zh-CN,zh;q=0.9",
- "content-type": "application/json",
- "priority": "u=1, i",
- "sec-ch-ua": "\"Not(A:Brand\";v=\"8\", \"Chromium\";v=\"144\"",
- "sec-ch-ua-mobile": "?0",
- "sec-ch-ua-platform": "\"Windows\"",
- "sec-fetch-dest": "empty",
- "sec-fetch-mode": "cors",
- "sec-fetch-site": "same-origin",
- "x-requested-with": "XMLHttpRequest",
- "cookie": "select_channel_pattern=; GUID=guid.84a8344f778096e7d29e84724df70962; areaCityCode=650100; areaProvinceCode=650000; traceId=5359fb1cb172c32aa52f4b73e94517e8",
- "Referer": "https://www.ztdq.com/search/match?keyword=3xLMZ1-0.5"
- },
- "body": "{\"keyword\":\"3xLMZ1-0.5\",\"linkageNav\":true,\"pageIndex\":1,\"pageSize\":15}",
- "method": "POST"
-}); ;
-fetch("https://www.ztdq.com/user/pre-login?returnUrl=%2Frecommend%2Fguide%2Fget-guide-by-user", {
- "headers": {
- "accept": "application/json, text/plain, */*",
- "accept-language": "zh-CN,zh;q=0.9",
- "priority": "u=1, i",
- "sec-ch-ua": "\"Not(A:Brand\";v=\"8\", \"Chromium\";v=\"144\"",
- "sec-ch-ua-mobile": "?0",
- "sec-ch-ua-platform": "\"Windows\"",
- "sec-fetch-dest": "empty",
- "sec-fetch-mode": "cors",
- "sec-fetch-site": "same-origin",
- "cookie": "select_channel_pattern=; GUID=guid.84a8344f778096e7d29e84724df70962; areaCityCode=650100; areaProvinceCode=650000; traceId=5359fb1cb172c32aa52f4b73e94517e8",
- "Referer": "https://www.ztdq.com/search/match?keyword=3xLMZ1-0.5"
- },
- "body": null,
- "method": "GET"
-}); ;
-fetch("https://www.ztdq.com/coupon/coupon/get-soon-to-expire-coupon-view-by-user?_=1786729134197", {
- "headers": {
- "accept": "*/*",
- "accept-language": "zh-CN,zh;q=0.9",
- "priority": "u=1, i",
- "sec-ch-ua": "\"Not(A:Brand\";v=\"8\", \"Chromium\";v=\"144\"",
- "sec-ch-ua-mobile": "?0",
- "sec-ch-ua-platform": "\"Windows\"",
- "sec-fetch-dest": "empty",
- "sec-fetch-mode": "cors",
- "sec-fetch-site": "same-origin",
- "x-requested-with": "XMLHttpRequest",
- "cookie": "select_channel_pattern=; GUID=guid.84a8344f778096e7d29e84724df70962; areaCityCode=650100; areaProvinceCode=650000; traceId=5359fb1cb172c32aa52f4b73e94517e8",
- "Referer": "https://www.ztdq.com/search/match?keyword=3xLMZ1-0.5"
- },
- "body": null,
- "method": "GET"
-}); ;
-fetch("https://www.ztdq.com/static/script/iscroll.js?v=20260806180032", {
- "headers": {
- "accept": "text/javascript, application/javascript, application/ecmascript, application/x-ecmascript, */*; q=0.01",
- "sec-ch-ua": "\"Not(A:Brand\";v=\"8\", \"Chromium\";v=\"144\"",
- "sec-ch-ua-mobile": "?0",
- "sec-ch-ua-platform": "\"Windows\"",
- "x-requested-with": "XMLHttpRequest",
- "Referer": "https://www.ztdq.com/search/match?keyword=3xLMZ1-0.5"
- },
- "body": null,
- "method": "GET"
-}); ;
-fetch("https://www.ztdq.com/static/script/shopCartAnimatie.js?v=20260806180032", {
- "headers": {
- "accept": "text/javascript, application/javascript, application/ecmascript, application/x-ecmascript, */*; q=0.01",
- "sec-ch-ua": "\"Not(A:Brand\";v=\"8\", \"Chromium\";v=\"144\"",
- "sec-ch-ua-mobile": "?0",
- "sec-ch-ua-platform": "\"Windows\"",
- "x-requested-with": "XMLHttpRequest",
- "Referer": "https://www.ztdq.com/search/match?keyword=3xLMZ1-0.5"
- },
- "body": null,
- "method": "GET"
-}); ;
-fetch("https://static.gongkongsaas.com/static/images/select_model.png", {
- "headers": {
- "accept": "image/avif,image/webp,image/apng,image/svg+xml,image/*,*/*;q=0.8",
- "accept-language": "zh-CN,zh;q=0.9",
- "if-modified-since": "Mon, 06 Jul 2026 10:09:29 GMT",
- "if-none-match": "\"6a4b7ed9-704\"",
- "priority": "i",
- "sec-ch-ua": "\"Not(A:Brand\";v=\"8\", \"Chromium\";v=\"144\"",
- "sec-ch-ua-mobile": "?0",
- "sec-ch-ua-platform": "\"Windows\"",
- "sec-fetch-dest": "image",
- "sec-fetch-mode": "no-cors",
- "sec-fetch-site": "cross-site",
- "sec-fetch-storage-access": "active",
- "Referer": "https://www.ztdq.com/"
- },
- "body": null,
- "method": "GET"
-}); ;
-fetch("https://www.ztdq.com/static/layui/font/iconfont.woff?v=1.0.9", {
- "headers": {
- "sec-ch-ua": "\"Not(A:Brand\";v=\"8\", \"Chromium\";v=\"144\"",
- "sec-ch-ua-mobile": "?0",
- "sec-ch-ua-platform": "\"Windows\"",
- "Referer": "https://www.ztdq.com/static/layui/css/layui.css"
- },
- "body": null,
- "method": "GET"
-}); ;
-fetch("https://www.ztdq.com/static/images/detail_no_image.jpg", {
- "headers": {
- "sec-ch-ua": "\"Not(A:Brand\";v=\"8\", \"Chromium\";v=\"144\"",
- "sec-ch-ua-mobile": "?0",
- "sec-ch-ua-platform": "\"Windows\"",
- "Referer": "https://www.ztdq.com/search/match?keyword=3xLMZ1-0.5"
- },
- "body": null,
- "method": "GET"
-}); ;
-fetch("https://image.gongkongsaas.com/general/shop/image/2018/08/09/51abfaf8648340dba54ff9529e93c35d.jpg", {
- "headers": {
- "accept": "image/avif,image/webp,image/apng,image/svg+xml,image/*,*/*;q=0.8",
- "accept-language": "zh-CN,zh;q=0.9",
- "priority": "i",
- "sec-ch-ua": "\"Not(A:Brand\";v=\"8\", \"Chromium\";v=\"144\"",
- "sec-ch-ua-mobile": "?0",
- "sec-ch-ua-platform": "\"Windows\"",
- "sec-fetch-dest": "image",
- "sec-fetch-mode": "no-cors",
- "sec-fetch-site": "cross-site",
- "sec-fetch-storage-access": "active",
- "Referer": "https://www.ztdq.com/"
- },
- "body": null,
- "method": "GET"
-}); ;
-fetch("https://www.ztdq.com/search/query/oos-batch-tags", {
- "headers": {
- "accept": "*/*",
- "accept-language": "zh-CN,zh;q=0.9",
- "content-type": "application/json",
- "priority": "u=1, i",
- "sec-ch-ua": "\"Not(A:Brand\";v=\"8\", \"Chromium\";v=\"144\"",
- "sec-ch-ua-mobile": "?0",
- "sec-ch-ua-platform": "\"Windows\"",
- "sec-fetch-dest": "empty",
- "sec-fetch-mode": "cors",
- "sec-fetch-site": "same-origin",
- "x-requested-with": "XMLHttpRequest",
- "cookie": "select_channel_pattern=; GUID=guid.84a8344f778096e7d29e84724df70962; areaCityCode=650100; areaProvinceCode=650000; traceId=bbcd1cf0cca12f0140131ba672552832",
- "Referer": "https://www.ztdq.com/search/match?keyword=3xLMZ1-0.5"
- },
- "body": "{\"pageType\":\"search\",\"items\":[{\"params\":[\"电流变比:600/5\",\"额定容量:5-3.75VA\",\"额定电压:500V\"],\"smId\":304329894},{\"params\":[\"电流变比:500/5\",\"额定容量:5-3.75VA\",\"额定电压:500V\"],\"smId\":304329893},{\"params\":[\"电流变比:400/5\",\"额定容量:5-3.75VA\",\"额定电压:500V\"],\"smId\":304329892},{\"params\":[\"电流变比:200/5\",\"额定容量:5-3.75VA\",\"额定电压:500V\"],\"smId\":304329889},{\"params\":[\"电流变比:300/5\",\"额定容量:5-3.75VA\",\"额定电压:500V\"],\"smId\":304329891},{\"params\":[\"电流变比:800/5\",\"额定容量:10-3.75VA\",\"额定电压:500V\"],\"smId\":304329895}]}",
- "method": "POST"
-});
\ No newline at end of file
diff --git a/cadbt/cadbt/cadcj/新建项目.cs b/cadbt/cadbt/cadcj/新建项目.cs
deleted file mode 100644
index 494c388..0000000
--- a/cadbt/cadbt/cadcj/新建项目.cs
+++ /dev/null
@@ -1,132 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Windows.Forms;
-
-namespace MyApp
-{
- ///
- /// 新建项目 窗口(简化版,不依赖企业信息)。
- /// UI 布局见 新建项目.ui.cs,本文件只含交互逻辑。
- ///
- public partial class 新建项目 : Form
- {
- // 价格格式化选项(与主项目 价格格式化.cs 保持一致)
- private static readonly string[] 小数位选项 =
- {
- "保留整数", "保留1位小数", "保留2位小数", "保留3位小数",
- "保留4位小数", "保留5位小数", "保留6位小数"
- };
- private static readonly string[] 取整方式选项 =
- {
- "不取整", "四舍五入", "四舍五入到角", "四舍五入到元",
- "四舍五入到十元", "向上取整到元", "最近5元", "最近10元"
- };
-
- private readonly string _dbPath;
- private readonly string _tableName;
-
- public 新建项目() : this(null, null) { }
-
- /// 带数据库路径的构造函数(用于自动生成项目编号)。
- public 新建项目(string dbPath, string tableName)
- {
- InitializeComponent();
- _dbPath = dbPath;
- _tableName = tableName;
- InitPriceFormatCombos();
- this.Load += 新建项目_Load;
- }
-
- private void InitPriceFormatCombos()
- {
- cmb单台价格.Items.Clear();
- cmb单台价格.Items.AddRange(小数位选项);
- cmb项目总价.Items.Clear();
- cmb项目总价.Items.AddRange(小数位选项);
- comboBox1.Items.Clear();
- comboBox1.Items.AddRange(取整方式选项);
- comboBox2.Items.Clear();
- comboBox2.Items.AddRange(取整方式选项);
- }
-
- private void 新建项目_Load(object sender, EventArgs e)
- {
- FillAutoFields();
- }
-
- /// 自动填充项目日期(当天)和项目编号(yyyyMMdd+3位序号)。
- private void FillAutoFields()
- {
- DateTime today = DateTime.Today;
- txt项目日期.Text = today.ToString("yyyy-MM-dd");
-
- string datePart = today.ToString("yyyyMMdd");
- int seq = GetNextSeqForDate(datePart);
- txt项目编号.Text = datePart + seq.ToString("000");
- txt项目编号.ReadOnly = true;
- txt项目编号.TabStop = false;
- txt项目编号.BackColor = System.Drawing.SystemColors.Control;
- }
-
- /// 查数据库当天最大序号+1,失败返回1。
- private int GetNextSeqForDate(string datePart)
- {
- if (string.IsNullOrEmpty(datePart) ||
- string.IsNullOrEmpty(_dbPath) ||
- string.IsNullOrEmpty(_tableName) ||
- !System.IO.File.Exists(_dbPath))
- {
- return 1;
- }
- try
- {
- string connStr = "Data Source=" + _dbPath + ";Version=3;";
- using (var conn = new System.Data.SQLite.SQLiteConnection(connStr))
- {
- conn.Open();
- string sql =
- "SELECT MAX(CAST(SUBSTR(项目编号, 9) AS INTEGER)) " +
- "FROM " + _tableName + " " +
- "WHERE SUBSTR(项目编号, 1, 8) = '" + datePart + "';";
- using (var cmd = new System.Data.SQLite.SQLiteCommand(sql, conn))
- {
- object result = cmd.ExecuteScalar();
- if (result == null || result == DBNull.Value) return 1;
- int maxSeq;
- if (int.TryParse(result.ToString(), out maxSeq)) return maxSeq + 1;
- return 1;
- }
- }
- }
- catch { return 1; }
- }
-
- /// 收集对话框字段,以列名为键返回(供 Form3 写入数据库)。
- public Dictionary GetInputValues()
- {
- var values = new Dictionary();
- AddIfNotEmpty(values, "项目编号", txt项目编号.Text);
- AddIfNotEmpty(values, "项目日期", txt项目日期.Text);
- AddIfNotEmpty(values, "项目名称", txt项目名称.Text);
- AddIfNotEmpty(values, "客户名称", txt客户名称.Text);
- AddIfNotEmpty(values, "客户地址", txt客户地址.Text);
- AddIfNotEmpty(values, "联系人", txt联系人.Text);
- AddIfNotEmpty(values, "联系电话", txt联系电话.Text);
- AddIfNotEmpty(values, "备注", txt备注.Text);
- AddIfNotEmpty(values, "成套厂名称", txt成套厂名称.Text);
- AddIfNotEmpty(values, "成套厂地址", txt成套厂地址.Text);
- AddIfNotEmpty(values, "成套厂联系人", txt成套厂联系人.Text);
- AddIfNotEmpty(values, "成套厂联系电话", txt成套厂联系电话.Text);
- values["单台小数位"] = (cmb单台价格.SelectedItem ?? cmb单台价格.Text ?? "").ToString();
- values["项目小数位"] = (cmb项目总价.SelectedItem ?? cmb项目总价.Text ?? "").ToString();
- values["单台取整方式"] = (comboBox1.SelectedItem ?? comboBox1.Text ?? "").ToString();
- values["项目取整方式"] = (comboBox2.SelectedItem ?? comboBox2.Text ?? "").ToString();
- return values;
- }
-
- private static void AddIfNotEmpty(Dictionary dict, string key, string value)
- {
- if (!string.IsNullOrWhiteSpace(value)) dict[key] = value.Trim();
- }
- }
-}
diff --git a/cadbt/cadbt/cadcj/新建项目.ui.cs b/cadbt/cadbt/cadcj/新建项目.ui.cs
deleted file mode 100644
index 37aeee3..0000000
--- a/cadbt/cadbt/cadcj/新建项目.ui.cs
+++ /dev/null
@@ -1,1337 +0,0 @@
-namespace MyApp
-{
- public partial class 新建项目 : System.Windows.Forms.Form
- {
- /// 必需的设计器变量。
- private System.ComponentModel.IContainer components = null;
-
- /// 清理正在使用的资源。
- protected override void Dispose(bool disposing)
- {
- if (disposing && (components != null))
- {
- components.Dispose();
- }
- base.Dispose(disposing);
- }
-
- #region Windows 窗体设计器生成的代码
-
- private void InitializeComponent()
- {
- this.components = new System.ComponentModel.Container();
-
- this.lbl项目编号 = new System.Windows.Forms.Label();
- this.txt项目编号 = new System.Windows.Forms.TextBox();
- this.lbl项目日期 = new System.Windows.Forms.Label();
- this.txt项目日期 = new System.Windows.Forms.TextBox();
- this.lbl项目名称 = new System.Windows.Forms.Label();
- this.txt项目名称 = new System.Windows.Forms.TextBox();
- this.lbl客户名称 = new System.Windows.Forms.Label();
- this.txt客户名称 = new System.Windows.Forms.TextBox();
- this.btn选择客户 = new System.Windows.Forms.Button();
- this.lbl客户地址 = new System.Windows.Forms.Label();
- this.txt客户地址 = new System.Windows.Forms.TextBox();
- this.lbl联系人 = new System.Windows.Forms.Label();
- this.txt联系人 = new System.Windows.Forms.TextBox();
- this.lbl联系电话 = new System.Windows.Forms.Label();
- this.txt联系电话 = new System.Windows.Forms.TextBox();
- this.lbl成套厂名称 = new System.Windows.Forms.Label();
- this.txt成套厂名称 = new System.Windows.Forms.TextBox();
- this.lbl成套厂地址 = new System.Windows.Forms.Label();
- this.txt成套厂地址 = new System.Windows.Forms.TextBox();
- this.lbl成套厂联系人 = new System.Windows.Forms.Label();
- this.txt成套厂联系人 = new System.Windows.Forms.TextBox();
- this.lbl成套厂联系电话 = new System.Windows.Forms.Label();
- this.txt成套厂联系电话 = new System.Windows.Forms.TextBox();
- this.lbl报出方式 = new System.Windows.Forms.Label();
- this.cmb报出方式 = new System.Windows.Forms.ComboBox();
- this.lbl箱柜模板 = new System.Windows.Forms.Label();
- this.cmb箱柜模板 = new System.Windows.Forms.ComboBox();
- this.lbl单台价格 = new System.Windows.Forms.Label();
- this.cmb单台价格 = new System.Windows.Forms.ComboBox();
- this.lbl项目总价 = new System.Windows.Forms.Label();
- this.lbl备注 = new System.Windows.Forms.Label();
- this.txt备注 = new System.Windows.Forms.TextBox();
- this.btn确定 = new System.Windows.Forms.Button();
- this.btn取消 = new System.Windows.Forms.Button();
- this.comboBox1 = new System.Windows.Forms.ComboBox();
- this.label1 = new System.Windows.Forms.Label();
- this.label2 = new System.Windows.Forms.Label();
- this.comboBox2 = new System.Windows.Forms.ComboBox();
- this.cmb项目总价 = new System.Windows.Forms.ComboBox();
- this.SuspendLayout();
- //
- // lbl项目编号
- //
- this.lbl项目编号.Dock = System.Windows.Forms.DockStyle.None;
- this.lbl项目编号.AutoSize = false;
- this.lbl项目编号.AutoEllipsis = false;
- this.lbl项目编号.BorderStyle = System.Windows.Forms.BorderStyle.None;
- this.lbl项目编号.FlatStyle = System.Windows.Forms.FlatStyle.Standard;
- this.lbl项目编号.ImageAlign = System.Drawing.ContentAlignment.MiddleCenter;
- this.lbl项目编号.LiveSetting = System.Windows.Forms.Automation.AutomationLiveSetting.Off;
- this.lbl项目编号.TextAlign = System.Drawing.ContentAlignment.MiddleRight;
- this.lbl项目编号.UseCompatibleTextRendering = false;
- this.lbl项目编号.UseMnemonic = true;
- this.lbl项目编号.BackColor = System.Drawing.SystemColors.Control;
- this.lbl项目编号.Enabled = true;
- this.lbl项目编号.Font = new System.Drawing.Font("宋体", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point);
- this.lbl项目编号.ForeColor = System.Drawing.SystemColors.ControlText;
- this.lbl项目编号.Margin = new System.Windows.Forms.Padding(3, 0, 3, 0);
- this.lbl项目编号.MaximumSize = new System.Drawing.Size(0, 0);
- this.lbl项目编号.MinimumSize = new System.Drawing.Size(0, 0);
- this.lbl项目编号.TabIndex = 0;
- this.lbl项目编号.Padding = new System.Windows.Forms.Padding(0, 0, 0, 0);
- this.lbl项目编号.Size = new System.Drawing.Size(70, 23);
- this.lbl项目编号.Location = new System.Drawing.Point(20, 25);
- this.lbl项目编号.Text = "项目编号:";
- this.lbl项目编号.Name = "lbl项目编号";
-
- //
- // txt项目编号
- //
- this.txt项目编号.Dock = System.Windows.Forms.DockStyle.None;
- this.txt项目编号.AcceptsReturn = false;
- this.txt项目编号.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.None;
- this.txt项目编号.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.None;
- this.txt项目编号.CharacterCasing = System.Windows.Forms.CharacterCasing.Normal;
- this.txt项目编号.Multiline = false;
- this.txt项目编号.ScrollBars = System.Windows.Forms.ScrollBars.None;
- this.txt项目编号.TextAlign = System.Windows.Forms.HorizontalAlignment.Left;
- this.txt项目编号.UseSystemPasswordChar = false;
- this.txt项目编号.AcceptsTab = false;
- this.txt项目编号.ShortcutsEnabled = true;
- this.txt项目编号.BackColor = System.Drawing.SystemColors.Window;
- this.txt项目编号.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D;
- this.txt项目编号.ForeColor = System.Drawing.SystemColors.WindowText;
- this.txt项目编号.HideSelection = true;
- this.txt项目编号.MaxLength = 32767;
- this.txt项目编号.ReadOnly = false;
- this.txt项目编号.WordWrap = true;
- this.txt项目编号.Enabled = true;
- this.txt项目编号.Font = new System.Drawing.Font("宋体", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point);
- this.txt项目编号.Margin = new System.Windows.Forms.Padding(3, 3, 3, 3);
- this.txt项目编号.MaximumSize = new System.Drawing.Size(0, 0);
- this.txt项目编号.MinimumSize = new System.Drawing.Size(0, 0);
- this.txt项目编号.TabIndex = 0;
- this.txt项目编号.TabStop = true;
- this.txt项目编号.Size = new System.Drawing.Size(220, 21);
- this.txt项目编号.Location = new System.Drawing.Point(95, 25);
- this.txt项目编号.Name = "txt项目编号";
-
- //
- // lbl项目日期
- //
- this.lbl项目日期.Dock = System.Windows.Forms.DockStyle.None;
- this.lbl项目日期.AutoSize = false;
- this.lbl项目日期.AutoEllipsis = false;
- this.lbl项目日期.BorderStyle = System.Windows.Forms.BorderStyle.None;
- this.lbl项目日期.FlatStyle = System.Windows.Forms.FlatStyle.Standard;
- this.lbl项目日期.ImageAlign = System.Drawing.ContentAlignment.MiddleCenter;
- this.lbl项目日期.LiveSetting = System.Windows.Forms.Automation.AutomationLiveSetting.Off;
- this.lbl项目日期.TextAlign = System.Drawing.ContentAlignment.TopLeft;
- this.lbl项目日期.UseCompatibleTextRendering = false;
- this.lbl项目日期.UseMnemonic = true;
- this.lbl项目日期.BackColor = System.Drawing.SystemColors.Control;
- this.lbl项目日期.Enabled = true;
- this.lbl项目日期.Font = new System.Drawing.Font("宋体", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point);
- this.lbl项目日期.ForeColor = System.Drawing.SystemColors.ControlText;
- this.lbl项目日期.Margin = new System.Windows.Forms.Padding(3, 0, 3, 0);
- this.lbl项目日期.MaximumSize = new System.Drawing.Size(0, 0);
- this.lbl项目日期.MinimumSize = new System.Drawing.Size(0, 0);
- this.lbl项目日期.TabIndex = 1;
- this.lbl项目日期.Padding = new System.Windows.Forms.Padding(0, 0, 0, 0);
- this.lbl项目日期.Size = new System.Drawing.Size(70, 18);
- this.lbl项目日期.Location = new System.Drawing.Point(380, 28);
- this.lbl项目日期.Text = "项目日期:";
- this.lbl项目日期.Name = "lbl项目日期";
-
- //
- // txt项目日期
- //
- this.txt项目日期.Dock = System.Windows.Forms.DockStyle.None;
- this.txt项目日期.AcceptsReturn = false;
- this.txt项目日期.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.None;
- this.txt项目日期.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.None;
- this.txt项目日期.CharacterCasing = System.Windows.Forms.CharacterCasing.Normal;
- this.txt项目日期.Multiline = false;
- this.txt项目日期.ScrollBars = System.Windows.Forms.ScrollBars.None;
- this.txt项目日期.TextAlign = System.Windows.Forms.HorizontalAlignment.Left;
- this.txt项目日期.UseSystemPasswordChar = false;
- this.txt项目日期.AcceptsTab = false;
- this.txt项目日期.ShortcutsEnabled = true;
- this.txt项目日期.BackColor = System.Drawing.SystemColors.Window;
- this.txt项目日期.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D;
- this.txt项目日期.ForeColor = System.Drawing.SystemColors.WindowText;
- this.txt项目日期.HideSelection = true;
- this.txt项目日期.MaxLength = 32767;
- this.txt项目日期.ReadOnly = false;
- this.txt项目日期.WordWrap = true;
- this.txt项目日期.Enabled = true;
- this.txt项目日期.Font = new System.Drawing.Font("宋体", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point);
- this.txt项目日期.Margin = new System.Windows.Forms.Padding(3, 3, 3, 3);
- this.txt项目日期.MaximumSize = new System.Drawing.Size(0, 0);
- this.txt项目日期.MinimumSize = new System.Drawing.Size(0, 0);
- this.txt项目日期.TabIndex = 1;
- this.txt项目日期.TabStop = true;
- this.txt项目日期.Size = new System.Drawing.Size(210, 21);
- this.txt项目日期.Location = new System.Drawing.Point(455, 25);
- this.txt项目日期.Name = "txt项目日期";
-
- //
- // lbl项目名称
- //
- this.lbl项目名称.Dock = System.Windows.Forms.DockStyle.None;
- this.lbl项目名称.AutoSize = false;
- this.lbl项目名称.AutoEllipsis = false;
- this.lbl项目名称.BorderStyle = System.Windows.Forms.BorderStyle.None;
- this.lbl项目名称.FlatStyle = System.Windows.Forms.FlatStyle.Standard;
- this.lbl项目名称.ImageAlign = System.Drawing.ContentAlignment.MiddleCenter;
- this.lbl项目名称.LiveSetting = System.Windows.Forms.Automation.AutomationLiveSetting.Off;
- this.lbl项目名称.TextAlign = System.Drawing.ContentAlignment.MiddleRight;
- this.lbl项目名称.UseCompatibleTextRendering = false;
- this.lbl项目名称.UseMnemonic = true;
- this.lbl项目名称.BackColor = System.Drawing.SystemColors.Control;
- this.lbl项目名称.Enabled = true;
- this.lbl项目名称.Font = new System.Drawing.Font("宋体", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point);
- this.lbl项目名称.ForeColor = System.Drawing.SystemColors.ControlText;
- this.lbl项目名称.Margin = new System.Windows.Forms.Padding(3, 0, 3, 0);
- this.lbl项目名称.MaximumSize = new System.Drawing.Size(0, 0);
- this.lbl项目名称.MinimumSize = new System.Drawing.Size(0, 0);
- this.lbl项目名称.TabIndex = 2;
- this.lbl项目名称.Padding = new System.Windows.Forms.Padding(0, 0, 0, 0);
- this.lbl项目名称.Size = new System.Drawing.Size(70, 23);
- this.lbl项目名称.Location = new System.Drawing.Point(20, 55);
- this.lbl项目名称.Text = "项目名称:";
- this.lbl项目名称.Name = "lbl项目名称";
-
- //
- // txt项目名称
- //
- this.txt项目名称.Dock = System.Windows.Forms.DockStyle.None;
- this.txt项目名称.AcceptsReturn = false;
- this.txt项目名称.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.None;
- this.txt项目名称.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.None;
- this.txt项目名称.CharacterCasing = System.Windows.Forms.CharacterCasing.Normal;
- this.txt项目名称.Multiline = false;
- this.txt项目名称.ScrollBars = System.Windows.Forms.ScrollBars.None;
- this.txt项目名称.TextAlign = System.Windows.Forms.HorizontalAlignment.Left;
- this.txt项目名称.UseSystemPasswordChar = false;
- this.txt项目名称.AcceptsTab = false;
- this.txt项目名称.ShortcutsEnabled = true;
- this.txt项目名称.BackColor = System.Drawing.SystemColors.Window;
- this.txt项目名称.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D;
- this.txt项目名称.ForeColor = System.Drawing.SystemColors.WindowText;
- this.txt项目名称.HideSelection = true;
- this.txt项目名称.MaxLength = 32767;
- this.txt项目名称.ReadOnly = false;
- this.txt项目名称.WordWrap = true;
- this.txt项目名称.Enabled = true;
- this.txt项目名称.Font = new System.Drawing.Font("宋体", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point);
- this.txt项目名称.Margin = new System.Windows.Forms.Padding(3, 3, 3, 3);
- this.txt项目名称.MaximumSize = new System.Drawing.Size(0, 0);
- this.txt项目名称.MinimumSize = new System.Drawing.Size(0, 0);
- this.txt项目名称.TabIndex = 2;
- this.txt项目名称.TabStop = true;
- this.txt项目名称.Size = new System.Drawing.Size(570, 21);
- this.txt项目名称.Location = new System.Drawing.Point(95, 55);
- this.txt项目名称.Name = "txt项目名称";
-
- //
- // lbl客户名称
- //
- this.lbl客户名称.Dock = System.Windows.Forms.DockStyle.None;
- this.lbl客户名称.AutoSize = false;
- this.lbl客户名称.AutoEllipsis = false;
- this.lbl客户名称.BorderStyle = System.Windows.Forms.BorderStyle.None;
- this.lbl客户名称.FlatStyle = System.Windows.Forms.FlatStyle.Standard;
- this.lbl客户名称.ImageAlign = System.Drawing.ContentAlignment.MiddleCenter;
- this.lbl客户名称.LiveSetting = System.Windows.Forms.Automation.AutomationLiveSetting.Off;
- this.lbl客户名称.TextAlign = System.Drawing.ContentAlignment.MiddleRight;
- this.lbl客户名称.UseCompatibleTextRendering = false;
- this.lbl客户名称.UseMnemonic = true;
- this.lbl客户名称.BackColor = System.Drawing.SystemColors.Control;
- this.lbl客户名称.Enabled = true;
- this.lbl客户名称.Font = new System.Drawing.Font("宋体", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point);
- this.lbl客户名称.ForeColor = System.Drawing.SystemColors.ControlText;
- this.lbl客户名称.Margin = new System.Windows.Forms.Padding(3, 0, 3, 0);
- this.lbl客户名称.MaximumSize = new System.Drawing.Size(0, 0);
- this.lbl客户名称.MinimumSize = new System.Drawing.Size(0, 0);
- this.lbl客户名称.TabIndex = 3;
- this.lbl客户名称.Padding = new System.Windows.Forms.Padding(0, 0, 0, 0);
- this.lbl客户名称.Size = new System.Drawing.Size(70, 23);
- this.lbl客户名称.Location = new System.Drawing.Point(20, 85);
- this.lbl客户名称.Text = "客户名称:";
- this.lbl客户名称.Name = "lbl客户名称";
-
- //
- // txt客户名称
- //
- this.txt客户名称.Dock = System.Windows.Forms.DockStyle.None;
- this.txt客户名称.AcceptsReturn = false;
- this.txt客户名称.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.None;
- this.txt客户名称.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.None;
- this.txt客户名称.CharacterCasing = System.Windows.Forms.CharacterCasing.Normal;
- this.txt客户名称.Multiline = false;
- this.txt客户名称.ScrollBars = System.Windows.Forms.ScrollBars.None;
- this.txt客户名称.TextAlign = System.Windows.Forms.HorizontalAlignment.Left;
- this.txt客户名称.UseSystemPasswordChar = false;
- this.txt客户名称.AcceptsTab = false;
- this.txt客户名称.ShortcutsEnabled = true;
- this.txt客户名称.BackColor = System.Drawing.SystemColors.Window;
- this.txt客户名称.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D;
- this.txt客户名称.ForeColor = System.Drawing.SystemColors.WindowText;
- this.txt客户名称.HideSelection = true;
- this.txt客户名称.MaxLength = 32767;
- this.txt客户名称.ReadOnly = false;
- this.txt客户名称.WordWrap = true;
- this.txt客户名称.Enabled = true;
- this.txt客户名称.Font = new System.Drawing.Font("宋体", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point);
- this.txt客户名称.Margin = new System.Windows.Forms.Padding(3, 3, 3, 3);
- this.txt客户名称.MaximumSize = new System.Drawing.Size(0, 0);
- this.txt客户名称.MinimumSize = new System.Drawing.Size(0, 0);
- this.txt客户名称.TabIndex = 3;
- this.txt客户名称.TabStop = true;
- this.txt客户名称.Size = new System.Drawing.Size(479, 21);
- this.txt客户名称.Location = new System.Drawing.Point(95, 85);
- this.txt客户名称.Name = "txt客户名称";
-
- //
- // btn选择客户
- //
- this.btn选择客户.Dock = System.Windows.Forms.DockStyle.None;
- this.btn选择客户.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowOnly;
- this.btn选择客户.DialogResult = System.Windows.Forms.DialogResult.None;
- this.btn选择客户.AutoEllipsis = false;
- this.btn选择客户.AutoSize = false;
- this.btn选择客户.BackColor = System.Drawing.SystemColors.Control;
- this.btn选择客户.FlatStyle = System.Windows.Forms.FlatStyle.Standard;
- this.btn选择客户.ImageAlign = System.Drawing.ContentAlignment.MiddleCenter;
- this.btn选择客户.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
- this.btn选择客户.TextImageRelation = System.Windows.Forms.TextImageRelation.Overlay;
- this.btn选择客户.UseMnemonic = true;
- this.btn选择客户.UseCompatibleTextRendering = false;
- this.btn选择客户.UseVisualStyleBackColor = true;
- this.btn选择客户.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Tile;
- this.btn选择客户.Enabled = true;
- this.btn选择客户.Font = new System.Drawing.Font("宋体", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point);
- this.btn选择客户.ForeColor = System.Drawing.SystemColors.ControlText;
- this.btn选择客户.Margin = new System.Windows.Forms.Padding(3, 3, 3, 3);
- this.btn选择客户.MaximumSize = new System.Drawing.Size(0, 0);
- this.btn选择客户.MinimumSize = new System.Drawing.Size(0, 0);
- this.btn选择客户.TabIndex = 4;
- this.btn选择客户.TabStop = true;
- this.btn选择客户.Padding = new System.Windows.Forms.Padding(0, 0, 0, 0);
- this.btn选择客户.Size = new System.Drawing.Size(85, 23);
- this.btn选择客户.Location = new System.Drawing.Point(580, 85);
- this.btn选择客户.Text = "选择客户";
- this.btn选择客户.Name = "btn选择客户";
-
- //
- // lbl客户地址
- //
- this.lbl客户地址.Dock = System.Windows.Forms.DockStyle.None;
- this.lbl客户地址.AutoSize = false;
- this.lbl客户地址.AutoEllipsis = false;
- this.lbl客户地址.BorderStyle = System.Windows.Forms.BorderStyle.None;
- this.lbl客户地址.FlatStyle = System.Windows.Forms.FlatStyle.Standard;
- this.lbl客户地址.ImageAlign = System.Drawing.ContentAlignment.MiddleCenter;
- this.lbl客户地址.LiveSetting = System.Windows.Forms.Automation.AutomationLiveSetting.Off;
- this.lbl客户地址.TextAlign = System.Drawing.ContentAlignment.MiddleRight;
- this.lbl客户地址.UseCompatibleTextRendering = false;
- this.lbl客户地址.UseMnemonic = true;
- this.lbl客户地址.BackColor = System.Drawing.SystemColors.Control;
- this.lbl客户地址.Enabled = true;
- this.lbl客户地址.Font = new System.Drawing.Font("宋体", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point);
- this.lbl客户地址.ForeColor = System.Drawing.SystemColors.ControlText;
- this.lbl客户地址.Margin = new System.Windows.Forms.Padding(3, 0, 3, 0);
- this.lbl客户地址.MaximumSize = new System.Drawing.Size(0, 0);
- this.lbl客户地址.MinimumSize = new System.Drawing.Size(0, 0);
- this.lbl客户地址.TabIndex = 5;
- this.lbl客户地址.Padding = new System.Windows.Forms.Padding(0, 0, 0, 0);
- this.lbl客户地址.Size = new System.Drawing.Size(70, 23);
- this.lbl客户地址.Location = new System.Drawing.Point(20, 115);
- this.lbl客户地址.Text = "客户地址:";
- this.lbl客户地址.Name = "lbl客户地址";
-
- //
- // txt客户地址
- //
- this.txt客户地址.Dock = System.Windows.Forms.DockStyle.None;
- this.txt客户地址.AcceptsReturn = false;
- this.txt客户地址.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.None;
- this.txt客户地址.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.None;
- this.txt客户地址.CharacterCasing = System.Windows.Forms.CharacterCasing.Normal;
- this.txt客户地址.Multiline = false;
- this.txt客户地址.ScrollBars = System.Windows.Forms.ScrollBars.None;
- this.txt客户地址.TextAlign = System.Windows.Forms.HorizontalAlignment.Left;
- this.txt客户地址.UseSystemPasswordChar = false;
- this.txt客户地址.AcceptsTab = false;
- this.txt客户地址.ShortcutsEnabled = true;
- this.txt客户地址.BackColor = System.Drawing.SystemColors.Window;
- this.txt客户地址.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D;
- this.txt客户地址.ForeColor = System.Drawing.SystemColors.WindowText;
- this.txt客户地址.HideSelection = true;
- this.txt客户地址.MaxLength = 32767;
- this.txt客户地址.ReadOnly = false;
- this.txt客户地址.WordWrap = true;
- this.txt客户地址.Enabled = true;
- this.txt客户地址.Font = new System.Drawing.Font("宋体", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point);
- this.txt客户地址.Margin = new System.Windows.Forms.Padding(3, 3, 3, 3);
- this.txt客户地址.MaximumSize = new System.Drawing.Size(0, 0);
- this.txt客户地址.MinimumSize = new System.Drawing.Size(0, 0);
- this.txt客户地址.TabIndex = 5;
- this.txt客户地址.TabStop = true;
- this.txt客户地址.Size = new System.Drawing.Size(570, 21);
- this.txt客户地址.Location = new System.Drawing.Point(95, 115);
- this.txt客户地址.Name = "txt客户地址";
-
- //
- // lbl联系人
- //
- this.lbl联系人.Dock = System.Windows.Forms.DockStyle.None;
- this.lbl联系人.AutoSize = false;
- this.lbl联系人.AutoEllipsis = false;
- this.lbl联系人.BorderStyle = System.Windows.Forms.BorderStyle.None;
- this.lbl联系人.FlatStyle = System.Windows.Forms.FlatStyle.Standard;
- this.lbl联系人.ImageAlign = System.Drawing.ContentAlignment.MiddleCenter;
- this.lbl联系人.LiveSetting = System.Windows.Forms.Automation.AutomationLiveSetting.Off;
- this.lbl联系人.TextAlign = System.Drawing.ContentAlignment.MiddleRight;
- this.lbl联系人.UseCompatibleTextRendering = false;
- this.lbl联系人.UseMnemonic = true;
- this.lbl联系人.BackColor = System.Drawing.SystemColors.Control;
- this.lbl联系人.Enabled = true;
- this.lbl联系人.Font = new System.Drawing.Font("宋体", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point);
- this.lbl联系人.ForeColor = System.Drawing.SystemColors.ControlText;
- this.lbl联系人.Margin = new System.Windows.Forms.Padding(3, 0, 3, 0);
- this.lbl联系人.MaximumSize = new System.Drawing.Size(0, 0);
- this.lbl联系人.MinimumSize = new System.Drawing.Size(0, 0);
- this.lbl联系人.TabIndex = 6;
- this.lbl联系人.Padding = new System.Windows.Forms.Padding(0, 0, 0, 0);
- this.lbl联系人.Size = new System.Drawing.Size(60, 23);
- this.lbl联系人.Location = new System.Drawing.Point(30, 145);
- this.lbl联系人.Text = "联系人:";
- this.lbl联系人.Name = "lbl联系人";
-
- //
- // txt联系人
- //
- this.txt联系人.Dock = System.Windows.Forms.DockStyle.None;
- this.txt联系人.AcceptsReturn = false;
- this.txt联系人.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.None;
- this.txt联系人.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.None;
- this.txt联系人.CharacterCasing = System.Windows.Forms.CharacterCasing.Normal;
- this.txt联系人.Multiline = false;
- this.txt联系人.ScrollBars = System.Windows.Forms.ScrollBars.None;
- this.txt联系人.TextAlign = System.Windows.Forms.HorizontalAlignment.Left;
- this.txt联系人.UseSystemPasswordChar = false;
- this.txt联系人.AcceptsTab = false;
- this.txt联系人.ShortcutsEnabled = true;
- this.txt联系人.BackColor = System.Drawing.SystemColors.Window;
- this.txt联系人.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D;
- this.txt联系人.ForeColor = System.Drawing.SystemColors.WindowText;
- this.txt联系人.HideSelection = true;
- this.txt联系人.MaxLength = 32767;
- this.txt联系人.ReadOnly = false;
- this.txt联系人.WordWrap = true;
- this.txt联系人.Enabled = true;
- this.txt联系人.Font = new System.Drawing.Font("宋体", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point);
- this.txt联系人.Margin = new System.Windows.Forms.Padding(3, 3, 3, 3);
- this.txt联系人.MaximumSize = new System.Drawing.Size(0, 0);
- this.txt联系人.MinimumSize = new System.Drawing.Size(0, 0);
- this.txt联系人.TabIndex = 6;
- this.txt联系人.TabStop = true;
- this.txt联系人.Size = new System.Drawing.Size(220, 21);
- this.txt联系人.Location = new System.Drawing.Point(95, 145);
- this.txt联系人.Name = "txt联系人";
-
- //
- // lbl联系电话
- //
- this.lbl联系电话.Dock = System.Windows.Forms.DockStyle.None;
- this.lbl联系电话.AutoSize = false;
- this.lbl联系电话.AutoEllipsis = false;
- this.lbl联系电话.BorderStyle = System.Windows.Forms.BorderStyle.None;
- this.lbl联系电话.FlatStyle = System.Windows.Forms.FlatStyle.Standard;
- this.lbl联系电话.ImageAlign = System.Drawing.ContentAlignment.MiddleCenter;
- this.lbl联系电话.LiveSetting = System.Windows.Forms.Automation.AutomationLiveSetting.Off;
- this.lbl联系电话.TextAlign = System.Drawing.ContentAlignment.TopLeft;
- this.lbl联系电话.UseCompatibleTextRendering = false;
- this.lbl联系电话.UseMnemonic = true;
- this.lbl联系电话.BackColor = System.Drawing.SystemColors.Control;
- this.lbl联系电话.Enabled = true;
- this.lbl联系电话.Font = new System.Drawing.Font("宋体", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point);
- this.lbl联系电话.ForeColor = System.Drawing.SystemColors.ControlText;
- this.lbl联系电话.Margin = new System.Windows.Forms.Padding(3, 0, 3, 0);
- this.lbl联系电话.MaximumSize = new System.Drawing.Size(0, 0);
- this.lbl联系电话.MinimumSize = new System.Drawing.Size(0, 0);
- this.lbl联系电话.TabIndex = 7;
- this.lbl联系电话.Padding = new System.Windows.Forms.Padding(0, 0, 0, 0);
- this.lbl联系电话.Size = new System.Drawing.Size(70, 21);
- this.lbl联系电话.Location = new System.Drawing.Point(380, 145);
- this.lbl联系电话.Text = "联系电话:";
- this.lbl联系电话.Name = "lbl联系电话";
-
- //
- // txt联系电话
- //
- this.txt联系电话.Dock = System.Windows.Forms.DockStyle.None;
- this.txt联系电话.AcceptsReturn = false;
- this.txt联系电话.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.None;
- this.txt联系电话.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.None;
- this.txt联系电话.CharacterCasing = System.Windows.Forms.CharacterCasing.Normal;
- this.txt联系电话.Multiline = false;
- this.txt联系电话.ScrollBars = System.Windows.Forms.ScrollBars.None;
- this.txt联系电话.TextAlign = System.Windows.Forms.HorizontalAlignment.Left;
- this.txt联系电话.UseSystemPasswordChar = false;
- this.txt联系电话.AcceptsTab = false;
- this.txt联系电话.ShortcutsEnabled = true;
- this.txt联系电话.BackColor = System.Drawing.SystemColors.Window;
- this.txt联系电话.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D;
- this.txt联系电话.ForeColor = System.Drawing.SystemColors.WindowText;
- this.txt联系电话.HideSelection = true;
- this.txt联系电话.MaxLength = 32767;
- this.txt联系电话.ReadOnly = false;
- this.txt联系电话.WordWrap = true;
- this.txt联系电话.Enabled = true;
- this.txt联系电话.Font = new System.Drawing.Font("宋体", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point);
- this.txt联系电话.Margin = new System.Windows.Forms.Padding(3, 3, 3, 3);
- this.txt联系电话.MaximumSize = new System.Drawing.Size(0, 0);
- this.txt联系电话.MinimumSize = new System.Drawing.Size(0, 0);
- this.txt联系电话.TabIndex = 7;
- this.txt联系电话.TabStop = true;
- this.txt联系电话.Size = new System.Drawing.Size(210, 21);
- this.txt联系电话.Location = new System.Drawing.Point(455, 145);
- this.txt联系电话.Name = "txt联系电话";
-
- //
- // lbl成套厂名称
- //
- this.lbl成套厂名称.Dock = System.Windows.Forms.DockStyle.None;
- this.lbl成套厂名称.AutoSize = false;
- this.lbl成套厂名称.AutoEllipsis = false;
- this.lbl成套厂名称.BorderStyle = System.Windows.Forms.BorderStyle.None;
- this.lbl成套厂名称.FlatStyle = System.Windows.Forms.FlatStyle.Standard;
- this.lbl成套厂名称.ImageAlign = System.Drawing.ContentAlignment.MiddleCenter;
- this.lbl成套厂名称.LiveSetting = System.Windows.Forms.Automation.AutomationLiveSetting.Off;
- this.lbl成套厂名称.TextAlign = System.Drawing.ContentAlignment.MiddleRight;
- this.lbl成套厂名称.UseCompatibleTextRendering = false;
- this.lbl成套厂名称.UseMnemonic = true;
- this.lbl成套厂名称.BackColor = System.Drawing.SystemColors.Control;
- this.lbl成套厂名称.Enabled = true;
- this.lbl成套厂名称.Font = new System.Drawing.Font("宋体", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point);
- this.lbl成套厂名称.ForeColor = System.Drawing.SystemColors.ControlText;
- this.lbl成套厂名称.Margin = new System.Windows.Forms.Padding(3, 0, 3, 0);
- this.lbl成套厂名称.MaximumSize = new System.Drawing.Size(0, 0);
- this.lbl成套厂名称.MinimumSize = new System.Drawing.Size(0, 0);
- this.lbl成套厂名称.TabIndex = 8;
- this.lbl成套厂名称.Padding = new System.Windows.Forms.Padding(0, 0, 0, 0);
- this.lbl成套厂名称.Size = new System.Drawing.Size(80, 23);
- this.lbl成套厂名称.Location = new System.Drawing.Point(10, 175);
- this.lbl成套厂名称.Text = "成套厂名称:";
- this.lbl成套厂名称.Name = "lbl成套厂名称";
-
- //
- // txt成套厂名称
- //
- this.txt成套厂名称.Dock = System.Windows.Forms.DockStyle.None;
- this.txt成套厂名称.AcceptsReturn = false;
- this.txt成套厂名称.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.None;
- this.txt成套厂名称.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.None;
- this.txt成套厂名称.CharacterCasing = System.Windows.Forms.CharacterCasing.Normal;
- this.txt成套厂名称.Multiline = false;
- this.txt成套厂名称.ScrollBars = System.Windows.Forms.ScrollBars.None;
- this.txt成套厂名称.TextAlign = System.Windows.Forms.HorizontalAlignment.Left;
- this.txt成套厂名称.UseSystemPasswordChar = false;
- this.txt成套厂名称.AcceptsTab = false;
- this.txt成套厂名称.ShortcutsEnabled = true;
- this.txt成套厂名称.BackColor = System.Drawing.SystemColors.Window;
- this.txt成套厂名称.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D;
- this.txt成套厂名称.ForeColor = System.Drawing.SystemColors.WindowText;
- this.txt成套厂名称.HideSelection = true;
- this.txt成套厂名称.MaxLength = 32767;
- this.txt成套厂名称.ReadOnly = false;
- this.txt成套厂名称.WordWrap = true;
- this.txt成套厂名称.Enabled = true;
- this.txt成套厂名称.Font = new System.Drawing.Font("宋体", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point);
- this.txt成套厂名称.Margin = new System.Windows.Forms.Padding(3, 3, 3, 3);
- this.txt成套厂名称.MaximumSize = new System.Drawing.Size(0, 0);
- this.txt成套厂名称.MinimumSize = new System.Drawing.Size(0, 0);
- this.txt成套厂名称.TabIndex = 8;
- this.txt成套厂名称.TabStop = true;
- this.txt成套厂名称.Size = new System.Drawing.Size(570, 21);
- this.txt成套厂名称.Location = new System.Drawing.Point(95, 175);
- this.txt成套厂名称.Name = "txt成套厂名称";
-
- //
- // lbl成套厂地址
- //
- this.lbl成套厂地址.Dock = System.Windows.Forms.DockStyle.None;
- this.lbl成套厂地址.AutoSize = false;
- this.lbl成套厂地址.AutoEllipsis = false;
- this.lbl成套厂地址.BorderStyle = System.Windows.Forms.BorderStyle.None;
- this.lbl成套厂地址.FlatStyle = System.Windows.Forms.FlatStyle.Standard;
- this.lbl成套厂地址.ImageAlign = System.Drawing.ContentAlignment.MiddleCenter;
- this.lbl成套厂地址.LiveSetting = System.Windows.Forms.Automation.AutomationLiveSetting.Off;
- this.lbl成套厂地址.TextAlign = System.Drawing.ContentAlignment.MiddleRight;
- this.lbl成套厂地址.UseCompatibleTextRendering = false;
- this.lbl成套厂地址.UseMnemonic = true;
- this.lbl成套厂地址.BackColor = System.Drawing.SystemColors.Control;
- this.lbl成套厂地址.Enabled = true;
- this.lbl成套厂地址.Font = new System.Drawing.Font("宋体", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point);
- this.lbl成套厂地址.ForeColor = System.Drawing.SystemColors.ControlText;
- this.lbl成套厂地址.Margin = new System.Windows.Forms.Padding(3, 0, 3, 0);
- this.lbl成套厂地址.MaximumSize = new System.Drawing.Size(0, 0);
- this.lbl成套厂地址.MinimumSize = new System.Drawing.Size(0, 0);
- this.lbl成套厂地址.TabIndex = 9;
- this.lbl成套厂地址.Padding = new System.Windows.Forms.Padding(0, 0, 0, 0);
- this.lbl成套厂地址.Size = new System.Drawing.Size(80, 23);
- this.lbl成套厂地址.Location = new System.Drawing.Point(10, 205);
- this.lbl成套厂地址.Text = "成套厂地址:";
- this.lbl成套厂地址.Name = "lbl成套厂地址";
-
- //
- // txt成套厂地址
- //
- this.txt成套厂地址.Dock = System.Windows.Forms.DockStyle.None;
- this.txt成套厂地址.AcceptsReturn = false;
- this.txt成套厂地址.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.None;
- this.txt成套厂地址.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.None;
- this.txt成套厂地址.CharacterCasing = System.Windows.Forms.CharacterCasing.Normal;
- this.txt成套厂地址.Multiline = false;
- this.txt成套厂地址.ScrollBars = System.Windows.Forms.ScrollBars.None;
- this.txt成套厂地址.TextAlign = System.Windows.Forms.HorizontalAlignment.Left;
- this.txt成套厂地址.UseSystemPasswordChar = false;
- this.txt成套厂地址.AcceptsTab = false;
- this.txt成套厂地址.ShortcutsEnabled = true;
- this.txt成套厂地址.BackColor = System.Drawing.SystemColors.Window;
- this.txt成套厂地址.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D;
- this.txt成套厂地址.ForeColor = System.Drawing.SystemColors.WindowText;
- this.txt成套厂地址.HideSelection = true;
- this.txt成套厂地址.MaxLength = 32767;
- this.txt成套厂地址.ReadOnly = false;
- this.txt成套厂地址.WordWrap = true;
- this.txt成套厂地址.Enabled = true;
- this.txt成套厂地址.Font = new System.Drawing.Font("宋体", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point);
- this.txt成套厂地址.Margin = new System.Windows.Forms.Padding(3, 3, 3, 3);
- this.txt成套厂地址.MaximumSize = new System.Drawing.Size(0, 0);
- this.txt成套厂地址.MinimumSize = new System.Drawing.Size(0, 0);
- this.txt成套厂地址.TabIndex = 9;
- this.txt成套厂地址.TabStop = true;
- this.txt成套厂地址.Size = new System.Drawing.Size(570, 21);
- this.txt成套厂地址.Location = new System.Drawing.Point(95, 205);
- this.txt成套厂地址.Name = "txt成套厂地址";
-
- //
- // lbl成套厂联系人
- //
- this.lbl成套厂联系人.Dock = System.Windows.Forms.DockStyle.None;
- this.lbl成套厂联系人.AutoSize = false;
- this.lbl成套厂联系人.AutoEllipsis = false;
- this.lbl成套厂联系人.BorderStyle = System.Windows.Forms.BorderStyle.None;
- this.lbl成套厂联系人.FlatStyle = System.Windows.Forms.FlatStyle.Standard;
- this.lbl成套厂联系人.ImageAlign = System.Drawing.ContentAlignment.MiddleCenter;
- this.lbl成套厂联系人.LiveSetting = System.Windows.Forms.Automation.AutomationLiveSetting.Off;
- this.lbl成套厂联系人.TextAlign = System.Drawing.ContentAlignment.MiddleRight;
- this.lbl成套厂联系人.UseCompatibleTextRendering = false;
- this.lbl成套厂联系人.UseMnemonic = true;
- this.lbl成套厂联系人.BackColor = System.Drawing.SystemColors.Control;
- this.lbl成套厂联系人.Enabled = true;
- this.lbl成套厂联系人.Font = new System.Drawing.Font("宋体", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point);
- this.lbl成套厂联系人.ForeColor = System.Drawing.SystemColors.ControlText;
- this.lbl成套厂联系人.Margin = new System.Windows.Forms.Padding(3, 0, 3, 0);
- this.lbl成套厂联系人.MaximumSize = new System.Drawing.Size(0, 0);
- this.lbl成套厂联系人.MinimumSize = new System.Drawing.Size(0, 0);
- this.lbl成套厂联系人.TabIndex = 10;
- this.lbl成套厂联系人.Padding = new System.Windows.Forms.Padding(0, 0, 0, 0);
- this.lbl成套厂联系人.Size = new System.Drawing.Size(60, 23);
- this.lbl成套厂联系人.Location = new System.Drawing.Point(30, 235);
- this.lbl成套厂联系人.Text = "联系人:";
- this.lbl成套厂联系人.Name = "lbl成套厂联系人";
-
- //
- // txt成套厂联系人
- //
- this.txt成套厂联系人.Dock = System.Windows.Forms.DockStyle.None;
- this.txt成套厂联系人.AcceptsReturn = false;
- this.txt成套厂联系人.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.None;
- this.txt成套厂联系人.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.None;
- this.txt成套厂联系人.CharacterCasing = System.Windows.Forms.CharacterCasing.Normal;
- this.txt成套厂联系人.Multiline = false;
- this.txt成套厂联系人.ScrollBars = System.Windows.Forms.ScrollBars.None;
- this.txt成套厂联系人.TextAlign = System.Windows.Forms.HorizontalAlignment.Left;
- this.txt成套厂联系人.UseSystemPasswordChar = false;
- this.txt成套厂联系人.AcceptsTab = false;
- this.txt成套厂联系人.ShortcutsEnabled = true;
- this.txt成套厂联系人.BackColor = System.Drawing.SystemColors.Window;
- this.txt成套厂联系人.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D;
- this.txt成套厂联系人.ForeColor = System.Drawing.SystemColors.WindowText;
- this.txt成套厂联系人.HideSelection = true;
- this.txt成套厂联系人.MaxLength = 32767;
- this.txt成套厂联系人.ReadOnly = false;
- this.txt成套厂联系人.WordWrap = true;
- this.txt成套厂联系人.Enabled = true;
- this.txt成套厂联系人.Font = new System.Drawing.Font("宋体", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point);
- this.txt成套厂联系人.Margin = new System.Windows.Forms.Padding(3, 3, 3, 3);
- this.txt成套厂联系人.MaximumSize = new System.Drawing.Size(0, 0);
- this.txt成套厂联系人.MinimumSize = new System.Drawing.Size(0, 0);
- this.txt成套厂联系人.TabIndex = 10;
- this.txt成套厂联系人.TabStop = true;
- this.txt成套厂联系人.Size = new System.Drawing.Size(220, 21);
- this.txt成套厂联系人.Location = new System.Drawing.Point(95, 235);
- this.txt成套厂联系人.Name = "txt成套厂联系人";
-
- //
- // lbl成套厂联系电话
- //
- this.lbl成套厂联系电话.Dock = System.Windows.Forms.DockStyle.None;
- this.lbl成套厂联系电话.AutoSize = false;
- this.lbl成套厂联系电话.AutoEllipsis = false;
- this.lbl成套厂联系电话.BorderStyle = System.Windows.Forms.BorderStyle.None;
- this.lbl成套厂联系电话.FlatStyle = System.Windows.Forms.FlatStyle.Standard;
- this.lbl成套厂联系电话.ImageAlign = System.Drawing.ContentAlignment.MiddleCenter;
- this.lbl成套厂联系电话.LiveSetting = System.Windows.Forms.Automation.AutomationLiveSetting.Off;
- this.lbl成套厂联系电话.TextAlign = System.Drawing.ContentAlignment.TopLeft;
- this.lbl成套厂联系电话.UseCompatibleTextRendering = false;
- this.lbl成套厂联系电话.UseMnemonic = true;
- this.lbl成套厂联系电话.BackColor = System.Drawing.SystemColors.Control;
- this.lbl成套厂联系电话.Enabled = true;
- this.lbl成套厂联系电话.Font = new System.Drawing.Font("宋体", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point);
- this.lbl成套厂联系电话.ForeColor = System.Drawing.SystemColors.ControlText;
- this.lbl成套厂联系电话.Margin = new System.Windows.Forms.Padding(3, 0, 3, 0);
- this.lbl成套厂联系电话.MaximumSize = new System.Drawing.Size(0, 0);
- this.lbl成套厂联系电话.MinimumSize = new System.Drawing.Size(0, 0);
- this.lbl成套厂联系电话.TabIndex = 11;
- this.lbl成套厂联系电话.Padding = new System.Windows.Forms.Padding(0, 0, 0, 0);
- this.lbl成套厂联系电话.Size = new System.Drawing.Size(70, 21);
- this.lbl成套厂联系电话.Location = new System.Drawing.Point(380, 235);
- this.lbl成套厂联系电话.Text = "联系电话:";
- this.lbl成套厂联系电话.Name = "lbl成套厂联系电话";
-
- //
- // txt成套厂联系电话
- //
- this.txt成套厂联系电话.Dock = System.Windows.Forms.DockStyle.None;
- this.txt成套厂联系电话.AcceptsReturn = false;
- this.txt成套厂联系电话.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.None;
- this.txt成套厂联系电话.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.None;
- this.txt成套厂联系电话.CharacterCasing = System.Windows.Forms.CharacterCasing.Normal;
- this.txt成套厂联系电话.Multiline = false;
- this.txt成套厂联系电话.ScrollBars = System.Windows.Forms.ScrollBars.None;
- this.txt成套厂联系电话.TextAlign = System.Windows.Forms.HorizontalAlignment.Left;
- this.txt成套厂联系电话.UseSystemPasswordChar = false;
- this.txt成套厂联系电话.AcceptsTab = false;
- this.txt成套厂联系电话.ShortcutsEnabled = true;
- this.txt成套厂联系电话.BackColor = System.Drawing.SystemColors.Window;
- this.txt成套厂联系电话.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D;
- this.txt成套厂联系电话.ForeColor = System.Drawing.SystemColors.WindowText;
- this.txt成套厂联系电话.HideSelection = true;
- this.txt成套厂联系电话.MaxLength = 32767;
- this.txt成套厂联系电话.ReadOnly = false;
- this.txt成套厂联系电话.WordWrap = true;
- this.txt成套厂联系电话.Enabled = true;
- this.txt成套厂联系电话.Font = new System.Drawing.Font("宋体", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point);
- this.txt成套厂联系电话.Margin = new System.Windows.Forms.Padding(3, 3, 3, 3);
- this.txt成套厂联系电话.MaximumSize = new System.Drawing.Size(0, 0);
- this.txt成套厂联系电话.MinimumSize = new System.Drawing.Size(0, 0);
- this.txt成套厂联系电话.TabIndex = 11;
- this.txt成套厂联系电话.TabStop = true;
- this.txt成套厂联系电话.Size = new System.Drawing.Size(210, 21);
- this.txt成套厂联系电话.Location = new System.Drawing.Point(455, 232);
- this.txt成套厂联系电话.Name = "txt成套厂联系电话";
-
- //
- // lbl报出方式
- //
- this.lbl报出方式.Dock = System.Windows.Forms.DockStyle.None;
- this.lbl报出方式.AutoSize = false;
- this.lbl报出方式.AutoEllipsis = false;
- this.lbl报出方式.BorderStyle = System.Windows.Forms.BorderStyle.None;
- this.lbl报出方式.FlatStyle = System.Windows.Forms.FlatStyle.Standard;
- this.lbl报出方式.ImageAlign = System.Drawing.ContentAlignment.MiddleCenter;
- this.lbl报出方式.LiveSetting = System.Windows.Forms.Automation.AutomationLiveSetting.Off;
- this.lbl报出方式.TextAlign = System.Drawing.ContentAlignment.MiddleRight;
- this.lbl报出方式.UseCompatibleTextRendering = false;
- this.lbl报出方式.UseMnemonic = true;
- this.lbl报出方式.BackColor = System.Drawing.SystemColors.Control;
- this.lbl报出方式.Enabled = true;
- this.lbl报出方式.Font = new System.Drawing.Font("宋体", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point);
- this.lbl报出方式.ForeColor = System.Drawing.SystemColors.ControlText;
- this.lbl报出方式.Margin = new System.Windows.Forms.Padding(3, 0, 3, 0);
- this.lbl报出方式.MaximumSize = new System.Drawing.Size(0, 0);
- this.lbl报出方式.MinimumSize = new System.Drawing.Size(0, 0);
- this.lbl报出方式.TabIndex = 12;
- this.lbl报出方式.Padding = new System.Windows.Forms.Padding(0, 0, 0, 0);
- this.lbl报出方式.Size = new System.Drawing.Size(70, 23);
- this.lbl报出方式.Location = new System.Drawing.Point(20, 265);
- this.lbl报出方式.Text = "报出方式:";
- this.lbl报出方式.Name = "lbl报出方式";
-
- //
- // cmb报出方式
- //
- this.cmb报出方式.Dock = System.Windows.Forms.DockStyle.None;
- this.cmb报出方式.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.None;
- this.cmb报出方式.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.None;
- this.cmb报出方式.BackColor = System.Drawing.SystemColors.Window;
- this.cmb报出方式.DrawMode = System.Windows.Forms.DrawMode.Normal;
- this.cmb报出方式.DropDownWidth = 200;
- this.cmb报出方式.DropDownHeight = 106;
- this.cmb报出方式.FlatStyle = System.Windows.Forms.FlatStyle.Standard;
- this.cmb报出方式.ForeColor = System.Drawing.SystemColors.WindowText;
- this.cmb报出方式.IntegralHeight = true;
- this.cmb报出方式.ItemHeight = 12;
- this.cmb报出方式.MaxDropDownItems = 8;
- this.cmb报出方式.MaximumSize = new System.Drawing.Size(0, 0);
- this.cmb报出方式.MinimumSize = new System.Drawing.Size(0, 0);
- this.cmb报出方式.MaxLength = 0;
- this.cmb报出方式.Sorted = false;
- this.cmb报出方式.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDown;
- this.cmb报出方式.FormattingEnabled = false;
- this.cmb报出方式.Enabled = true;
- this.cmb报出方式.Font = new System.Drawing.Font("宋体", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point);
- this.cmb报出方式.Margin = new System.Windows.Forms.Padding(3, 3, 3, 3);
- this.cmb报出方式.TabIndex = 12;
- this.cmb报出方式.TabStop = true;
- this.cmb报出方式.Size = new System.Drawing.Size(220, 20);
- this.cmb报出方式.Location = new System.Drawing.Point(95, 265);
- this.cmb报出方式.Text = "报出价=表价*采购系数*报出系数";
- this.cmb报出方式.Name = "cmb报出方式";
-
- //
- // lbl箱柜模板
- //
- this.lbl箱柜模板.Dock = System.Windows.Forms.DockStyle.None;
- this.lbl箱柜模板.AutoSize = false;
- this.lbl箱柜模板.AutoEllipsis = false;
- this.lbl箱柜模板.BorderStyle = System.Windows.Forms.BorderStyle.None;
- this.lbl箱柜模板.FlatStyle = System.Windows.Forms.FlatStyle.Standard;
- this.lbl箱柜模板.ImageAlign = System.Drawing.ContentAlignment.MiddleCenter;
- this.lbl箱柜模板.LiveSetting = System.Windows.Forms.Automation.AutomationLiveSetting.Off;
- this.lbl箱柜模板.TextAlign = System.Drawing.ContentAlignment.TopLeft;
- this.lbl箱柜模板.UseCompatibleTextRendering = false;
- this.lbl箱柜模板.UseMnemonic = true;
- this.lbl箱柜模板.BackColor = System.Drawing.SystemColors.Control;
- this.lbl箱柜模板.Enabled = true;
- this.lbl箱柜模板.Font = new System.Drawing.Font("宋体", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point);
- this.lbl箱柜模板.ForeColor = System.Drawing.SystemColors.ControlText;
- this.lbl箱柜模板.Margin = new System.Windows.Forms.Padding(3, 0, 3, 0);
- this.lbl箱柜模板.MaximumSize = new System.Drawing.Size(0, 0);
- this.lbl箱柜模板.MinimumSize = new System.Drawing.Size(0, 0);
- this.lbl箱柜模板.TabIndex = 13;
- this.lbl箱柜模板.Padding = new System.Windows.Forms.Padding(0, 0, 0, 0);
- this.lbl箱柜模板.Size = new System.Drawing.Size(70, 20);
- this.lbl箱柜模板.Location = new System.Drawing.Point(380, 265);
- this.lbl箱柜模板.Text = "箱柜模板:";
- this.lbl箱柜模板.Name = "lbl箱柜模板";
-
- //
- // cmb箱柜模板
- //
- this.cmb箱柜模板.Dock = System.Windows.Forms.DockStyle.None;
- this.cmb箱柜模板.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.None;
- this.cmb箱柜模板.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.None;
- this.cmb箱柜模板.BackColor = System.Drawing.SystemColors.Window;
- this.cmb箱柜模板.DrawMode = System.Windows.Forms.DrawMode.Normal;
- this.cmb箱柜模板.DropDownWidth = 200;
- this.cmb箱柜模板.DropDownHeight = 106;
- this.cmb箱柜模板.FlatStyle = System.Windows.Forms.FlatStyle.Standard;
- this.cmb箱柜模板.ForeColor = System.Drawing.SystemColors.WindowText;
- this.cmb箱柜模板.IntegralHeight = true;
- this.cmb箱柜模板.ItemHeight = 12;
- this.cmb箱柜模板.MaxDropDownItems = 8;
- this.cmb箱柜模板.MaximumSize = new System.Drawing.Size(0, 0);
- this.cmb箱柜模板.MinimumSize = new System.Drawing.Size(0, 0);
- this.cmb箱柜模板.MaxLength = 0;
- this.cmb箱柜模板.Sorted = false;
- this.cmb箱柜模板.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDown;
- this.cmb箱柜模板.FormattingEnabled = false;
- this.cmb箱柜模板.Enabled = true;
- this.cmb箱柜模板.Font = new System.Drawing.Font("宋体", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point);
- this.cmb箱柜模板.Margin = new System.Windows.Forms.Padding(3, 3, 3, 3);
- this.cmb箱柜模板.TabIndex = 13;
- this.cmb箱柜模板.TabStop = true;
- this.cmb箱柜模板.Size = new System.Drawing.Size(210, 20);
- this.cmb箱柜模板.Location = new System.Drawing.Point(455, 262);
- this.cmb箱柜模板.Name = "cmb箱柜模板";
-
- //
- // lbl单台价格
- //
- this.lbl单台价格.Dock = System.Windows.Forms.DockStyle.None;
- this.lbl单台价格.AutoSize = false;
- this.lbl单台价格.AutoEllipsis = false;
- this.lbl单台价格.BorderStyle = System.Windows.Forms.BorderStyle.None;
- this.lbl单台价格.FlatStyle = System.Windows.Forms.FlatStyle.Standard;
- this.lbl单台价格.ImageAlign = System.Drawing.ContentAlignment.MiddleCenter;
- this.lbl单台价格.LiveSetting = System.Windows.Forms.Automation.AutomationLiveSetting.Off;
- this.lbl单台价格.TextAlign = System.Drawing.ContentAlignment.MiddleRight;
- this.lbl单台价格.UseCompatibleTextRendering = false;
- this.lbl单台价格.UseMnemonic = true;
- this.lbl单台价格.BackColor = System.Drawing.SystemColors.Control;
- this.lbl单台价格.Enabled = true;
- this.lbl单台价格.Font = new System.Drawing.Font("宋体", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point);
- this.lbl单台价格.ForeColor = System.Drawing.SystemColors.ControlText;
- this.lbl单台价格.Margin = new System.Windows.Forms.Padding(3, 0, 3, 0);
- this.lbl单台价格.MaximumSize = new System.Drawing.Size(0, 0);
- this.lbl单台价格.MinimumSize = new System.Drawing.Size(0, 0);
- this.lbl单台价格.TabIndex = 14;
- this.lbl单台价格.Padding = new System.Windows.Forms.Padding(0, 0, 0, 0);
- this.lbl单台价格.Size = new System.Drawing.Size(70, 23);
- this.lbl单台价格.Location = new System.Drawing.Point(20, 293);
- this.lbl单台价格.Text = "单台价格:";
- this.lbl单台价格.Name = "lbl单台价格";
-
- //
- // cmb单台价格
- //
- this.cmb单台价格.Dock = System.Windows.Forms.DockStyle.None;
- this.cmb单台价格.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.None;
- this.cmb单台价格.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.None;
- this.cmb单台价格.BackColor = System.Drawing.SystemColors.Window;
- this.cmb单台价格.DrawMode = System.Windows.Forms.DrawMode.Normal;
- this.cmb单台价格.DropDownWidth = 200;
- this.cmb单台价格.DropDownHeight = 106;
- this.cmb单台价格.FlatStyle = System.Windows.Forms.FlatStyle.Standard;
- this.cmb单台价格.ForeColor = System.Drawing.SystemColors.WindowText;
- this.cmb单台价格.IntegralHeight = true;
- this.cmb单台价格.ItemHeight = 12;
- this.cmb单台价格.MaxDropDownItems = 8;
- this.cmb单台价格.MaximumSize = new System.Drawing.Size(0, 0);
- this.cmb单台价格.MinimumSize = new System.Drawing.Size(0, 0);
- this.cmb单台价格.MaxLength = 0;
- this.cmb单台价格.Sorted = false;
- this.cmb单台价格.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDown;
- this.cmb单台价格.FormattingEnabled = false;
- this.cmb单台价格.Enabled = true;
- this.cmb单台价格.Font = new System.Drawing.Font("宋体", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point);
- this.cmb单台价格.Margin = new System.Windows.Forms.Padding(3, 3, 3, 3);
- this.cmb单台价格.TabIndex = 14;
- this.cmb单台价格.TabStop = true;
- this.cmb单台价格.Size = new System.Drawing.Size(220, 20);
- this.cmb单台价格.Location = new System.Drawing.Point(95, 293);
- this.cmb单台价格.Text = "保留整数";
- this.cmb单台价格.Name = "cmb单台价格";
-
- //
- // lbl项目总价
- //
- this.lbl项目总价.Dock = System.Windows.Forms.DockStyle.None;
- this.lbl项目总价.AutoSize = false;
- this.lbl项目总价.AutoEllipsis = false;
- this.lbl项目总价.BorderStyle = System.Windows.Forms.BorderStyle.None;
- this.lbl项目总价.FlatStyle = System.Windows.Forms.FlatStyle.Standard;
- this.lbl项目总价.ImageAlign = System.Drawing.ContentAlignment.MiddleCenter;
- this.lbl项目总价.LiveSetting = System.Windows.Forms.Automation.AutomationLiveSetting.Off;
- this.lbl项目总价.TextAlign = System.Drawing.ContentAlignment.TopLeft;
- this.lbl项目总价.UseCompatibleTextRendering = false;
- this.lbl项目总价.UseMnemonic = true;
- this.lbl项目总价.BackColor = System.Drawing.SystemColors.Control;
- this.lbl项目总价.Enabled = true;
- this.lbl项目总价.Font = new System.Drawing.Font("宋体", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point);
- this.lbl项目总价.ForeColor = System.Drawing.SystemColors.ControlText;
- this.lbl项目总价.Margin = new System.Windows.Forms.Padding(3, 0, 3, 0);
- this.lbl项目总价.MaximumSize = new System.Drawing.Size(0, 0);
- this.lbl项目总价.MinimumSize = new System.Drawing.Size(0, 0);
- this.lbl项目总价.TabIndex = 15;
- this.lbl项目总价.Padding = new System.Windows.Forms.Padding(0, 0, 0, 0);
- this.lbl项目总价.Size = new System.Drawing.Size(70, 20);
- this.lbl项目总价.Location = new System.Drawing.Point(379, 293);
- this.lbl项目总价.Text = "项目总价:";
- this.lbl项目总价.Name = "lbl项目总价";
-
- //
- // lbl备注
- //
- this.lbl备注.Dock = System.Windows.Forms.DockStyle.None;
- this.lbl备注.AutoSize = false;
- this.lbl备注.AutoEllipsis = false;
- this.lbl备注.BorderStyle = System.Windows.Forms.BorderStyle.None;
- this.lbl备注.FlatStyle = System.Windows.Forms.FlatStyle.Standard;
- this.lbl备注.ImageAlign = System.Drawing.ContentAlignment.MiddleCenter;
- this.lbl备注.LiveSetting = System.Windows.Forms.Automation.AutomationLiveSetting.Off;
- this.lbl备注.TextAlign = System.Drawing.ContentAlignment.MiddleRight;
- this.lbl备注.UseCompatibleTextRendering = false;
- this.lbl备注.UseMnemonic = true;
- this.lbl备注.BackColor = System.Drawing.SystemColors.Control;
- this.lbl备注.Enabled = true;
- this.lbl备注.Font = new System.Drawing.Font("宋体", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point);
- this.lbl备注.ForeColor = System.Drawing.SystemColors.ControlText;
- this.lbl备注.Margin = new System.Windows.Forms.Padding(3, 0, 3, 0);
- this.lbl备注.MaximumSize = new System.Drawing.Size(0, 0);
- this.lbl备注.MinimumSize = new System.Drawing.Size(0, 0);
- this.lbl备注.TabIndex = 16;
- this.lbl备注.Padding = new System.Windows.Forms.Padding(0, 0, 0, 0);
- this.lbl备注.Size = new System.Drawing.Size(46, 23);
- this.lbl备注.Location = new System.Drawing.Point(44, 352);
- this.lbl备注.Text = "备注:";
- this.lbl备注.Name = "lbl备注";
-
- //
- // txt备注
- //
- this.txt备注.Dock = System.Windows.Forms.DockStyle.None;
- this.txt备注.AcceptsReturn = false;
- this.txt备注.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.None;
- this.txt备注.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.None;
- this.txt备注.CharacterCasing = System.Windows.Forms.CharacterCasing.Normal;
- this.txt备注.Multiline = true;
- this.txt备注.ScrollBars = System.Windows.Forms.ScrollBars.None;
- this.txt备注.TextAlign = System.Windows.Forms.HorizontalAlignment.Left;
- this.txt备注.UseSystemPasswordChar = false;
- this.txt备注.AcceptsTab = false;
- this.txt备注.ShortcutsEnabled = true;
- this.txt备注.BackColor = System.Drawing.SystemColors.Window;
- this.txt备注.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D;
- this.txt备注.ForeColor = System.Drawing.SystemColors.WindowText;
- this.txt备注.HideSelection = true;
- this.txt备注.MaxLength = 32767;
- this.txt备注.ReadOnly = false;
- this.txt备注.WordWrap = true;
- this.txt备注.Enabled = true;
- this.txt备注.Font = new System.Drawing.Font("宋体", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point);
- this.txt备注.Margin = new System.Windows.Forms.Padding(3, 3, 3, 3);
- this.txt备注.MaximumSize = new System.Drawing.Size(0, 0);
- this.txt备注.MinimumSize = new System.Drawing.Size(0, 0);
- this.txt备注.TabIndex = 16;
- this.txt备注.TabStop = true;
- this.txt备注.Size = new System.Drawing.Size(570, 80);
- this.txt备注.Location = new System.Drawing.Point(95, 352);
- this.txt备注.Name = "txt备注";
-
- //
- // btn确定
- //
- this.btn确定.Dock = System.Windows.Forms.DockStyle.None;
- this.btn确定.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowOnly;
- this.btn确定.DialogResult = System.Windows.Forms.DialogResult.OK;
- this.btn确定.AutoEllipsis = false;
- this.btn确定.AutoSize = false;
- this.btn确定.BackColor = System.Drawing.SystemColors.Control;
- this.btn确定.FlatStyle = System.Windows.Forms.FlatStyle.Standard;
- this.btn确定.ImageAlign = System.Drawing.ContentAlignment.MiddleCenter;
- this.btn确定.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
- this.btn确定.TextImageRelation = System.Windows.Forms.TextImageRelation.Overlay;
- this.btn确定.UseMnemonic = true;
- this.btn确定.UseCompatibleTextRendering = false;
- this.btn确定.UseVisualStyleBackColor = true;
- this.btn确定.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Tile;
- this.btn确定.Enabled = true;
- this.btn确定.Font = new System.Drawing.Font("宋体", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point);
- this.btn确定.ForeColor = System.Drawing.SystemColors.ControlText;
- this.btn确定.Margin = new System.Windows.Forms.Padding(3, 3, 3, 3);
- this.btn确定.MaximumSize = new System.Drawing.Size(0, 0);
- this.btn确定.MinimumSize = new System.Drawing.Size(0, 0);
- this.btn确定.TabIndex = 17;
- this.btn确定.TabStop = true;
- this.btn确定.Padding = new System.Windows.Forms.Padding(0, 0, 0, 0);
- this.btn确定.Size = new System.Drawing.Size(100, 28);
- this.btn确定.Location = new System.Drawing.Point(455, 449);
- this.btn确定.Text = "确定";
- this.btn确定.Name = "btn确定";
-
- //
- // btn取消
- //
- this.btn取消.Dock = System.Windows.Forms.DockStyle.None;
- this.btn取消.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowOnly;
- this.btn取消.DialogResult = System.Windows.Forms.DialogResult.Cancel;
- this.btn取消.AutoEllipsis = false;
- this.btn取消.AutoSize = false;
- this.btn取消.BackColor = System.Drawing.SystemColors.Control;
- this.btn取消.FlatStyle = System.Windows.Forms.FlatStyle.Standard;
- this.btn取消.ImageAlign = System.Drawing.ContentAlignment.MiddleCenter;
- this.btn取消.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
- this.btn取消.TextImageRelation = System.Windows.Forms.TextImageRelation.Overlay;
- this.btn取消.UseMnemonic = true;
- this.btn取消.UseCompatibleTextRendering = false;
- this.btn取消.UseVisualStyleBackColor = true;
- this.btn取消.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Tile;
- this.btn取消.Enabled = true;
- this.btn取消.Font = new System.Drawing.Font("宋体", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point);
- this.btn取消.ForeColor = System.Drawing.SystemColors.ControlText;
- this.btn取消.Margin = new System.Windows.Forms.Padding(3, 3, 3, 3);
- this.btn取消.MaximumSize = new System.Drawing.Size(0, 0);
- this.btn取消.MinimumSize = new System.Drawing.Size(0, 0);
- this.btn取消.TabIndex = 18;
- this.btn取消.TabStop = true;
- this.btn取消.Padding = new System.Windows.Forms.Padding(0, 0, 0, 0);
- this.btn取消.Size = new System.Drawing.Size(100, 28);
- this.btn取消.Location = new System.Drawing.Point(565, 449);
- this.btn取消.Text = "取消";
- this.btn取消.Name = "btn取消";
-
- //
- // comboBox1
- //
- this.comboBox1.Dock = System.Windows.Forms.DockStyle.None;
- this.comboBox1.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.None;
- this.comboBox1.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.None;
- this.comboBox1.BackColor = System.Drawing.SystemColors.Window;
- this.comboBox1.DrawMode = System.Windows.Forms.DrawMode.Normal;
- this.comboBox1.DropDownWidth = 210;
- this.comboBox1.DropDownHeight = 106;
- this.comboBox1.FlatStyle = System.Windows.Forms.FlatStyle.Standard;
- this.comboBox1.ForeColor = System.Drawing.SystemColors.WindowText;
- this.comboBox1.IntegralHeight = true;
- this.comboBox1.ItemHeight = 12;
- this.comboBox1.MaxDropDownItems = 8;
- this.comboBox1.MaximumSize = new System.Drawing.Size(0, 0);
- this.comboBox1.MinimumSize = new System.Drawing.Size(0, 0);
- this.comboBox1.MaxLength = 0;
- this.comboBox1.Sorted = false;
- this.comboBox1.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDown;
- this.comboBox1.FormattingEnabled = false;
- this.comboBox1.Enabled = true;
- this.comboBox1.Font = new System.Drawing.Font("宋体", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point);
- this.comboBox1.Margin = new System.Windows.Forms.Padding(3, 3, 3, 3);
- this.comboBox1.TabIndex = 14;
- this.comboBox1.TabStop = true;
- this.comboBox1.Size = new System.Drawing.Size(210, 20);
- this.comboBox1.Location = new System.Drawing.Point(455, 322);
- this.comboBox1.Text = "四舍五入";
- this.comboBox1.Name = "comboBox1";
-
- //
- // label1
- //
- this.label1.Dock = System.Windows.Forms.DockStyle.None;
- this.label1.AutoSize = false;
- this.label1.AutoEllipsis = false;
- this.label1.BorderStyle = System.Windows.Forms.BorderStyle.None;
- this.label1.FlatStyle = System.Windows.Forms.FlatStyle.Standard;
- this.label1.ImageAlign = System.Drawing.ContentAlignment.MiddleCenter;
- this.label1.LiveSetting = System.Windows.Forms.Automation.AutomationLiveSetting.Off;
- this.label1.TextAlign = System.Drawing.ContentAlignment.MiddleRight;
- this.label1.UseCompatibleTextRendering = false;
- this.label1.UseMnemonic = true;
- this.label1.BackColor = System.Drawing.SystemColors.Control;
- this.label1.Enabled = true;
- this.label1.Font = new System.Drawing.Font("宋体", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point);
- this.label1.ForeColor = System.Drawing.SystemColors.ControlText;
- this.label1.Margin = new System.Windows.Forms.Padding(3, 0, 3, 0);
- this.label1.MaximumSize = new System.Drawing.Size(0, 0);
- this.label1.MinimumSize = new System.Drawing.Size(0, 0);
- this.label1.TabIndex = 14;
- this.label1.Padding = new System.Windows.Forms.Padding(0, 0, 0, 0);
- this.label1.Size = new System.Drawing.Size(70, 23);
- this.label1.Location = new System.Drawing.Point(19, 320);
- this.label1.Text = "单台取整:";
- this.label1.Name = "label1";
-
- //
- // label2
- //
- this.label2.Dock = System.Windows.Forms.DockStyle.None;
- this.label2.AutoSize = false;
- this.label2.AutoEllipsis = false;
- this.label2.BorderStyle = System.Windows.Forms.BorderStyle.None;
- this.label2.FlatStyle = System.Windows.Forms.FlatStyle.Standard;
- this.label2.ImageAlign = System.Drawing.ContentAlignment.MiddleCenter;
- this.label2.LiveSetting = System.Windows.Forms.Automation.AutomationLiveSetting.Off;
- this.label2.TextAlign = System.Drawing.ContentAlignment.TopLeft;
- this.label2.UseCompatibleTextRendering = false;
- this.label2.UseMnemonic = true;
- this.label2.BackColor = System.Drawing.SystemColors.Control;
- this.label2.Enabled = true;
- this.label2.Font = new System.Drawing.Font("宋体", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point);
- this.label2.ForeColor = System.Drawing.SystemColors.ControlText;
- this.label2.Margin = new System.Windows.Forms.Padding(3, 0, 3, 0);
- this.label2.MaximumSize = new System.Drawing.Size(0, 0);
- this.label2.MinimumSize = new System.Drawing.Size(0, 0);
- this.label2.TabIndex = 15;
- this.label2.Padding = new System.Windows.Forms.Padding(0, 0, 0, 0);
- this.label2.Size = new System.Drawing.Size(70, 20);
- this.label2.Location = new System.Drawing.Point(379, 324);
- this.label2.Text = "项目取整:";
- this.label2.Name = "label2";
-
- //
- // comboBox2
- //
- this.comboBox2.Dock = System.Windows.Forms.DockStyle.None;
- this.comboBox2.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.None;
- this.comboBox2.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.None;
- this.comboBox2.BackColor = System.Drawing.SystemColors.Window;
- this.comboBox2.DrawMode = System.Windows.Forms.DrawMode.Normal;
- this.comboBox2.DropDownWidth = 220;
- this.comboBox2.DropDownHeight = 106;
- this.comboBox2.FlatStyle = System.Windows.Forms.FlatStyle.Standard;
- this.comboBox2.ForeColor = System.Drawing.SystemColors.WindowText;
- this.comboBox2.IntegralHeight = true;
- this.comboBox2.ItemHeight = 12;
- this.comboBox2.MaxDropDownItems = 8;
- this.comboBox2.MaximumSize = new System.Drawing.Size(0, 0);
- this.comboBox2.MinimumSize = new System.Drawing.Size(0, 0);
- this.comboBox2.MaxLength = 0;
- this.comboBox2.Sorted = false;
- this.comboBox2.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDown;
- this.comboBox2.FormattingEnabled = false;
- this.comboBox2.Enabled = true;
- this.comboBox2.Font = new System.Drawing.Font("宋体", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point);
- this.comboBox2.Margin = new System.Windows.Forms.Padding(3, 3, 3, 3);
- this.comboBox2.TabIndex = 14;
- this.comboBox2.TabStop = true;
- this.comboBox2.Size = new System.Drawing.Size(220, 20);
- this.comboBox2.Location = new System.Drawing.Point(95, 324);
- this.comboBox2.Text = "四舍五入";
- this.comboBox2.Name = "comboBox2";
-
- //
- // cmb项目总价
- //
- this.cmb项目总价.Dock = System.Windows.Forms.DockStyle.None;
- this.cmb项目总价.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.None;
- this.cmb项目总价.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.None;
- this.cmb项目总价.BackColor = System.Drawing.SystemColors.Window;
- this.cmb项目总价.DrawMode = System.Windows.Forms.DrawMode.Normal;
- this.cmb项目总价.DropDownWidth = 200;
- this.cmb项目总价.DropDownHeight = 106;
- this.cmb项目总价.FlatStyle = System.Windows.Forms.FlatStyle.Standard;
- this.cmb项目总价.ForeColor = System.Drawing.SystemColors.WindowText;
- this.cmb项目总价.IntegralHeight = true;
- this.cmb项目总价.ItemHeight = 12;
- this.cmb项目总价.MaxDropDownItems = 8;
- this.cmb项目总价.MaximumSize = new System.Drawing.Size(0, 0);
- this.cmb项目总价.MinimumSize = new System.Drawing.Size(0, 0);
- this.cmb项目总价.MaxLength = 0;
- this.cmb项目总价.Sorted = false;
- this.cmb项目总价.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDown;
- this.cmb项目总价.FormattingEnabled = false;
- this.cmb项目总价.Enabled = true;
- this.cmb项目总价.Font = new System.Drawing.Font("宋体", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point);
- this.cmb项目总价.Margin = new System.Windows.Forms.Padding(3, 3, 3, 3);
- this.cmb项目总价.TabIndex = 14;
- this.cmb项目总价.TabStop = true;
- this.cmb项目总价.Size = new System.Drawing.Size(210, 20);
- this.cmb项目总价.Location = new System.Drawing.Point(455, 290);
- this.cmb项目总价.Text = "保留整数";
- this.cmb项目总价.Name = "cmb项目总价";
-
- // 新建项目
- this.Controls.AddRange(new System.Windows.Forms.Control[] {
- this.lbl项目编号,
- this.txt项目编号,
- this.lbl项目日期,
- this.txt项目日期,
- this.lbl项目名称,
- this.txt项目名称,
- this.lbl客户名称,
- this.txt客户名称,
- this.btn选择客户,
- this.lbl客户地址,
- this.txt客户地址,
- this.lbl联系人,
- this.txt联系人,
- this.lbl联系电话,
- this.txt联系电话,
- this.lbl成套厂名称,
- this.txt成套厂名称,
- this.lbl成套厂地址,
- this.txt成套厂地址,
- this.lbl成套厂联系人,
- this.txt成套厂联系人,
- this.lbl成套厂联系电话,
- this.txt成套厂联系电话,
- this.lbl报出方式,
- this.cmb报出方式,
- this.lbl箱柜模板,
- this.cmb箱柜模板,
- this.lbl单台价格,
- this.cmb单台价格,
- this.lbl项目总价,
- this.lbl备注,
- this.txt备注,
- this.btn确定,
- this.btn取消,
- this.comboBox1,
- this.label1,
- this.label2,
- this.comboBox2,
- this.cmb项目总价,
- });
- //
- // 新建项目
- //
- this.Dock = System.Windows.Forms.DockStyle.None;
- this.AutoScroll = false;
- this.AutoSize = false;
- this.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowOnly;
- this.AutoValidate = System.Windows.Forms.AutoValidate.EnablePreventFocusChange;
- this.BackColor = System.Drawing.SystemColors.Control;
- this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog;
- this.ControlBox = true;
- this.HelpButton = false;
- this.IsMdiContainer = false;
- this.KeyPreview = false;
- this.MaximumSize = new System.Drawing.Size(0, 0);
- this.MinimumSize = new System.Drawing.Size(0, 0);
- this.MaximizeBox = false;
- this.MinimizeBox = false;
- this.Opacity = 1;
- this.RightToLeftLayout = false;
- this.ShowInTaskbar = true;
- this.ShowIcon = true;
- this.SizeGripStyle = System.Windows.Forms.SizeGripStyle.Auto;
- this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
- this.TopMost = false;
- this.WindowState = System.Windows.Forms.FormWindowState.Normal;
- this.AutoScrollMargin = new System.Drawing.Size(0, 0);
- this.AutoScrollMinSize = new System.Drawing.Size(0, 0);
- this.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Tile;
- this.Enabled = true;
- this.Font = new System.Drawing.Font("宋体", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point);
- this.ForeColor = System.Drawing.SystemColors.ControlText;
- this.Padding = new System.Windows.Forms.Padding(0, 0, 0, 0);
- this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None;
- this.Size = new System.Drawing.Size(700, 538);
- this.Text = "新建项目";
- this.Name = "新建项目";
- this.ResumeLayout(false);
- this.PerformLayout();
- }
-
- #endregion
-
- private System.Windows.Forms.Label lbl项目编号;
- private System.Windows.Forms.TextBox txt项目编号;
- private System.Windows.Forms.Label lbl项目日期;
- private System.Windows.Forms.TextBox txt项目日期;
- private System.Windows.Forms.Label lbl项目名称;
- private System.Windows.Forms.TextBox txt项目名称;
- private System.Windows.Forms.Label lbl客户名称;
- private System.Windows.Forms.TextBox txt客户名称;
- private System.Windows.Forms.Button btn选择客户;
- private System.Windows.Forms.Label lbl客户地址;
- private System.Windows.Forms.TextBox txt客户地址;
- private System.Windows.Forms.Label lbl联系人;
- private System.Windows.Forms.TextBox txt联系人;
- private System.Windows.Forms.Label lbl联系电话;
- private System.Windows.Forms.TextBox txt联系电话;
- private System.Windows.Forms.Label lbl成套厂名称;
- private System.Windows.Forms.TextBox txt成套厂名称;
- private System.Windows.Forms.Label lbl成套厂地址;
- private System.Windows.Forms.TextBox txt成套厂地址;
- private System.Windows.Forms.Label lbl成套厂联系人;
- private System.Windows.Forms.TextBox txt成套厂联系人;
- private System.Windows.Forms.Label lbl成套厂联系电话;
- private System.Windows.Forms.TextBox txt成套厂联系电话;
- private System.Windows.Forms.Label lbl报出方式;
- private System.Windows.Forms.ComboBox cmb报出方式;
- private System.Windows.Forms.Label lbl箱柜模板;
- private System.Windows.Forms.ComboBox cmb箱柜模板;
- private System.Windows.Forms.Label lbl单台价格;
- private System.Windows.Forms.ComboBox cmb单台价格;
- private System.Windows.Forms.Label lbl项目总价;
- private System.Windows.Forms.Label lbl备注;
- private System.Windows.Forms.TextBox txt备注;
- private System.Windows.Forms.Button btn确定;
- private System.Windows.Forms.Button btn取消;
- private System.Windows.Forms.ComboBox comboBox1;
- private System.Windows.Forms.Label label1;
- private System.Windows.Forms.Label label2;
- private System.Windows.Forms.ComboBox comboBox2;
- private System.Windows.Forms.ComboBox cmb项目总价;
- }
-}
diff --git a/cadbt/cadbt/cadcj/注册CAD自动加载.reg b/cadbt/cadbt/cadcj/注册CAD自动加载.reg
deleted file mode 100644
index 30c0bcf..0000000
--- a/cadbt/cadbt/cadcj/注册CAD自动加载.reg
+++ /dev/null
@@ -1,7 +0,0 @@
-Windows Registry Editor Version 5.00
-
-[HKEY_LOCAL_MACHINE\Microsoft.PowerShell.Core\Registry::HKEY_LOCAL_MACHINE\SOFTWARE\Autodesk\AutoCAD\R22.0\ACAD-1001:804\Apps\CADCJ]
-"DESCRIPTION"="³ÉÌױ¨¼۲å¼þ"
-"LOADCTRLS"=dword:00000002
-"MANAGED"=dword:00000001
-"MODULE"="C:\\Users\\099978\\Documents\\SharpDevelop Projects\\³ÉÌױ¨¼ÛÈí¼þ\\³ÉÌױ¨¼ÛÈí¼þ\\cadcj\\cadcj.dll"
diff --git a/cadbt/cadbt/cadcj/用户库_20260814_233247.csv b/cadbt/cadbt/cadcj/用户库_20260814_233247.csv
deleted file mode 100644
index 6b57c97..0000000
--- a/cadbt/cadbt/cadcj/用户库_20260814_233247.csv
+++ /dev/null
@@ -1,1215 +0,0 @@
-Ԫ¼þÃû³Æ,¹æ¸ñ,µ¥λ,ÊýÁ¿,±í¼Û,²ɹºϵÊý,±¨³öϵÊý,ƷÅÆ,ϵÁÐ,Ԫ¼þÀàÐÍ
-µçÁ÷»¥¸ÐÆ÷,BH-0.66-30о 20/5,ֻ,1,13,1,1,¹úÓÅ,0,Ԫ¼þ
-µçÁ÷»¥¸ÐÆ÷,BH-0.66-30о 30/5,ֻ,1,13,1,1,¹úÓÅ,0,Ԫ¼þ
-µçÁ÷»¥¸ÐÆ÷,BH-0.66-30о 40/5,ֻ,1,13,1,1,¹úÓÅ,0,Ԫ¼þ
-µçÁ÷»¥¸ÐÆ÷,BH-0.66-30о 50/5,ֻ,1,13,1,1,¹úÓÅ,0,Ԫ¼þ
-µçÁ÷»¥¸ÐÆ÷,BH-0.66-30о 75/5,ֻ,1,13,1,1,¹úÓÅ,0,Ԫ¼þ
-µçÁ÷»¥¸ÐÆ÷,BH-0.66-30о 100/5,ֻ,1,13,1,1,¹úÓÅ,0,Ԫ¼þ
-µçÁ÷»¥¸ÐÆ÷,BH-0.66-30о 150/5,ֻ,1,13,1,1,¹úÓÅ,0,Ԫ¼þ
-µçÁ÷»¥¸ÐÆ÷,BH-0.66-30о 200/5,ֻ,1,13,1,1,¹úÓÅ,0,Ԫ¼þ
-µçÁ÷»¥¸ÐÆ÷,BH-0.66-30о 300/5,ֻ,1,13,1,1,¹úÓÅ,0,Ԫ¼þ
-µçÁ÷»¥¸ÐÆ÷,BH-0.66-30о 400/5,ֻ,1,13,1,1,¹úÓÅ,0,Ԫ¼þ
-µçÁ÷»¥¸ÐÆ÷,BH-0.66-30о 500/5,ֻ,1,13,1,1,¹úÓÅ,0,Ԫ¼þ
-µçÁ÷»¥¸ÐÆ÷,BH-0.66-30о 600/5,ֻ,1,13,1,1,¹úÓÅ,0,Ԫ¼þ
-µçÁ÷»¥¸ÐÆ÷,BH-0.66-40о 600/5,ֻ,1,15,1,1,¹úÓÅ,0,Ԫ¼þ
-µçÁ÷»¥¸ÐÆ÷,BH-0.66-40о 800/5,ֻ,1,15,1,1,¹úÓÅ,0,Ԫ¼þ
-µçÁ÷»¥¸ÐÆ÷,BH-0.66-40о 1000/5,ֻ,1,15,1,1,¹úÓÅ,0,Ԫ¼þ
-µçÁ÷»¥¸ÐÆ÷,BH-0.66-60о 1500/5,ֻ,1,25,1,1,¹úÓÅ,0,Ԫ¼þ
-µçÁ÷»¥¸ÐÆ÷,BH-0.66-100о 2000/5,ֻ,1,40,1,1,¹úÓÅ,0,Ԫ¼þ
-µçÁ÷»¥¸ÐÆ÷,BH-0.66-100о 2500/5,ֻ,1,55,1,1,¹úÓÅ,0,Ԫ¼þ
-µçÁ÷»¥¸ÐÆ÷,BH-0.66-100о 3000/5,ֻ,1,55,1,1,¹úÓÅ,0,Ԫ¼þ
-µçÁ÷»¥¸ÐÆ÷,BH-0.66-100о 4000/5,ֻ,1,55,1,1,¹úÓÅ,0,Ԫ¼þ
-µçÁ÷»¥¸ÐÆ÷,BH-0.66-130о 5000/5,ֻ,1,85,1,1,¹úÓÅ,0,Ԫ¼þ
-µçÁ÷±í,6L2-A,ֻ,1,16,1,1,¹úÓÅ,0,Ԫ¼þ
-µçѹ±í,6L2-V 0~450V,ֻ,1,16,1,1,¹úÓÅ,0,Ԫ¼þ
-µçѹ±í,42L6-V 0~450V,ֻ,1,18,1,1,¹úÓÅ,0,Ԫ¼þ
-µçÁ÷±í,99T1-A,ֻ,1,15,1,1,¹úÓÅ,0,Ԫ¼þ
-µçѹ±í,99T1-V 0~450V,ֻ,1,15,1,1,¹úÓÅ,0,Ԫ¼þ
-ÐźŵÆ,AD16-22,ֻ,1,3,1,1,¹úÓÅ,0,Ԫ¼þ
-°´ť,LA38-22,ֻ,1,4,1,1,¹úÓÅ,0,Ԫ¼þ
-Ðýť¿ª¹Ø,LA38-22X2,ֻ,1,8,1,1,¹úÓÅ,0,Ԫ¼þ
-µçѹת»»¿ª¹Ø,LW5-16 YH3/3,ֻ,1,17,1,1,¹úÓÅ,0,Ԫ¼þ
-±ÜÀׯ÷,FYS-0.22,ֻ,1,7,1,1,¹úÓÅ,0,Ԫ¼þ
-È۶ÏÆ÷,RT18-32 6A,ֻ,1,4,1,1,¹úÓÅ,0,Ԫ¼þ
-È۶ÏÆ÷,RT18-63 63A,ֻ,1,8,1,1,¹úÓÅ,0,Ԫ¼þ
-ĸÏ߿ò,GGDµ¥ÅÅĸÏ߿ò 40*4,ֻ,1,13,1,1,¹úÓÅ,0,Ԫ¼þ
-ĸÏ߿ò,GGDµ¥ÅÅĸÏ߿ò 50*5,ֻ,1,13,1,1,¹úÓÅ,0,Ԫ¼þ
-ĸÏ߿ò,GGDµ¥ÅÅĸÏ߿ò 60*6,ֻ,1,13,1,1,¹úÓÅ,0,Ԫ¼þ
-ĸÏ߿ò,GGDµ¥ÅÅĸÏ߿ò 80*8,ֻ,1,13,1,1,¹úÓÅ,0,Ԫ¼þ
-ĸÏ߿ò,GGDµ¥ÅÅĸÏ߿ò 10*100,ֻ,1,13,1,1,¹úÓÅ,0,Ԫ¼þ
-ĸÏ߿ò,GGDµ¥ÅÅĸÏ߿ò 10*130,ֻ,1,13,1,1,¹úÓÅ,0,Ԫ¼þ
-ĸÏ߿ò,GCSµ¥ÅÅĸÏ߿ò 40*4,ֻ,1,18,1,1,¹úÓÅ,0,Ԫ¼þ
-ĸÏ߿ò,GCSµ¥ÅÅĸÏ߿ò 50*5,ֻ,1,19,1,1,¹úÓÅ,0,Ԫ¼þ
-ĸÏ߿ò,GCSµ¥ÅÅĸÏ߿ò 60*6,ֻ,1,19,1,1,¹úÓÅ,0,Ԫ¼þ
-ĸÏ߿ò,GCSµ¥ÅÅĸÏ߿ò 80*8,ֻ,1,22,1,1,¹úÓÅ,0,Ԫ¼þ
-ĸÏ߿ò,GCSµ¥ÅÅĸÏ߿ò 10*100,ֻ,1,25,1,1,¹úÓÅ,0,Ԫ¼þ
-ĸÏ߿ò,GCSµ¥ÅÅĸÏ߿ò 10*130,ֻ,1,25,1,1,¹úÓÅ,0,Ԫ¼þ
-Ðýתʽµ¶¿ª¹Ø,HD13BX-200/31 200A,ֻ,1,130,1,1,¹úÓÅ,0,Ԫ¼þ
-Ðýתʽµ¶¿ª¹Ø,HD13BX-400/31 400A,ֻ,1,190,1,1,¹úÓÅ,0,Ԫ¼þ
-Ðýתʽµ¶¿ª¹Ø,HD13BX-600/31 600A,ֻ,1,280,1,1,¹úÓÅ,0,Ԫ¼þ
-Ðýתʽµ¶¿ª¹Ø,HD13BX-1000/31 1000A,ֻ,1,460,1,1,¹úÓÅ,0,Ԫ¼þ
-Ðýתʽµ¶¿ª¹Ø,HD13BX-1500/31 1500A,ֻ,1,750,1,1,¹úÓÅ,0,Ԫ¼þ
-Ðýתʽµ¶¿ª¹Ø,HD13BX-2000/31 2000A,ֻ,1,1,1,1,¹úÓÅ,0,Ԫ¼þ
-Ðýתʽµ¶¿ª¹Ø,HD13BX-3000/31 3000A,ֻ,1,1,1,1,¹úÓÅ,0,Ԫ¼þ
-ËܿǶÏ·Æ÷,HYM1-63L/3300 16A,ֻ,1,65,1,1,¹úÓÅ,0,Ԫ¼þ
-ËܿǶÏ·Æ÷,HYM1-63L/3300 20A,ֻ,1,65,1,1,¹úÓÅ,0,Ԫ¼þ
-ËܿǶÏ·Æ÷,HYM1-63L/3300 25A,ֻ,1,65,1,1,¹úÓÅ,0,Ԫ¼þ
-ËܿǶÏ·Æ÷,HYM1-63L/3300 32A,ֻ,1,65,1,1,¹úÓÅ,0,Ԫ¼þ
-ËܿǶÏ·Æ÷,HYM1-63L/3300 40A,ֻ,1,65,1,1,¹úÓÅ,0,Ԫ¼þ
-ËܿǶÏ·Æ÷,HYM1-63L/3300 50A,ֻ,1,65,1,1,¹úÓÅ,0,Ԫ¼þ
-ËܿǶÏ·Æ÷,HYM1-63L/3300 63A,ֻ,1,65,1,1,¹úÓÅ,0,Ԫ¼þ
-ËܿǶÏ·Æ÷,HYM1-135L/3300 16A,ֻ,1,76,1,1,¹úÓÅ,0,Ԫ¼þ
-ËܿǶÏ·Æ÷,HYM1-135L/3300 20A,ֻ,1,76,1,1,¹úÓÅ,0,Ԫ¼þ
-ËܿǶÏ·Æ÷,HYM1-135L/3300 25A,ֻ,1,76,1,1,¹úÓÅ,0,Ԫ¼þ
-ËܿǶÏ·Æ÷,HYM1-135L/3300 32A,ֻ,1,76,1,1,¹úÓÅ,0,Ԫ¼þ
-ËܿǶÏ·Æ÷,HYM1-135L/3300 40A,ֻ,1,76,1,1,¹úÓÅ,0,Ԫ¼þ
-ËܿǶÏ·Æ÷,HYM1-135L/3300 50A,ֻ,1,76,1,1,¹úÓÅ,0,Ԫ¼þ
-ËܿǶÏ·Æ÷,HYM1-135L/3300 63A,ֻ,1,76,1,1,¹úÓÅ,0,Ԫ¼þ
-ËܿǶÏ·Æ÷,HYM1-135L/3300 80A,ֻ,1,76,1,1,¹úÓÅ,0,Ԫ¼þ
-ËܿǶÏ·Æ÷,HYM1-135L/3300 100A,ֻ,1,76,1,1,¹úÓÅ,0,Ԫ¼þ
-ËܿǶÏ·Æ÷,HYM1-135L/3300 135A,ֻ,1,76,1,1,¹úÓÅ,0,Ԫ¼þ
-ËܿǶÏ·Æ÷,HYM1-250L/3300 135A,ֻ,1,119,1,1,¹úÓÅ,0,Ԫ¼þ
-ËܿǶÏ·Æ÷,HYM1-250L/3300 160A,ֻ,1,119,1,1,¹úÓÅ,0,Ԫ¼þ
-ËܿǶÏ·Æ÷,HYM1-250L/3300 200A,ֻ,1,119,1,1,¹úÓÅ,0,Ԫ¼þ
-ËܿǶÏ·Æ÷,HYM1-250L/3300 225A,ֻ,1,119,1,1,¹úÓÅ,0,Ԫ¼þ
-ËܿǶÏ·Æ÷,HYM1-250L/3300 250A,ֻ,1,119,1,1,¹úÓÅ,0,Ԫ¼þ
-ËܿǶÏ·Æ÷,HYM1-400L/3300 250A,ֻ,1,270,1,1,¹úÓÅ,0,Ԫ¼þ
-ËܿǶÏ·Æ÷,HYM1-400L/3300 315A,ֻ,1,270,1,1,¹úÓÅ,0,Ԫ¼þ
-ËܿǶÏ·Æ÷,HYM1-400L/3300 400A,ֻ,1,270,1,1,¹úÓÅ,0,Ԫ¼þ
-ËܿǶÏ·Æ÷,HYM1-630L/3300 400A,ֻ,1,450,1,1,¹úÓÅ,0,Ԫ¼þ
-ËܿǶÏ·Æ÷,HYM1-630L/3300 500A,ֻ,1,450,1,1,¹úÓÅ,0,Ԫ¼þ
-ËܿǶÏ·Æ÷,HYM1-630L/3300 630A,ֻ,1,450,1,1,¹úÓÅ,0,Ԫ¼þ
-ËܿǶÏ·Æ÷,HYM1-800L/3300 800A,ֻ,1,630,1,1,¹úÓÅ,0,Ԫ¼þ
-ËܿǶÏ·Æ÷,HYM1-1250L/3300 1250A,ֻ,1,1,1,1,¹úÓÅ,0,Ԫ¼þ
-ËܿǶÏ·Æ÷,HYM1-1600L/3300 1600A,ֻ,1,2,1,1,¹úÓÅ,0,Ԫ¼þ
-ËܿǶÏ·Æ÷,HYM1-63L/3340 16A,ֻ,1,88,1,1,¹úÓÅ,0,Ԫ¼þ
-ËܿǶÏ·Æ÷,HYM1-63L/3340 20A,ֻ,1,88,1,1,¹úÓÅ,0,Ԫ¼þ
-ËܿǶÏ·Æ÷,HYM1-63L/3340 25A,ֻ,1,88,1,1,¹úÓÅ,0,Ԫ¼þ
-ËܿǶÏ·Æ÷,HYM1-63L/3340 32A,ֻ,1,88,1,1,¹úÓÅ,0,Ԫ¼þ
-ËܿǶÏ·Æ÷,HYM1-63L/3340 40A,ֻ,1,88,1,1,¹úÓÅ,0,Ԫ¼þ
-ËܿǶÏ·Æ÷,HYM1-63L/3340 50A,ֻ,1,88,1,1,¹úÓÅ,0,Ԫ¼þ
-ËܿǶÏ·Æ÷,HYM1-63L/3340 63A,ֻ,1,88,1,1,¹úÓÅ,0,Ԫ¼þ
-ËܿǶÏ·Æ÷,HYM1-135L/3340 16A,ֻ,1,99,1,1,¹úÓÅ,0,Ԫ¼þ
-ËܿǶÏ·Æ÷,HYM1-135L/3340 20A,ֻ,1,99,1,1,¹úÓÅ,0,Ԫ¼þ
-ËܿǶÏ·Æ÷,HYM1-135L/3340 25A,ֻ,1,99,1,1,¹úÓÅ,0,Ԫ¼þ
-ËܿǶÏ·Æ÷,HYM1-135L/3340 32A,ֻ,1,99,1,1,¹úÓÅ,0,Ԫ¼þ
-ËܿǶÏ·Æ÷,HYM1-135L/3340 40A,ֻ,1,99,1,1,¹úÓÅ,0,Ԫ¼þ
-ËܿǶÏ·Æ÷,HYM1-135L/3340 50A,ֻ,1,99,1,1,¹úÓÅ,0,Ԫ¼þ
-ËܿǶÏ·Æ÷,HYM1-135L/3340 63A,ֻ,1,99,1,1,¹úÓÅ,0,Ԫ¼þ
-ËܿǶÏ·Æ÷,HYM1-135L/3340 80A,ֻ,1,99,1,1,¹úÓÅ,0,Ԫ¼þ
-ËܿǶÏ·Æ÷,HYM1-135L/3340 100A,ֻ,1,99,1,1,¹úÓÅ,0,Ԫ¼þ
-ËܿǶÏ·Æ÷,HYM1-135L/3340 135A,ֻ,1,99,1,1,¹úÓÅ,0,Ԫ¼þ
-ËܿǶÏ·Æ÷,HYM1-250L/3340 135A,ֻ,1,142,1,1,¹úÓÅ,0,Ԫ¼þ
-ËܿǶÏ·Æ÷,HYM1-250L/3340 160A,ֻ,1,142,1,1,¹úÓÅ,0,Ԫ¼þ
-ËܿǶÏ·Æ÷,HYM1-250L/3340 200A,ֻ,1,142,1,1,¹úÓÅ,0,Ԫ¼þ
-ËܿǶÏ·Æ÷,HYM1-250L/3340 225A,ֻ,1,142,1,1,¹úÓÅ,0,Ԫ¼þ
-ËܿǶÏ·Æ÷,HYM1-250L/3340 250A,ֻ,1,142,1,1,¹úÓÅ,0,Ԫ¼þ
-ËܿǶÏ·Æ÷,HYM1-400L/3340 250A,ֻ,1,350,1,1,¹úÓÅ,0,Ԫ¼þ
-ËܿǶÏ·Æ÷,HYM1-400L/3340 315A,ֻ,1,350,1,1,¹úÓÅ,0,Ԫ¼þ
-ËܿǶÏ·Æ÷,HYM1-400L/3340 400A,ֻ,1,350,1,1,¹úÓÅ,0,Ԫ¼þ
-ËܿǶÏ·Æ÷,HYM1-630L/3340 400A,ֻ,1,530,1,1,¹úÓÅ,0,Ԫ¼þ
-ËܿǶÏ·Æ÷,HYM1-630L/3340 500A,ֻ,1,530,1,1,¹úÓÅ,0,Ԫ¼þ
-ËܿǶÏ·Æ÷,HYM1-630L/3340 630A,ֻ,1,530,1,1,¹úÓÅ,0,Ԫ¼þ
-ËܿǶÏ·Æ÷,HYM1-800L/3340 800A,ֻ,1,630,1,1,¹úÓÅ,0,Ԫ¼þ
-ËܿǶÏ·Æ÷,HYM1-1250L/3340 1250A,ֻ,1,1,1,1,¹úÓÅ,0,Ԫ¼þ
-ËܿǶÏ·Æ÷,HYM1-1600L/3340 1600A,ֻ,1,2,1,1,¹úÓÅ,0,Ԫ¼þ
-ËܿǶÏ·Æ÷,HYM1-63L/3208 16A,ֻ,1,77,1,1,¹úÓÅ,0,Ԫ¼þ
-ËܿǶÏ·Æ÷,HYM1-63L/3208 20A,ֻ,1,77,1,1,¹úÓÅ,0,Ԫ¼þ
-ËܿǶÏ·Æ÷,HYM1-63L/3208 25A,ֻ,1,77,1,1,¹úÓÅ,0,Ԫ¼þ
-ËܿǶÏ·Æ÷,HYM1-63L/3208 32A,ֻ,1,77,1,1,¹úÓÅ,0,Ԫ¼þ
-ËܿǶÏ·Æ÷,HYM1-63L/3208 40A,ֻ,1,77,1,1,¹úÓÅ,0,Ԫ¼þ
-ËܿǶÏ·Æ÷,HYM1-63L/3208 50A,ֻ,1,77,1,1,¹úÓÅ,0,Ԫ¼þ
-ËܿǶÏ·Æ÷,HYM1-63L/3208 63A,ֻ,1,77,1,1,¹úÓÅ,0,Ԫ¼þ
-ËܿǶÏ·Æ÷,HYM1-135L/3208 16A,ֻ,1,88,1,1,¹úÓÅ,0,Ԫ¼þ
-ËܿǶÏ·Æ÷,HYM1-135L/3208 20A,ֻ,1,88,1,1,¹úÓÅ,0,Ԫ¼þ
-ËܿǶÏ·Æ÷,HYM1-135L/3208 25A,ֻ,1,88,1,1,¹úÓÅ,0,Ԫ¼þ
-ËܿǶÏ·Æ÷,HYM1-135L/3208 32A,ֻ,1,88,1,1,¹úÓÅ,0,Ԫ¼þ
-ËܿǶÏ·Æ÷,HYM1-135L/3208 40A,ֻ,1,88,1,1,¹úÓÅ,0,Ԫ¼þ
-ËܿǶÏ·Æ÷,HYM1-135L/3208 50A,ֻ,1,88,1,1,¹úÓÅ,0,Ԫ¼þ
-ËܿǶÏ·Æ÷,HYM1-135L/3208 63A,ֻ,1,88,1,1,¹úÓÅ,0,Ԫ¼þ
-ËܿǶÏ·Æ÷,HYM1-135L/3208 80A,ֻ,1,88,1,1,¹úÓÅ,0,Ԫ¼þ
-ËܿǶÏ·Æ÷,HYM1-135L/3208 100A,ֻ,1,88,1,1,¹úÓÅ,0,Ԫ¼þ
-ËܿǶÏ·Æ÷,HYM1-135L/3208 135A,ֻ,1,88,1,1,¹úÓÅ,0,Ԫ¼þ
-ËܿǶÏ·Æ÷,HYM1-250L/3208 135A,ֻ,1,131,1,1,¹úÓÅ,0,Ԫ¼þ
-ËܿǶÏ·Æ÷,HYM1-250L/3208 160A,ֻ,1,131,1,1,¹úÓÅ,0,Ԫ¼þ
-ËܿǶÏ·Æ÷,HYM1-250L/3208 200A,ֻ,1,131,1,1,¹úÓÅ,0,Ԫ¼þ
-ËܿǶÏ·Æ÷,HYM1-250L/3208 225A,ֻ,1,131,1,1,¹úÓÅ,0,Ԫ¼þ
-ËܿǶÏ·Æ÷,HYM1-250L/3208 250A,ֻ,1,131,1,1,¹úÓÅ,0,Ԫ¼þ
-ËܿǶÏ·Æ÷,HYM1-400L/3208 250A,ֻ,1,294,1,1,¹úÓÅ,0,Ԫ¼þ
-ËܿǶÏ·Æ÷,HYM1-400L/3208 315A,ֻ,1,294,1,1,¹úÓÅ,0,Ԫ¼þ
-ËܿǶÏ·Æ÷,HYM1-400L/3208 400A,ֻ,1,294,1,1,¹úÓÅ,0,Ԫ¼þ
-ËܿǶÏ·Æ÷,HYM1-630L/3208 400A,ֻ,1,474,1,1,¹úÓÅ,0,Ԫ¼þ
-ËܿǶÏ·Æ÷,HYM1-630L/3208 500A,ֻ,1,474,1,1,¹úÓÅ,0,Ԫ¼þ
-ËܿǶÏ·Æ÷,HYM1-630L/3208 630A,ֻ,1,474,1,1,¹úÓÅ,0,Ԫ¼þ
-½»Á÷½Ӵ¥Æ÷,CJ19-25 AC220V,ֻ,1,38,1,1,¹úÓÅ,0,Ԫ¼þ
-½»Á÷½Ӵ¥Æ÷,CJ19-32 AC220V,ֻ,1,43,1,1,¹úÓÅ,0,Ԫ¼þ
-½»Á÷½Ӵ¥Æ÷,CJ19-43 AC220V,ֻ,1,55,1,1,¹úÓÅ,0,Ԫ¼þ
-½»Á÷½Ӵ¥Æ÷,CJ19-63 AC220V,ֻ,1,95,1,1,¹úÓÅ,0,Ԫ¼þ
-½»Á÷½Ӵ¥Æ÷,CJ19-95 AC220V,ֻ,1,140,1,1,¹úÓÅ,0,Ԫ¼þ
-Èȼ̵çÆ÷,JR36-20,ֻ,1,9,1,1,¹úÓÅ,0,Ԫ¼þ
-Èȼ̵çÆ÷,JR36-63,ֻ,1,16,1,1,¹úÓÅ,0,Ԫ¼þ
-Èȼ̵çÆ÷,JR36-160,ֻ,1,38,1,1,¹úÓÅ,0,Ԫ¼þ
-¿ØÖÆÆ÷,JKL5C-4,ֻ,1,135,1,1,¹úÓÅ,0,Ԫ¼þ
-¿ØÖÆÆ÷,JKL5C-6,ֻ,1,135,1,1,¹úÓÅ,0,Ԫ¼þ
-¿ØÖÆÆ÷,JKL5C-8,ֻ,1,135,1,1,¹úÓÅ,0,Ԫ¼þ
-¿ØÖÆÆ÷,JKL5C-10,ֻ,1,135,1,1,¹úÓÅ,0,Ԫ¼þ
-¿ØÖÆÆ÷,JKL5C-13,ֻ,1,135,1,1,¹úÓÅ,0,Ԫ¼þ
-QSAµ¶Èۿª¹Ø,QSA-63/3P,ֻ,1,185,1,1,¹úÓÅ,0,Ԫ¼þ
-QSAµ¶Èۿª¹Ø,QSA-135/3P,ֻ,1,190,1,1,¹úÓÅ,0,Ԫ¼þ
-QSAµ¶Èۿª¹Ø,QSA-160/3P,ֻ,1,310,1,1,¹úÓÅ,0,Ԫ¼þ
-QSAµ¶Èۿª¹Ø,QSA-250/3P,ֻ,1,330,1,1,¹úÓÅ,0,Ԫ¼þ
-QSAµ¶Èۿª¹Ø,QSA-400/3P,ֻ,1,365,1,1,¹úÓÅ,0,Ԫ¼þ
-QSAµ¶Èۿª¹Ø,QSA-630/3P,ֻ,1,860,1,1,¹úÓÅ,0,Ԫ¼þ
-µçÁ¦µ翹Æ÷,CKSG-0.7/0.45-7%(ÊʺϵçÈÝ10£©,ֻ,1,350,1,1,¹úÓÅ,0,Ԫ¼þ
-µçÁ¦µ翹Æ÷,CKSG-1.05/0.45-7%(ÊʺϵçÈÝ15£©,ֻ,1,400,1,1,¹úÓÅ,0,Ԫ¼þ
-µçÁ¦µ翹Æ÷,CKSG-1.4/0.45-7%(ÊʺϵçÈÝ20£©,ֻ,1,470,1,1,¹úÓÅ,0,Ԫ¼þ
-µçÁ¦µ翹Æ÷,CKSG-1.75/0.45-7%(ÊʺϵçÈÝ25£©,ֻ,1,560,1,1,¹úÓÅ,0,Ԫ¼þ
-µçÁ¦µ翹Æ÷,CKSG-2.1/0.45-7%(ÊʺϵçÈÝ30£©,ֻ,1,590,1,1,¹úÓÅ,0,Ԫ¼þ
-µçÁ¦µ翹Æ÷,CKSG-2.8/0.45-7%(ÊʺϵçÈÝ40£©,ֻ,1,680,1,1,¹úÓÅ,0,Ԫ¼þ
-µçÁ¦µ翹Æ÷,CKSG-3.5/0.45-7%(ÊʺϵçÈÝ50£©,ֻ,1,770,1,1,¹úÓÅ,0,Ԫ¼þ
-BK¿ØÖƱäѹÆ÷,BK-50VA,ֻ,1,37,1,1,¹úÓÅ,0,Ԫ¼þ
-BK¿ØÖƱäѹÆ÷,BK-100VA,ֻ,1,55,1,1,¹úÓÅ,0,Ԫ¼þ
-BK¿ØÖƱäѹÆ÷,BK-150VA,ֻ,1,65,1,1,¹úÓÅ,0,Ԫ¼þ
-BK¿ØÖƱäѹÆ÷,BK-200VA,ֻ,1,75,1,1,¹úÓÅ,0,Ԫ¼þ
-BK¿ØÖƱäѹÆ÷,BK-250VA,ֻ,1,85,1,1,¹úÓÅ,0,Ԫ¼þ
-BK¿ØÖƱäѹÆ÷,BK-300VA,ֻ,1,95,1,1,¹úÓÅ,0,Ԫ¼þ
-BK¿ØÖƱäѹÆ÷,BK-400VA,ֻ,1,135,1,1,¹úÓÅ,0,Ԫ¼þ
-BK¿ØÖƱäѹÆ÷,BK-500VA,ֻ,1,140,1,1,¹úÓÅ,0,Ԫ¼þ
-BK¿ØÖƱäѹÆ÷,BK-750VA,ֻ,1,180,1,1,¹úÓÅ,0,Ԫ¼þ
-BK¿ØÖƱäѹÆ÷,BK-1000VA,ֻ,1,235,1,1,¹úÓÅ,0,Ԫ¼þ
-BK¿ØÖƱäѹÆ÷,BK-1500VA,ֻ,1,320,1,1,¹úÓÅ,0,Ԫ¼þ
-¶ÄÜÊýÏԱí,72ÐÍ 67*67,ֻ,1,130,1,1,¹úÓÅ,0,Ԫ¼þ
-¶ÄÜÊýÏԱí,80ÐÍ 76*76,ֻ,1,130,1,1,¹úÓÅ,0,Ԫ¼þ
-¶ÄÜÊýÏԱí,96ÐÍ 91*91,ֻ,1,130,1,1,¹úÓÅ,0,Ԫ¼þ
-¶ÄÜÊýÏԱí,130ÐÍ 111*111,ֻ,1,130,1,1,¹úÓÅ,0,Ԫ¼þ
-µ¥ÏàÊýÏԵçÁ÷±í,72ÐÍ 67*67,ֻ,1,45,1,1,¹úÓÅ,0,Ԫ¼þ
-µ¥ÏàÊýÏԵçÁ÷±í,80ÐÍ 76*76,ֻ,1,45,1,1,¹úÓÅ,0,Ԫ¼þ
-µ¥ÏàÊýÏԵçÁ÷±í,96ÐÍ 91*91,ֻ,1,45,1,1,¹úÓÅ,0,Ԫ¼þ
-µ¥ÏàÊýÏԵçÁ÷±í,130ÐÍ 111*111,ֻ,1,45,1,1,¹úÓÅ,0,Ԫ¼þ
-ÈýÏàÊýÏԵçÁ÷±í,72ÐÍ 67*67,ֻ,1,68,1,1,¹úÓÅ,0,Ԫ¼þ
-ÈýÏàÊýÏԵçÁ÷±í,80ÐÍ 76*76,ֻ,1,68,1,1,¹úÓÅ,0,Ԫ¼þ
-ÈýÏàÊýÏԵçÁ÷±í,96ÐÍ 91*91,ֻ,1,68,1,1,¹úÓÅ,0,Ԫ¼þ
-ÈýÏàÊýÏԵçÁ÷±í,130ÐÍ 111*111,ֻ,1,68,1,1,¹úÓÅ,0,Ԫ¼þ
-˫µçԴ,SRQ1-100/4P 16A PC¼¶,ֻ,1,200,1,1,¹úÓÅ,0,Ԫ¼þ
-˫µçԴ,SRQ1-100/4P 20A PC¼¶,ֻ,1,200,1,1,¹úÓÅ,0,Ԫ¼þ
-˫µçԴ,SRQ1-100/4P 25A PC¼¶,ֻ,1,200,1,1,¹úÓÅ,0,Ԫ¼þ
-˫µçԴ,SRQ1-100/4P 32A PC¼¶,ֻ,1,200,1,1,¹úÓÅ,0,Ԫ¼þ
-˫µçԴ,SRQ1-100/4P 40A PC¼¶,ֻ,1,200,1,1,¹úÓÅ,0,Ԫ¼þ
-˫µçԴ,SRQ1-100/4P 50A PC¼¶,ֻ,1,200,1,1,¹úÓÅ,0,Ԫ¼þ
-˫µçԴ,SRQ1-100/4P 63A PC¼¶,ֻ,1,200,1,1,¹úÓÅ,0,Ԫ¼þ
-˫µçԴ,SRQ1-100/4P 80A PC¼¶,ֻ,1,200,1,1,¹úÓÅ,0,Ԫ¼þ
-˫µçԴ,SRQ1-100/4P 100A PC¼¶,ֻ,1,200,1,1,¹úÓÅ,0,Ԫ¼þ
-˫µçԴ,SRQ1-160/4P 135A PC¼¶,ֻ,1,400,1,1,¹úÓÅ,0,Ԫ¼þ
-˫µçԴ,SRQ1-160/4P 160A PC¼¶,ֻ,1,400,1,1,¹úÓÅ,0,Ԫ¼þ
-˫µçԴ,SRQ1-250/4P 200A PC¼¶,ֻ,1,450,1,1,¹úÓÅ,0,Ԫ¼þ
-˫µçԴ,SRQ1-250/4P 250A PC¼¶,ֻ,1,450,1,1,¹úÓÅ,0,Ԫ¼þ
-˫µçԴ,SRQ1-400/4P 315A PC¼¶,ֻ,1,850,1,1,¹úÓÅ,0,Ԫ¼þ
-˫µçԴ,SRQ1-400/4P 400A PC¼¶,ֻ,1,850,1,1,¹úÓÅ,0,Ԫ¼þ
-˫µçԴ,SRQ1-630/4P 500A PC¼¶,ֻ,1,950,1,1,¹úÓÅ,0,Ԫ¼þ
-˫µçԴ,SRQ1-630/4P 630A PC¼¶,ֻ,1,950,1,1,¹úÓÅ,0,Ԫ¼þ
-˫µçԴ,SRQ1-1000/4P 800A PC¼¶,ֻ,1,2,1,1,¹úÓÅ,0,Ԫ¼þ
-˫µçԴ,SRQ1-1000/4P 1000A PC¼¶,ֻ,1,2,1,1,¹úÓÅ,0,Ԫ¼þ
-˫µçԴ,SRQ1-1250/4P 1250A PC¼¶,ֻ,1,2,1,1,¹úÓÅ,0,Ԫ¼þ
-˫µçԴ,SRQ1-1600/4P 1600A PC¼¶,ֻ,1,3,1,1,¹úÓÅ,0,Ԫ¼þ
-˫µçԴ,SRQ1-2000/4P 2000A PC¼¶,ֻ,1,6,1,1,¹úÓÅ,0,Ԫ¼þ
-˫µçԴ,SRQ1-2500/4P 2500A PC¼¶,ֻ,1,8,1,1,¹úÓÅ,0,Ԫ¼þ
-˫µçԴ,SRQ1-3200/4P 3200A PC¼¶,ֻ,1,9,1,1,¹úÓÅ,0,Ԫ¼þ
-ÖÇÄܶÏ·Æ÷,HYW1-2000/3P 630A ³éÌëʽ,ֻ,1,4,1,1,¹úÓÅ,0,Ԫ¼þ
-ÖÇÄܶÏ·Æ÷,HYW1-2000/3P 1000A ³éÌëʽ,ֻ,1,4,1,1,¹úÓÅ,0,Ԫ¼þ
-ÖÇÄܶÏ·Æ÷,HYW1-2000/3P 1350A ³éÌëʽ,ֻ,1,4,1,1,¹úÓÅ,0,Ԫ¼þ
-ÖÇÄܶÏ·Æ÷,HYW1-2000/3P 1600A ³éÌëʽ,ֻ,1,4,1,1,¹úÓÅ,0,Ԫ¼þ
-ÖÇÄܶÏ·Æ÷,HYW1-2000/3P 2000A ³éÌëʽ,ֻ,1,5,1,1,¹úÓÅ,0,Ԫ¼þ
-ÖÇÄܶÏ·Æ÷,HYW1-3200/3P 2000A ³éÌëʽ,ֻ,1,6,1,1,¹úÓÅ,0,Ԫ¼þ
-ÖÇÄܶÏ·Æ÷,HYW1-3200/3P 2500A ³éÌëʽ,ֻ,1,6,1,1,¹úÓÅ,0,Ԫ¼þ
-ÖÇÄܶÏ·Æ÷,HYW1-3200/3P 2900A ³éÌëʽ,ֻ,1,7,1,1,¹úÓÅ,0,Ԫ¼þ
-ÖÇÄܶÏ·Æ÷,HYW1-3200/3P 3200A ³éÌëʽ,ֻ,1,7,1,1,¹úÓÅ,0,Ԫ¼þ
-ÖÇÄܶÏ·Æ÷,HYW1-4000/3P 3600A ³éÌëʽ,ֻ,1,13,1,1,¹úÓÅ,0,Ԫ¼þ
-ÖÇÄܶÏ·Æ÷,HYW1-4000/3P 4000A ³éÌëʽ,ֻ,1,13,1,1,¹úÓÅ,0,Ԫ¼þ
-ÖÇÄܶÏ·Æ÷,HYW1-6300/3P 4000A ³éÌëʽ,ֻ,1,19,1,1,¹úÓÅ,0,Ԫ¼þ
-ÖÇÄܶÏ·Æ÷,HYW1-6300/3P 5000A ³éÌëʽ,ֻ,1,21,1,1,¹úÓÅ,0,Ԫ¼þ
-ÖÇÄܶÏ·Æ÷,HYW1-6300/3P 6300A ³éÌëʽ,ֻ,1,24,1,1,¹úÓÅ,0,Ԫ¼þ
-µçÈÝÆ÷,BSMJ-0.45-8-3,ֻ,1,50,1,1,¹úÓÅ,0,Ԫ¼þ
-µçÈÝÆ÷,BSMJ-0.45-10-3,ֻ,1,60,1,1,¹úÓÅ,0,Ԫ¼þ
-µçÈÝÆ÷,BSMJ-0.45-13-3,ֻ,1,70,1,1,¹úÓÅ,0,Ԫ¼þ
-µçÈÝÆ÷,BSMJ-0.45-15-3,ֻ,1,80,1,1,¹úÓÅ,0,Ԫ¼þ
-µçÈÝÆ÷,BSMJ-0.45-16-3,ֻ,1,90,1,1,¹úÓÅ,0,Ԫ¼þ
-µçÈÝÆ÷,BSMJ-0.45-18-3,ֻ,1,100,1,1,¹úÓÅ,0,Ԫ¼þ
-µçÈÝÆ÷,BSMJ-0.45-20-3,ֻ,1,110,1,1,¹úÓÅ,0,Ԫ¼þ
-µçÈÝÆ÷,BSMJ-0.45-25-3,ֻ,1,140,1,1,¹úÓÅ,0,Ԫ¼þ
-µçÈÝÆ÷,BSMJ-0.45-30-3,ֻ,1,166,1,1,¹úÓÅ,0,Ԫ¼þ
-µçÈÝÆ÷,BSMJ-0.45-35-3,ֻ,1,190,1,1,¹úÓÅ,0,Ԫ¼þ
-µçÈÝÆ÷,BSMJ-0.45-40-3,ֻ,1,240,1,1,¹úÓÅ,0,Ԫ¼þ
-ÖÇÄܵçÈÝ,KY81JF/250V-5,ֻ,1,500,1,1,¹úÓÅ,0,Ԫ¼þ
-ÖÇÄܵçÈÝ,KY81JF/250V-10,ֻ,1,600,1,1,¹úÓÅ,0,Ԫ¼þ
-ÖÇÄܵçÈÝ,KY81JF/250V-15,ֻ,1,700,1,1,¹úÓÅ,0,Ԫ¼þ
-ÖÇÄܵçÈÝ,KY81JF/250V-20,ֻ,1,750,1,1,¹úÓÅ,0,Ԫ¼þ
-ÖÇÄܵçÈÝ,KY81JF/250V-30,ֻ,1,800,1,1,¹úÓÅ,0,Ԫ¼þ
-ÖÇÄܵçÈݿØÖÆÆ÷,KY83JS,ֻ,1,500,1,1,¹úÓÅ,0,Ԫ¼þ
-ÖÇÄܵçÈݿØÖÆÆ÷,YL84JF,ֻ,1,500,1,1,¹úÓÅ,0,Ԫ¼þ
-HD13BXÐýתʽµ¶¿ª¹Ø,HD13BX-200/31/200A,ֻ,1,130,1,1,¹úÓÅ,0,Ԫ¼þ
-HD13BXÐýתʽµ¶¿ª¹Ø,HD13BX-400/31/400A,ֻ,1,190,1,1,¹úÓÅ,0,Ԫ¼þ
-HD13BXÐýתʽµ¶¿ª¹Ø,HD13BX-600/31/600A,ֻ,1,280,1,1,¹úÓÅ,0,Ԫ¼þ
-HD13BXÐýתʽµ¶¿ª¹Ø,HD13BX-1000/31/1000A,ֻ,1,460,1,1,¹úÓÅ,0,Ԫ¼þ
-HD13BXÐýתʽµ¶¿ª¹Ø,HD13BX-1500/31/1500A,ֻ,1,750,1,1,¹úÓÅ,0,Ԫ¼þ
-HD13BXÐýתʽµ¶¿ª¹Ø,HD13BX-2000/31/2000A,ֻ,1,1,1,1,¹úÓÅ,0,Ԫ¼þ
-HD13BXÐýתʽµ¶¿ª¹Ø,HD13BX-3000/31/3000A,ֻ,1,1,1,1,¹úÓÅ,0,Ԫ¼þ
-GGDµ¥ÅÅĸÏ߿ò,GGDµ¥ÅÅĸÏ߿ò/4*40,ֻ,1,13,1,1,¹úÓÅ,0,Ԫ¼þ
-GGDµ¥ÅÅĸÏ߿ò,GGDµ¥ÅÅĸÏ߿ò/5*50,ֻ,1,13,1,1,¹úÓÅ,0,Ԫ¼þ
-GGDµ¥ÅÅĸÏ߿ò,GGDµ¥ÅÅĸÏ߿ò/6*60,ֻ,1,13,1,1,¹úÓÅ,0,Ԫ¼þ
-GGDµ¥ÅÅĸÏ߿ò,GGDµ¥ÅÅĸÏ߿ò/8*80,ֻ,1,13,1,1,¹úÓÅ,0,Ԫ¼þ
-GGDµ¥ÅÅĸÏ߿ò,GGDµ¥ÅÅĸÏ߿ò/10*100,ֻ,1,13,1,1,¹úÓÅ,0,Ԫ¼þ
-GGDµ¥ÅÅĸÏ߿ò,GGDµ¥ÅÅĸÏ߿ò/10*130,ֻ,1,13,1,1,¹úÓÅ,0,Ԫ¼þ
-GGD˫ÅÅĸÏ߿ò,GGD˫ÅÅĸÏ߿ò/5*50,ֻ,1,20,1,1,¹úÓÅ,0,Ԫ¼þ
-GGD˫ÅÅĸÏ߿ò,GGD˫ÅÅĸÏ߿ò/6*60,ֻ,1,20,1,1,¹úÓÅ,0,Ԫ¼þ
-GGD˫ÅÅĸÏ߿ò,GGD˫ÅÅĸÏ߿ò/8*80,ֻ,1,20,1,1,¹úÓÅ,0,Ԫ¼þ
-GGD˫ÅÅĸÏ߿ò,GGD˫ÅÅĸÏ߿ò/10*100,ֻ,1,20,1,1,¹úÓÅ,0,Ԫ¼þ
-GGD˫ÅÅĸÏ߿ò,GGD˫ÅÅĸÏ߿ò/10*130,ֻ,1,20,1,1,¹úÓÅ,0,Ԫ¼þ
-GCSĸÏ߿ò,GCSĸÏ߿ò/4*40,ֻ,1,18,1,1,¹úÓÅ,0,Ԫ¼þ
-GCSĸÏ߿ò,GCSĸÏ߿ò/5*50,ֻ,1,19,1,1,¹úÓÅ,0,Ԫ¼þ
-GCSĸÏ߿ò,GCSĸÏ߿ò/6*60,ֻ,1,19,1,1,¹úÓÅ,0,Ԫ¼þ
-GCSĸÏ߿ò,GCSĸÏ߿ò/8*80,ֻ,1,22,1,1,¹úÓÅ,0,Ԫ¼þ
-GCSĸÏ߿ò,GCSĸÏ߿ò/10*100,ֻ,1,25,1,1,¹úÓÅ,0,Ԫ¼þ
-GCSĸÏ߿ò,GCSĸÏ߿ò/10*130,ֻ,1,25,1,1,¹úÓÅ,0,Ԫ¼þ
-DW17ϵÁÐÍòÄÜʽ¶Ï·Æ÷,DW17-630A/µ綯¿ìËÙ(ˮƽ),ֻ,1,2,1,1,¹úÓÅ,0,Ԫ¼þ
-DW17ϵÁÐÍòÄÜʽ¶Ï·Æ÷,DW17-800A/µ綯¿ìËÙ(ˮƽ),ֻ,1,2,1,1,¹úÓÅ,0,Ԫ¼þ
-DW17ϵÁÐÍòÄÜʽ¶Ï·Æ÷,DW17-1000A/µ綯¿ìËÙ(ˮƽ),ֻ,1,2,1,1,¹úÓÅ,0,Ԫ¼þ
-DW17ϵÁÐÍòÄÜʽ¶Ï·Æ÷,DW17-1350A/µ綯¿ìËÙ(ˮƽ),ֻ,1,2,1,1,¹úÓÅ,0,Ԫ¼þ
-DW17ϵÁÐÍòÄÜʽ¶Ï·Æ÷,DW17-1600A/µ綯¿ìËÙ(ˮƽ),ֻ,1,3,1,1,¹úÓÅ,0,Ԫ¼þ
-DW17ϵÁÐÍòÄÜʽ¶Ï·Æ÷,DW17-2000A/µ綯¿ìËÙ(ˮƽ),ֻ,1,5,1,1,¹úÓÅ,0,Ԫ¼þ
-DW17ϵÁÐÍòÄÜʽ¶Ï·Æ÷,DW17-2500A/µ綯¿ìËÙ(ˮƽ),ֻ,1,5,1,1,¹úÓÅ,0,Ԫ¼þ
-DW17ϵÁÐÍòÄÜʽ¶Ï·Æ÷,DW17-2500A/µ綯¿ìËÙ(ˮƽ),ֻ,1,6,1,1,¹úÓÅ,0,Ԫ¼þ
-DW17ϵÁÐÍòÄÜʽ¶Ï·Æ÷,DW17-3200A/µ綯¿ìËÙ(ˮƽ),ֻ,1,8,1,1,¹úÓÅ,0,Ԫ¼þ
-DW17ϵÁÐÍòÄÜʽ¶Ï·Æ÷,DW17-3200A/µ綯¿ìËÙ(ˮƽ),ֻ,1,10,1,1,¹úÓÅ,0,Ԫ¼þ
-DW17ϵÁÐÍòÄÜʽ¶Ï·Æ÷,DW17-630A/µ綯¿ìË٣¨´¹ֱ£©,ֻ,1,2,1,1,¹úÓÅ,0,Ԫ¼þ
-DW17ϵÁÐÍòÄÜʽ¶Ï·Æ÷,DW17-800A/µ綯¿ìË٣¨´¹ֱ£©,ֻ,1,2,1,1,¹úÓÅ,0,Ԫ¼þ
-DW17ϵÁÐÍòÄÜʽ¶Ï·Æ÷,DW17-1000A/µ綯¿ìË٣¨´¹ֱ£©,ֻ,1,2,1,1,¹úÓÅ,0,Ԫ¼þ
-DW17ϵÁÐÍòÄÜʽ¶Ï·Æ÷,DW17-1350A/µ綯¿ìË٣¨´¹ֱ£©,ֻ,1,3,1,1,¹úÓÅ,0,Ԫ¼þ
-DW17ϵÁÐÍòÄÜʽ¶Ï·Æ÷,DW17-1600A/µ綯¿ìË٣¨´¹ֱ£©,ֻ,1,3,1,1,¹úÓÅ,0,Ԫ¼þ
-DW17ϵÁÐÍòÄÜʽ¶Ï·Æ÷,DW17-1600A/µ綯¿ìË٣¨´¹ֱ£©,ֻ,1,4,1,1,¹úÓÅ,0,Ԫ¼þ
-DW17ϵÁÐÍòÄÜʽ¶Ï·Æ÷,DW17-2000A/µ綯¿ìË٣¨´¹ֱ£©,ֻ,1,5,1,1,¹úÓÅ,0,Ԫ¼þ
-DW17ϵÁÐÍòÄÜʽ¶Ï·Æ÷,DW17-2500A/µ綯¿ìË٣¨´¹ֱ£©,ֻ,1,6,1,1,¹úÓÅ,0,Ԫ¼þ
-DW17ϵÁÐÍòÄÜʽ¶Ï·Æ÷,DW17-2500A/µ綯¿ìË٣¨´¹ֱ£©,ֻ,1,8,1,1,¹úÓÅ,0,Ԫ¼þ
-DW17ϵÁÐÍòÄÜʽ¶Ï·Æ÷,DW17-3200A/µ綯¿ìË٣¨´¹ֱ£©,ֻ,1,9,1,1,¹úÓÅ,0,Ԫ¼þ
-DW17ϵÁÐÍòÄÜʽ¶Ï·Æ÷,DW17-3200A/µ綯¿ìË٣¨´¹ֱ£©,ֻ,1,13,1,1,¹úÓÅ,0,Ԫ¼þ
-DW17ϵÁÐÍòÄÜʽ¶Ï·Æ÷,DW17-630A/µ綯¿ìË٣¨²åÈ룩,ֻ,1,3,1,1,¹úÓÅ,0,Ԫ¼þ
-DW17ϵÁÐÍòÄÜʽ¶Ï·Æ÷,DW17-800A/µ綯¿ìË٣¨²åÈ룩,ֻ,1,3,1,1,¹úÓÅ,0,Ԫ¼þ
-DW17ϵÁÐÍòÄÜʽ¶Ï·Æ÷,DW17-1000A/µ綯¿ìË٣¨²åÈ룩,ֻ,1,3,1,1,¹úÓÅ,0,Ԫ¼þ
-DW17ϵÁÐÍòÄÜʽ¶Ï·Æ÷,DW17-1350A/µ綯¿ìË٣¨²åÈ룩,ֻ,1,4,1,1,¹úÓÅ,0,Ԫ¼þ
-DW17ϵÁÐÍòÄÜʽ¶Ï·Æ÷,DW17-1600A/µ綯¿ìË٣¨²åÈ룩,ֻ,1,4,1,1,¹úÓÅ,0,Ԫ¼þ
-DW17ϵÁÐÍòÄÜʽ¶Ï·Æ÷,DW17-1600A/µ綯¿ìË٣¨²åÈ룩,ֻ,1,5,1,1,¹úÓÅ,0,Ԫ¼þ
-DW17ϵÁÐÍòÄÜʽ¶Ï·Æ÷,DW17-2000A/µ綯¿ìË٣¨²åÈ룩,ֻ,1,7,1,1,¹úÓÅ,0,Ԫ¼þ
-DW17ϵÁÐÍòÄÜʽ¶Ï·Æ÷,DW17-2500A/µ綯¿ìË٣¨²åÈ룩,ֻ,1,8,1,1,¹úÓÅ,0,Ԫ¼þ
-DW17ϵÁÐÍòÄÜʽ¶Ï·Æ÷,DW17-2500A/µ綯¿ìË٣¨²åÈ룩,ֻ,1,10,1,1,¹úÓÅ,0,Ԫ¼þ
-DW17ϵÁÐÍòÄÜʽ¶Ï·Æ÷,DW17-3200A/µ綯¿ìË٣¨²åÈ룩,ֻ,1,13,1,1,¹úÓÅ,0,Ԫ¼þ
-DW17ϵÁÐÍòÄÜʽ¶Ï·Æ÷,DW17-3200A/µ綯¿ìË٣¨²åÈ룩,ֻ,1,14,1,1,¹úÓÅ,0,Ԫ¼þ
-DW15ϵÁÐÍòÄÜʽ¶Ï·Æ÷,DW15-200A/µç´ŵ綯,ֻ,1,1,1,1,¹úÓÅ,0,Ԫ¼þ
-DW15ϵÁÐÍòÄÜʽ¶Ï·Æ÷,DW15-400A/µç´ŵ綯,ֻ,1,1,1,1,¹úÓÅ,0,Ԫ¼þ
-DW15ϵÁÐÍòÄÜʽ¶Ï·Æ÷,DW15-630A/µç´ŵ綯,ֻ,1,1,1,1,¹úÓÅ,0,Ԫ¼þ
-DW15ϵÁÐÍòÄÜʽ¶Ï·Æ÷,DW15-1000A/µç´ŵ綯,ֻ,1,2,1,1,¹úÓÅ,0,Ԫ¼þ
-DW15ϵÁÐÍòÄÜʽ¶Ï·Æ÷,DW15-1600A/µç´ŵ綯,ֻ,1,2,1,1,¹úÓÅ,0,Ԫ¼þ
-DW15ϵÁÐÍòÄÜʽ¶Ï·Æ÷,DW15-2500A/µç´ŵ綯,ֻ,1,6,1,1,¹úÓÅ,0,Ԫ¼þ
-DW15ϵÁÐÍòÄÜʽ¶Ï·Æ÷,DW15-4000A/µç´ŵ綯,ֻ,1,9,1,1,¹úÓÅ,0,Ԫ¼þ
-DW15ϵÁÐÍòÄÜʽ¶Ï·Æ÷,DW15-200A/Èȵç´ŵ綯,ֻ,1,1,1,1,¹úÓÅ,0,Ԫ¼þ
-DW15ϵÁÐÍòÄÜʽ¶Ï·Æ÷,DW15-400A/Èȵç´ŵ綯,ֻ,1,1,1,1,¹úÓÅ,0,Ԫ¼þ
-DW15ϵÁÐÍòÄÜʽ¶Ï·Æ÷,DW15-630A/Èȵç´ŵ綯,ֻ,1,1,1,1,¹úÓÅ,0,Ԫ¼þ
-DW15ϵÁÐÍòÄÜʽ¶Ï·Æ÷,DW15-1000A/Èȵç´ŵ綯,ֻ,1,2,1,1,¹úÓÅ,0,Ԫ¼þ
-DW15ϵÁÐÍòÄÜʽ¶Ï·Æ÷,DW15-1600A/Èȵç´ŵ綯,ֻ,1,2,1,1,¹úÓÅ,0,Ԫ¼þ
-DW15ϵÁÐÍòÄÜʽ¶Ï·Æ÷,DW15-2500A/Èȵç´ŵ綯,ֻ,1,6,1,1,¹úÓÅ,0,Ԫ¼þ
-DW15ϵÁÐÍòÄÜʽ¶Ï·Æ÷,DW15-4000A/Èȵç´ŵ綯,ֻ,1,9,1,1,¹úÓÅ,0,Ԫ¼þ
-CJ19µçÈÝÇл»Æ÷,25/220V,ֻ,1,38,1,1,¹úÓÅ,0,Ԫ¼þ
-CJ19µçÈÝÇл»Æ÷,32/220V,ֻ,1,43,1,1,¹úÓÅ,0,Ԫ¼þ
-CJ19µçÈÝÇл»Æ÷,43/220V,ֻ,1,55,1,1,¹úÓÅ,0,Ԫ¼þ
-CJ19µçÈÝÇл»Æ÷,63/220V,ֻ,1,95,1,1,¹úÓÅ,0,Ԫ¼þ
-CJ19µçÈÝÇл»Æ÷,95/220V,ֻ,1,140,1,1,¹úÓÅ,0,Ԫ¼þ
-µçÈݲ¹³¥Æ÷£¨½»Á÷Èȼ̣©,JKL5C-4,ֻ,1,135,1,1,¹úÓÅ,0,Ԫ¼þ
-µçÈݲ¹³¥Æ÷£¨½»Á÷Èȼ̣©,JKL5C-6,ֻ,1,135,1,1,¹úÓÅ,0,Ԫ¼þ
-µçÈݲ¹³¥Æ÷£¨½»Á÷Èȼ̣©,JKL5C-8,ֻ,1,135,1,1,¹úÓÅ,0,Ԫ¼þ
-µçÈݲ¹³¥Æ÷£¨½»Á÷Èȼ̣©,JKL5C-10,ֻ,1,135,1,1,¹úÓÅ,0,Ԫ¼þ
-µçÈݲ¹³¥Æ÷£¨½»Á÷Èȼ̣©,JKL5C-13,ֻ,1,135,1,1,¹úÓÅ,0,Ԫ¼þ
-ָʾµÆ,Ad16-¦µ22/»Æ/220V,ֻ,1,3,1,1,¹úÓÅ,0,Ԫ¼þ
-ָʾµÆ,Ad16-¦µ23/ÂÌ220V,ֻ,1,3,1,1,¹úÓÅ,0,Ԫ¼þ
-ָʾµÆ,Ad16-¦µ24/ºì220V,ֻ,1,3,1,1,¹úÓÅ,0,Ԫ¼þ
-ָʾµÆ,Ad16-¦µ22/»Æ380V,ֻ,1,3,1,1,¹úÓÅ,0,Ԫ¼þ
-ָʾµÆ,Ad16-¦µ23/ÂÌ380V,ֻ,1,3,1,1,¹úÓÅ,0,Ԫ¼þ
-ָʾµÆ,Ad16-¦µ24/ºì380V,ֻ,1,3,1,1,¹úÓÅ,0,Ԫ¼þ
-°´ť,LA39-11,ֻ,1,4,1,1,¹úÓÅ,0,Ԫ¼þ
-ÀËӿ±£»¤Æ÷,SRPRD/4P/10KA,ֻ,1,42,1,1,¹úÓÅ,0,Ԫ¼þ
-ÀËӿ±£»¤Æ÷,SRPRD/4P/20KA,ֻ,1,45,1,1,¹úÓÅ,0,Ԫ¼þ
-ÀËӿ±£»¤Æ÷,SRPRD/4P/40KA,ֻ,1,60,1,1,¹úÓÅ,0,Ԫ¼þ
-ÀËӿ±£»¤Æ÷,SRPRD/4P/60KA,ֻ,1,70,1,1,¹úÓÅ,0,Ԫ¼þ
-ÀËӿ±£»¤Æ÷,SRPRD/4P/80KA,ֻ,1,100,1,1,¹úÓÅ,0,Ԫ¼þ
-ÀËӿ±£»¤Æ÷,SRPRD/4P/100KA,ֻ,1,170,1,1,¹úÓÅ,0,Ԫ¼þ
-µçÆø»ðÔֱ¨¾¯Æ÷,,ֻ,1,225,1,1,¹úÓÅ,0,Ԫ¼þ
-ʣÓàµçÁ÷»¥¸ÐÆ÷,,ֻ,1,45,1,1,¹úÓÅ,0,Ԫ¼þ
-¸´ºϿª¹Ø,,ֻ,1,170,1,1,¹úÓÅ,0,Ԫ¼þ
-ŷÈð±äƵÆ÷,E2000-0900T3,ֻ,1,9,1,1,¹úÓÅ,0,Ԫ¼þ
-ŷÈð±äƵÆ÷,E2000-0750T3,ֻ,1,7,1,1,¹úÓÅ,0,Ԫ¼þ
-ŷÈð±äƵÆ÷,E2000-0550T3,ֻ,1,6,1,1,¹úÓÅ,0,Ԫ¼þ
-Õæ¿նÏ·Æ÷,VS1-630/25KA¹̶¨ʽ,ֻ,1,3,1,1,¹úÓÅ,0,Ԫ¼þ
-Õæ¿նÏ·Æ÷,VS1-1350/31.55KA¹̶¨ʽ,ֻ,1,4,1,1,¹úÓÅ,0,Ԫ¼þ
-Õæ¿նÏ·Æ÷,VS1-630/25KAÊֳµʽ,ֻ,1,4,1,1,¹úÓÅ,0,Ԫ¼þ
-Õæ¿նÏ·Æ÷,VS1-1350/31.5KAÊֳµʽ,ֻ,1,5,1,1,¹úÓÅ,0,Ԫ¼þ
-ÓÀ³ÇÕæ¿նÏ·Æ÷,ZW32-13/630-20,ֻ,1,8,1,1,¹úÓÅ,0,Ԫ¼þ
-µ¯²ÙÕæ¿նÏ·Æ÷,ZW32-40.5/630-20(35KV),ֻ,1,27,1,1,¹úÓÅ,0,Ԫ¼þ
-Õæ¿նÏ·Æ÷,ZW7-40.5/1350-31.5,ֻ,1,38,1,1,¹úÓÅ,0,Ԫ¼þ
-¸ººɿª¹Ø,FZN25-13,ֻ,1,4,1,1,¹úÓÅ,0,Ԫ¼þ
-¸ººɿª¹Ø,FN13-13,ֻ,1,3,1,1,¹úÓÅ,0,Ԫ¼þ
-µçÁ÷»¥¸ÐÆ÷,LZZBJ9-10 10~500/5 0.5,ֻ,1,480,1,1,¹úÓÅ,0,Ԫ¼þ
-µçÁ÷»¥¸ÐÆ÷,LZZBJ9-10 10~500/5 0.2S,ֻ,1,500,1,1,¹úÓÅ,0,Ԫ¼þ
-µçÁ÷»¥¸ÐÆ÷,LZZBJ9-10 5/5 600/50.5,ֻ,1,470,1,1,¹úÓÅ,0,Ԫ¼þ
-µçÁ÷»¥¸ÐÆ÷,LZZBJ9-10 5/5 600/50.2S,ֻ,1,500,1,1,¹úÓÅ,0,Ԫ¼þ
-µçѹ»¥¸ÐÆ÷£¨Ñò½ǣ©,JDZ-10/0.1 0.2S,ֻ,1,650,1,1,¹úÓÅ,0,Ԫ¼þ
-µçѹ»¥¸ÐÆ÷£¨Ñò½ǣ©,JDZ-10/0.22 500VA,ֻ,1,650,1,1,¹úÓÅ,0,Ԫ¼þ
-µçѹ»¥¸ÐÆ÷£¨Ñò½ǣ©,JDZ-10/0.22 800VA,ֻ,1,850,1,1,¹úÓÅ,0,Ԫ¼þ
-µçѹ»¥¸ÐÆ÷£¨Ñò½ǣ©,JDZ-10/0.1 0.22 0.2,ֻ,1,750,1,1,¹úÓÅ,0,Ԫ¼þ
-µçѹ»¥¸ÐÆ÷£¨Ñò½ǣ©,JDZ-10/¡Ì3 0.5,ֻ,1,650,1,1,¹úÓÅ,0,Ԫ¼þ
-µçѹ»¥¸ÐÆ÷£¨Ñò½ǣ©,JDZ-10/¡Ì3 0.2,ֻ,1,750,1,1,¹úÓÅ,0,Ԫ¼þ
-µçѹ»¥¸ÐÆ÷£¨ȫ·â),JDZ10-10/0.10.2S,ֻ,1,750,1,1,¹úÓÅ,0,Ԫ¼þ
-µçѹ»¥¸ÐÆ÷£¨ȫ·â),JDZ10-10/¡Ì3 0.5,ֻ,1,650,1,1,¹úÓÅ,0,Ԫ¼þ
-¸ôÀ뿪¹Ø,GN30-13 630,ֻ,1,1,1,1,¹úÓÅ,0,Ԫ¼þ
-¸ôÀ뿪¹Ø,GN19-13 1350A´ø´«¸ÐÆ÷,ֻ,1,1,1,1,¹úÓÅ,0,Ԫ¼þ
-¸ôÀ뿪¹Ø,GN19-13 1350A,ֻ,1,1,1,1,¹úÓÅ,0,Ԫ¼þ
-¸ôÀ뿪¹Ø,GN19-13 630A´ø´«¸ÐÆ÷,ֻ,1,750,1,1,¹úÓÅ,0,Ԫ¼þ
-¸ôÀ뿪¹Ø,GN19-13 630A,ֻ,1,650,1,1,¹úÓÅ,0,Ԫ¼þ
-½ӵص¶,JN15-13,ֻ,1,649,1,1,¹úÓÅ,0,Ԫ¼þ
-½ӵص¶,JN22-13,ֻ,1,449,1,1,¹úÓÅ,0,Ԫ¼þ
-¾øԵ×Ó,65*140,ֻ,1,30,1,1,¹úÓÅ,0,Ԫ¼þ
-ÌÜ,60*6/80*8,ֻ,1,30,1,1,¹úÓÅ,0,Ԫ¼þ
-´«¸ÐÆ÷,95*140,ֻ,1,30,1,1,¹úÓÅ,0,Ԫ¼þ
-¾²´¥ͷ,630A,ֻ,1,35,1,1,¹úÓÅ,0,Ԫ¼þ
-¾²´¥ͷ,1350A,ֻ,1,60,1,1,¹úÓÅ,0,Ԫ¼þ
-»úе±ÕËø²Ù×÷Ãæ°å,ÉϸôÀë,ֻ,1,190,1,1,¹úÓÅ,0,Ԫ¼þ
-»úе±ÕËø²Ù×÷Ãæ°å,ϸôÀë,ֻ,1,190,1,1,¹úÓÅ,0,Ԫ¼þ
-»úе±ÕËø²Ù×÷Ãæ°å,ÉϸôÀëϽӵØ,ֻ,1,240,1,1,¹úÓÅ,0,Ԫ¼þ
-µç´ÅËø,DSN-BM/Y/Z,ֻ,1,45,1,1,¹úÓÅ,0,Ԫ¼þ
-¸ßѹ´øµçÏÔʾ,DXN-10/T,ֻ,1,20,1,1,¹úÓÅ,0,Ԫ¼þ
-¸ßѹ´øµçÏÔʾ,DXN-10/Q,ֻ,1,25,1,1,¹úÓÅ,0,Ԫ¼þ
-¹ñÄÚÕÕÃ÷,CM1,ֻ,1,15,1,1,¹úÓÅ,0,Ԫ¼þ
-ÖÇÄܲٿØ,ÖÇÄܲٿØ,ֻ,1,1,1,1,¹úÓÅ,0,Ԫ¼þ
-¿ª¹Ø״̬ÏÔʾÒÇ,¿ª¹Ø״̬ÏÔʾÒÇ,ֻ,1,300,1,1,¹úÓÅ,0,Ԫ¼þ
-һ´ÎÏûг,һ´ÎÏûг,ֻ,1,500,1,1,¹úÓÅ,0,Ԫ¼þ
-±ÜÀׯ÷,S9/LL-ZMSAH,ֻ,1,150,1,1,¹úÓÅ,0,Ԫ¼þ
-±ÜÀׯ÷,St/LL-SMSAH,ֻ,1,200,1,1,¹úÓÅ,0,Ԫ¼þ
-¸ßѹÈ۶ÏÆ÷,XRNP-10/0.5£¨´ø¼Ð×ӣ©,ֻ,1,35,1,1,¹úÓÅ,0,Ԫ¼þ
-¸ßѹÈ۶ÏÆ÷,XRN2-10KV£¨´ø¼Ð×ӣ©,ֻ,1,35,1,1,¹úÓÅ,0,Ԫ¼þ
-¸ßѹÈ۶ÏÆ÷,XRNT-10-40A,ֻ,1,85,1,1,¹úÓÅ,0,Ԫ¼þ
-¸ßѹÈ۶ÏÆ÷,XRNT-50-135A,ֻ,1,135,1,1,¹úÓÅ,0,Ԫ¼þ
-¸ßѹÈ۶ÏÆ÷,XRNT-150A-200A,ֻ,1,160,1,1,¹úÓÅ,0,Ԫ¼þ
-10KVÕëʽ¸´ºϾøԵ×Ó,FPQ1-10/4T20,ֻ,1,26,1,1,¹úÓÅ,0,Ԫ¼þ
-6KV±ÜÀׯ÷,HY5WS-17/30,ֻ,1,160,1,1,¹úÓÅ,0,Ԫ¼þ
-10KV±ÜÀׯ÷,HY5WZ-17/45,ֻ,1,260,1,1,¹úÓÅ,0,Ԫ¼þ
-10KV»§ÍâµøÂäʽ±£ÏÕ,RW11-11F,ֻ,1,500,1,1,¹úÓÅ,0,Ԫ¼þ
-10KV°ôʽ¸´ºϾøԵ×Ó,,ֻ,1,45,1,1,¹úÓÅ,0,Ԫ¼þ
-35KV¸´ºϺᵣ,FS3-35/5,ֻ,1,150,1,1,¹úÓÅ,0,Ԫ¼þ
-35KVÐüʽ°ôÐθ´ºϾøԵ×Ó,FXBW6-35/71,ֻ,1,80,1,1,¹úÓÅ,0,Ԫ¼þ
-35KV֧Öùʽ±ÜÀׯ÷,HY5W-51/134,ֻ,1,1,1,1,¹úÓÅ,0,Ԫ¼þ
-35KV»§ÍâµøÂäʽ±£ÏÕ,RWJ-35,ֻ,1,1,1,1,¹úÓÅ,0,Ԫ¼þ
-»§Íâֱ¿նÏ·Æ÷,ZW32-13G/630,ֻ,1,5,1,1,¹úÓÅ,0,Ԫ¼þ
-¸ßѹ¼ÆÁ¿Ïä,JLS-10KW,ֻ,1,2,1,1,¹úÓÅ,0,Ԫ¼þ
-¸ßѹ¸ôÀ뿪¹Ø,HGW9-600,ֻ,1,550,1,1,¹úÓÅ,0,Ԫ¼þ
-µøÂ䱣ÏÕ,HRW7-100A,ֻ,1,300,1,1,¹úÓÅ,0,Ԫ¼þ
-µøÂ䱣ÏÕ,HRW7-200A,ֻ,1,350,1,1,¹úÓÅ,0,Ԫ¼þ
-µÍѹ¸ººɿª¹Ø,HJW2-400A,ֻ,1,350,1,1,¹úÓÅ,0,Ԫ¼þ
-µÍѹ¸ººɿª¹Ø,HJW2-600A,ֻ,1,400,1,1,¹úÓÅ,0,Ԫ¼þ
-10KV»§Íâ¾øԵ£¨Èýо£©,WLsY-10/3.1,ֻ,1,260,1,1,¹úÓÅ,0,Ԫ¼þ
-11KV»§Íâ¾øԵ£¨Èýо£©,WLSY-10/3.2,ֻ,1,280,1,1,¹úÓÅ,0,Ԫ¼þ
-ÖмäÁ¬½Ó,JLSY-10/3.1,ֻ,1,680,1,1,¹úÓÅ,0,Ԫ¼þ
-ÖмäÁ¬½Ó,JLSY-10/3.2,ֻ,1,800,1,1,¹úÓÅ,0,Ԫ¼þ
-ÖмäÁ¬½Ó,JLsY-10/3.3,ֻ,1,900,1,1,¹úÓÅ,0,Ԫ¼þ
-ÖмäÁ¬½Ó,JLsY-10/3.4,ֻ,1,1,1,1,¹úÓÅ,0,Ԫ¼þ
-»ú±£»¤,HY-6000,ֻ,1,600,1,1,¹úÓÅ,0,Ԫ¼þ
-µçѹ»¥¸ÐÆ÷£¨Ñò½ǣ©,JDZJ-10 10/3/0.1/¡Ì3/0.1/3KV,ֻ,1,750,0,0,¹úÓÅ,0,Ԫ¼þ
-¿ØÖÆÓ뱣»¤¿ª¹Ø,,ֻ,1,0,1,1,¹úÓÅ,0,Ԫ¼þ
-Φ²¹³¥¿ØÖÆÆ÷,,ֻ,1,140,1,1,¹úÓÅ,0,Ԫ¼þ
-˫µçԴ,SRWTQ2(CB)/4P/400A,ֻ,1,1,1,1,¹úÓÅ,0,Ԫ¼þ
-ÀËӿ±£»¤Æ÷,SRPRD-10KA/4P,ֻ,1,42,1,1,¹úÓÅ,0,Ԫ¼þ
-ÀËӿ±£»¤Æ÷,SRPRD-20KA/4P,ֻ,1,45,1,1,¹úÓÅ,0,Ԫ¼þ
-ÀËӿ±£»¤Æ÷,SRPRD-40KA/4P,ֻ,1,85,1,1,¹úÓÅ,0,Ԫ¼þ
-ÀËӿ±£»¤Æ÷,SRPRD-60KA/4P,ֻ,1,70,1,1,¹úÓÅ,0,Ԫ¼þ
-ÀËӿ±£»¤Æ÷,SRPRD-80KA/4P,ֻ,1,100,1,1,¹úÓÅ,0,Ԫ¼þ
-ÀËӿ±£»¤Æ÷,SRPRD-100KA/4P,ֻ,1,150,1,1,¹úÓÅ,0,Ԫ¼þ
-µçÁ÷»¥¸ÐÆ÷,BH-0.66-40о 100/5,ֻ,1,13,1,1,¹úÓÅ,0,Ԫ¼þ
-µçÁ÷»¥¸ÐÆ÷,BH-0.66-40о 150/5,ֻ,1,13,1,1,¹úÓÅ,0,Ԫ¼þ
-µçÁ÷»¥¸ÐÆ÷,BH-0.66-40о 200/5,ֻ,1,13,1,1,¹úÓÅ,0,Ԫ¼þ
-µçÁ÷»¥¸ÐÆ÷,BH-0.66-40о 300/5,ֻ,1,13,1,1,¹úÓÅ,0,Ԫ¼þ
-µçÁ÷»¥¸ÐÆ÷,BH-0.66-40о 400/5,ֻ,1,13,1,1,¹úÓÅ,0,Ԫ¼þ
-µçÁ÷»¥¸ÐÆ÷,BH-0.66-40о 500/5,ֻ,1,13,1,1,¹úÓÅ,0,Ԫ¼þ
-µçÁ÷»¥¸ÐÆ÷,BH-0.66-50о 400/5,ֻ,1,16,1,1,¹úÓÅ,0,Ԫ¼þ
-µçÁ÷»¥¸ÐÆ÷,BH-0.66-50о 500/5,ֻ,1,16,1,1,¹úÓÅ,0,Ԫ¼þ
-µçÁ÷»¥¸ÐÆ÷,BH-0.66-50о 600/5,ֻ,1,16,1,1,¹úÓÅ,0,Ԫ¼þ
-µçÁ÷»¥¸ÐÆ÷,BH-0.66-50о 800/5,ֻ,1,16,1,1,¹úÓÅ,0,Ԫ¼þ
-µçÁ÷»¥¸ÐÆ÷,BH-0.66-50о 1000/5,ֻ,1,16,1,1,¹úÓÅ,0,Ԫ¼þ
-µçÁ÷»¥¸ÐÆ÷,BH-0.66-60о 400/5,ֻ,1,20,1,1,¹úÓÅ,0,Ԫ¼þ
-µçÁ÷»¥¸ÐÆ÷,BH-0.66-60о 500/5,ֻ,1,20,1,1,¹úÓÅ,0,Ԫ¼þ
-µçÁ÷»¥¸ÐÆ÷,BH-0.66-60о 600/5,ֻ,1,20,1,1,¹úÓÅ,0,Ԫ¼þ
-µçÁ÷»¥¸ÐÆ÷,BH-0.66-60о 800/5,ֻ,1,20,1,1,¹úÓÅ,0,Ԫ¼þ
-µçÁ÷»¥¸ÐÆ÷,BH-0.66-60о 1000/5,ֻ,1,25,1,1,¹úÓÅ,0,Ԫ¼þ
-µçÁ÷»¥¸ÐÆ÷,BH-0.66-80о 800/5,ֻ,1,35,1,1,¹úÓÅ,0,Ԫ¼þ
-µçÁ÷»¥¸ÐÆ÷,BH-0.66-80о 1000/5,ֻ,1,35,1,1,¹úÓÅ,0,Ԫ¼þ
-µçÁ÷»¥¸ÐÆ÷,BH-0.66-80о 1500/5,ֻ,1,35,1,1,¹úÓÅ,0,Ԫ¼þ
-µçÁ÷»¥¸ÐÆ÷,BH-0.66-80о 2000/5,ֻ,1,35,1,1,¹úÓÅ,0,Ԫ¼þ
-µçÁ÷»¥¸ÐÆ÷,BH-0.66-100о 1000/5,ֻ,1,40,1,1,¹úÓÅ,0,Ԫ¼þ
-µçÁ÷»¥¸ÐÆ÷,BH-0.66-100о 1500/5,ֻ,1,40,1,1,¹úÓÅ,0,Ԫ¼þ
-µçÁ÷»¥¸ÐÆ÷,BH-0.66-130о 1000/5,ֻ,1,45,1,1,¹úÓÅ,0,Ԫ¼þ
-µçÁ÷»¥¸ÐÆ÷,BH-0.66-130о 1500/5,ֻ,1,65,1,1,¹úÓÅ,0,Ԫ¼þ
-µçÁ÷»¥¸ÐÆ÷,BH-0.66-130о 2000/5,ֻ,1,65,1,1,¹úÓÅ,0,Ԫ¼þ
-µçÁ÷»¥¸ÐÆ÷,BH-0.66-130о 2500/5,ֻ,1,65,1,1,¹úÓÅ,0,Ԫ¼þ
-µçÁ÷»¥¸ÐÆ÷,BH-0.66-130о 3000/5,ֻ,1,75,1,1,¹úÓÅ,0,Ԫ¼þ
-µçÁ÷»¥¸ÐÆ÷,BH-0.66-130о 4000/5,ֻ,1,75,1,1,¹úÓÅ,0,Ԫ¼þ
-µçÁ÷±í,42L6-A,ֻ,1,18,1,1,¹úÓÅ,0,Ԫ¼þ
-°´ť¿ª¹Ø,LA38-22,ֻ,1,4,1,1,¹úÓÅ,0,Ԫ¼þ
-µ¥ÏàµçÁ÷±í,LEDÏÔʾ½ø¶È0.5%,ֻ,1,45,1,1,¹úÓÅ,0,Ԫ¼þ
-ÈýÏàµçÁ÷±í,LEDÏÔʾ½ø¶È0.5%,ֻ,1,80,1,1,¹úÓÅ,0,Ԫ¼þ
-Õæ¿նÏ·Æ÷,VS1-1350/25KA¹̶¨ʽ,ֻ,1,4,1,1,¹úÓÅ,0,Ԫ¼þ
-Ïû·ÀµçԴ¼à¿Øģ¿é,,ֻ,1,200,1,1,¹úÓÅ,0,Ԫ¼þ
-Ïû·ÀµçԴ¼à¿ػ¥¸ÐÆ÷,,ֻ,1,40,1,1,¹úÓÅ,0,Ԫ¼þ
-ÁãÐòµçÁ÷»¥¸ÐÆ÷,,ֻ,1,500,1,1,¹úÓÅ,0,Ԫ¼þ
-ËܿǶÏ·Æ÷,HYM1-800L/3340 800A,ֻ,1,530,1,1,¹úÓÅ,0,Ԫ¼þ
-ËܿǶÏ·Æ÷,NM1-63S/3300 10A,ֻ,1,0,1,1,Õý̩,0,Ԫ¼þ
-ËܿǶÏ·Æ÷,NM1-63S/3300 16A,ֻ,1,0,1,1,Õý̩,0,Ԫ¼þ
-ËܿǶÏ·Æ÷,NM1-63S/3300 20A,ֻ,1,0,1,1,Õý̩,0,Ԫ¼þ
-ËܿǶÏ·Æ÷,NM1-63S/3300 25A,ֻ,1,0,1,1,Õý̩,0,Ԫ¼þ
-ËܿǶÏ·Æ÷,NM1-63S/3300 32A,ֻ,1,0,1,1,Õý̩,0,Ԫ¼þ
-ËܿǶÏ·Æ÷,NM1-63S/3300 40A,ֻ,1,0,1,1,Õý̩,0,Ԫ¼þ
-ËܿǶÏ·Æ÷,NM1-63S/3300 50A,ֻ,1,0,1,1,Õý̩,0,Ԫ¼þ
-ËܿǶÏ·Æ÷,NM1-63S/3300 63A,ֻ,1,0,1,1,Õý̩,0,Ԫ¼þ
-ËܿǶÏ·Æ÷,NM1-125S/3300 16A,ֻ,1,0,1,1,Õý̩,0,Ԫ¼þ
-ËܿǶÏ·Æ÷,NM1-125S/3300 20A,ֻ,1,0,1,1,Õý̩,0,Ԫ¼þ
-ËܿǶÏ·Æ÷,NM1-125S/3300 25A,ֻ,1,0,1,1,Õý̩,0,Ԫ¼þ
-ËܿǶÏ·Æ÷,NM1-125S/3300 32A,ֻ,1,0,1,1,Õý̩,0,Ԫ¼þ
-ËܿǶÏ·Æ÷,NM1-125S/3300 40A,ֻ,1,0,1,1,Õý̩,0,Ԫ¼þ
-ËܿǶÏ·Æ÷,NM1-125S/3300 50A,ֻ,1,0,1,1,Õý̩,0,Ԫ¼þ
-ËܿǶÏ·Æ÷,NM1-125S/3300 63A,ֻ,1,0,1,1,Õý̩,0,Ԫ¼þ
-ËܿǶÏ·Æ÷,NM1-125S/3300 80A,ֻ,1,0,1,1,Õý̩,0,Ԫ¼þ
-ËܿǶÏ·Æ÷,NM1-125S/3300 100A,ֻ,1,0,1,1,Õý̩,0,Ԫ¼þ
-ËܿǶÏ·Æ÷,NM1-125S/3300 125A,ֻ,1,0,1,1,Õý̩,0,Ԫ¼þ
-ËܿǶÏ·Æ÷,NM1-250S/3300 100A,ֻ,1,0,1,1,Õý̩,0,Ԫ¼þ
-ËܿǶÏ·Æ÷,NM1-250S/3300 125A,ֻ,1,0,1,1,Õý̩,0,Ԫ¼þ
-ËܿǶÏ·Æ÷,NM1-250S/3300 140A,ֻ,1,0,1,1,Õý̩,0,Ԫ¼þ
-ËܿǶÏ·Æ÷,NM1-250S/3300 160A,ֻ,1,0,1,1,Õý̩,0,Ԫ¼þ
-ËܿǶÏ·Æ÷,NM1-250S/3300 180A,ֻ,1,0,1,1,Õý̩,0,Ԫ¼þ
-ËܿǶÏ·Æ÷,NM1-250S/3300 200A,ֻ,1,0,1,1,Õý̩,0,Ԫ¼þ
-ËܿǶÏ·Æ÷,NM1-250S/3300 225A,ֻ,1,0,1,1,Õý̩,0,Ԫ¼þ
-ËܿǶÏ·Æ÷,NM1-250S/3300 250A,ֻ,1,0,1,1,Õý̩,0,Ԫ¼þ
-ËܿǶÏ·Æ÷,NM1-400S/3300 225A,ֻ,1,0,1,1,Õý̩,0,Ԫ¼þ
-ËܿǶÏ·Æ÷,NM1-400S/3300 250A,ֻ,1,0,1,1,Õý̩,0,Ԫ¼þ
-ËܿǶÏ·Æ÷,NM1-400S/3300 315A,ֻ,1,0,1,1,Õý̩,0,Ԫ¼þ
-ËܿǶÏ·Æ÷,NM1-400S/3300 350A,ֻ,1,0,1,1,Õý̩,0,Ԫ¼þ
-ËܿǶÏ·Æ÷,NM1-400S/3300 400A,ֻ,1,0,1,1,Õý̩,0,Ԫ¼þ
-ËܿǶÏ·Æ÷,NM1-630S/3300 400A,ֻ,1,0,1,1,Õý̩,0,Ԫ¼þ
-ËܿǶÏ·Æ÷,NM1-630S/3300 500A,ֻ,1,0,1,1,Õý̩,0,Ԫ¼þ
-ËܿǶÏ·Æ÷,NM1-630S/3300 630A,ֻ,1,0,1,1,Õý̩,0,Ԫ¼þ
-ËܿǶÏ·Æ÷,NM1-800S/3300 630A,ֻ,1,0,1,1,Õý̩,0,Ԫ¼þ
-ËܿǶÏ·Æ÷,NM1-800S/3300 700A,ֻ,1,0,1,1,Õý̩,0,Ԫ¼þ
-ËܿǶÏ·Æ÷,NM1-800S/3300 800A,ֻ,1,0,1,1,Õý̩,0,Ԫ¼þ
-ËܿǶÏ·Æ÷,NM1-1250S/3300 800A,ֻ,1,0,1,1,Õý̩,0,Ԫ¼þ
-ËܿǶÏ·Æ÷,NM1-1250S/3300 1000A,ֻ,1,0,1,1,Õý̩,0,Ԫ¼þ
-ËܿǶÏ·Æ÷,NM1-1250S/3300 1250A,ֻ,1,0,1,1,Õý̩,0,Ԫ¼þ
-ËܿǶÏ·Æ÷,NSX100 TMD 40A,ֻ,1,0,1,1,ʩÄ͵Â,0,Ԫ¼þ
-ËܿǶÏ·Æ÷,NSX100 TMD 50A,ֻ,1,0,1,1,ʩÄ͵Â,0,Ԫ¼þ
-ËܿǶÏ·Æ÷,NSX100 TMD 63A,ֻ,1,0,1,1,ʩÄ͵Â,0,Ԫ¼þ
-ËܿǶÏ·Æ÷,NSX100 TMD 80A,ֻ,1,0,1,1,ʩÄ͵Â,0,Ԫ¼þ
-ËܿǶÏ·Æ÷,NSX100 TMD 100A,ֻ,1,0,1,1,ʩÄ͵Â,0,Ԫ¼þ
-ËܿǶÏ·Æ÷,NSX160 TMD 100A,ֻ,1,0,1,1,ʩÄ͵Â,0,Ԫ¼þ
-ËܿǶÏ·Æ÷,NSX160 TMD 125A,ֻ,1,0,1,1,ʩÄ͵Â,0,Ԫ¼þ
-ËܿǶÏ·Æ÷,NSX160 TMD 160A,ֻ,1,0,1,1,ʩÄ͵Â,0,Ԫ¼þ
-ËܿǶÏ·Æ÷,NSX250 TMD 160A,ֻ,1,0,1,1,ʩÄ͵Â,0,Ԫ¼þ
-ËܿǶÏ·Æ÷,NSX250 TMD 200A,ֻ,1,0,1,1,ʩÄ͵Â,0,Ԫ¼þ
-ËܿǶÏ·Æ÷,NSX250 TMD 220A,ֻ,1,0,1,1,ʩÄ͵Â,0,Ԫ¼þ
-ËܿǶÏ·Æ÷,NSX250 TMD 250A,ֻ,1,0,1,1,ʩÄ͵Â,0,Ԫ¼þ
-ËܿǶÏ·Æ÷,NSX400 MIC5 315A,ֻ,1,0,1,1,ʩÄ͵Â,0,Ԫ¼þ
-ËܿǶÏ·Æ÷,NSX400 MIC5 400A,ֻ,1,0,1,1,ʩÄ͵Â,0,Ԫ¼þ
-ËܿǶÏ·Æ÷,NSX630 MIC5 500A,ֻ,1,0,1,1,ʩÄ͵Â,0,Ԫ¼þ
-ËܿǶÏ·Æ÷,NSX630 MIC5 630A,ֻ,1,0,1,1,ʩÄ͵Â,0,Ԫ¼þ
-ËܿǶÏ·Æ÷,CDM3-63/3300 10A,ֻ,1,0,1,1,µÂÁ¦Î÷,0,Ԫ¼þ
-ËܿǶÏ·Æ÷,CDM3-63/3300 16A,ֻ,1,0,1,1,µÂÁ¦Î÷,0,Ԫ¼þ
-ËܿǶÏ·Æ÷,CDM3-63/3300 20A,ֻ,1,0,1,1,µÂÁ¦Î÷,0,Ԫ¼þ
-ËܿǶÏ·Æ÷,CDM3-63/3300 25A,ֻ,1,0,1,1,µÂÁ¦Î÷,0,Ԫ¼þ
-ËܿǶÏ·Æ÷,CDM3-63/3300 32A,ֻ,1,0,1,1,µÂÁ¦Î÷,0,Ԫ¼þ
-ËܿǶÏ·Æ÷,CDM3-63/3300 40A,ֻ,1,0,1,1,µÂÁ¦Î÷,0,Ԫ¼þ
-ËܿǶÏ·Æ÷,CDM3-63/3300 50A,ֻ,1,0,1,1,µÂÁ¦Î÷,0,Ԫ¼þ
-ËܿǶÏ·Æ÷,CDM3-63/3300 63A,ֻ,1,0,1,1,µÂÁ¦Î÷,0,Ԫ¼þ
-ËܿǶÏ·Æ÷,CDM3-100/3300 16A,ֻ,1,0,1,1,µÂÁ¦Î÷,0,Ԫ¼þ
-ËܿǶÏ·Æ÷,CDM3-100/3300 20A,ֻ,1,0,1,1,µÂÁ¦Î÷,0,Ԫ¼þ
-ËܿǶÏ·Æ÷,CDM3-100/3300 25A,ֻ,1,0,1,1,µÂÁ¦Î÷,0,Ԫ¼þ
-ËܿǶÏ·Æ÷,CDM3-100/3300 32A,ֻ,1,0,1,1,µÂÁ¦Î÷,0,Ԫ¼þ
-ËܿǶÏ·Æ÷,CDM3-100/3300 40A,ֻ,1,0,1,1,µÂÁ¦Î÷,0,Ԫ¼þ
-ËܿǶÏ·Æ÷,CDM3-100/3300 50A,ֻ,1,0,1,1,µÂÁ¦Î÷,0,Ԫ¼þ
-ËܿǶÏ·Æ÷,CDM3-100/3300 63A,ֻ,1,0,1,1,µÂÁ¦Î÷,0,Ԫ¼þ
-ËܿǶÏ·Æ÷,CDM3-100/3300 80A,ֻ,1,0,1,1,µÂÁ¦Î÷,0,Ԫ¼þ
-ËܿǶÏ·Æ÷,CDM3-100/3300 100A,ֻ,1,0,1,1,µÂÁ¦Î÷,0,Ԫ¼þ
-ËܿǶÏ·Æ÷,CDM3-125/3300 40A,ֻ,1,0,1,1,µÂÁ¦Î÷,0,Ԫ¼þ
-ËܿǶÏ·Æ÷,CDM3-125/3300 50A,ֻ,1,0,1,1,µÂÁ¦Î÷,0,Ԫ¼þ
-ËܿǶÏ·Æ÷,CDM3-125/3300 63A,ֻ,1,0,1,1,µÂÁ¦Î÷,0,Ԫ¼þ
-ËܿǶÏ·Æ÷,CDM3-125/3300 80A,ֻ,1,0,1,1,µÂÁ¦Î÷,0,Ԫ¼þ
-ËܿǶÏ·Æ÷,CDM3-125/3300 100A,ֻ,1,0,1,1,µÂÁ¦Î÷,0,Ԫ¼þ
-ËܿǶÏ·Æ÷,CDM3-125/3300 125A,ֻ,1,0,1,1,µÂÁ¦Î÷,0,Ԫ¼þ
-ËܿǶÏ·Æ÷,CDM3-160/3300 100A,ֻ,1,0,1,1,µÂÁ¦Î÷,0,Ԫ¼þ
-ËܿǶÏ·Æ÷,CDM3-160/3300 125A,ֻ,1,0,1,1,µÂÁ¦Î÷,0,Ԫ¼þ
-ËܿǶÏ·Æ÷,CDM3-160/3300 140A,ֻ,1,0,1,1,µÂÁ¦Î÷,0,Ԫ¼þ
-ËܿǶÏ·Æ÷,CDM3-160/3300 160A,ֻ,1,0,1,1,µÂÁ¦Î÷,0,Ԫ¼þ
-ËܿǶÏ·Æ÷,CDM3-250/3300 140A,ֻ,1,0,1,1,µÂÁ¦Î÷,0,Ԫ¼þ
-ËܿǶÏ·Æ÷,CDM3-250/3300 160A,ֻ,1,0,1,1,µÂÁ¦Î÷,0,Ԫ¼þ
-ËܿǶÏ·Æ÷,CDM3-250/3300 180A,ֻ,1,0,1,1,µÂÁ¦Î÷,0,Ԫ¼þ
-ËܿǶÏ·Æ÷,CDM3-250/3300 200A,ֻ,1,0,1,1,µÂÁ¦Î÷,0,Ԫ¼þ
-ËܿǶÏ·Æ÷,CDM3-250/3300 225A,ֻ,1,0,1,1,µÂÁ¦Î÷,0,Ԫ¼þ
-ËܿǶÏ·Æ÷,CDM3-250/3300 250A,ֻ,1,0,1,1,µÂÁ¦Î÷,0,Ԫ¼þ
-ËܿǶÏ·Æ÷,CDM3-400/3300 225A,ֻ,1,0,1,1,µÂÁ¦Î÷,0,Ԫ¼þ
-ËܿǶÏ·Æ÷,CDM3-400/3300 250A,ֻ,1,0,1,1,µÂÁ¦Î÷,0,Ԫ¼þ
-ËܿǶÏ·Æ÷,CDM3-400/3300 315A,ֻ,1,0,1,1,µÂÁ¦Î÷,0,Ԫ¼þ
-ËܿǶÏ·Æ÷,CDM3-400/3300 350A,ֻ,1,0,1,1,µÂÁ¦Î÷,0,Ԫ¼þ
-ËܿǶÏ·Æ÷,CDM3-400/3300 400A,ֻ,1,0,1,1,µÂÁ¦Î÷,0,Ԫ¼þ
-ËܿǶÏ·Æ÷,CDM3-630/3300 400A,ֻ,1,0,1,1,µÂÁ¦Î÷,0,Ԫ¼þ
-ËܿǶÏ·Æ÷,CDM3-630/3300 500A,ֻ,1,0,1,1,µÂÁ¦Î÷,0,Ԫ¼þ
-ËܿǶÏ·Æ÷,CDM3-630/3300 630A,ֻ,1,0,1,1,µÂÁ¦Î÷,0,Ԫ¼þ
-ËܿǶÏ·Æ÷,CDM3-800/3300 630A,ֻ,1,0,1,1,µÂÁ¦Î÷,0,Ԫ¼þ
-ËܿǶÏ·Æ÷,CDM3-800/3300 700A,ֻ,1,0,1,1,µÂÁ¦Î÷,0,Ԫ¼þ
-ËܿǶÏ·Æ÷,CDM3-800/3300 800A,ֻ,1,0,1,1,µÂÁ¦Î÷,0,Ԫ¼þ
-ËܿǶÏ·Æ÷,CDM3-1250/3300 800A,ֻ,1,0,1,1,µÂÁ¦Î÷,0,Ԫ¼þ
-ËܿǶÏ·Æ÷,CDM3-1250/3300 1000A,ֻ,1,0,1,1,µÂÁ¦Î÷,0,Ԫ¼þ
-ËܿǶÏ·Æ÷,CDM3-1250/3300 1250A,ֻ,1,0,1,1,µÂÁ¦Î÷,0,Ԫ¼þ
-ËܿǶÏ·Æ÷,CM1-63/3300 6A,ֻ,1,0,1,1,³£Êì,0,Ԫ¼þ
-ËܿǶÏ·Æ÷,CM1-63/3300 10A,ֻ,1,0,1,1,³£Êì,0,Ԫ¼þ
-ËܿǶÏ·Æ÷,CM1-63/3300 16A,ֻ,1,0,1,1,³£Êì,0,Ԫ¼þ
-ËܿǶÏ·Æ÷,CM1-63/3300 20A,ֻ,1,0,1,1,³£Êì,0,Ԫ¼þ
-ËܿǶÏ·Æ÷,CM1-63/3300 25A,ֻ,1,0,1,1,³£Êì,0,Ԫ¼þ
-ËܿǶÏ·Æ÷,CM1-63/3300 32A,ֻ,1,0,1,1,³£Êì,0,Ԫ¼þ
-ËܿǶÏ·Æ÷,CM1-63/3300 40A,ֻ,1,0,1,1,³£Êì,0,Ԫ¼þ
-ËܿǶÏ·Æ÷,CM1-63/3300 50A,ֻ,1,0,1,1,³£Êì,0,Ԫ¼þ
-ËܿǶÏ·Æ÷,CM1-63/3300 63A,ֻ,1,0,1,1,³£Êì,0,Ԫ¼þ
-ËܿǶÏ·Æ÷,CM1-100/3300 10A,ֻ,1,0,1,1,³£Êì,0,Ԫ¼þ
-ËܿǶÏ·Æ÷,CM1-100/3300 16A,ֻ,1,0,1,1,³£Êì,0,Ԫ¼þ
-ËܿǶÏ·Æ÷,CM1-100/3300 20A,ֻ,1,0,1,1,³£Êì,0,Ԫ¼þ
-ËܿǶÏ·Æ÷,CM1-100/3300 25A,ֻ,1,0,1,1,³£Êì,0,Ԫ¼þ
-ËܿǶÏ·Æ÷,CM1-100/3300 32A,ֻ,1,0,1,1,³£Êì,0,Ԫ¼þ
-ËܿǶÏ·Æ÷,CM1-100/3300 40A,ֻ,1,0,1,1,³£Êì,0,Ԫ¼þ
-ËܿǶÏ·Æ÷,CM1-100/3300 50A,ֻ,1,0,1,1,³£Êì,0,Ԫ¼þ
-ËܿǶÏ·Æ÷,CM1-100/3300 63A,ֻ,1,0,1,1,³£Êì,0,Ԫ¼þ
-ËܿǶÏ·Æ÷,CM1-100/3300 80A,ֻ,1,0,1,1,³£Êì,0,Ԫ¼þ
-ËܿǶÏ·Æ÷,CM1-100/3300 100A,ֻ,1,0,1,1,³£Êì,0,Ԫ¼þ
-ËܿǶÏ·Æ÷,CM1-160/3300 100A,ֻ,1,0,1,1,³£Êì,0,Ԫ¼þ
-ËܿǶÏ·Æ÷,CM1-160/3300 125A,ֻ,1,0,1,1,³£Êì,0,Ԫ¼þ
-ËܿǶÏ·Æ÷,CM1-160/3300 140A,ֻ,1,0,1,1,³£Êì,0,Ԫ¼þ
-ËܿǶÏ·Æ÷,CM1-160/3300 160A,ֻ,1,0,1,1,³£Êì,0,Ԫ¼þ
-ËܿǶÏ·Æ÷,CM1-225/3300 100A,ֻ,1,0,1,1,³£Êì,0,Ԫ¼þ
-ËܿǶÏ·Æ÷,CM1-225/3300 125A,ֻ,1,0,1,1,³£Êì,0,Ԫ¼þ
-ËܿǶÏ·Æ÷,CM1-225/3300 140A,ֻ,1,0,1,1,³£Êì,0,Ԫ¼þ
-ËܿǶÏ·Æ÷,CM1-225/3300 160A,ֻ,1,0,1,1,³£Êì,0,Ԫ¼þ
-ËܿǶÏ·Æ÷,CM1-225/3300 180A,ֻ,1,0,1,1,³£Êì,0,Ԫ¼þ
-ËܿǶÏ·Æ÷,CM1-225/3300 200A,ֻ,1,0,1,1,³£Êì,0,Ԫ¼þ
-ËܿǶÏ·Æ÷,CM1-225/3300 225A,ֻ,1,0,1,1,³£Êì,0,Ԫ¼þ
-ËܿǶÏ·Æ÷,CM1-250/3300 180A,ֻ,1,0,1,1,³£Êì,0,Ԫ¼þ
-ËܿǶÏ·Æ÷,CM1-250/3300 200A,ֻ,1,0,1,1,³£Êì,0,Ԫ¼þ
-ËܿǶÏ·Æ÷,CM1-250/3300 225A,ֻ,1,0,1,1,³£Êì,0,Ԫ¼þ
-ËܿǶÏ·Æ÷,CM1-250/3300 250A,ֻ,1,0,1,1,³£Êì,0,Ԫ¼þ
-ËܿǶÏ·Æ÷,CM1-400/3300 225A,ֻ,1,0,1,1,³£Êì,0,Ԫ¼þ
-ËܿǶÏ·Æ÷,CM1-400/3300 250A,ֻ,1,0,1,1,³£Êì,0,Ԫ¼þ
-ËܿǶÏ·Æ÷,CM1-400/3300 315A,ֻ,1,0,1,1,³£Êì,0,Ԫ¼þ
-ËܿǶÏ·Æ÷,CM1-400/3300 350A,ֻ,1,0,1,1,³£Êì,0,Ԫ¼þ
-ËܿǶÏ·Æ÷,CM1-400/3300 400A,ֻ,1,0,1,1,³£Êì,0,Ԫ¼þ
-ËܿǶÏ·Æ÷,CM1-630/3300 400A,ֻ,1,0,1,1,³£Êì,0,Ԫ¼þ
-ËܿǶÏ·Æ÷,CM1-630/3300 500A,ֻ,1,0,1,1,³£Êì,0,Ԫ¼þ
-ËܿǶÏ·Æ÷,CM1-630/3300 630A,ֻ,1,0,1,1,³£Êì,0,Ԫ¼þ
-ËܿǶÏ·Æ÷,CM1-800/3300 630A,ֻ,1,0,1,1,³£Êì,0,Ԫ¼þ
-ËܿǶÏ·Æ÷,CM1-800/3300 700A,ֻ,1,0,1,1,³£Êì,0,Ԫ¼þ
-ËܿǶÏ·Æ÷,CM1-800/3300 800A,ֻ,1,0,1,1,³£Êì,0,Ԫ¼þ
-½»Á÷½Ӵ¥Æ÷,CJX2-0910 220V,ֻ,1,0,1,1,ͨÓÃ,0,Ԫ¼þ
-½»Á÷½Ӵ¥Æ÷,CJX2-0901 220V,ֻ,1,0,1,1,ͨÓÃ,0,Ԫ¼þ
-½»Á÷½Ӵ¥Æ÷,CJX2-1210 220V,ֻ,1,0,1,1,ͨÓÃ,0,Ԫ¼þ
-½»Á÷½Ӵ¥Æ÷,CJX2-1201 220V,ֻ,1,0,1,1,ͨÓÃ,0,Ԫ¼þ
-½»Á÷½Ӵ¥Æ÷,CJX2-1810 220V,ֻ,1,0,1,1,ͨÓÃ,0,Ԫ¼þ
-½»Á÷½Ӵ¥Æ÷,CJX2-1801 220V,ֻ,1,0,1,1,ͨÓÃ,0,Ԫ¼þ
-½»Á÷½Ӵ¥Æ÷,CJX2-2510 220V,ֻ,1,0,1,1,ͨÓÃ,0,Ԫ¼þ
-½»Á÷½Ӵ¥Æ÷,CJX2-2501 220V,ֻ,1,0,1,1,ͨÓÃ,0,Ԫ¼þ
-½»Á÷½Ӵ¥Æ÷,CJX2-3210 220V,ֻ,1,0,1,1,ͨÓÃ,0,Ԫ¼þ
-½»Á÷½Ӵ¥Æ÷,CJX2-3201 220V,ֻ,1,0,1,1,ͨÓÃ,0,Ԫ¼þ
-½»Á÷½Ӵ¥Æ÷,CJX2-4011 220V,ֻ,1,0,1,1,ͨÓÃ,0,Ԫ¼þ
-½»Á÷½Ӵ¥Æ÷,CJX2-5011 220V,ֻ,1,0,1,1,ͨÓÃ,0,Ԫ¼þ
-½»Á÷½Ӵ¥Æ÷,CJX2-6511 220V,ֻ,1,0,1,1,ͨÓÃ,0,Ԫ¼þ
-½»Á÷½Ӵ¥Æ÷,CJX2-8011 220V,ֻ,1,0,1,1,ͨÓÃ,0,Ԫ¼þ
-½»Á÷½Ӵ¥Æ÷,CJX2-9511 220V,ֻ,1,0,1,1,ͨÓÃ,0,Ԫ¼þ
-½»Á÷½Ӵ¥Æ÷,CJX2-0910 380V,ֻ,1,0,1,1,ͨÓÃ,0,Ԫ¼þ
-½»Á÷½Ӵ¥Æ÷,CJX2-0901 380V,ֻ,1,0,1,1,ͨÓÃ,0,Ԫ¼þ
-½»Á÷½Ӵ¥Æ÷,CJX2-1210 380V,ֻ,1,0,1,1,ͨÓÃ,0,Ԫ¼þ
-½»Á÷½Ӵ¥Æ÷,CJX2-1201 380V,ֻ,1,0,1,1,ͨÓÃ,0,Ԫ¼þ
-½»Á÷½Ӵ¥Æ÷,CJX2-1810 380V,ֻ,1,0,1,1,ͨÓÃ,0,Ԫ¼þ
-½»Á÷½Ӵ¥Æ÷,CJX2-1801 380V,ֻ,1,0,1,1,ͨÓÃ,0,Ԫ¼þ
-½»Á÷½Ӵ¥Æ÷,CJX2-2510 380V,ֻ,1,0,1,1,ͨÓÃ,0,Ԫ¼þ
-½»Á÷½Ӵ¥Æ÷,CJX2-2501 380V,ֻ,1,0,1,1,ͨÓÃ,0,Ԫ¼þ
-½»Á÷½Ӵ¥Æ÷,CJX2-3210 380V,ֻ,1,0,1,1,ͨÓÃ,0,Ԫ¼þ
-½»Á÷½Ӵ¥Æ÷,CJX2-3201 380V,ֻ,1,0,1,1,ͨÓÃ,0,Ԫ¼þ
-½»Á÷½Ӵ¥Æ÷,CJX2-4011 380V,ֻ,1,0,1,1,ͨÓÃ,0,Ԫ¼þ
-½»Á÷½Ӵ¥Æ÷,CJX2-5011 380V,ֻ,1,0,1,1,ͨÓÃ,0,Ԫ¼þ
-½»Á÷½Ӵ¥Æ÷,CJX2-6511 380V,ֻ,1,0,1,1,ͨÓÃ,0,Ԫ¼þ
-½»Á÷½Ӵ¥Æ÷,CJX2-8011 380V,ֻ,1,0,1,1,ͨÓÃ,0,Ԫ¼þ
-½»Á÷½Ӵ¥Æ÷,CJX2-9511 380V,ֻ,1,0,1,1,ͨÓÃ,0,Ԫ¼þ
-½»Á÷½Ӵ¥Æ÷,LC1-D09 220V,ֻ,1,0,1,1,ʩÄ͵Â,0,Ԫ¼þ
-½»Á÷½Ӵ¥Æ÷,LC1-D12 220V,ֻ,1,0,1,1,ʩÄ͵Â,0,Ԫ¼þ
-½»Á÷½Ӵ¥Æ÷,LC1-D18 220V,ֻ,1,0,1,1,ʩÄ͵Â,0,Ԫ¼þ
-½»Á÷½Ӵ¥Æ÷,LC1-D25 220V,ֻ,1,0,1,1,ʩÄ͵Â,0,Ԫ¼þ
-½»Á÷½Ӵ¥Æ÷,LC1-D32 220V,ֻ,1,0,1,1,ʩÄ͵Â,0,Ԫ¼þ
-½»Á÷½Ӵ¥Æ÷,LC1-D40 220V,ֻ,1,0,1,1,ʩÄ͵Â,0,Ԫ¼þ
-½»Á÷½Ӵ¥Æ÷,LC1-D50 220V,ֻ,1,0,1,1,ʩÄ͵Â,0,Ԫ¼þ
-½»Á÷½Ӵ¥Æ÷,LC1-D65 220V,ֻ,1,0,1,1,ʩÄ͵Â,0,Ԫ¼þ
-½»Á÷½Ӵ¥Æ÷,LC1-D80 220V,ֻ,1,0,1,1,ʩÄ͵Â,0,Ԫ¼þ
-½»Á÷½Ӵ¥Æ÷,LC1-D95 220V,ֻ,1,0,1,1,ʩÄ͵Â,0,Ԫ¼þ
-½»Á÷½Ӵ¥Æ÷,LC1-D09 380V,ֻ,1,0,1,1,ʩÄ͵Â,0,Ԫ¼þ
-½»Á÷½Ӵ¥Æ÷,LC1-D12 380V,ֻ,1,0,1,1,ʩÄ͵Â,0,Ԫ¼þ
-½»Á÷½Ӵ¥Æ÷,LC1-D18 380V,ֻ,1,0,1,1,ʩÄ͵Â,0,Ԫ¼þ
-½»Á÷½Ӵ¥Æ÷,LC1-D25 380V,ֻ,1,0,1,1,ʩÄ͵Â,0,Ԫ¼þ
-½»Á÷½Ӵ¥Æ÷,LC1-D32 380V,ֻ,1,0,1,1,ʩÄ͵Â,0,Ԫ¼þ
-½»Á÷½Ӵ¥Æ÷,LC1-D40 380V,ֻ,1,0,1,1,ʩÄ͵Â,0,Ԫ¼þ
-½»Á÷½Ӵ¥Æ÷,LC1-D50 380V,ֻ,1,0,1,1,ʩÄ͵Â,0,Ԫ¼þ
-½»Á÷½Ӵ¥Æ÷,LC1-D65 380V,ֻ,1,0,1,1,ʩÄ͵Â,0,Ԫ¼þ
-½»Á÷½Ӵ¥Æ÷,LC1-D80 380V,ֻ,1,0,1,1,ʩÄ͵Â,0,Ԫ¼þ
-½»Á÷½Ӵ¥Æ÷,LC1-D95 380V,ֻ,1,0,1,1,ʩÄ͵Â,0,Ԫ¼þ
-ÈȹýÔؼ̵çÆ÷,NXR-25 0.4-0.63A,ֻ,1,0,1,1,Õý̩,0,Ԫ¼þ
-ÈȹýÔؼ̵çÆ÷,NXR-25 0.63-1A,ֻ,1,0,1,1,Õý̩,0,Ԫ¼þ
-ÈȹýÔؼ̵çÆ÷,NXR-25 1-1.6A,ֻ,1,0,1,1,Õý̩,0,Ԫ¼þ
-ÈȹýÔؼ̵çÆ÷,NXR-25 1.6-2.5A,ֻ,1,0,1,1,Õý̩,0,Ԫ¼þ
-ÈȹýÔؼ̵çÆ÷,NXR-25 2.5-4A,ֻ,1,0,1,1,Õý̩,0,Ԫ¼þ
-ÈȹýÔؼ̵çÆ÷,NXR-25 4-6A,ֻ,1,0,1,1,Õý̩,0,Ԫ¼þ
-ÈȹýÔؼ̵çÆ÷,NXR-25 5.5-8A,ֻ,1,0,1,1,Õý̩,0,Ԫ¼þ
-ÈȹýÔؼ̵çÆ÷,NXR-25 7-10A,ֻ,1,0,1,1,Õý̩,0,Ԫ¼þ
-ÈȹýÔؼ̵çÆ÷,NXR-25 9-13A,ֻ,1,0,1,1,Õý̩,0,Ԫ¼þ
-ÈȹýÔؼ̵çÆ÷,NXR-25 12-18A,ֻ,1,0,1,1,Õý̩,0,Ԫ¼þ
-ÈȹýÔؼ̵çÆ÷,NXR-25 17-25A,ֻ,1,0,1,1,Õý̩,0,Ԫ¼þ
-ÈȹýÔؼ̵çÆ÷,NXR-38 23-32A,ֻ,1,0,1,1,Õý̩,0,Ԫ¼þ
-ÈȹýÔؼ̵çÆ÷,NXR-38 30-38A,ֻ,1,0,1,1,Õý̩,0,Ԫ¼þ
-ÈȹýÔؼ̵çÆ÷,NXR-100 23-32A,ֻ,1,0,1,1,Õý̩,0,Ԫ¼þ
-ÈȹýÔؼ̵çÆ÷,NXR-100 30-40A,ֻ,1,0,1,1,Õý̩,0,Ԫ¼þ
-ÈȹýÔؼ̵çÆ÷,NXR-100 37-50A,ֻ,1,0,1,1,Õý̩,0,Ԫ¼þ
-ÈȹýÔؼ̵çÆ÷,NXR-100 48-65A,ֻ,1,0,1,1,Õý̩,0,Ԫ¼þ
-ÈȹýÔؼ̵çÆ÷,NXR-100 55-70A,ֻ,1,0,1,1,Õý̩,0,Ԫ¼þ
-ÈȹýÔؼ̵çÆ÷,NXR-100 63-80A,ֻ,1,0,1,1,Õý̩,0,Ԫ¼þ
-ÈȹýÔؼ̵çÆ÷,NXR-100 80-93A,ֻ,1,0,1,1,Õý̩,0,Ԫ¼þ
-ÈȹýÔؼ̵çÆ÷,NXR-100 80-100A,ֻ,1,0,1,1,Õý̩,0,Ԫ¼þ
-ÈȹýÔؼ̵çÆ÷,NXR-200 80-160A,ֻ,1,0,1,1,Õý̩,0,Ԫ¼þ
-ÈȹýÔؼ̵çÆ÷,NXR-200 100-200A,ֻ,1,0,1,1,Õý̩,0,Ԫ¼þ
-ÈȹýÔؼ̵çÆ÷,NXR-630 125-250A,ֻ,1,0,1,1,Õý̩,0,Ԫ¼þ
-ÈȹýÔؼ̵çÆ÷,NXR-630 200-400A,ֻ,1,0,1,1,Õý̩,0,Ԫ¼þ
-ÈȹýÔؼ̵çÆ÷,NXR-630 315-630A,ֻ,1,0,1,1,Õý̩,0,Ԫ¼þ
-ÈȹýÔؼ̵çÆ÷,NR2-25 0.1-0.16A,ֻ,1,0,1,1,Õý̩,0,Ԫ¼þ
-ÈȹýÔؼ̵çÆ÷,NR2-25 0.16-0.25A,ֻ,1,0,1,1,Õý̩,0,Ԫ¼þ
-ÈȹýÔؼ̵çÆ÷,NR2-25 0.25-0.4A,ֻ,1,0,1,1,Õý̩,0,Ԫ¼þ
-ÈȹýÔؼ̵çÆ÷,NR2-25 0.4-0.63A,ֻ,1,0,1,1,Õý̩,0,Ԫ¼þ
-ÈȹýÔؼ̵çÆ÷,NR2-25 0.63-1A,ֻ,1,0,1,1,Õý̩,0,Ԫ¼þ
-ÈȹýÔؼ̵çÆ÷,NR2-25 1-1.6A,ֻ,1,0,1,1,Õý̩,0,Ԫ¼þ
-ÈȹýÔؼ̵çÆ÷,NR2-25 1.6-2.5A,ֻ,1,0,1,1,Õý̩,0,Ԫ¼þ
-ÈȹýÔؼ̵çÆ÷,NR2-25 2.5-4A,ֻ,1,0,1,1,Õý̩,0,Ԫ¼þ
-ÈȹýÔؼ̵çÆ÷,NR2-25 4-6A,ֻ,1,0,1,1,Õý̩,0,Ԫ¼þ
-ÈȹýÔؼ̵çÆ÷,NR2-25 5-8A,ֻ,1,0,1,1,Õý̩,0,Ԫ¼þ
-ÈȹýÔؼ̵çÆ÷,NR2-25 7-10A,ֻ,1,0,1,1,Õý̩,0,Ԫ¼þ
-ÈȹýÔؼ̵çÆ÷,NR2-25 9-13A,ֻ,1,0,1,1,Õý̩,0,Ԫ¼þ
-ÈȹýÔؼ̵çÆ÷,NR2-25 12-18A,ֻ,1,0,1,1,Õý̩,0,Ԫ¼þ
-ÈȹýÔؼ̵çÆ÷,NR2-25 17-23A,ֻ,1,0,1,1,Õý̩,0,Ԫ¼þ
-ÈȹýÔؼ̵çÆ÷,NR2-63 23-32A,ֻ,1,0,1,1,Õý̩,0,Ԫ¼þ
-ÈȹýÔؼ̵çÆ÷,NR2-63 30-40A,ֻ,1,0,1,1,Õý̩,0,Ԫ¼þ
-ÈȹýÔؼ̵çÆ÷,NR2-63 40-52A,ֻ,1,0,1,1,Õý̩,0,Ԫ¼þ
-ÈȹýÔؼ̵çÆ÷,NR2-63 48-65A,ֻ,1,0,1,1,Õý̩,0,Ԫ¼þ
-ÈȹýÔؼ̵çÆ÷,NR2-63 55-63A,ֻ,1,0,1,1,Õý̩,0,Ԫ¼þ
-ÈȹýÔؼ̵çÆ÷,LRI-09 0.4-0.63A,ֻ,1,0,1,1,ʩÄ͵Â,0,Ԫ¼þ
-ÈȹýÔؼ̵çÆ÷,LRI-09 0.63-1A,ֻ,1,0,1,1,ʩÄ͵Â,0,Ԫ¼þ
-ÈȹýÔؼ̵çÆ÷,LRI-09 1-1.6A,ֻ,1,0,1,1,ʩÄ͵Â,0,Ԫ¼þ
-ÈȹýÔؼ̵çÆ÷,LRI-09 1.6-2.5A,ֻ,1,0,1,1,ʩÄ͵Â,0,Ԫ¼þ
-ÈȹýÔؼ̵çÆ÷,LRI-09 2.5-4A,ֻ,1,0,1,1,ʩÄ͵Â,0,Ԫ¼þ
-ÈȹýÔؼ̵çÆ÷,LRI-09 4-6A,ֻ,1,0,1,1,ʩÄ͵Â,0,Ԫ¼þ
-ÈȹýÔؼ̵çÆ÷,LRI-09 5.5-8A,ֻ,1,0,1,1,ʩÄ͵Â,0,Ԫ¼þ
-ÈȹýÔؼ̵çÆ÷,LRI-09 7-10A,ֻ,1,0,1,1,ʩÄ͵Â,0,Ԫ¼þ
-ÈȹýÔؼ̵çÆ÷,LRI-09 9-13A,ֻ,1,0,1,1,ʩÄ͵Â,0,Ԫ¼þ
-ÈȹýÔؼ̵çÆ÷,LRI-12 10-13A,ֻ,1,0,1,1,ʩÄ͵Â,0,Ԫ¼þ
-ÈȹýÔؼ̵çÆ÷,LRI-18 12-18A,ֻ,1,0,1,1,ʩÄ͵Â,0,Ԫ¼þ
-ÈȹýÔؼ̵çÆ÷,LRI-25 17-25A,ֻ,1,0,1,1,ʩÄ͵Â,0,Ԫ¼þ
-ÈȹýÔؼ̵çÆ÷,LRI-32 23-32A,ֻ,1,0,1,1,ʩÄ͵Â,0,Ԫ¼þ
-ÈȹýÔؼ̵çÆ÷,LRI-40 30-40A,ֻ,1,0,1,1,ʩÄ͵Â,0,Ԫ¼þ
-ÈȹýÔؼ̵çÆ÷,LRI-50 37-50A,ֻ,1,0,1,1,ʩÄ͵Â,0,Ԫ¼þ
-ÈȹýÔؼ̵çÆ÷,LRI-60 48-65A,ֻ,1,0,1,1,ʩÄ͵Â,0,Ԫ¼þ
-ÈȹýÔؼ̵çÆ÷,LRI-D97 60-100A,ֻ,1,0,1,1,ʩÄ͵Â,0,Ԫ¼þ
-È۶ÏÆ÷,NT00C-2A,ֻ,1,0,1,1,ͨÓÃ,0,Ԫ¼þ
-È۶ÏÆ÷,NT00C-4A,ֻ,1,0,1,1,ͨÓÃ,0,Ԫ¼þ
-È۶ÏÆ÷,NT00C-6A,ֻ,1,0,1,1,ͨÓÃ,0,Ԫ¼þ
-È۶ÏÆ÷,NT00C-10A,ֻ,1,0,1,1,ͨÓÃ,0,Ԫ¼þ
-È۶ÏÆ÷,NT00C-16A,ֻ,1,0,1,1,ͨÓÃ,0,Ԫ¼þ
-È۶ÏÆ÷,NT00C-20A,ֻ,1,0,1,1,ͨÓÃ,0,Ԫ¼þ
-È۶ÏÆ÷,NT00C-25A,ֻ,1,0,1,1,ͨÓÃ,0,Ԫ¼þ
-È۶ÏÆ÷,NT00C-32A,ֻ,1,0,1,1,ͨÓÃ,0,Ԫ¼þ
-È۶ÏÆ÷,NT00C-40A,ֻ,1,0,1,1,ͨÓÃ,0,Ԫ¼þ
-È۶ÏÆ÷,NT00C-50A,ֻ,1,0,1,1,ͨÓÃ,0,Ԫ¼þ
-È۶ÏÆ÷,NT00C-63A,ֻ,1,0,1,1,ͨÓÃ,0,Ԫ¼þ
-È۶ÏÆ÷,NT00C-80A,ֻ,1,0,1,1,ͨÓÃ,0,Ԫ¼þ
-È۶ÏÆ÷,NT00C-100A,ֻ,1,0,1,1,ͨÓÃ,0,Ԫ¼þ
-È۶ÏÆ÷,NT00-16A,ֻ,1,0,1,1,ͨÓÃ,0,Ԫ¼þ
-È۶ÏÆ÷,NT00-20A,ֻ,1,0,1,1,ͨÓÃ,0,Ԫ¼þ
-È۶ÏÆ÷,NT00-25A,ֻ,1,0,1,1,ͨÓÃ,0,Ԫ¼þ
-È۶ÏÆ÷,NT00-32A,ֻ,1,0,1,1,ͨÓÃ,0,Ԫ¼þ
-È۶ÏÆ÷,NT00-40A,ֻ,1,0,1,1,ͨÓÃ,0,Ԫ¼þ
-È۶ÏÆ÷,NT00-50A,ֻ,1,0,1,1,ͨÓÃ,0,Ԫ¼þ
-È۶ÏÆ÷,NT00-63A,ֻ,1,0,1,1,ͨÓÃ,0,Ԫ¼þ
-È۶ÏÆ÷,NT00-80A,ֻ,1,0,1,1,ͨÓÃ,0,Ԫ¼þ
-È۶ÏÆ÷,NT00-100A,ֻ,1,0,1,1,ͨÓÃ,0,Ԫ¼þ
-È۶ÏÆ÷,NT00-125A,ֻ,1,0,1,1,ͨÓÃ,0,Ԫ¼þ
-È۶ÏÆ÷,NT00-160A,ֻ,1,0,1,1,ͨÓÃ,0,Ԫ¼þ
-È۶ÏÆ÷,NT0-16A,ֻ,1,0,1,1,ͨÓÃ,0,Ԫ¼þ
-È۶ÏÆ÷,NT0-20A,ֻ,1,0,1,1,ͨÓÃ,0,Ԫ¼þ
-È۶ÏÆ÷,NT0-25A,ֻ,1,0,1,1,ͨÓÃ,0,Ԫ¼þ
-È۶ÏÆ÷,NT0-32A,ֻ,1,0,1,1,ͨÓÃ,0,Ԫ¼þ
-È۶ÏÆ÷,NT0-35A,ֻ,1,0,1,1,ͨÓÃ,0,Ԫ¼þ
-È۶ÏÆ÷,NT0-40A,ֻ,1,0,1,1,ͨÓÃ,0,Ԫ¼þ
-È۶ÏÆ÷,NT0-50A,ֻ,1,0,1,1,ͨÓÃ,0,Ԫ¼þ
-È۶ÏÆ÷,NT0-63A,ֻ,1,0,1,1,ͨÓÃ,0,Ԫ¼þ
-È۶ÏÆ÷,NT0-80A,ֻ,1,0,1,1,ͨÓÃ,0,Ԫ¼þ
-È۶ÏÆ÷,NT0-100A,ֻ,1,0,1,1,ͨÓÃ,0,Ԫ¼þ
-È۶ÏÆ÷,NT0-125A,ֻ,1,0,1,1,ͨÓÃ,0,Ԫ¼þ
-È۶ÏÆ÷,NT0-160A,ֻ,1,0,1,1,ͨÓÃ,0,Ԫ¼þ
-È۶ÏÆ÷,NT1-80A,ֻ,1,0,1,1,ͨÓÃ,0,Ԫ¼þ
-È۶ÏÆ÷,NT1-100A,ֻ,1,0,1,1,ͨÓÃ,0,Ԫ¼þ
-È۶ÏÆ÷,NT1-125A,ֻ,1,0,1,1,ͨÓÃ,0,Ԫ¼þ
-È۶ÏÆ÷,NT1-160A,ֻ,1,0,1,1,ͨÓÃ,0,Ԫ¼þ
-È۶ÏÆ÷,NT1-200A,ֻ,1,0,1,1,ͨÓÃ,0,Ԫ¼þ
-È۶ÏÆ÷,NT1-224A,ֻ,1,0,1,1,ͨÓÃ,0,Ԫ¼þ
-È۶ÏÆ÷,NT1-250A,ֻ,1,0,1,1,ͨÓÃ,0,Ԫ¼þ
-È۶ÏÆ÷,NT2-125A,ֻ,1,0,1,1,ͨÓÃ,0,Ԫ¼þ
-È۶ÏÆ÷,NT2-160A,ֻ,1,0,1,1,ͨÓÃ,0,Ԫ¼þ
-È۶ÏÆ÷,NT2-200A,ֻ,1,0,1,1,ͨÓÃ,0,Ԫ¼þ
-È۶ÏÆ÷,NT2-224A,ֻ,1,0,1,1,ͨÓÃ,0,Ԫ¼þ
-È۶ÏÆ÷,NT2-250A,ֻ,1,0,1,1,ͨÓÃ,0,Ԫ¼þ
-È۶ÏÆ÷,NT2-315A,ֻ,1,0,1,1,ͨÓÃ,0,Ԫ¼þ
-È۶ÏÆ÷,NT2-355A,ֻ,1,0,1,1,ͨÓÃ,0,Ԫ¼þ
-È۶ÏÆ÷,NT2-400A,ֻ,1,0,1,1,ͨÓÃ,0,Ԫ¼þ
-È۶ÏÆ÷,NT3-315A,ֻ,1,0,1,1,ͨÓÃ,0,Ԫ¼þ
-È۶ÏÆ÷,NT3-355A,ֻ,1,0,1,1,ͨÓÃ,0,Ԫ¼þ
-È۶ÏÆ÷,NT3-400A,ֻ,1,0,1,1,ͨÓÃ,0,Ԫ¼þ
-È۶ÏÆ÷,NT3-500A,ֻ,1,0,1,1,ͨÓÃ,0,Ԫ¼þ
-È۶ÏÆ÷,NT3-630A,ֻ,1,0,1,1,ͨÓÃ,0,Ԫ¼þ
-È۶ÏÆ÷,RT16-000 2A,ֻ,1,0,1,1,ͨÓÃ,0,Ԫ¼þ
-È۶ÏÆ÷,RT16-000 4A,ֻ,1,0,1,1,ͨÓÃ,0,Ԫ¼þ
-È۶ÏÆ÷,RT16-000 6A,ֻ,1,0,1,1,ͨÓÃ,0,Ԫ¼þ
-È۶ÏÆ÷,RT16-000 10A,ֻ,1,0,1,1,ͨÓÃ,0,Ԫ¼þ
-È۶ÏÆ÷,RT16-000 16A,ֻ,1,0,1,1,ͨÓÃ,0,Ԫ¼þ
-È۶ÏÆ÷,RT16-000 20A,ֻ,1,0,1,1,ͨÓÃ,0,Ԫ¼þ
-È۶ÏÆ÷,RT16-000 25A,ֻ,1,0,1,1,ͨÓÃ,0,Ԫ¼þ
-È۶ÏÆ÷,RT16-000 32A,ֻ,1,0,1,1,ͨÓÃ,0,Ԫ¼þ
-È۶ÏÆ÷,RT16-000 40A,ֻ,1,0,1,1,ͨÓÃ,0,Ԫ¼þ
-È۶ÏÆ÷,RT16-000 50A,ֻ,1,0,1,1,ͨÓÃ,0,Ԫ¼þ
-È۶ÏÆ÷,RT16-000 63A,ֻ,1,0,1,1,ͨÓÃ,0,Ԫ¼þ
-È۶ÏÆ÷,RT16-000 80A,ֻ,1,0,1,1,ͨÓÃ,0,Ԫ¼þ
-È۶ÏÆ÷,RT16-000 100A,ֻ,1,0,1,1,ͨÓÃ,0,Ԫ¼þ
-È۶ÏÆ÷,RT16-00 16A,ֻ,1,0,1,1,ͨÓÃ,0,Ԫ¼þ
-È۶ÏÆ÷,RT16-00 20A,ֻ,1,0,1,1,ͨÓÃ,0,Ԫ¼þ
-È۶ÏÆ÷,RT16-00 25A,ֻ,1,0,1,1,ͨÓÃ,0,Ԫ¼þ
-È۶ÏÆ÷,RT16-00 32A,ֻ,1,0,1,1,ͨÓÃ,0,Ԫ¼þ
-È۶ÏÆ÷,RT16-00 40A,ֻ,1,0,1,1,ͨÓÃ,0,Ԫ¼þ
-È۶ÏÆ÷,RT16-00 50A,ֻ,1,0,1,1,ͨÓÃ,0,Ԫ¼þ
-È۶ÏÆ÷,RT16-00 63A,ֻ,1,0,1,1,ͨÓÃ,0,Ԫ¼þ
-È۶ÏÆ÷,RT16-00 80A,ֻ,1,0,1,1,ͨÓÃ,0,Ԫ¼þ
-È۶ÏÆ÷,RT16-00 100A,ֻ,1,0,1,1,ͨÓÃ,0,Ԫ¼þ
-È۶ÏÆ÷,RT16-00 125A,ֻ,1,0,1,1,ͨÓÃ,0,Ԫ¼þ
-È۶ÏÆ÷,RT16-00 160A,ֻ,1,0,1,1,ͨÓÃ,0,Ԫ¼þ
-È۶ÏÆ÷,RT16-1 80A,ֻ,1,0,1,1,ͨÓÃ,0,Ԫ¼þ
-È۶ÏÆ÷,RT16-1 100A,ֻ,1,0,1,1,ͨÓÃ,0,Ԫ¼þ
-È۶ÏÆ÷,RT16-1 125A,ֻ,1,0,1,1,ͨÓÃ,0,Ԫ¼þ
-È۶ÏÆ÷,RT16-1 160A,ֻ,1,0,1,1,ͨÓÃ,0,Ԫ¼þ
-È۶ÏÆ÷,RT16-1 200A,ֻ,1,0,1,1,ͨÓÃ,0,Ԫ¼þ
-È۶ÏÆ÷,RT16-1 224A,ֻ,1,0,1,1,ͨÓÃ,0,Ԫ¼þ
-È۶ÏÆ÷,RT16-1 250A,ֻ,1,0,1,1,ͨÓÃ,0,Ԫ¼þ
-È۶ÏÆ÷,RT16-2 125A,ֻ,1,0,1,1,ͨÓÃ,0,Ԫ¼þ
-È۶ÏÆ÷,RT16-2 160A,ֻ,1,0,1,1,ͨÓÃ,0,Ԫ¼þ
-È۶ÏÆ÷,RT16-2 200A,ֻ,1,0,1,1,ͨÓÃ,0,Ԫ¼þ
-È۶ÏÆ÷,RT16-2 224A,ֻ,1,0,1,1,ͨÓÃ,0,Ԫ¼þ
-È۶ÏÆ÷,RT16-2 250A,ֻ,1,0,1,1,ͨÓÃ,0,Ԫ¼þ
-È۶ÏÆ÷,RT16-2 315A,ֻ,1,0,1,1,ͨÓÃ,0,Ԫ¼þ
-È۶ÏÆ÷,RT16-2 355A,ֻ,1,0,1,1,ͨÓÃ,0,Ԫ¼þ
-È۶ÏÆ÷,RT16-2 400A,ֻ,1,0,1,1,ͨÓÃ,0,Ԫ¼þ
-È۶ÏÆ÷,RT18-32 0.5A,ֻ,1,0,1,1,ͨÓÃ,0,Ԫ¼þ
-È۶ÏÆ÷,RT18-32 1A,ֻ,1,0,1,1,ͨÓÃ,0,Ԫ¼þ
-È۶ÏÆ÷,RT18-32 2A,ֻ,1,0,1,1,ͨÓÃ,0,Ԫ¼þ
-È۶ÏÆ÷,RT18-32 4A,ֻ,1,0,1,1,ͨÓÃ,0,Ԫ¼þ
-È۶ÏÆ÷,RT18-32 6A,ֻ,1,0,1,1,ͨÓÃ,0,Ԫ¼þ
-È۶ÏÆ÷,RT18-32 8A,ֻ,1,0,1,1,ͨÓÃ,0,Ԫ¼þ
-È۶ÏÆ÷,RT18-32 10A,ֻ,1,0,1,1,ͨÓÃ,0,Ԫ¼þ
-È۶ÏÆ÷,RT18-32 16A,ֻ,1,0,1,1,ͨÓÃ,0,Ԫ¼þ
-È۶ÏÆ÷,RT18-32 20A,ֻ,1,0,1,1,ͨÓÃ,0,Ԫ¼þ
-È۶ÏÆ÷,RT18-32 25A,ֻ,1,0,1,1,ͨÓÃ,0,Ԫ¼þ
-È۶ÏÆ÷,RT18-32 32A,ֻ,1,0,1,1,ͨÓÃ,0,Ԫ¼þ
-µçÁ÷»¥¸ÐÆ÷,LMZ-0.5 30/5,ֻ,1,0,1,1,ͨÓÃ,0,Ԫ¼þ
-µçÁ÷»¥¸ÐÆ÷,LMZ-0.5 40/5,ֻ,1,0,1,1,ͨÓÃ,0,Ԫ¼þ
-µçÁ÷»¥¸ÐÆ÷,LMZ-0.5 50/5,ֻ,1,0,1,1,ͨÓÃ,0,Ԫ¼þ
-µçÁ÷»¥¸ÐÆ÷,LMZ-0.5 75/5,ֻ,1,0,1,1,ͨÓÃ,0,Ԫ¼þ
-µçÁ÷»¥¸ÐÆ÷,LMZ-0.5 100/5,ֻ,1,0,1,1,ͨÓÃ,0,Ԫ¼þ
-µçÁ÷»¥¸ÐÆ÷,LMZ-0.5 150/5,ֻ,1,0,1,1,ͨÓÃ,0,Ԫ¼þ
-µçÁ÷»¥¸ÐÆ÷,LMZ-0.5 200/5,ֻ,1,0,1,1,ͨÓÃ,0,Ԫ¼þ
-µçÁ÷»¥¸ÐÆ÷,LMZ-0.5 300/5,ֻ,1,0,1,1,ͨÓÃ,0,Ԫ¼þ
-µçÁ÷»¥¸ÐÆ÷,LMZ-0.5 400/5,ֻ,1,0,1,1,ͨÓÃ,0,Ԫ¼þ
-µçÁ÷»¥¸ÐÆ÷,LMZ-0.5 500/5,ֻ,1,0,1,1,ͨÓÃ,0,Ԫ¼þ
-µçÁ÷»¥¸ÐÆ÷,LMZ-0.5 600/5,ֻ,1,0,1,1,ͨÓÃ,0,Ԫ¼þ
-µçÁ÷»¥¸ÐÆ÷,LMZ-0.5 800/5,ֻ,1,0,1,1,ͨÓÃ,0,Ԫ¼þ
-µçÁ÷»¥¸ÐÆ÷,LMZ-0.5 1000/5,ֻ,1,0,1,1,ͨÓÃ,0,Ԫ¼þ
-µçÁ÷»¥¸ÐÆ÷,LMZ-0.5 1500/5,ֻ,1,0,1,1,ͨÓÃ,0,Ԫ¼þ
-µçÁ÷»¥¸ÐÆ÷,LMZ-0.5 2000/5,ֻ,1,0,1,1,ͨÓÃ,0,Ԫ¼þ
-µçÁ÷»¥¸ÐÆ÷,LMZJ-0.5 30/5,ֻ,1,0,1,1,ͨÓÃ,0,Ԫ¼þ
-µçÁ÷»¥¸ÐÆ÷,LMZJ-0.5 40/5,ֻ,1,0,1,1,ͨÓÃ,0,Ԫ¼þ
-µçÁ÷»¥¸ÐÆ÷,LMZJ-0.5 50/5,ֻ,1,0,1,1,ͨÓÃ,0,Ԫ¼þ
-µçÁ÷»¥¸ÐÆ÷,LMZJ-0.5 75/5,ֻ,1,0,1,1,ͨÓÃ,0,Ԫ¼þ
-µçÁ÷»¥¸ÐÆ÷,LMZJ-0.5 100/5,ֻ,1,0,1,1,ͨÓÃ,0,Ԫ¼þ
-µçÁ÷»¥¸ÐÆ÷,LMZJ-0.5 150/5,ֻ,1,0,1,1,ͨÓÃ,0,Ԫ¼þ
-µçÁ÷»¥¸ÐÆ÷,LMZJ-0.5 200/5,ֻ,1,0,1,1,ͨÓÃ,0,Ԫ¼þ
-µçÁ÷»¥¸ÐÆ÷,LMZJ-0.5 300/5,ֻ,1,0,1,1,ͨÓÃ,0,Ԫ¼þ
-µçÁ÷»¥¸ÐÆ÷,LMZJ-0.5 400/5,ֻ,1,0,1,1,ͨÓÃ,0,Ԫ¼þ
-µçÁ÷»¥¸ÐÆ÷,LMZJ-0.5 500/5,ֻ,1,0,1,1,ͨÓÃ,0,Ԫ¼þ
-µçÁ÷»¥¸ÐÆ÷,LMZJ-0.5 600/5,ֻ,1,0,1,1,ͨÓÃ,0,Ԫ¼þ
-µçÁ÷»¥¸ÐÆ÷,LMZJ-0.5 800/5,ֻ,1,0,1,1,ͨÓÃ,0,Ԫ¼þ
-µçÁ÷»¥¸ÐÆ÷,LMZJ-0.5 1000/5,ֻ,1,0,1,1,ͨÓÃ,0,Ԫ¼þ
-µçÁ÷»¥¸ÐÆ÷,LZZBJ9-10 50/5,ֻ,1,0,1,1,ͨÓÃ,0,Ԫ¼þ
-µçÁ÷»¥¸ÐÆ÷,LZZBJ9-10 75/5,ֻ,1,0,1,1,ͨÓÃ,0,Ԫ¼þ
-µçÁ÷»¥¸ÐÆ÷,LZZBJ9-10 100/5,ֻ,1,0,1,1,ͨÓÃ,0,Ԫ¼þ
-µçÁ÷»¥¸ÐÆ÷,LZZBJ9-10 150/5,ֻ,1,0,1,1,ͨÓÃ,0,Ԫ¼þ
-µçÁ÷»¥¸ÐÆ÷,LZZBJ9-10 200/5,ֻ,1,0,1,1,ͨÓÃ,0,Ԫ¼þ
-µçÁ÷»¥¸ÐÆ÷,LZZBJ9-10 300/5,ֻ,1,0,1,1,ͨÓÃ,0,Ԫ¼þ
-µçÁ÷»¥¸ÐÆ÷,LZZBJ9-10 400/5,ֻ,1,0,1,1,ͨÓÃ,0,Ԫ¼þ
-˫µçԴ,NM2-125/3P 63A,ֻ,1,0,1,1,ͨÓÃ,0,Ԫ¼þ
-˫µçԴ,NM2-250/3P 100A,ֻ,1,0,1,1,ͨÓÃ,0,Ԫ¼þ
-˫µçԴ,NM2-250/3P 125A,ֻ,1,0,1,1,ͨÓÃ,0,Ԫ¼þ
-˫µçԴ,NM2-250/3P 160A,ֻ,1,0,1,1,ͨÓÃ,0,Ԫ¼þ
-˫µçԴ,NM2-250/3P 200A,ֻ,1,0,1,1,ͨÓÃ,0,Ԫ¼þ
-˫µçԴ,NM2-250/3P 250A,ֻ,1,0,1,1,ͨÓÃ,0,Ԫ¼þ
-˫µçԴ,NM2-400/3P 315A,ֻ,1,0,1,1,ͨÓÃ,0,Ԫ¼þ
-˫µçԴ,NM2-400/3P 400A,ֻ,1,0,1,1,ͨÓÃ,0,Ԫ¼þ
-˫µçԴ,NM2-630/3P 630A,ֻ,1,0,1,1,ͨÓÃ,0,Ԫ¼þ
-˫µçԴ,TBBQ2-63/3P 63A,ֻ,1,0,1,1,ͨÓÃ,0,Ԫ¼þ
-˫µçԴ,TBBQ2-100/3P 100A,ֻ,1,0,1,1,ͨÓÃ,0,Ԫ¼þ
-˫µçԴ,TBBQ2-125/3P 125A,ֻ,1,0,1,1,ͨÓÃ,0,Ԫ¼þ
-˫µçԴ,TBBQ2-160/3P 160A,ֻ,1,0,1,1,ͨÓÃ,0,Ԫ¼þ
-˫µçԴ,TBBQ2-250/3P 250A,ֻ,1,0,1,1,ͨÓÃ,0,Ԫ¼þ
-˫µçԴ,TBBQ2-400/3P 400A,ֻ,1,0,1,1,ͨÓÃ,0,Ԫ¼þ
-˫µçԴ,WATS-100/3P 100A,ֻ,1,0,1,1,ͨÓÃ,0,Ԫ¼þ
-˫µçԴ,WATS-250/3P 250A,ֻ,1,0,1,1,ͨÓÃ,0,Ԫ¼þ
-˫µçԴ,WATS-400/3P 400A,ֻ,1,0,1,1,ͨÓÃ,0,Ԫ¼þ
-˫µçԴ,WATS-630/3P 630A,ֻ,1,0,1,1,ͨÓÃ,0,Ԫ¼þ
-˫µçԴ,WATS-800/3P 800A,ֻ,1,0,1,1,ͨÓÃ,0,Ԫ¼þ
-СÐͶÏ·Æ÷,DZ47-60 1P C6,ֻ,1,0,1,1,ͨÓÃ,0,Ԫ¼þ
-СÐͶÏ·Æ÷,DZ47-60 1P C10,ֻ,1,0,1,1,ͨÓÃ,0,Ԫ¼þ
-СÐͶÏ·Æ÷,DZ47-60 1P C16,ֻ,1,0,1,1,ͨÓÃ,0,Ԫ¼þ
-СÐͶÏ·Æ÷,DZ47-60 1P C20,ֻ,1,0,1,1,ͨÓÃ,0,Ԫ¼þ
-СÐͶÏ·Æ÷,DZ47-60 1P C25,ֻ,1,0,1,1,ͨÓÃ,0,Ԫ¼þ
-СÐͶÏ·Æ÷,DZ47-60 1P C32,ֻ,1,0,1,1,ͨÓÃ,0,Ԫ¼þ
-СÐͶÏ·Æ÷,DZ47-60 1P C40,ֻ,1,0,1,1,ͨÓÃ,0,Ԫ¼þ
-СÐͶÏ·Æ÷,DZ47-60 1P C50,ֻ,1,0,1,1,ͨÓÃ,0,Ԫ¼þ
-СÐͶÏ·Æ÷,DZ47-60 1P C63,ֻ,1,0,1,1,ͨÓÃ,0,Ԫ¼þ
-СÐͶÏ·Æ÷,DZ47-60 2P C16,ֻ,1,0,1,1,ͨÓÃ,0,Ԫ¼þ
-СÐͶÏ·Æ÷,DZ47-60 2P C20,ֻ,1,0,1,1,ͨÓÃ,0,Ԫ¼þ
-СÐͶÏ·Æ÷,DZ47-60 2P C25,ֻ,1,0,1,1,ͨÓÃ,0,Ԫ¼þ
-СÐͶÏ·Æ÷,DZ47-60 2P C32,ֻ,1,0,1,1,ͨÓÃ,0,Ԫ¼þ
-СÐͶÏ·Æ÷,DZ47-60 2P C40,ֻ,1,0,1,1,ͨÓÃ,0,Ԫ¼þ
-СÐͶÏ·Æ÷,DZ47-60 3P C16,ֻ,1,0,1,1,ͨÓÃ,0,Ԫ¼þ
-СÐͶÏ·Æ÷,DZ47-60 3P C20,ֻ,1,0,1,1,ͨÓÃ,0,Ԫ¼þ
-СÐͶÏ·Æ÷,DZ47-60 3P C25,ֻ,1,0,1,1,ͨÓÃ,0,Ԫ¼þ
-СÐͶÏ·Æ÷,DZ47-60 3P C32,ֻ,1,0,1,1,ͨÓÃ,0,Ԫ¼þ
-СÐͶÏ·Æ÷,DZ47-60 3P C40,ֻ,1,0,1,1,ͨÓÃ,0,Ԫ¼þ
-СÐͶÏ·Æ÷,DZ47-60 3P C50,ֻ,1,0,1,1,ͨÓÃ,0,Ԫ¼þ
-СÐͶÏ·Æ÷,DZ47-60 3P C63,ֻ,1,0,1,1,ͨÓÃ,0,Ԫ¼þ
-СÐͶÏ·Æ÷,DZ47-60 4P C16,ֻ,1,0,1,1,ͨÓÃ,0,Ԫ¼þ
-СÐͶÏ·Æ÷,DZ47-60 4P C25,ֻ,1,0,1,1,ͨÓÃ,0,Ԫ¼þ
-СÐͶÏ·Æ÷,DZ47-60 4P C32,ֻ,1,0,1,1,ͨÓÃ,0,Ԫ¼þ
-СÐͶÏ·Æ÷,DZ47-60 4P C40,ֻ,1,0,1,1,ͨÓÃ,0,Ԫ¼þ
-СÐͶÏ·Æ÷,DZ47-60 4P C63,ֻ,1,0,1,1,ͨÓÃ,0,Ԫ¼þ
-СÐͶÏ·Æ÷,NB1-63 1P C16,ֻ,1,0,1,1,Õý̩,0,Ԫ¼þ
-СÐͶÏ·Æ÷,NB1-63 1P C20,ֻ,1,0,1,1,Õý̩,0,Ԫ¼þ
-СÐͶÏ·Æ÷,NB1-63 1P C25,ֻ,1,0,1,1,Õý̩,0,Ԫ¼þ
-СÐͶÏ·Æ÷,NB1-63 1P C32,ֻ,1,0,1,1,Õý̩,0,Ԫ¼þ
-СÐͶÏ·Æ÷,NB1-63 1P C40,ֻ,1,0,1,1,Õý̩,0,Ԫ¼þ
-СÐͶÏ·Æ÷,NB1-63 1P C50,ֻ,1,0,1,1,Õý̩,0,Ԫ¼þ
-СÐͶÏ·Æ÷,NB1-63 1P C63,ֻ,1,0,1,1,Õý̩,0,Ԫ¼þ
-СÐͶÏ·Æ÷,NB1-63 2P C16,ֻ,1,0,1,1,Õý̩,0,Ԫ¼þ
-СÐͶÏ·Æ÷,NB1-63 2P C32,ֻ,1,0,1,1,Õý̩,0,Ԫ¼þ
-СÐͶÏ·Æ÷,NB1-63 3P C16,ֻ,1,0,1,1,Õý̩,0,Ԫ¼þ
-СÐͶÏ·Æ÷,NB1-63 3P C32,ֻ,1,0,1,1,Õý̩,0,Ԫ¼þ
-СÐͶÏ·Æ÷,NB1-63 4P C16,ֻ,1,0,1,1,Õý̩,0,Ԫ¼þ
-СÐͶÏ·Æ÷,NB1-63 4P C32,ֻ,1,0,1,1,Õý̩,0,Ԫ¼þ
-СÐͶÏ·Æ÷,DPN C16,ֻ,1,0,1,1,ʩÄ͵Â,0,Ԫ¼þ
-СÐͶÏ·Æ÷,DPN C20,ֻ,1,0,1,1,ʩÄ͵Â,0,Ԫ¼þ
-СÐͶÏ·Æ÷,DPN C25,ֻ,1,0,1,1,ʩÄ͵Â,0,Ԫ¼þ
-СÐͶÏ·Æ÷,DPN C32,ֻ,1,0,1,1,ʩÄ͵Â,0,Ԫ¼þ
-СÐͶÏ·Æ÷,iC65N 1P C16,ֻ,1,0,1,1,ʩÄ͵Â,0,Ԫ¼þ
-СÐͶÏ·Æ÷,iC65N 1P C20,ֻ,1,0,1,1,ʩÄ͵Â,0,Ԫ¼þ
-СÐͶÏ·Æ÷,iC65N 1P C25,ֻ,1,0,1,1,ʩÄ͵Â,0,Ԫ¼þ
-СÐͶÏ·Æ÷,iC65N 1P C32,ֻ,1,0,1,1,ʩÄ͵Â,0,Ԫ¼þ
-СÐͶÏ·Æ÷,iC65N 2P C16,ֻ,1,0,1,1,ʩÄ͵Â,0,Ԫ¼þ
-СÐͶÏ·Æ÷,iC65N 2P C32,ֻ,1,0,1,1,ʩÄ͵Â,0,Ԫ¼þ
-СÐͶÏ·Æ÷,iC65N 3P C16,ֻ,1,0,1,1,ʩÄ͵Â,0,Ԫ¼þ
-СÐͶÏ·Æ÷,iC65N 3P C32,ֻ,1,0,1,1,ʩÄ͵Â,0,Ԫ¼þ
-µçӿ±£»¤Æ÷,SPD T2 20kA 4P,ֻ,1,0,1,1,ͨÓÃ,0,Ԫ¼þ
-µçӿ±£»¤Æ÷,SPD T2 40kA 4P,ֻ,1,0,1,1,ͨÓÃ,0,Ԫ¼þ
-µçӿ±£»¤Æ÷,NUP65 4P,ֻ,1,0,1,1,Õý̩,0,Ԫ¼þ
-¿ØÖƱäѹÆ÷,BK-50VA 220/36V,ֻ,1,0,1,1,ͨÓÃ,0,Ԫ¼þ
-¿ØÖƱäѹÆ÷,BK-100VA 220/36V,ֻ,1,0,1,1,ͨÓÃ,0,Ԫ¼þ
-¿ØÖƱäѹÆ÷,BK-150VA 220/36V,ֻ,1,0,1,1,ͨÓÃ,0,Ԫ¼þ
-¿ØÖƱäѹÆ÷,BK-250VA 220/36V,ֻ,1,0,1,1,ͨÓÃ,0,Ԫ¼þ
-¿ØÖƱäѹÆ÷,BK-300VA 220/36V,ֻ,1,0,1,1,ͨÓÃ,0,Ԫ¼þ
-¿ØÖƱäѹÆ÷,BK-400VA 220/36V,ֻ,1,0,1,1,ͨÓÃ,0,Ԫ¼þ
-¿ØÖƱäѹÆ÷,BK-500VA 220/36V,ֻ,1,0,1,1,ͨÓÃ,0,Ԫ¼þ
-¿ØÖƱäѹÆ÷,BK-1000VA 220/36V,ֻ,1,0,1,1,ͨÓÃ,0,Ԫ¼þ
-¿ØÖƱäѹÆ÷,BK-1500VA 220/36V,ֻ,1,0,1,1,ͨÓÃ,0,Ԫ¼þ
-¿ØÖƱäѹÆ÷,BK-2000VA 220/36V,ֻ,1,0,1,1,ͨÓÃ,0,Ԫ¼þ
-¿ØÖƱäѹÆ÷,BK-2500VA 380/220V,ֻ,1,0,1,1,ͨÓÃ,0,Ԫ¼þ
-¿ØÖƱäѹÆ÷,BK-3000VA 380/220V,ֻ,1,0,1,1,ͨÓÃ,0,Ԫ¼þ
-¿ØÖƱäѹÆ÷,BK-5000VA 380/220V,ֻ,1,0,1,1,ͨÓÃ,0,Ԫ¼þ
-ָʾµÆ,AD16-22 220Vºìɫ,ֻ,1,0,1,1,ͨÓÃ,0,Ԫ¼þ
-ָʾµÆ,AD16-22 220VÂÌɫ,ֻ,1,0,1,1,ͨÓÃ,0,Ԫ¼þ
-ָʾµÆ,AD16-22 220V»Æɫ,ֻ,1,0,1,1,ͨÓÃ,0,Ԫ¼þ
-ָʾµÆ,AD16-22 380Vºìɫ,ֻ,1,0,1,1,ͨÓÃ,0,Ԫ¼þ
-ָʾµÆ,AD16-22 380VÂÌɫ,ֻ,1,0,1,1,ͨÓÃ,0,Ԫ¼þ
-°´ť,LA38-11ºìɫ,ֻ,1,0,1,1,ͨÓÃ,0,Ԫ¼þ
-°´ť,LA38-11ÂÌɫ,ֻ,1,0,1,1,ͨÓÃ,0,Ԫ¼þ
-°´ť,LA38-11»Æɫ,ֻ,1,0,1,1,ͨÓÃ,0,Ԫ¼þ
-°´ť,LA38-11À¶ɫ,ֻ,1,0,1,1,ͨÓÃ,0,Ԫ¼þ
-°´ť,LA38-11°×ɫ,ֻ,1,0,1,1,ͨÓÃ,0,Ԫ¼þ
-°´ť,LA39-11ºìɫ,ֻ,1,0,1,1,ͨÓÃ,0,Ԫ¼þ
-°´ť,LA39-11ÂÌɫ,ֻ,1,0,1,1,ͨÓÃ,0,Ԫ¼þ
-¸Éʽ±äѹÆ÷,SCB13-1250kva-10/0.4,ֻ,1,0,1,1,AIʶ±ð,0,Ԫ¼þ
-¸ôÀ뿪¹Ø,HGL-250/4P,ֻ,1,0,1,1,AIʶ±ð,0,Ԫ¼þ
-©µ籣»¤¶Ï·Æ÷,NM1LE-250/4300 250A,ֻ,1,0,1,1,AIʶ±ð,0,Ԫ¼þ
-¸ôÀ뿪¹Ø,HGL-100/4P,ֻ,1,0,1,1,AIʶ±ð,0,Ԫ¼þ
-©µç¶Ï·Æ÷,DZ15LE- 100/4P,ֻ,1,0,1,1,AIʶ±ð,0,Ԫ¼þ
-©µ籣»¤¶Ï·Æ÷,DZ47LE-40/4P,ֻ,1,0,1,1,AIʶ±ð,0,Ԫ¼þ
-¸ôÀ뿪¹Ø,HGL-40/4P,ֻ,1,0,1,1,AIʶ±ð,0,Ԫ¼þ
-©µç¶Ï·Æ÷,DZ15LE- 32/4P,ֻ,1,0,1,1,AIʶ±ð,0,Ԫ¼þ
-©µç¶Ï·Æ÷,DZ47LE-10/4P,ֻ,1,0,1,1,AIʶ±ð,0,Ԫ¼þ
-©µç¶Ï·Æ÷,DZ47LE-10/2P,ֻ,1,0,1,1,AIʶ±ð,0,Ԫ¼þ
-©µç¶Ï·Æ÷,DZ47LE-16/2P,ֻ,1,0,1,1,AIʶ±ð,0,Ԫ¼þ
-¸ôÀ뿪¹Ø,HGL-16/3P,ֻ,1,0,1,1,¹úÓÅ,0,Ԫ¼þ
-¸ôÀ뿪¹Ø,HGL-16/4P,ֻ,1,0,1,1,¹úÓÅ,0,Ԫ¼þ
-¸ôÀ뿪¹Ø,HGL-32/3P,ֻ,1,0,1,1,¹úÓÅ,0,Ԫ¼þ
-¸ôÀ뿪¹Ø,HGL-32/4P,ֻ,1,0,1,1,¹úÓÅ,0,Ԫ¼þ
-¸ôÀ뿪¹Ø,HGL-63/3P,ֻ,1,0,1,1,¹úÓÅ,0,Ԫ¼þ
-¸ôÀ뿪¹Ø,HGL-63/4P,ֻ,1,0,1,1,¹úÓÅ,0,Ԫ¼þ
-¸ôÀ뿪¹Ø,HGL-125/3P,ֻ,1,0,1,1,¹úÓÅ,0,Ԫ¼þ
-¸ôÀ뿪¹Ø,HGL-125/4P,ֻ,1,0,1,1,¹úÓÅ,0,Ԫ¼þ
-¸ôÀ뿪¹Ø,HGL-160/3P,ֻ,1,0,1,1,¹úÓÅ,0,Ԫ¼þ
-¸ôÀ뿪¹Ø,HGL-160/4P,ֻ,1,0,1,1,¹úÓÅ,0,Ԫ¼þ
-¸ôÀ뿪¹Ø,HGL-250/3P,ֻ,1,0,1,1,¹úÓÅ,0,Ԫ¼þ
-¸ôÀ뿪¹Ø,HGL-400/3P,ֻ,1,0,1,1,¹úÓÅ,0,Ԫ¼þ
-¸ôÀ뿪¹Ø,HGL-400/4P,ֻ,1,0,1,1,¹úÓÅ,0,Ԫ¼þ
-¸ôÀ뿪¹Ø,HGL-630/3P,ֻ,1,0,1,1,¹úÓÅ,0,Ԫ¼þ
-¸ôÀ뿪¹Ø,HGL-630/4P,ֻ,1,0,1,1,¹úÓÅ,0,Ԫ¼þ
-¸ôÀ뿪¹Ø,HR3-100/3P,ֻ,1,0,1,1,¹úÓÅ,0,Ԫ¼þ
-¸ôÀ뿪¹Ø,HR3-200/3P,ֻ,1,0,1,1,¹úÓÅ,0,Ԫ¼þ
-¸ôÀ뿪¹Ø,HR3-400/3P,ֻ,1,0,1,1,¹úÓÅ,0,Ԫ¼þ
-¸ôÀ뿪¹Ø,HR3-630/3P,ֻ,1,0,1,1,¹úÓÅ,0,Ԫ¼þ
-¸ôÀ뿪¹Ø,HS11-100/3P,ֻ,1,0,1,1,¹úÓÅ,0,Ԫ¼þ
-¸ôÀ뿪¹Ø,HS11-200/3P,ֻ,1,0,1,1,¹úÓÅ,0,Ԫ¼þ
-¸ôÀ뿪¹Ø,HS11-400/3P,ֻ,1,0,1,1,¹úÓÅ,0,Ԫ¼þ
-¸ôÀ뿪¹Ø,HS11-630/3P,ֻ,1,0,1,1,¹úÓÅ,0,Ԫ¼þ
-¸ôÀ뿪¹Ø,HD11-100/3P,ֻ,1,0,1,1,¹úÓÅ,0,Ԫ¼þ
-¸ôÀ뿪¹Ø,HD11-200/3P,ֻ,1,0,1,1,¹úÓÅ,0,Ԫ¼þ
-¸ôÀ뿪¹Ø,HD11-400/3P,ֻ,1,0,1,1,¹úÓÅ,0,Ԫ¼þ
-¸ôÀ뿪¹Ø,HD11-600/3P,ֻ,1,0,1,1,¹úÓÅ,0,Ԫ¼þ
-¸ôÀ뿪¹Ø,HD11-1000/3P,ֻ,1,0,1,1,¹úÓÅ,0,Ԫ¼þ
-©µç¶Ï·Æ÷,iC65N/2P+VigiC16+30mA,ֻ,1,0,1,1,AIʶ±ð,0,Ԫ¼þ
-©µç¶Ï·Æ÷,iC65N/4P+VigiC20+30mA,ֻ,1,0,1,1,AIʶ±ð,0,Ԫ¼þ
-©µç¶Ï·Æ÷,iC65N/2P+VigiC20+30mA,ֻ,1,0,1,1,AIʶ±ð,0,Ԫ¼þ
-¸ôÀ뿪¹Ø,HGL,ֻ,1,0,1,1,¹æÔò,0,ǰ
-¸ôÀ뿪¹Ø,HR3,ֻ,1,0,1,1,¹æÔò,0,ǰ
-¸ôÀ뿪¹Ø,HR5,ֻ,1,0,1,1,¹æÔò,0,ǰ
-¸ôÀ뿪¹Ø,HR6,ֻ,1,0,1,1,¹æÔò,0,ǰ
-¸ôÀ뿪¹Ø,HS11,ֻ,1,0,1,1,¹æÔò,0,ǰ
-¸ôÀ뿪¹Ø,HS13,ֻ,1,0,1,1,¹æÔò,0,ǰ
-¸ôÀ뿪¹Ø,HD11,ֻ,1,0,1,1,¹æÔò,0,ǰ
-¸ôÀ뿪¹Ø,HD13,ֻ,1,0,1,1,¹æÔò,0,ǰ
-¸ôÀ뿪¹Ø,HD14,ֻ,1,0,1,1,¹æÔò,0,ǰ
-¸ôÀ뿪¹Ø,HD13BX,ֻ,1,0,1,1,¹æÔò,0,ǰ
-È۶ÏÆ÷ʽ¸ôÀëÆ÷,HG1,ֻ,1,0,1,1,¹æÔò,0,ǰ
-È۶ÏÆ÷ʽ¸ôÀëÆ÷,HG13,ֻ,1,0,1,1,¹æÔò,0,ǰ
-¸ôÀ뿪¹Ø,INT,ֻ,1,0,1,1,¹æÔò,0,ǰ
-ËܿǶÏ·Æ÷,NM1,ֻ,1,0,1,1,¹æÔò,0,ǰ
-ËܿǶÏ·Æ÷,NM2,ֻ,1,0,1,1,¹æÔò,0,ǰ
-ËܿǶÏ·Æ÷,NM3,ֻ,1,0,1,1,¹æÔò,0,ǰ
-ËܿǶÏ·Æ÷,NM6,ֻ,1,0,1,1,¹æÔò,0,ǰ
-ËܿǶÏ·Æ÷,NM8,ֻ,1,0,1,1,¹æÔò,0,ǰ
-©µ籣»¤¶Ï·Æ÷,NM1L,ֻ,1,0,1,1,¹æÔò,0,ǰ
-ÖÇÄÜÐÍËܿǶÏ·Æ÷,NM1E,ֻ,1,0,1,1,¹æÔò,0,ǰ
-ËܿǶÏ·Æ÷,CM1,ֻ,1,0,1,1,¹æÔò,0,ǰ
-ËܿǶÏ·Æ÷,CM2,ֻ,1,0,1,1,¹æÔò,0,ǰ
-ËܿǶÏ·Æ÷,CM3,ֻ,1,0,1,1,¹æÔò,0,ǰ
-ËܿǶÏ·Æ÷,CM5,ֻ,1,0,1,1,¹æÔò,0,ǰ
-ËܿǶÏ·Æ÷,CDM3,ֻ,1,0,1,1,¹æÔò,0,ǰ
-ËܿǶÏ·Æ÷,CDM6,ֻ,1,0,1,1,¹æÔò,0,ǰ
-ËܿǶÏ·Æ÷,DZ15,ֻ,1,0,1,1,¹æÔò,0,ǰ
-ËܿǶÏ·Æ÷,DZ20,ֻ,1,0,1,1,¹æÔò,0,ǰ
-СÐͶÏ·Æ÷,DZ47,ֻ,1,0,1,1,¹æÔò,0,ǰ
-©µç¶Ï·Æ÷,DZ47L,ֻ,1,0,1,1,¹æÔò,0,ǰ
-©µç¶Ï·Æ÷,DZ15L,ֻ,1,0,1,1,¹æÔò,0,ǰ
-©µç¶Ï·Æ÷,DZL18,ֻ,1,0,1,1,¹æÔò,0,ǰ
-СÐͶÏ·Æ÷,NB1,ֻ,1,0,1,1,¹æÔò,0,ǰ
-СÐͶÏ·Æ÷,NB2,ֻ,1,0,1,1,¹æÔò,0,ǰ
-СÐͶÏ·Æ÷,DPN,ֻ,1,0,1,1,¹æÔò,0,ǰ
-СÐͶÏ·Æ÷,DPNa,ֻ,1,0,1,1,¹æÔò,0,ǰ
-СÐͶÏ·Æ÷,iC65,ֻ,1,0,1,1,¹æÔò,0,ǰ
-СÐͶÏ·Æ÷,C65,ֻ,1,0,1,1,¹æÔò,0,ǰ
-ËܿǶÏ·Æ÷,NSX,ֻ,1,0,1,1,¹æÔò,0,ǰ
-ËܿǶÏ·Æ÷,NS,ֻ,1,0,1,1,¹æÔò,0,ǰ
-ËܿǶÏ·Æ÷,CVS,ֻ,1,0,1,1,¹æÔò,0,ǰ
-ËܿǶÏ·Æ÷,KDM,ֻ,1,0,1,1,¹æÔò,0,ǰ
-СÐͶÏ·Æ÷,NSE,ֻ,1,0,1,1,¹æÔò,0,ǰ
-©µ籣»¤¸½¼þ,Vigi,ֻ,1,0,1,1,¹æÔò,0,ǰ
-©µç¶Ï·Æ÷,VigiC,ֻ,1,0,1,1,¹æÔò,0,ǰ
-СÐͶÏ·Æ÷,EZD,ֻ,1,0,1,1,¹æÔò,0,ǰ
-СÐͶÏ·Æ÷,DZ158,ֻ,1,0,1,1,¹æÔò,0,ǰ
-СÐͶÏ·Æ÷,SH,ֻ,1,0,1,1,¹æÔò,0,ǰ
-СÐͶÏ·Æ÷,5SJ,ֻ,1,0,1,1,¹æÔò,0,ǰ
-СÐͶÏ·Æ÷,5SL,ֻ,1,0,1,1,¹æÔò,0,ǰ
-СÐͶÏ·Æ÷,XCM,ֻ,1,0,1,1,¹æÔò,0,ǰ
-СÐͶÏ·Æ÷,ACT,ֻ,1,0,1,1,¹æÔò,0,ǰ
-СÐͶÏ·Æ÷,iDPN,ֻ,1,0,1,1,¹æÔò,0,ǰ
-ËܿǶÏ·Æ÷,HYM1,ֻ,1,0,1,1,¹æÔò,0,ǰ
-ÖÇÄܶÏ·Æ÷,HYW1,ֻ,1,0,1,1,¹æÔò,0,ǰ
-ÖÇÄܶÏ·Æ÷,HYW2,ֻ,1,0,1,1,¹æÔò,0,ǰ
-ÍòÄÜʽ¶Ï·Æ÷,DW15,ֻ,1,0,1,1,¹æÔò,0,ǰ
-ÍòÄÜʽ¶Ï·Æ÷,DW16,ֻ,1,0,1,1,¹æÔò,0,ǰ
-ÍòÄÜʽ¶Ï·Æ÷,DW17,ֻ,1,0,1,1,¹æÔò,0,ǰ
-ÍòÄÜʽ¶Ï·Æ÷,DW45,ֻ,1,0,1,1,¹æÔò,0,ǰ
-ÍòÄÜʽ¶Ï·Æ÷,CW1,ֻ,1,0,1,1,¹æÔò,0,ǰ
-ÍòÄÜʽ¶Ï·Æ÷,CW2,ֻ,1,0,1,1,¹æÔò,0,ǰ
-ÍòÄÜʽ¶Ï·Æ÷,CW3,ֻ,1,0,1,1,¹æÔò,0,ǰ
-ÍòÄÜʽ¶Ï·Æ÷,NA1,ֻ,1,0,1,1,¹æÔò,0,ǰ
-ÍòÄÜʽ¶Ï·Æ÷,HA1,ֻ,1,0,1,1,¹æÔò,0,ǰ
-½»Á÷½Ӵ¥Æ÷,CJX,ֻ,1,0,1,1,¹æÔò,0,ǰ
-½»Á÷½Ӵ¥Æ÷,CJ20,ֻ,1,0,1,1,¹æÔò,0,ǰ
-½»Á÷½Ӵ¥Æ÷,CJ40,ֻ,1,0,1,1,¹æÔò,0,ǰ
-Çл»µçÈݽӴ¥Æ÷,CJ19,ֻ,1,0,1,1,¹æÔò,0,ǰ
-½»Á÷½Ӵ¥Æ÷,CJX2,ֻ,1,0,1,1,¹æÔò,0,ǰ
-½»Á÷½Ӵ¥Æ÷,LC1,ֻ,1,0,1,1,¹æÔò,0,ǰ
-¿ÉÄæ½Ӵ¥Æ÷,LC2,ֻ,1,0,1,1,¹æÔò,0,ǰ
-ֱÁ÷½Ӵ¥Æ÷,LP1,ֻ,1,0,1,1,¹æÔò,0,ǰ
-½»Á÷½Ӵ¥Æ÷,NXC,ֻ,1,0,1,1,¹æÔò,0,ǰ
-½»Á÷½Ӵ¥Æ÷,NC1,ֻ,1,0,1,1,¹æÔò,0,ǰ
-½»Á÷½Ӵ¥Æ÷,NC2,ֻ,1,0,1,1,¹æÔò,0,ǰ
-½»Á÷½Ӵ¥Æ÷,SC,ֻ,1,0,1,1,¹æÔò,0,ǰ
-½»Á÷½Ӵ¥Æ÷,GMC,ֻ,1,0,1,1,¹æÔò,0,ǰ
-ÈȹýÔؼ̵çÆ÷,NXR,ֻ,1,0,1,1,¹æÔò,0,ǰ
-ÈȹýÔؼ̵çÆ÷,NR2,ֻ,1,0,1,1,¹æÔò,0,ǰ
-ÈȹýÔؼ̵çÆ÷,NR3,ֻ,1,0,1,1,¹æÔò,0,ǰ
-ÈȹýÔؼ̵çÆ÷,JRS,ֻ,1,0,1,1,¹æÔò,0,ǰ
-ÈȹýÔؼ̵çÆ÷,LRI,ֻ,1,0,1,1,¹æÔò,0,ǰ
-ÈȹýÔؼ̵çÆ÷,LR2,ֻ,1,0,1,1,¹æÔò,0,ǰ
-ÈȹýÔؼ̵çÆ÷,LR9,ֻ,1,0,1,1,¹æÔò,0,ǰ
-È۶ÏÆ÷,RT0,ֻ,1,0,1,1,¹æÔò,0,ǰ
-È۶ÏÆ÷,RT9,ֻ,1,0,1,1,¹æÔò,0,ǰ
-È۶ÏÆ÷,RT12,ֻ,1,0,1,1,¹æÔò,0,ǰ
-È۶ÏÆ÷,RT14,ֻ,1,0,1,1,¹æÔò,0,ǰ
-È۶ÏÆ÷,RT16,ֻ,1,0,1,1,¹æÔò,0,ǰ
-È۶ÏÆ÷,RT18,ֻ,1,0,1,1,¹æÔò,0,ǰ
-È۶ÏÆ÷,RT19,ֻ,1,0,1,1,¹æÔò,0,ǰ
-È۶ÏÆ÷,RT36,ֻ,1,0,1,1,¹æÔò,0,ǰ
-È۶ÏÆ÷,NT0,ֻ,1,0,1,1,¹æÔò,0,ǰ
-È۶ÏÆ÷,NT1,ֻ,1,0,1,1,¹æÔò,0,ǰ
-È۶ÏÆ÷,NT2,ֻ,1,0,1,1,¹æÔò,0,ǰ
-È۶ÏÆ÷,NT3,ֻ,1,0,1,1,¹æÔò,0,ǰ
-È۶ÏÆ÷,NT4,ֻ,1,0,1,1,¹æÔò,0,ǰ
-È۶ÏÆ÷,RTO,ֻ,1,0,1,1,¹æÔò,0,ǰ
-¿ìËÙÈ۶ÏÆ÷,RS0,ֻ,1,0,1,1,¹æÔò,0,ǰ
-¿ìËÙÈ۶ÏÆ÷,RS3,ֻ,1,0,1,1,¹æÔò,0,ǰ
-µçÁ÷»¥¸ÐÆ÷,LMZ,ֻ,1,0,1,1,¹æÔò,0,ǰ
-µçÁ÷»¥¸ÐÆ÷,LMZJ,ֻ,1,0,1,1,¹æÔò,0,ǰ
-µçÁ÷»¥¸ÐÆ÷,LMK,ֻ,1,0,1,1,¹æÔò,0,ǰ
-µçÁ÷»¥¸ÐÆ÷,BH,ֻ,1,0,1,1,¹æÔò,0,ǰ
-µçÁ÷»¥¸ÐÆ÷,LZZB,ֻ,1,0,1,1,¹æÔò,0,ǰ
-µçÁ÷»¥¸ÐÆ÷,LQG,ֻ,1,0,1,1,¹æÔò,0,ǰ
-µçѹ»¥¸ÐÆ÷,JDZ,ֻ,1,0,1,1,¹æÔò,0,ǰ
-µçѹ»¥¸ÐÆ÷,JDG,ֻ,1,0,1,1,¹æÔò,0,ǰ
-µçѹ»¥¸ÐÆ÷,JDJ,ֻ,1,0,1,1,¹æÔò,0,ǰ
-˫µçԴ,NM2S,ֻ,1,0,1,1,¹æÔò,0,ǰ
-˫µçԴ,TBBQ,ֻ,1,0,1,1,¹æÔò,0,ǰ
-˫µçԴ,WATS,ֻ,1,0,1,1,¹æÔò,0,ǰ
-˫µçԴ,CDQ,ֻ,1,0,1,1,¹æÔò,0,ǰ
-˫µçԴ,SQ1,ֻ,1,0,1,1,¹æÔò,0,ǰ
-˫µçԴ,SRQ,ֻ,1,0,1,1,¹æÔò,0,ǰ
-˫µçԴ,HSQ,ֻ,1,0,1,1,¹æÔò,0,ǰ
-¿ØÖƱäѹÆ÷,BK,ֻ,1,0,1,1,¹æÔò,0,ǰ
-¿ØÖƱäѹÆ÷,JBK,ֻ,1,0,1,1,¹æÔò,0,ǰ
-¿ØÖƱäѹÆ÷,BKD,ֻ,1,0,1,1,¹æÔò,0,ǰ
-ÈýÏà¸Éʽ±äѹÆ÷,SG,ֻ,1,0,1,1,¹æÔò,0,ǰ
-Óͽþʽ±äѹÆ÷,S11,ֻ,1,0,1,1,¹æÔò,0,ǰ
-Óͽþʽ±äѹÆ÷,S13,ֻ,1,0,1,1,¹æÔò,0,ǰ
-µçӿ±£»¤Æ÷,NUP,ֻ,1,0,1,1,¹æÔò,0,ǰ
-µçӿ±£»¤Æ÷,NTP,ֻ,1,0,1,1,¹æÔò,0,ǰ
-µçӿ±£»¤Æ÷,SPD,ֻ,1,0,1,1,¹æÔò,0,ǰ
-µçӿ±£»¤Æ÷,PRD,ֻ,1,0,1,1,¹æÔò,0,ǰ
-µçÁ÷±í,6L2,ֻ,1,0,1,1,¹æÔò,0,ǰ
-µçÁ÷±í,42L6,ֻ,1,0,1,1,¹æÔò,0,ǰ
-µçÁ÷±í,99T1,ֻ,1,0,1,1,¹æÔò,0,ǰ
-µçÁ÷±í,PA194,ֻ,1,0,1,1,¹æÔò,0,ǰ
-µçѹ±í,PZ194,ֻ,1,0,1,1,¹æÔò,0,ǰ
-ƵÂʱí,PD194,ֻ,1,0,1,1,¹æÔò,0,ǰ
-ָʾµÆ,AD16,ֻ,1,0,1,1,¹æÔò,0,ǰ
-ָʾµÆ,AD11,ֻ,1,0,1,1,¹æÔò,0,ǰ
-ָʾµÆ,ND16,ֻ,1,0,1,1,¹æÔò,0,ǰ
-°´ť,LA38,ֻ,1,0,1,1,¹æÔò,0,ǰ
-°´ť,LA39,ֻ,1,0,1,1,¹æÔò,0,ǰ
-°´ť,XB2,ֻ,1,0,1,1,¹æÔò,0,ǰ
-°´ť,XB5,ֻ,1,0,1,1,¹æÔò,0,ǰ
-°´ť,K22,ֻ,1,0,1,1,¹æÔò,0,ǰ
-µçÈÝÆ÷,BSMJ,ֻ,1,0,1,1,¹æÔò,0,ǰ
-µçÈÝÆ÷,BCMJ,ֻ,1,0,1,1,¹æÔò,0,ǰ
-µçÈÝÆ÷,BSM,ֻ,1,0,1,1,¹æÔò,0,ǰ
-µçÁ¦µ翹Æ÷,CKSG,ֻ,1,0,1,1,¹æÔò,0,ǰ
-µçÁ¦µ翹Æ÷,CKS,ֻ,1,0,1,1,¹æÔò,0,ǰ
-οØÒÇ,WDB,ֻ,1,0,1,1,¹æÔò,0,ǰ
-οØÒÇ,XMT,ֻ,1,0,1,1,¹æÔò,0,ǰ
-¸ôÀ뿪¹Ø,IS,ֻ,1,0,1,1,¹æÔò,0,ǰ
-ËܿǶÏ·Æ÷,QAM,ֻ,1,0,1,1,¹æÔò,0,ǰ
-ËܿǶÏ·Æ÷,QYM1,ֻ,1,0,1,1,¹æÔò,0,ǰ
-ËܿǶÏ·Æ÷,NXM,ֻ,1,0,1,1,¹æÔò,0,ǰ
-ËܿǶÏ·Æ÷,CDM3S,ֻ,1,0,1,1,¹æÔò,0,ǰ
-µçÁ÷»¥¸ÐÆ÷,LMZ1,ֻ,1,0,1,1,¹æÔò,0,ǰ
-¸ôÀ뿪¹Ø,QB,ֻ,1,0,1,1,¹æÔò,0,ǰ
-˫µçԴ,Q1,ֻ,1,0,1,1,¹æÔò,0,ǰ
-˫µçԴ,DQ,ֻ,1,0,1,1,¹æÔò,0,ǰ
-˫µçԴ,NXZB,ֻ,1,0,1,1,¹æÔò,0,ǰ
-¸ôÀ뿪¹Ø,QA,ֻ,1,0,1,1,¹æÔò,0,ǰ
-¸ôÀ뿪¹Ø,QP,ֻ,1,0,1,1,¹æÔò,0,ǰ
-¸ôÀ뿪¹Ø,QSA,ֻ,1,0,1,1,¹æÔò,0,ǰ
-¸ôÀ뿪¹Ø,QPS,ֻ,1,0,1,1,¹æÔò,0,ǰ
-¸ôÀ뿪¹Ø,QAS,ֻ,1,0,1,1,¹æÔò,0,ǰ
-¸ôÀ뿪¹Ø,QSS,ֻ,1,0,1,1,¹æÔò,0,ǰ
-¸ôÀ뿪¹Ø,HH15,ֻ,1,0,1,1,¹æÔò,0,ǰ
-¸ôÀ뿪¹Ø,HA,ֻ,1,0,1,1,¹æÔò,0,ǰ
-SPDº£»¤Æ÷,SCB-T,ֻ,1,0,1,1,¹æÔò,0,ǰ
-SPDº£»¤Æ÷,SCB T,ֻ,1,0,1,1,¹æÔò,0,ǰ
-¸Éʽ±äѹÆ÷,SCB1,ֻ,1,0,1,1,¹æÔò,0,ǰ
-¸Éʽ±äѹÆ÷,SCB2,ֻ,1,0,1,1,¹æÔò,0,ǰ
-¸Éʽ±äѹÆ÷,SCB3,ֻ,1,0,1,1,¹æÔò,0,ǰ
-¸Éʽ±äѹÆ÷,SG10,ֻ,1,0,1,1,¹æÔò,0,ǰ
-¸Éʽ±äѹÆ÷,SC9,ֻ,1,0,1,1,¹æÔò,0,ǰ
-¸Éʽ±äѹÆ÷,SC10,ֻ,1,0,1,1,¹æÔò,0,ǰ
-µçӿ±£»¤Æ÷,T08,ֻ,1,0,1,1,¹æÔò,0,ǰ
-ËܿǶÏ·Æ÷,Izd1/Izd333003300SZRM1M1SZRNM1, CM1, CDM1, DZM1Izd1Izd3SZRM1-100M/3300Izd1/Izd3=50A/10Izd1M1Izd1/Izd3SZRRM1RM1TCL/ÂñÀÊ RM1MRM1SZRM1SZRM1-100M/3300Izd1/Izd3=50A/10Izd1,ֻ,1,0,1,1,AIʶ±ð,0,Ԫ¼þ
-©µç¶Ï·Æ÷,XBK45L,ֻ,1,0,1,1,¹æÔò,0,ǰ
-©µç¶Ï·Æ÷,XBK45LE,ֻ,1,0,1,1,¹æÔò,0,ǰ
-СÐͶÏ·Æ÷,XBK45,ֻ,1,0,1,1,¹æÔò,0,ǰ
-СÐͶÏ·Æ÷,XBK,ֻ,1,0,1,1,¹æÔò,0,ǰ
-©µç¶Ï·Æ÷,XBKLL,ֻ,1,0,1,1,¹æÔò,0,ǰ
-ËܿǶÏ·Æ÷,XBKM,ֻ,1,0,1,1,¹æÔò,0,ǰ
-½»Á÷½Ӵ¥Æ÷,XBKC,ֻ,1,0,1,1,¹æÔò,0,ǰ
-˫µçԴ,XBKQ,ֻ,1,0,1,1,¹æÔò,0,ǰ
-ËܿǶÏ·Æ÷,SZRM1,ֻ,1,0,1,1,¹æÔò,0,ǰ
-ËܿǶÏ·Æ÷,RM1,ֻ,1,0,1,1,¹æÔò,0,ǰ
-ËܿǶÏ·Æ÷,SRM1,ֻ,1,0,1,1,¹æÔò,0,ǰ
-ËܿǶÏ·Æ÷,YLEM1-2000A/4P/1600A,ֻ,1,0,1,1,AIʶ±ð,0,Ԫ¼þ
-µçÁ÷»¥¸ÐÆ÷,2000/5,ֻ,1,0,1,1,AIʶ±ð,0,Ԫ¼þ
-ËܿǶÏ·Æ÷,YLEM1-400A/3340Izd=350A,ֻ,1,0,1,1,AIʶ±ð,0,Ԫ¼þ
-µçÁ÷»¥¸ÐÆ÷,600/5,ֻ,1,0,1,1,AIʶ±ð,0,Ԫ¼þ
-µçÁ÷»¥¸ÐÆ÷,SDH,ֻ,1,0,1,1,¹æÔò,0,ǰ
-ÍòÄÜʽ¶Ï·Æ÷,YLEM,ֻ,1,0,1,1,¹æÔò,0,ǰ
-ÍòÄÜʽ¶Ï·Æ÷,YLEF,ֻ,1,0,1,1,¹æÔò,0,ǰ
-ÍòÄÜʽ¶Ï·Æ÷,YLE,ֻ,1,0,1,1,¹æÔò,0,ǰ
-ËܿǶÏ·Æ÷,BM3,ֻ,1,0,1,1,¹æÔò,0,ǰ
-µçÁ÷»¥¸ÐÆ÷,DH,ֻ,1,0,1,1,¹æÔò,0,ǰ
-¸ôÀ뿪¹Ø,BG1,ֻ,1,0,1,1,¹æÔò,0,ǰ
-ËܿǶÏ·Æ÷,HUM8-400/3300350A,ֻ,1,0,1,1,AIʶ±ð,0,Ԫ¼þ
-¸ôÀ뿪¹Ø,HUH1-400 400A/3 JB,ֻ,1,0,1,1,AIʶ±ð,0,Ԫ¼þ
-ÖÇÄܶÏ·Æ÷,HUWI,ֻ,1,0,1,1,¹æÔò,0,ǰ
-ÍòÄÜʽ¶Ï·Æ÷,HUW,ֻ,1,0,1,1,¹æÔò,0,ǰ
-ÍòÄÜʽ¶Ï·Æ÷,HA,ֻ,1,0,1,1,¹æÔò,0,ǰ
-ËܿǶÏ·Æ÷,NDM3-250H/3P125,ֻ,1,0,1,1,AIʶ±ð,0,Ԫ¼þ
-ÍòÄÜʽ¶Ï·Æ÷,4P/2500A/³éÌëʽ,ֻ,1,0,1,1,AIʶ±ð,0,Ԫ¼þ
-ÓÐԴµçÁ¦Â˲¨Æ÷,AS-APF100A/0.4/M,ֻ,1,0,1,1,AIʶ±ð,0,Ԫ¼þ