SVN r731
SVN-Revision: r731
This commit is contained in:
@@ -0,0 +1,103 @@
|
|||||||
|
/******************************
|
||||||
|
* 说明:PubSpec 模块
|
||||||
|
* 创建人:龚宇超
|
||||||
|
* 创建日期:2018-01-02
|
||||||
|
* 修改人:
|
||||||
|
* 修改日期:
|
||||||
|
* 修改备注:
|
||||||
|
* 版本:1.0.0.0
|
||||||
|
******************************/
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
using Lskj.Util;
|
||||||
|
using Lskj.Business;
|
||||||
|
using System.Windows.Forms;
|
||||||
|
using Lskj.Model;
|
||||||
|
using DevExpress.XtraGrid.Views.Grid;
|
||||||
|
using Newtonsoft.Json.Linq;
|
||||||
|
using Newtonsoft.Json;
|
||||||
|
using System.Data;
|
||||||
|
using Lskj.Business.Impl;
|
||||||
|
|
||||||
|
namespace Lskj.PubBomImportNew
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// PubSpec 模块
|
||||||
|
/// </summary>
|
||||||
|
public class DllBaseClass : IForm
|
||||||
|
{
|
||||||
|
public DllBaseClass()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
public DllBaseClass(string[] obj)
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
FrmMain main = new FrmMain();
|
||||||
|
this.SubForm = main;
|
||||||
|
main.Model = new DynamicBomImportNew(obj);
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
LogUtil.WriteError("Lskj.PubSpecialImport.dll--参数错误-->" + obj.ToString(), ex);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
public Form SubForm { get; set; }
|
||||||
|
}
|
||||||
|
/// <summary>
|
||||||
|
/// PubSpecialImport入库参数
|
||||||
|
/// </summary>
|
||||||
|
public class DynamicBomImportNew : DynamicModel
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// 标题行
|
||||||
|
/// </summary>
|
||||||
|
public string FirstRowIndex = "";
|
||||||
|
/// <summary>
|
||||||
|
/// 结束标识
|
||||||
|
/// </summary>
|
||||||
|
public string EndTableCond = "";
|
||||||
|
/// <summary>
|
||||||
|
/// sheet名称
|
||||||
|
/// </summary>
|
||||||
|
public string SheetName = "";
|
||||||
|
/// <summary>
|
||||||
|
/// 字段对照
|
||||||
|
/// </summary>
|
||||||
|
public string MainFieldDic = "";
|
||||||
|
/// <summary>
|
||||||
|
/// 读取筛选条件
|
||||||
|
/// </summary>
|
||||||
|
public string ReadTableCond = "";
|
||||||
|
/// <summary>
|
||||||
|
/// 忽略合并明细列标题行
|
||||||
|
/// </summary>
|
||||||
|
public bool CustomerServiceApp = false;
|
||||||
|
/// <summary>
|
||||||
|
/// 模块编码
|
||||||
|
/// </summary>
|
||||||
|
public string SaveModuleCode = "";
|
||||||
|
public DynamicBomImportNew(string[] args)
|
||||||
|
: base(args)
|
||||||
|
{
|
||||||
|
if (args.Length > 5 && !string.IsNullOrWhiteSpace(args[5]))
|
||||||
|
{
|
||||||
|
FirstRowIndex = args[5] + "";
|
||||||
|
}
|
||||||
|
if (args.Length > 6 && !string.IsNullOrWhiteSpace(args[6]))
|
||||||
|
{
|
||||||
|
EndTableCond = args[6] + "";
|
||||||
|
}
|
||||||
|
if (args.Length > 7 && !string.IsNullOrWhiteSpace(args[7]))
|
||||||
|
{
|
||||||
|
SheetName = args[7] + "";
|
||||||
|
}
|
||||||
|
if (args.Length > 8 && !string.IsNullOrWhiteSpace(args[8]))
|
||||||
|
{
|
||||||
|
MainFieldDic = args[8] + "";
|
||||||
|
}
|
||||||
|
if (args.Length > 9 && !string.IsNullOrWhiteSpace(args[9]))
|
||||||
|
{
|
||||||
+721
@@ -0,0 +1,721 @@
|
|||||||
|
|
||||||
|
namespace Lskj.PubBomImport
|
||||||
|
{
|
||||||
|
partial class FrmBillInfo
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// Required designer variable.
|
||||||
|
/// </summary>
|
||||||
|
private System.ComponentModel.IContainer components = null;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Clean up any resources being used.
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
|
||||||
|
protected override void Dispose(bool disposing)
|
||||||
|
{
|
||||||
|
if (disposing && (components != null))
|
||||||
|
{
|
||||||
|
components.Dispose();
|
||||||
|
}
|
||||||
|
base.Dispose(disposing);
|
||||||
|
}
|
||||||
|
|
||||||
|
#region Windows Form Designer generated code
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Required method for Designer support - do not modify
|
||||||
|
/// the contents of this method with the code editor.
|
||||||
|
/// </summary>
|
||||||
|
private void InitializeComponent()
|
||||||
|
{
|
||||||
|
this.pl_main = new DevExpress.XtraEditors.PanelControl();
|
||||||
|
this.pl_main_center = new DevExpress.XtraEditors.PanelControl();
|
||||||
|
this.pl_main_center_detail = new DevExpress.XtraEditors.PanelControl();
|
||||||
|
this.gcMain = new Lskj.Control.GridControlEx();
|
||||||
|
this.pl_main_center_master = new DevExpress.XtraEditors.XtraScrollableControl();
|
||||||
|
this.pl_treeview_detault_search = new DevExpress.XtraEditors.PanelControl();
|
||||||
|
this.panelControl4 = new DevExpress.XtraEditors.PanelControl();
|
||||||
|
this.textEdit1 = new DevExpress.XtraEditors.TextEdit();
|
||||||
|
this.lceCombobox = new Lskj.Control.LabelComboxEdit();
|
||||||
|
this.panelControl3 = new DevExpress.XtraEditors.PanelControl();
|
||||||
|
this.btnTreeSearch = new DevExpress.XtraEditors.SimpleButton();
|
||||||
|
this.pl_main_bottom = new DevExpress.XtraEditors.PanelControl();
|
||||||
|
this.dbpFP = new DevExpress.XtraEditors.DropDownButton();
|
||||||
|
this.btnRefresh = new DevExpress.XtraEditors.SimpleButton();
|
||||||
|
this.btnHiding = new DevExpress.XtraEditors.SimpleButton();
|
||||||
|
this.btnHelp = new DevExpress.XtraEditors.SimpleButton();
|
||||||
|
this.pl_templete = new DevExpress.XtraEditors.PanelControl();
|
||||||
|
this.cb_templete = new DevExpress.XtraEditors.ComboBoxEdit();
|
||||||
|
this.lbl_templete = new DevExpress.XtraEditors.LabelControl();
|
||||||
|
this.pl_input = new DevExpress.XtraEditors.PanelControl();
|
||||||
|
this.cb_input = new DevExpress.XtraEditors.ComboBoxEdit();
|
||||||
|
this.txt_input = new DevExpress.XtraEditors.TextEdit();
|
||||||
|
this.labelControl2 = new DevExpress.XtraEditors.LabelControl();
|
||||||
|
this.btn_input = new DevExpress.XtraEditors.SimpleButton();
|
||||||
|
this.dpbImport = new DevExpress.XtraEditors.DropDownButton();
|
||||||
|
this.btnBillAdd = new DevExpress.XtraEditors.SimpleButton();
|
||||||
|
this.btnBillApply = new DevExpress.XtraEditors.SimpleButton();
|
||||||
|
this.dpCopyBill = new DevExpress.XtraEditors.DropDownButton();
|
||||||
|
this.btnPrint = new DevExpress.XtraEditors.DropDownButton();
|
||||||
|
this.dpbTools = new DevExpress.XtraEditors.DropDownButton();
|
||||||
|
this.btnDelete = new DevExpress.XtraEditors.SimpleButton();
|
||||||
|
this.btnBillSave = new DevExpress.XtraEditors.SimpleButton();
|
||||||
|
this.pl_main_top = new DevExpress.XtraEditors.PanelControl();
|
||||||
|
this.pl_main_top_center = new DevExpress.XtraEditors.PanelControl();
|
||||||
|
this.lbTitle = new System.Windows.Forms.Label();
|
||||||
|
this.pl_main_top_right = new DevExpress.XtraEditors.PanelControl();
|
||||||
|
this.lblOrderNo = new DevExpress.XtraEditors.LabelControl();
|
||||||
|
this.labelControl1 = new DevExpress.XtraEditors.LabelControl();
|
||||||
|
this.pl_main_top_left = new DevExpress.XtraEditors.PanelControl();
|
||||||
|
this.pl_red = new DevExpress.XtraEditors.PanelControl();
|
||||||
|
this.rdRed = new System.Windows.Forms.RadioButton();
|
||||||
|
this.pl_blue = new DevExpress.XtraEditors.PanelControl();
|
||||||
|
this.rdBlue = new System.Windows.Forms.RadioButton();
|
||||||
|
((System.ComponentModel.ISupportInitialize)(this.pl_main)).BeginInit();
|
||||||
|
this.pl_main.SuspendLayout();
|
||||||
|
((System.ComponentModel.ISupportInitialize)(this.pl_main_center)).BeginInit();
|
||||||
|
this.pl_main_center.SuspendLayout();
|
||||||
|
((System.ComponentModel.ISupportInitialize)(this.pl_main_center_detail)).BeginInit();
|
||||||
|
this.pl_main_center_detail.SuspendLayout();
|
||||||
|
this.pl_main_center_master.SuspendLayout();
|
||||||
|
((System.ComponentModel.ISupportInitialize)(this.pl_treeview_detault_search)).BeginInit();
|
||||||
|
this.pl_treeview_detault_search.SuspendLayout();
|
||||||
|
((System.ComponentModel.ISupportInitialize)(this.panelControl4)).BeginInit();
|
||||||
|
this.panelControl4.SuspendLayout();
|
||||||
|
((System.ComponentModel.ISupportInitialize)(this.textEdit1.Properties)).BeginInit();
|
||||||
|
((System.ComponentModel.ISupportInitialize)(this.panelControl3)).BeginInit();
|
||||||
|
this.panelControl3.SuspendLayout();
|
||||||
|
((System.ComponentModel.ISupportInitialize)(this.pl_main_bottom)).BeginInit();
|
||||||
|
this.pl_main_bottom.SuspendLayout();
|
||||||
|
((System.ComponentModel.ISupportInitialize)(this.pl_templete)).BeginInit();
|
||||||
|
this.pl_templete.SuspendLayout();
|
||||||
|
((System.ComponentModel.ISupportInitialize)(this.cb_templete.Properties)).BeginInit();
|
||||||
|
((System.ComponentModel.ISupportInitialize)(this.pl_input)).BeginInit();
|
||||||
|
this.pl_input.SuspendLayout();
|
||||||
|
((System.ComponentModel.ISupportInitialize)(this.cb_input.Properties)).BeginInit();
|
||||||
|
((System.ComponentModel.ISupportInitialize)(this.txt_input.Properties)).BeginInit();
|
||||||
|
((System.ComponentModel.ISupportInitialize)(this.pl_main_top)).BeginInit();
|
||||||
|
this.pl_main_top.SuspendLayout();
|
||||||
|
((System.ComponentModel.ISupportInitialize)(this.pl_main_top_center)).BeginInit();
|
||||||
|
this.pl_main_top_center.SuspendLayout();
|
||||||
|
((System.ComponentModel.ISupportInitialize)(this.pl_main_top_right)).BeginInit();
|
||||||
|
this.pl_main_top_right.SuspendLayout();
|
||||||
|
((System.ComponentModel.ISupportInitialize)(this.pl_main_top_left)).BeginInit();
|
||||||
|
this.pl_main_top_left.SuspendLayout();
|
||||||
|
((System.ComponentModel.ISupportInitialize)(this.pl_red)).BeginInit();
|
||||||
|
this.pl_red.SuspendLayout();
|
||||||
|
((System.ComponentModel.ISupportInitialize)(this.pl_blue)).BeginInit();
|
||||||
|
this.pl_blue.SuspendLayout();
|
||||||
|
this.SuspendLayout();
|
||||||
|
//
|
||||||
|
// pl_main
|
||||||
|
//
|
||||||
|
this.pl_main.Appearance.BackColor = System.Drawing.Color.Transparent;
|
||||||
|
this.pl_main.Appearance.Options.UseBackColor = true;
|
||||||
|
this.pl_main.Controls.Add(this.pl_main_center);
|
||||||
|
this.pl_main.Controls.Add(this.pl_main_bottom);
|
||||||
|
this.pl_main.Controls.Add(this.pl_main_top);
|
||||||
|
this.pl_main.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||||
|
this.pl_main.Location = new System.Drawing.Point(0, 0);
|
||||||
|
this.pl_main.Name = "pl_main";
|
||||||
|
this.pl_main.Size = new System.Drawing.Size(666, 518);
|
||||||
|
this.pl_main.TabIndex = 2;
|
||||||
|
//
|
||||||
|
// pl_main_center
|
||||||
|
//
|
||||||
|
this.pl_main_center.Appearance.BackColor = System.Drawing.Color.Transparent;
|
||||||
|
this.pl_main_center.Appearance.Options.UseBackColor = true;
|
||||||
|
this.pl_main_center.BorderStyle = DevExpress.XtraEditors.Controls.BorderStyles.NoBorder;
|
||||||
|
this.pl_main_center.Controls.Add(this.pl_main_center_detail);
|
||||||
|
this.pl_main_center.Controls.Add(this.pl_main_center_master);
|
||||||
|
this.pl_main_center.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||||
|
this.pl_main_center.Location = new System.Drawing.Point(2, 40);
|
||||||
|
this.pl_main_center.Name = "pl_main_center";
|
||||||
|
this.pl_main_center.Size = new System.Drawing.Size(662, 439);
|
||||||
|
this.pl_main_center.TabIndex = 2;
|
||||||
|
//
|
||||||
|
// pl_main_center_detail
|
||||||
|
//
|
||||||
|
this.pl_main_center_detail.Appearance.BackColor = System.Drawing.Color.Transparent;
|
||||||
|
this.pl_main_center_detail.Appearance.Options.UseBackColor = true;
|
||||||
|
this.pl_main_center_detail.BorderStyle = DevExpress.XtraEditors.Controls.BorderStyles.NoBorder;
|
||||||
|
this.pl_main_center_detail.Controls.Add(this.gcMain);
|
||||||
|
this.pl_main_center_detail.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||||
|
this.pl_main_center_detail.Location = new System.Drawing.Point(0, 164);
|
||||||
|
this.pl_main_center_detail.Name = "pl_main_center_detail";
|
||||||
|
this.pl_main_center_detail.Size = new System.Drawing.Size(662, 275);
|
||||||
|
this.pl_main_center_detail.TabIndex = 5;
|
||||||
|
//
|
||||||
|
// gcMain
|
||||||
|
//
|
||||||
|
this.gcMain.AdapterObj = null;
|
||||||
|
this.gcMain.BackColor = System.Drawing.Color.Transparent;
|
||||||
|
this.gcMain.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||||
|
this.gcMain.Location = new System.Drawing.Point(0, 0);
|
||||||
|
this.gcMain.Margin = new System.Windows.Forms.Padding(5);
|
||||||
|
this.gcMain.Name = "gcMain";
|
||||||
|
this.gcMain.SiftEnumObj = Lskj.Control.GridControlEx.HeaderSiftEnum.Sum;
|
||||||
|
this.gcMain.Size = new System.Drawing.Size(662, 275);
|
||||||
|
this.gcMain.TabIndex = 0;
|
||||||
|
//
|
||||||
|
// pl_main_center_master
|
||||||
|
//
|
||||||
|
this.pl_main_center_master.AutoScroll = false;
|
||||||
|
this.pl_main_center_master.Controls.Add(this.pl_treeview_detault_search);
|
||||||
|
this.pl_main_center_master.Dock = System.Windows.Forms.DockStyle.Top;
|
||||||
|
this.pl_main_center_master.Location = new System.Drawing.Point(0, 0);
|
||||||
|
this.pl_main_center_master.Name = "pl_main_center_master";
|
||||||
|
this.pl_main_center_master.Size = new System.Drawing.Size(662, 164);
|
||||||
|
this.pl_main_center_master.TabIndex = 6;
|
||||||
|
//
|
||||||
|
// pl_treeview_detault_search
|
||||||
|
//
|
||||||
|
this.pl_treeview_detault_search.Appearance.BackColor = System.Drawing.Color.Transparent;
|
||||||
|
this.pl_treeview_detault_search.Appearance.Options.UseBackColor = true;
|
||||||
|
this.pl_treeview_detault_search.BorderStyle = DevExpress.XtraEditors.Controls.BorderStyles.NoBorder;
|
||||||
|
this.pl_treeview_detault_search.Controls.Add(this.panelControl4);
|
||||||
|
this.pl_treeview_detault_search.Controls.Add(this.panelControl3);
|
||||||
|
this.pl_treeview_detault_search.Location = new System.Drawing.Point(39, 104);
|
||||||
|
this.pl_treeview_detault_search.Margin = new System.Windows.Forms.Padding(5, 3, 5, 3);
|
||||||
|
this.pl_treeview_detault_search.Name = "pl_treeview_detault_search";
|
||||||
|
this.pl_treeview_detault_search.Size = new System.Drawing.Size(270, 28);
|
||||||
|
this.pl_treeview_detault_search.TabIndex = 24;
|
||||||
|
this.pl_treeview_detault_search.Visible = false;
|
||||||
|
//
|
||||||
|
// panelControl4
|
||||||
|
//
|
||||||
|
this.panelControl4.BorderStyle = DevExpress.XtraEditors.Controls.BorderStyles.NoBorder;
|
||||||
|
this.panelControl4.Controls.Add(this.textEdit1);
|
||||||
|
this.panelControl4.Controls.Add(this.lceCombobox);
|
||||||
|
this.panelControl4.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||||
|
this.panelControl4.Location = new System.Drawing.Point(0, 0);
|
||||||
|
this.panelControl4.Name = "panelControl4";
|
||||||
|
this.panelControl4.Padding = new System.Windows.Forms.Padding(2, 4, 2, 0);
|
||||||
|
this.panelControl4.Size = new System.Drawing.Size(206, 28);
|
||||||
|
this.panelControl4.TabIndex = 25;
|
||||||
|
//
|
||||||
|
// textEdit1
|
||||||
|
//
|
||||||
|
this.textEdit1.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||||
|
this.textEdit1.Location = new System.Drawing.Point(113, 4);
|
||||||
|
this.textEdit1.Name = "textEdit1";
|
||||||
|
this.textEdit1.Properties.Appearance.Font = new System.Drawing.Font("宋体", 10F);
|
||||||
|
this.textEdit1.Properties.Appearance.Options.UseFont = true;
|
||||||
|
this.textEdit1.Size = new System.Drawing.Size(91, 20);
|
||||||
|
this.textEdit1.TabIndex = 5;
|
||||||
|
//
|
||||||
|
// lceCombobox
|
||||||
|
//
|
||||||
|
this.lceCombobox.BackColor = System.Drawing.SystemColors.Control;
|
||||||
|
this.lceCombobox.Dock = System.Windows.Forms.DockStyle.Left;
|
||||||
|
this.lceCombobox.EditText = "";
|
||||||
|
this.lceCombobox.Font = new System.Drawing.Font("宋体", 9F);
|
||||||
|
this.lceCombobox.FontSize = 0F;
|
||||||
|
this.lceCombobox.LabelText = "查询";
|
||||||
|
this.lceCombobox.Location = new System.Drawing.Point(2, 4);
|
||||||
|
this.lceCombobox.Margin = new System.Windows.Forms.Padding(4);
|
||||||
|
this.lceCombobox.Model = null;
|
||||||
|
this.lceCombobox.Name = "lceCombobox";
|
||||||
|
this.lceCombobox.NullText = "";
|
||||||
|
this.lceCombobox.ReadOnly = false;
|
||||||
|
this.lceCombobox.Required = false;
|
||||||
|
this.lceCombobox.Size = new System.Drawing.Size(111, 24);
|
||||||
|
this.lceCombobox.TabIndex = 4;
|
||||||
|
//
|
||||||
|
// panelControl3
|
||||||
|
//
|
||||||
|
this.panelControl3.BorderStyle = DevExpress.XtraEditors.Controls.BorderStyles.NoBorder;
|
||||||
|
this.panelControl3.Controls.Add(this.btnTreeSearch);
|
||||||
|
this.panelControl3.Dock = System.Windows.Forms.DockStyle.Right;
|
||||||
|
this.panelControl3.Location = new System.Drawing.Point(206, 0);
|
||||||
|
this.panelControl3.Name = "panelControl3";
|
||||||
|
this.panelControl3.Padding = new System.Windows.Forms.Padding(3);
|
||||||
|
this.panelControl3.Size = new System.Drawing.Size(64, 28);
|
||||||
|
this.panelControl3.TabIndex = 25;
|
||||||
|
//
|
||||||
|
// btnTreeSearch
|
||||||
|
//
|
||||||
|
this.btnTreeSearch.AllowFocus = false;
|
||||||
|
this.btnTreeSearch.Appearance.Font = new System.Drawing.Font("宋体", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||||
|
this.btnTreeSearch.Appearance.Options.UseFont = true;
|
||||||
|
this.btnTreeSearch.Dock = System.Windows.Forms.DockStyle.Right;
|
||||||
|
this.btnTreeSearch.Location = new System.Drawing.Point(1, 3);
|
||||||
|
this.btnTreeSearch.Name = "btnTreeSearch";
|
||||||
|
this.btnTreeSearch.Size = new System.Drawing.Size(60, 22);
|
||||||
|
this.btnTreeSearch.TabIndex = 21;
|
||||||
|
this.btnTreeSearch.Text = "查询";
|
||||||
|
//
|
||||||
|
// pl_main_bottom
|
||||||
|
//
|
||||||
|
this.pl_main_bottom.Appearance.BackColor = System.Drawing.Color.Transparent;
|
||||||
|
this.pl_main_bottom.Appearance.Options.UseBackColor = true;
|
||||||
|
this.pl_main_bottom.BorderStyle = DevExpress.XtraEditors.Controls.BorderStyles.NoBorder;
|
||||||
|
this.pl_main_bottom.Controls.Add(this.dbpFP);
|
||||||
|
this.pl_main_bottom.Controls.Add(this.btnRefresh);
|
||||||
|
this.pl_main_bottom.Controls.Add(this.btnHiding);
|
||||||
|
this.pl_main_bottom.Controls.Add(this.btnHelp);
|
||||||
|
this.pl_main_bottom.Controls.Add(this.pl_templete);
|
||||||
|
this.pl_main_bottom.Controls.Add(this.pl_input);
|
||||||
|
this.pl_main_bottom.Controls.Add(this.dpbImport);
|
||||||
|
this.pl_main_bottom.Controls.Add(this.btnBillAdd);
|
||||||
|
this.pl_main_bottom.Controls.Add(this.btnBillApply);
|
||||||
|
this.pl_main_bottom.Controls.Add(this.dpCopyBill);
|
||||||
|
this.pl_main_bottom.Controls.Add(this.btnPrint);
|
||||||
|
this.pl_main_bottom.Controls.Add(this.dpbTools);
|
||||||
|
this.pl_main_bottom.Controls.Add(this.btnDelete);
|
||||||
|
this.pl_main_bottom.Controls.Add(this.btnBillSave);
|
||||||
|
this.pl_main_bottom.Dock = System.Windows.Forms.DockStyle.Bottom;
|
||||||
|
this.pl_main_bottom.Location = new System.Drawing.Point(2, 479);
|
||||||
|
this.pl_main_bottom.Name = "pl_main_bottom";
|
||||||
|
this.pl_main_bottom.Size = new System.Drawing.Size(662, 37);
|
||||||
|
this.pl_main_bottom.TabIndex = 1;
|
||||||
|
//
|
||||||
|
// dbpFP
|
||||||
|
//
|
||||||
|
this.dbpFP.AllowFocus = false;
|
||||||
|
this.dbpFP.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
|
||||||
|
this.dbpFP.Appearance.Font = new System.Drawing.Font("宋体", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||||
|
this.dbpFP.Appearance.Options.UseFont = true;
|
||||||
|
this.dbpFP.Location = new System.Drawing.Point(-199, 7);
|
||||||
|
this.dbpFP.Name = "dbpFP";
|
||||||
|
this.dbpFP.Size = new System.Drawing.Size(58, 26);
|
||||||
|
this.dbpFP.TabIndex = 34;
|
||||||
|
this.dbpFP.Text = "分配";
|
||||||
|
//
|
||||||
|
// btnRefresh
|
||||||
|
//
|
||||||
|
this.btnRefresh.AllowFocus = false;
|
||||||
|
this.btnRefresh.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
|
||||||
|
this.btnRefresh.Appearance.Font = new System.Drawing.Font("宋体", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||||
|
this.btnRefresh.Appearance.Options.UseFont = true;
|
||||||
|
this.btnRefresh.Location = new System.Drawing.Point(-135, 7);
|
||||||
|
this.btnRefresh.Name = "btnRefresh";
|
||||||
|
this.btnRefresh.Size = new System.Drawing.Size(74, 26);
|
||||||
|
this.btnRefresh.TabIndex = 33;
|
||||||
|
this.btnRefresh.Text = "刷新列数据";
|
||||||
|
//
|
||||||
|
// btnHiding
|
||||||
|
//
|
||||||
|
this.btnHiding.AllowFocus = false;
|
||||||
|
this.btnHiding.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
|
||||||
|
this.btnHiding.Appearance.Font = new System.Drawing.Font("宋体", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||||
|
this.btnHiding.Appearance.Options.UseFont = true;
|
||||||
|
this.btnHiding.Location = new System.Drawing.Point(-59, 7);
|
||||||
|
this.btnHiding.Name = "btnHiding";
|
||||||
|
this.btnHiding.Size = new System.Drawing.Size(67, 26);
|
||||||
|
this.btnHiding.TabIndex = 32;
|
||||||
|
this.btnHiding.Text = "隐藏主表";
|
||||||
|
this.btnHiding.Visible = false;
|
||||||
|
//
|
||||||
|
// btnHelp
|
||||||
|
//
|
||||||
|
this.btnHelp.AllowFocus = false;
|
||||||
|
this.btnHelp.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
|
||||||
|
this.btnHelp.Appearance.Font = new System.Drawing.Font("宋体", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||||
|
this.btnHelp.Appearance.Options.UseFont = true;
|
||||||
|
this.btnHelp.Location = new System.Drawing.Point(10, 7);
|
||||||
|
this.btnHelp.Name = "btnHelp";
|
||||||
|
this.btnHelp.Size = new System.Drawing.Size(67, 26);
|
||||||
|
this.btnHelp.TabIndex = 30;
|
||||||
|
this.btnHelp.Text = "帮助文档";
|
||||||
|
//
|
||||||
|
// pl_templete
|
||||||
|
//
|
||||||
|
this.pl_templete.Controls.Add(this.cb_templete);
|
||||||
|
this.pl_templete.Controls.Add(this.lbl_templete);
|
||||||
|
this.pl_templete.Location = new System.Drawing.Point(3, 3);
|
||||||
|
this.pl_templete.LookAndFeel.SkinName = "VS2010";
|
||||||
|
this.pl_templete.LookAndFeel.Style = DevExpress.LookAndFeel.LookAndFeelStyle.Style3D;
|
||||||
|
this.pl_templete.Name = "pl_templete";
|
||||||
|
this.pl_templete.Size = new System.Drawing.Size(195, 29);
|
||||||
|
this.pl_templete.TabIndex = 29;
|
||||||
|
this.pl_templete.Visible = false;
|
||||||
|
//
|
||||||
|
// cb_templete
|
||||||
|
//
|
||||||
|
this.cb_templete.Location = new System.Drawing.Point(58, 4);
|
||||||
|
this.cb_templete.Name = "cb_templete";
|
||||||
|
this.cb_templete.Properties.Buttons.AddRange(new DevExpress.XtraEditors.Controls.EditorButton[] {
|
||||||
|
new DevExpress.XtraEditors.Controls.EditorButton(DevExpress.XtraEditors.Controls.ButtonPredefines.Combo)});
|
||||||
|
this.cb_templete.Properties.DropDownRows = 8;
|
||||||
|
this.cb_templete.Properties.TextEditStyle = DevExpress.XtraEditors.Controls.TextEditStyles.DisableTextEditor;
|
||||||
|
this.cb_templete.Size = new System.Drawing.Size(133, 20);
|
||||||
|
this.cb_templete.TabIndex = 19;
|
||||||
|
//
|
||||||
|
// lbl_templete
|
||||||
|
//
|
||||||
|
this.lbl_templete.Appearance.Font = new System.Drawing.Font("宋体", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||||
|
this.lbl_templete.Location = new System.Drawing.Point(5, 8);
|
||||||
|
this.lbl_templete.Name = "lbl_templete";
|
||||||
|
this.lbl_templete.Size = new System.Drawing.Size(48, 12);
|
||||||
|
this.lbl_templete.TabIndex = 16;
|
||||||
|
this.lbl_templete.Text = "选择模版";
|
||||||
|
//
|
||||||
|
// pl_input
|
||||||
|
//
|
||||||
|
this.pl_input.Controls.Add(this.cb_input);
|
||||||
|
this.pl_input.Controls.Add(this.txt_input);
|
||||||
|
this.pl_input.Controls.Add(this.labelControl2);
|
||||||
|
this.pl_input.Controls.Add(this.btn_input);
|
||||||
|
this.pl_input.Location = new System.Drawing.Point(3, 3);
|
||||||
|
this.pl_input.LookAndFeel.SkinName = "VS2010";
|
||||||
|
this.pl_input.LookAndFeel.Style = DevExpress.LookAndFeel.LookAndFeelStyle.Style3D;
|
||||||
|
this.pl_input.Name = "pl_input";
|
||||||
|
this.pl_input.Size = new System.Drawing.Size(280, 29);
|
||||||
|
this.pl_input.TabIndex = 27;
|
||||||
|
this.pl_input.Visible = false;
|
||||||
|
//
|
||||||
|
// cb_input
|
||||||
|
//
|
||||||
|
this.cb_input.Location = new System.Drawing.Point(58, 4);
|
||||||
|
this.cb_input.Name = "cb_input";
|
||||||
|
this.cb_input.Properties.Buttons.AddRange(new DevExpress.XtraEditors.Controls.EditorButton[] {
|
||||||
|
new DevExpress.XtraEditors.Controls.EditorButton(DevExpress.XtraEditors.Controls.ButtonPredefines.Combo)});
|
||||||
|
this.cb_input.Properties.DropDownRows = 8;
|
||||||
|
this.cb_input.Properties.TextEditStyle = DevExpress.XtraEditors.Controls.TextEditStyles.DisableTextEditor;
|
||||||
|
this.cb_input.Size = new System.Drawing.Size(79, 20);
|
||||||
|
this.cb_input.TabIndex = 19;
|
||||||
|
//
|
||||||
|
// txt_input
|
||||||
|
//
|
||||||
|
this.txt_input.Location = new System.Drawing.Point(149, 4);
|
||||||
|
this.txt_input.Name = "txt_input";
|
||||||
|
this.txt_input.Properties.Appearance.Font = new System.Drawing.Font("宋体", 10.5F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
|
||||||
|
this.txt_input.Properties.Appearance.Options.UseFont = true;
|
||||||
|
this.txt_input.Size = new System.Drawing.Size(98, 20);
|
||||||
|
this.txt_input.TabIndex = 18;
|
||||||
|
//
|
||||||
|
// labelControl2
|
||||||
|
//
|
||||||
|
this.labelControl2.Appearance.Font = new System.Drawing.Font("宋体", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||||
|
this.labelControl2.Location = new System.Drawing.Point(5, 8);
|
||||||
|
this.labelControl2.Name = "labelControl2";
|
||||||
|
this.labelControl2.Size = new System.Drawing.Size(48, 12);
|
||||||
|
this.labelControl2.TabIndex = 16;
|
||||||
|
this.labelControl2.Text = "快速录入";
|
||||||
|
//
|
||||||
|
// btn_input
|
||||||
|
//
|
||||||
|
this.btn_input.Appearance.Font = new System.Drawing.Font("宋体", 9F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||||
|
this.btn_input.Appearance.Options.UseFont = true;
|
||||||
|
this.btn_input.Location = new System.Drawing.Point(249, 4);
|
||||||
|
this.btn_input.Name = "btn_input";
|
||||||
|
this.btn_input.Size = new System.Drawing.Size(27, 21);
|
||||||
|
this.btn_input.TabIndex = 13;
|
||||||
|
this.btn_input.Text = ">>";
|
||||||
|
//
|
||||||
|
// dpbImport
|
||||||
|
//
|
||||||
|
this.dpbImport.AllowFocus = false;
|
||||||
|
this.dpbImport.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
|
||||||
|
this.dpbImport.Appearance.Font = new System.Drawing.Font("宋体", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||||
|
this.dpbImport.Appearance.Options.UseFont = true;
|
||||||
|
this.dpbImport.DropDownArrowStyle = DevExpress.XtraEditors.DropDownArrowStyle.Show;
|
||||||
|
this.dpbImport.Location = new System.Drawing.Point(155, 7);
|
||||||
|
this.dpbImport.Name = "dpbImport";
|
||||||
|
this.dpbImport.Size = new System.Drawing.Size(74, 26);
|
||||||
|
this.dpbImport.TabIndex = 26;
|
||||||
|
this.dpbImport.Text = "导入导出";
|
||||||
|
//
|
||||||
|
// btnBillAdd
|
||||||
|
//
|
||||||
|
this.btnBillAdd.AllowFocus = false;
|
||||||
|
this.btnBillAdd.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
|
||||||
|
this.btnBillAdd.Appearance.Font = new System.Drawing.Font("宋体", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||||
|
this.btnBillAdd.Appearance.Options.UseFont = true;
|
||||||
|
this.btnBillAdd.Location = new System.Drawing.Point(307, 7);
|
||||||
|
this.btnBillAdd.Name = "btnBillAdd";
|
||||||
|
this.btnBillAdd.Size = new System.Drawing.Size(67, 26);
|
||||||
|
this.btnBillAdd.TabIndex = 19;
|
||||||
|
this.btnBillAdd.Text = "新建单据";
|
||||||
|
//
|
||||||
|
// btnBillApply
|
||||||
|
//
|
||||||
|
this.btnBillApply.AllowFocus = false;
|
||||||
|
this.btnBillApply.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
|
||||||
|
this.btnBillApply.Appearance.Font = new System.Drawing.Font("宋体", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||||
|
this.btnBillApply.Appearance.Options.UseFont = true;
|
||||||
|
this.btnBillApply.Location = new System.Drawing.Point(514, 7);
|
||||||
|
this.btnBillApply.Name = "btnBillApply";
|
||||||
|
this.btnBillApply.Size = new System.Drawing.Size(67, 26);
|
||||||
|
this.btnBillApply.TabIndex = 25;
|
||||||
|
this.btnBillApply.Text = "保存提交";
|
||||||
|
//
|
||||||
|
// dpCopyBill
|
||||||
|
//
|
||||||
|
this.dpCopyBill.AllowFocus = false;
|
||||||
|
this.dpCopyBill.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
|
||||||
|
this.dpCopyBill.Appearance.Font = new System.Drawing.Font("宋体", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||||
|
this.dpCopyBill.Appearance.Options.UseFont = true;
|
||||||
|
this.dpCopyBill.DropDownArrowStyle = DevExpress.XtraEditors.DropDownArrowStyle.Show;
|
||||||
|
this.dpCopyBill.Location = new System.Drawing.Point(231, 7);
|
||||||
|
this.dpCopyBill.Name = "dpCopyBill";
|
||||||
|
this.dpCopyBill.Size = new System.Drawing.Size(74, 26);
|
||||||
|
this.dpCopyBill.TabIndex = 24;
|
||||||
|
this.dpCopyBill.Text = "复制单据";
|
||||||
|
//
|
||||||
|
// btnPrint
|
||||||
|
//
|
||||||
|
this.btnPrint.AllowFocus = false;
|
||||||
|
this.btnPrint.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
|
||||||
|
this.btnPrint.Appearance.Font = new System.Drawing.Font("宋体", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||||
|
this.btnPrint.Appearance.Options.UseFont = true;
|
||||||
|
this.btnPrint.DropDownArrowStyle = DevExpress.XtraEditors.DropDownArrowStyle.Show;
|
||||||
|
this.btnPrint.Location = new System.Drawing.Point(583, 7);
|
||||||
|
this.btnPrint.Name = "btnPrint";
|
||||||
|
this.btnPrint.Size = new System.Drawing.Size(74, 26);
|
||||||
|
this.btnPrint.TabIndex = 23;
|
||||||
|
this.btnPrint.Text = "打印单据";
|
||||||
|
//
|
||||||
|
// dpbTools
|
||||||
|
//
|
||||||
|
this.dpbTools.AllowFocus = false;
|
||||||
|
this.dpbTools.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
|
||||||
|
this.dpbTools.Appearance.Font = new System.Drawing.Font("宋体", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||||
|
this.dpbTools.Appearance.Options.UseFont = true;
|
||||||
|
this.dpbTools.DropDownArrowStyle = DevExpress.XtraEditors.DropDownArrowStyle.Show;
|
||||||
|
this.dpbTools.Location = new System.Drawing.Point(79, 7);
|
||||||
|
this.dpbTools.Name = "dpbTools";
|
||||||
|
this.dpbTools.Size = new System.Drawing.Size(74, 26);
|
||||||
|
this.dpbTools.TabIndex = 22;
|
||||||
|
this.dpbTools.Text = "常用工具";
|
||||||
|
//
|
||||||
|
// btnDelete
|
||||||
|
//
|
||||||
|
this.btnDelete.AllowFocus = false;
|
||||||
|
this.btnDelete.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
|
||||||
|
this.btnDelete.Appearance.Font = new System.Drawing.Font("宋体", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||||
|
this.btnDelete.Appearance.Options.UseFont = true;
|
||||||
|
this.btnDelete.Location = new System.Drawing.Point(376, 7);
|
||||||
|
this.btnDelete.Name = "btnDelete";
|
||||||
|
this.btnDelete.Size = new System.Drawing.Size(67, 26);
|
||||||
|
this.btnDelete.TabIndex = 20;
|
||||||
|
this.btnDelete.Text = "删除记录";
|
||||||
|
//
|
||||||
|
// btnBillSave
|
||||||
|
//
|
||||||
|
this.btnBillSave.AllowFocus = false;
|
||||||
|
this.btnBillSave.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
|
||||||
|
this.btnBillSave.Appearance.Font = new System.Drawing.Font("宋体", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||||
|
this.btnBillSave.Appearance.Options.UseFont = true;
|
||||||
|
this.btnBillSave.Location = new System.Drawing.Point(445, 7);
|
||||||
|
this.btnBillSave.Name = "btnBillSave";
|
||||||
|
this.btnBillSave.Size = new System.Drawing.Size(67, 26);
|
||||||
|
this.btnBillSave.TabIndex = 21;
|
||||||
|
this.btnBillSave.Text = "保存单据";
|
||||||
|
//
|
||||||
|
// pl_main_top
|
||||||
|
//
|
||||||
|
this.pl_main_top.Appearance.BackColor = System.Drawing.SystemColors.Control;
|
||||||
|
this.pl_main_top.Appearance.Options.UseBackColor = true;
|
||||||
|
this.pl_main_top.Controls.Add(this.pl_main_top_center);
|
||||||
|
this.pl_main_top.Controls.Add(this.pl_main_top_right);
|
||||||
|
this.pl_main_top.Controls.Add(this.pl_main_top_left);
|
||||||
|
this.pl_main_top.Dock = System.Windows.Forms.DockStyle.Top;
|
||||||
|
this.pl_main_top.Location = new System.Drawing.Point(2, 2);
|
||||||
|
this.pl_main_top.Name = "pl_main_top";
|
||||||
|
this.pl_main_top.Size = new System.Drawing.Size(662, 38);
|
||||||
|
this.pl_main_top.TabIndex = 0;
|
||||||
|
//
|
||||||
|
// pl_main_top_center
|
||||||
|
//
|
||||||
|
this.pl_main_top_center.Appearance.BackColor = System.Drawing.Color.Transparent;
|
||||||
|
this.pl_main_top_center.Appearance.Options.UseBackColor = true;
|
||||||
|
this.pl_main_top_center.BorderStyle = DevExpress.XtraEditors.Controls.BorderStyles.NoBorder;
|
||||||
|
this.pl_main_top_center.Controls.Add(this.lbTitle);
|
||||||
|
this.pl_main_top_center.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||||
|
this.pl_main_top_center.Location = new System.Drawing.Point(162, 2);
|
||||||
|
this.pl_main_top_center.Name = "pl_main_top_center";
|
||||||
|
this.pl_main_top_center.Size = new System.Drawing.Size(315, 34);
|
||||||
|
this.pl_main_top_center.TabIndex = 3;
|
||||||
|
//
|
||||||
|
// lbTitle
|
||||||
|
//
|
||||||
|
this.lbTitle.BackColor = System.Drawing.Color.Transparent;
|
||||||
|
this.lbTitle.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||||
|
this.lbTitle.Font = new System.Drawing.Font("宋体", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
|
||||||
|
this.lbTitle.ForeColor = System.Drawing.Color.Blue;
|
||||||
|
this.lbTitle.Location = new System.Drawing.Point(0, 0);
|
||||||
|
this.lbTitle.Name = "lbTitle";
|
||||||
|
this.lbTitle.Size = new System.Drawing.Size(315, 34);
|
||||||
|
this.lbTitle.TabIndex = 1;
|
||||||
|
this.lbTitle.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
|
||||||
|
//
|
||||||
|
// pl_main_top_right
|
||||||
|
//
|
||||||
|
this.pl_main_top_right.Appearance.BackColor = System.Drawing.Color.Transparent;
|
||||||
|
this.pl_main_top_right.Appearance.Options.UseBackColor = true;
|
||||||
|
this.pl_main_top_right.BorderStyle = DevExpress.XtraEditors.Controls.BorderStyles.NoBorder;
|
||||||
|
this.pl_main_top_right.Controls.Add(this.lblOrderNo);
|
||||||
|
this.pl_main_top_right.Controls.Add(this.labelControl1);
|
||||||
|
this.pl_main_top_right.Dock = System.Windows.Forms.DockStyle.Right;
|
||||||
|
this.pl_main_top_right.Location = new System.Drawing.Point(477, 2);
|
||||||
|
this.pl_main_top_right.Name = "pl_main_top_right";
|
||||||
|
this.pl_main_top_right.Size = new System.Drawing.Size(183, 34);
|
||||||
|
this.pl_main_top_right.TabIndex = 2;
|
||||||
|
//
|
||||||
|
// lblOrderNo
|
||||||
|
//
|
||||||
|
this.lblOrderNo.Appearance.BackColor = System.Drawing.Color.Transparent;
|
||||||
|
this.lblOrderNo.Appearance.Font = new System.Drawing.Font("宋体", 9F, System.Drawing.FontStyle.Underline);
|
||||||
|
this.lblOrderNo.Appearance.ForeColor = System.Drawing.Color.Blue;
|
||||||
|
this.lblOrderNo.Location = new System.Drawing.Point(67, 19);
|
||||||
|
this.lblOrderNo.Name = "lblOrderNo";
|
||||||
|
this.lblOrderNo.Size = new System.Drawing.Size(90, 12);
|
||||||
|
this.lblOrderNo.TabIndex = 1;
|
||||||
|
this.lblOrderNo.Text = "XTC170112010001";
|
||||||
|
//
|
||||||
|
// labelControl1
|
||||||
|
//
|
||||||
|
this.labelControl1.Appearance.BackColor = System.Drawing.Color.Transparent;
|
||||||
|
this.labelControl1.Appearance.Font = new System.Drawing.Font("宋体", 9F);
|
||||||
|
this.labelControl1.Appearance.ForeColor = System.Drawing.Color.Blue;
|
||||||
|
this.labelControl1.Location = new System.Drawing.Point(7, 19);
|
||||||
|
this.labelControl1.Name = "labelControl1";
|
||||||
|
this.labelControl1.Size = new System.Drawing.Size(54, 12);
|
||||||
|
this.labelControl1.TabIndex = 0;
|
||||||
|
this.labelControl1.Text = "单据编号:";
|
||||||
|
//
|
||||||
|
// pl_main_top_left
|
||||||
|
//
|
||||||
|
this.pl_main_top_left.Appearance.BackColor = System.Drawing.Color.Transparent;
|
||||||
|
this.pl_main_top_left.Appearance.Options.UseBackColor = true;
|
||||||
|
this.pl_main_top_left.BorderStyle = DevExpress.XtraEditors.Controls.BorderStyles.NoBorder;
|
||||||
|
this.pl_main_top_left.Controls.Add(this.pl_red);
|
||||||
|
this.pl_main_top_left.Controls.Add(this.pl_blue);
|
||||||
|
this.pl_main_top_left.Dock = System.Windows.Forms.DockStyle.Left;
|
||||||
|
this.pl_main_top_left.Location = new System.Drawing.Point(2, 2);
|
||||||
|
this.pl_main_top_left.Name = "pl_main_top_left";
|
||||||
|
this.pl_main_top_left.Size = new System.Drawing.Size(160, 34);
|
||||||
|
this.pl_main_top_left.TabIndex = 1;
|
||||||
|
//
|
||||||
|
// pl_red
|
||||||
|
//
|
||||||
|
this.pl_red.Appearance.BackColor = System.Drawing.Color.Transparent;
|
||||||
|
this.pl_red.Appearance.Options.UseBackColor = true;
|
||||||
|
this.pl_red.BorderStyle = DevExpress.XtraEditors.Controls.BorderStyles.NoBorder;
|
||||||
|
this.pl_red.Controls.Add(this.rdRed);
|
||||||
|
this.pl_red.Dock = System.Windows.Forms.DockStyle.Left;
|
||||||
|
this.pl_red.Location = new System.Drawing.Point(80, 0);
|
||||||
|
this.pl_red.Name = "pl_red";
|
||||||
|
this.pl_red.Size = new System.Drawing.Size(80, 34);
|
||||||
|
this.pl_red.TabIndex = 3;
|
||||||
|
//
|
||||||
|
// rdRed
|
||||||
|
//
|
||||||
|
this.rdRed.AutoSize = true;
|
||||||
|
this.rdRed.Font = new System.Drawing.Font("宋体", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
|
||||||
|
this.rdRed.ForeColor = System.Drawing.Color.Red;
|
||||||
|
this.rdRed.Location = new System.Drawing.Point(6, 12);
|
||||||
|
this.rdRed.Name = "rdRed";
|
||||||
|
this.rdRed.Size = new System.Drawing.Size(71, 16);
|
||||||
|
this.rdRed.TabIndex = 3;
|
||||||
|
this.rdRed.Text = "红字单据";
|
||||||
|
this.rdRed.UseVisualStyleBackColor = true;
|
||||||
|
//
|
||||||
|
// pl_blue
|
||||||
|
//
|
||||||
|
this.pl_blue.Appearance.BackColor = System.Drawing.Color.Transparent;
|
||||||
|
this.pl_blue.Appearance.Options.UseBackColor = true;
|
||||||
|
this.pl_blue.BorderStyle = DevExpress.XtraEditors.Controls.BorderStyles.NoBorder;
|
||||||
|
this.pl_blue.Controls.Add(this.rdBlue);
|
||||||
|
this.pl_blue.Dock = System.Windows.Forms.DockStyle.Left;
|
||||||
|
this.pl_blue.Location = new System.Drawing.Point(0, 0);
|
||||||
|
this.pl_blue.Name = "pl_blue";
|
||||||
|
this.pl_blue.Size = new System.Drawing.Size(80, 34);
|
||||||
|
this.pl_blue.TabIndex = 2;
|
||||||
|
//
|
||||||
|
// rdBlue
|
||||||
|
//
|
||||||
|
this.rdBlue.AutoSize = true;
|
||||||
|
this.rdBlue.Checked = true;
|
||||||
|
this.rdBlue.Font = new System.Drawing.Font("宋体", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
|
||||||
|
this.rdBlue.ForeColor = System.Drawing.Color.Blue;
|
||||||
|
this.rdBlue.Location = new System.Drawing.Point(7, 12);
|
||||||
|
this.rdBlue.Name = "rdBlue";
|
||||||
|
this.rdBlue.Size = new System.Drawing.Size(71, 16);
|
||||||
|
this.rdBlue.TabIndex = 2;
|
||||||
|
this.rdBlue.TabStop = true;
|
||||||
|
this.rdBlue.Text = "蓝字单据";
|
||||||
|
this.rdBlue.UseVisualStyleBackColor = true;
|
||||||
|
//
|
||||||
|
// FrmBillInfo
|
||||||
|
//
|
||||||
|
this.Controls.Add(this.pl_main);
|
||||||
|
this.Name = "FrmBillInfo";
|
||||||
|
this.Size = new System.Drawing.Size(666, 518);
|
||||||
|
((System.ComponentModel.ISupportInitialize)(this.pl_main)).EndInit();
|
||||||
|
this.pl_main.ResumeLayout(false);
|
||||||
|
((System.ComponentModel.ISupportInitialize)(this.pl_main_center)).EndInit();
|
||||||
|
this.pl_main_center.ResumeLayout(false);
|
||||||
|
((System.ComponentModel.ISupportInitialize)(this.pl_main_center_detail)).EndInit();
|
||||||
|
this.pl_main_center_detail.ResumeLayout(false);
|
||||||
|
this.pl_main_center_master.ResumeLayout(false);
|
||||||
|
((System.ComponentModel.ISupportInitialize)(this.pl_treeview_detault_search)).EndInit();
|
||||||
|
this.pl_treeview_detault_search.ResumeLayout(false);
|
||||||
|
((System.ComponentModel.ISupportInitialize)(this.panelControl4)).EndInit();
|
||||||
|
this.panelControl4.ResumeLayout(false);
|
||||||
|
((System.ComponentModel.ISupportInitialize)(this.textEdit1.Properties)).EndInit();
|
||||||
|
((System.ComponentModel.ISupportInitialize)(this.panelControl3)).EndInit();
|
||||||
|
this.panelControl3.ResumeLayout(false);
|
||||||
|
((System.ComponentModel.ISupportInitialize)(this.pl_main_bottom)).EndInit();
|
||||||
|
this.pl_main_bottom.ResumeLayout(false);
|
||||||
|
((System.ComponentModel.ISupportInitialize)(this.pl_templete)).EndInit();
|
||||||
|
this.pl_templete.ResumeLayout(false);
|
||||||
|
this.pl_templete.PerformLayout();
|
||||||
|
((System.ComponentModel.ISupportInitialize)(this.cb_templete.Properties)).EndInit();
|
||||||
|
((System.ComponentModel.ISupportInitialize)(this.pl_input)).EndInit();
|
||||||
|
this.pl_input.ResumeLayout(false);
|
||||||
|
this.pl_input.PerformLayout();
|
||||||
|
((System.ComponentModel.ISupportInitialize)(this.cb_input.Properties)).EndInit();
|
||||||
|
((System.ComponentModel.ISupportInitialize)(this.txt_input.Properties)).EndInit();
|
||||||
|
((System.ComponentModel.ISupportInitialize)(this.pl_main_top)).EndInit();
|
||||||
|
this.pl_main_top.ResumeLayout(false);
|
||||||
|
((System.ComponentModel.ISupportInitialize)(this.pl_main_top_center)).EndInit();
|
||||||
|
this.pl_main_top_center.ResumeLayout(false);
|
||||||
|
((System.ComponentModel.ISupportInitialize)(this.pl_main_top_right)).EndInit();
|
||||||
|
this.pl_main_top_right.ResumeLayout(false);
|
||||||
|
this.pl_main_top_right.PerformLayout();
|
||||||
|
((System.ComponentModel.ISupportInitialize)(this.pl_main_top_left)).EndInit();
|
||||||
|
this.pl_main_top_left.ResumeLayout(false);
|
||||||
|
((System.ComponentModel.ISupportInitialize)(this.pl_red)).EndInit();
|
||||||
|
this.pl_red.ResumeLayout(false);
|
||||||
|
this.pl_red.PerformLayout();
|
||||||
|
((System.ComponentModel.ISupportInitialize)(this.pl_blue)).EndInit();
|
||||||
|
this.pl_blue.ResumeLayout(false);
|
||||||
|
this.pl_blue.PerformLayout();
|
||||||
|
this.ResumeLayout(false);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
private DevExpress.XtraEditors.PanelControl pl_main;
|
||||||
|
private DevExpress.XtraEditors.PanelControl pl_main_center;
|
||||||
|
private DevExpress.XtraEditors.PanelControl pl_main_center_detail;
|
||||||
|
private Control.GridControlEx gcMain;
|
||||||
|
private DevExpress.XtraEditors.XtraScrollableControl pl_main_center_master;
|
||||||
|
private DevExpress.XtraEditors.PanelControl pl_treeview_detault_search;
|
||||||
|
private DevExpress.XtraEditors.PanelControl panelControl4;
|
||||||
|
private DevExpress.XtraEditors.TextEdit textEdit1;
|
||||||
|
private Control.LabelComboxEdit lceCombobox;
|
||||||
|
private DevExpress.XtraEditors.PanelControl panelControl3;
|
||||||
|
private DevExpress.XtraEditors.SimpleButton btnTreeSearch;
|
||||||
|
public DevExpress.XtraEditors.PanelControl pl_main_bottom;
|
||||||
|
private DevExpress.XtraEditors.DropDownButton dbpFP;
|
||||||
|
private DevExpress.XtraEditors.SimpleButton btnRefresh;
|
||||||
|
private DevExpress.XtraEditors.SimpleButton btnHiding;
|
||||||
|
private DevExpress.XtraEditors.SimpleButton btnHelp;
|
||||||
|
private DevExpress.XtraEditors.PanelControl pl_templete;
|
||||||
|
private DevExpress.XtraEditors.ComboBoxEdit cb_templete;
|
||||||
|
private DevExpress.XtraEditors.LabelControl lbl_templete;
|
||||||
|
private DevExpress.XtraEditors.PanelControl pl_input;
|
||||||
|
private DevExpress.XtraEditors.ComboBoxEdit cb_input;
|
||||||
|
private DevExpress.XtraEditors.TextEdit txt_input;
|
||||||
|
private DevExpress.XtraEditors.LabelControl labelControl2;
|
||||||
|
private DevExpress.XtraEditors.SimpleButton btn_input;
|
||||||
|
private DevExpress.XtraEditors.DropDownButton dpbImport;
|
||||||
|
private DevExpress.XtraEditors.SimpleButton btnBillAdd;
|
||||||
|
private DevExpress.XtraEditors.SimpleButton btnBillApply;
|
||||||
|
private D
|
||||||
@@ -0,0 +1,609 @@
|
|||||||
|
using DevExpress.XtraGrid.Columns;
|
||||||
|
using DevExpress.XtraGrid.Views.Grid;
|
||||||
|
using DevExpress.XtraTreeList.Columns;
|
||||||
|
using Lskj.Business;
|
||||||
|
using Lskj.Business.Impl;
|
||||||
|
using Lskj.Control;
|
||||||
|
using Lskj.Control.Model;
|
||||||
|
using Lskj.Core;
|
||||||
|
using Lskj.Data;
|
||||||
|
using Lskj.Model;
|
||||||
|
using Lskj.Util;
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.ComponentModel;
|
||||||
|
using System.Data;
|
||||||
|
using System.Drawing;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
using System.Windows.Forms;
|
||||||
|
|
||||||
|
namespace Lskj.PubBomImport
|
||||||
|
{
|
||||||
|
public partial class FrmBillInfo : UserControl
|
||||||
|
{
|
||||||
|
public DynamicBomImport Model;
|
||||||
|
public DynamicBillModel SysModel;
|
||||||
|
public BillModel billModel;
|
||||||
|
public MyControl ControlObj;
|
||||||
|
public event EventHandler OnControlSourceBind;
|
||||||
|
/// <summary>
|
||||||
|
/// 单据明细列
|
||||||
|
/// </summary>
|
||||||
|
private DataTable _detailColumns;
|
||||||
|
private string guidField = "xxxxx_guid";
|
||||||
|
/// <summary>
|
||||||
|
/// 保存或修改时报错信息
|
||||||
|
/// </summary>
|
||||||
|
public string SaveErrorMessage = string.Empty;
|
||||||
|
public GridView GcMainView
|
||||||
|
{
|
||||||
|
get { return gcMain.GridView; }
|
||||||
|
}
|
||||||
|
public FrmBillInfo()
|
||||||
|
{
|
||||||
|
InitializeComponent();
|
||||||
|
}
|
||||||
|
public void OnLoad(DynamicBomImport mainModel)
|
||||||
|
{
|
||||||
|
Model = mainModel;
|
||||||
|
GetControlData(mainModel);
|
||||||
|
InitControlView();
|
||||||
|
SetControlData();
|
||||||
|
}
|
||||||
|
public void GetControlData(DynamicBomImport Model)
|
||||||
|
{
|
||||||
|
string[] args = new[] { Model.FormText, Model.UserId, Model.UserName, Model.Privilege, Model.ModuleCode, "", Model.ModuleCode };
|
||||||
|
SysModel = new DynamicBillModel(args);
|
||||||
|
SysModel.BillMasterSql = Model.BillMasterSql;
|
||||||
|
SysModel.BillDetailSql = "";
|
||||||
|
DataRow modelRow = BillImpl.GetBillInfo(SysModel.ModuleCode);//获取单个模块信息
|
||||||
|
billModel = new BillModel(modelRow);//初始化类的新实例。
|
||||||
|
if (billModel != null)
|
||||||
|
{
|
||||||
|
billModel.TypeName = string.IsNullOrEmpty(SysModel.BillMasterSql) ? SysModel.FormText : billModel.TypeName;// 模块名称
|
||||||
|
string masterPreFix = BaseImpl.GetColumnPrefix(billModel.MasterTable);// 主表列前缀
|
||||||
|
billModel.MasterPreFix = masterPreFix;
|
||||||
|
string detailPreFix = BaseImpl.GetColumnPrefix(billModel.DetailTable);// 明细表列前缀
|
||||||
|
billModel.DetailPreFix = detailPreFix;
|
||||||
|
billModel.DetailOrderField = billModel.DetailPreFix + "lsidx_id";// 单据来源id
|
||||||
|
if (SystemInfo.Instance.IsNotBillDetailOrder)//禁用排序
|
||||||
|
{
|
||||||
|
billModel.DetailOrderField = string.Empty;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
DataRow menuRow = BaseImpl.GetMenuConfigTab(SysModel.ModuleId);//获取菜单其他配置
|
||||||
|
if (menuRow != null)
|
||||||
|
{
|
||||||
|
billModel.BillSourceIds = menuRow.Table.Columns.Contains("BillSourceIds") ? (menuRow["BillSourceIds"] + "").Trim(',') : string.Empty;
|
||||||
|
billModel.BillFlag = menuRow.Table.Columns.Contains("BillFlag") && !string.IsNullOrEmpty(menuRow["BillFlag"] + "") ? Convert.ToInt32(menuRow["BillFlag"] + "") : -1;
|
||||||
|
}
|
||||||
|
DataTable controls = BaseModuleImpl.GetControlLocation(billModel.FormKey, SysModel.ModuleCode);
|
||||||
|
DataTable groups = BaseModuleImpl.GetAddGroupData(billModel.FormKey);//获取主信息分组数据
|
||||||
|
ControlObj = new MyControl() { Model = SysModel };//主表控件
|
||||||
|
ControlObj.OtherParams = SysModel.OtherParams();
|
||||||
|
ControlObj.OnDataSourceBindCallBack += (s, e) =>
|
||||||
|
{
|
||||||
|
if (OnControlSourceBind != null)
|
||||||
|
{
|
||||||
|
OnControlSourceBind(null, null);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
ControlObj.InitControl(controls, this.pl_main_center_master, groups);
|
||||||
|
if (SysModel.GridEnumObj == GridEnum.BandedGridView || billModel.AutoMultiHeader == 1)
|
||||||
|
{
|
||||||
|
this.pl_main_center_detail.Controls.Clear();
|
||||||
|
this.gcMain = new BandedGridControlEx();
|
||||||
|
this.gcMain.Model = SysModel;
|
||||||
|
this.gcMain.Dock = DockStyle.Fill;
|
||||||
|
this.pl_main_center_detail.Controls.Add(this.gcMain);
|
||||||
|
}
|
||||||
|
_detailColumns = BillImpl.GetDetailColumns(SysModel.ModuleCode);//初始化单据明细列
|
||||||
|
if (SysModel.GridEnumObj == GridEnum.BandedGridView || billModel.AutoMultiHeader == 1)
|
||||||
|
{
|
||||||
|
//多表头sql要增加一个判断,否则多表头会出错
|
||||||
|
_detailColumns = BillImpl.GetDetailColumns(SysModel.ModuleCode, true);//初始化单据明细列
|
||||||
|
}
|
||||||
|
this.gcMain.DisableFieldSources = billModel.DisableFieldSources;
|
||||||
|
this.gcMain.Model = SysModel;
|
||||||
|
this.gcMain.ParentControl = ControlObj;//把主表控件赋给 单据主表控件、基础档案查询条件控件等等
|
||||||
|
this.gcMain.SetEditColumns(_detailColumns, GridCustomColumnStruct.BillDetailGridView + billModel.FormKey);//设置可编辑列
|
||||||
|
}
|
||||||
|
public void InitControlView()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
public void SetControlData()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
public void InitializeHeader(DataRow parentRow, string controlSql)
|
||||||
|
{
|
||||||
|
// 新增
|
||||||
|
if (!string.IsNullOrEmpty(controlSql))
|
||||||
|
{
|
||||||
|
string billMasterSql = controlSql;
|
||||||
|
billMasterSql = ReplaceHelper.ReplaceRowParam(parentRow, billMasterSql);
|
||||||
|
// 处理单据表头数据
|
||||||
|
DataRow row = BillImpl.GetDataRowResult(billMasterSql);
|
||||||
|
if (row != null)
|
||||||
|
{
|
||||||
|
ControlObj.SetAllControlValue(row, true);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
public void InitializeHeader(DataRow rowItem)
|
||||||
|
{
|
||||||
|
// 新增
|
||||||
|
if (rowItem != null)
|
||||||
|
{
|
||||||
|
ControlObj.SetAllControlValue(rowItem, true);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
public bool BillSave(ref string billNo, int comfirm = 0, bool canTipMsg = true)
|
||||||
|
{
|
||||||
|
bool saveResult = false;
|
||||||
|
if (ControlObj.VerifyNull())
|
||||||
|
{
|
||||||
|
// 保存之前先进行表格更新
|
||||||
|
if (billModel.DetailTreeTable)
|
||||||
|
{
|
||||||
|
(this.gcMain as TreeGridControlEx).TreeListObj.PostEditor();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
this.gcMain.GridView.PostEditor();
|
||||||
|
this.gcMain.GridView.UpdateCurrentRow();
|
||||||
|
}
|
||||||
|
try
|
||||||
|
{
|
||||||
|
if (this.gcMain.VerifyNull())
|
||||||
|
{
|
||||||
|
if (this.gcMain.RepeatedVerificationNames.Count > 0 && this.gcMain.VerifyDuplicateColumns())
|
||||||
|
{
|
||||||
|
//MessageUtil.Show("表格中数据内容重复,保存失败!");
|
||||||
|
return saveResult;
|
||||||
|
}
|
||||||
|
billNo = this.lblOrderNo.Text.Trim();
|
||||||
|
string detailGuid = Guid.NewGuid().ToString();
|
||||||
|
string masterSql = billModel.SaveState ? GetUpdateRecord(billNo) : GetAddRecord(ref billNo);
|
||||||
|
string detailSql = GetDetailRecord(detailGuid, billNo).ToString();
|
||||||
|
// 检查单据头数据合法性
|
||||||
|
if (string.IsNullOrEmpty(masterSql)) return false;
|
||||||
|
// 验证明细合法性
|
||||||
|
if (string.IsNullOrEmpty(detailSql) && !billModel.SaveNullDetail)
|
||||||
|
{
|
||||||
|
MessageUtil.Show(ResourceKeys.BillDetailIsNotNull);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
string tipMsg = string.Empty;
|
||||||
|
int result = BillImpl.BillSave(masterSql, detailSql, billModel.DetailTable, ref billNo, detailGuid, billModel.BillSeq, billModel.SaveState ? 2 : 1, comfirm, out tipMsg, 0, billModel.NewVer);
|
||||||
|
if (result == 1)
|
||||||
|
{
|
||||||
|
saveResult = true;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
throw new Exception($"保存Bom失败\r\n{tipMsg}");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
throw new Exception($"保存Bom失败\r\n{ex.Message}");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return saveResult;
|
||||||
|
}
|
||||||
|
public bool BillSaveSql(string guid, int comfirm = 0, bool canTipMsg = true)
|
||||||
|
{
|
||||||
|
bool saveResult = false;
|
||||||
|
if (ControlObj.VerifyNull())
|
||||||
|
{
|
||||||
|
// 保存之前先进行表格更新
|
||||||
|
if (billModel.DetailTreeTable)
|
||||||
|
{
|
||||||
|
(this.gcMain as TreeGridControlEx).TreeListObj.PostEditor();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
this.gcMain.GridView.PostEditor();
|
||||||
|
this.gcMain.GridView.UpdateCurrentRow();
|
||||||
|
}
|
||||||
|
try
|
||||||
|
{
|
||||||
|
if (this.gcMain.VerifyNull())
|
||||||
|
{
|
||||||
|
if (this.gcMain.RepeatedVerificationNames.Count > 0 && this.gcMain.VerifyDuplicateColumns())
|
||||||
|
{
|
||||||
|
//MessageUtil.Show("表格中数据内容重复,保存失败!");
|
||||||
|
return saveResult;
|
||||||
|
}
|
||||||
|
string billNo = billModel.SaveState ? this.lblOrderNo.Text.Trim() : Guid.NewGuid() + "";
|
||||||
|
string detailGuid = Guid.NewGuid().ToString();
|
||||||
|
string masterSql = billModel.SaveState ? GetUpdateRecord(billNo) : GetAddRecord(ref billNo);
|
||||||
|
string detailSql = GetDetailRecord(detailGuid, billNo).ToString();
|
||||||
|
// 检查单据头数据合法性
|
||||||
|
if (string.IsNullOrEmpty(masterSql)) return false;
|
||||||
|
// 验证明细合法性
|
||||||
|
if (string.IsNullOrEmpty(detailSql) && !billModel.SaveNullDetail)
|
||||||
|
{
|
||||||
|
MessageUtil.Show(ResourceKeys.BillDetailIsNotNull);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
string tipMsg = string.Empty;
|
||||||
|
|
||||||
|
//param[0].Value = masterSql;
|
||||||
|
//param[1].Value = billNo;
|
||||||
|
//param[2].Value = detailGuid;
|
||||||
|
//param[3].Value = ERPInfo.Instance.UserId;
|
||||||
|
//param[4].Value = billWay;// --1新增,2为修改,3为删除
|
||||||
|
//param[5].Value = billSeq;
|
||||||
|
//param[6].Value = "";
|
||||||
|
//param[7].Value = auditFlag;
|
||||||
|
//param[8].Value = comfirm;
|
||||||
|
SqlHelper.ExecuteNonQuery($"delete p_bomImportExecTab where guid = '{guid}'");
|
||||||
|
SqlHelper.ExecuteNonQuery($"insert into p_bomImportExecTab (guid,detailTable,masterSql,detailSql,billNo,detailGuid,UserId,billWay,billSeq,auditFlag,comfirm,newVer) " +
|
||||||
|
$"values ('{guid}','{billModel.DetailTable}','{masterSql.Replace("'", "''")}','{detailSql.Replace("'", "''")}','{billNo}','{detailGuid.Replace("'", "''")}','{ERPInfo.Instance.UserId}','{(billModel.SaveState ? 2 : 1)}','{billModel.BillSeq}','0','{comfirm}','{billModel.NewVer}')");
|
||||||
|
//int result = BillImpl.BillSave(masterSql, detailSql, billModel.DetailTable, ref billNo, detailGuid, billModel.BillSeq, billModel.SaveState ? 2 : 1, comfirm, out tipMsg, 0, billModel.NewVer);
|
||||||
|
//if (result == 1)
|
||||||
|
//{
|
||||||
|
// saveResult = true;
|
||||||
|
//}
|
||||||
|
//else
|
||||||
|
//{
|
||||||
|
// throw new Exception($"保存Bom失败\r\n{tipMsg}");
|
||||||
|
//}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
throw new Exception($"保存Bom失败\r\n{ex.Message}");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return saveResult;
|
||||||
|
}
|
||||||
|
private string GetUpdateRecord(string parmaryValue)
|
||||||
|
{
|
||||||
|
StringBuilder updateBuilder = new StringBuilder();
|
||||||
|
DataTable DetailedProperties = BaseImpl.GetDataTableResult(string.Format("select COLUMN_NAME,DATA_TYPE,CHARACTER_MAXIMUM_LENGTH from information_schema.columns where table_name = '{0}'", billModel.MasterTable));
|
||||||
|
string errorMessage = string.Empty;//数据不符合数据库规范的信息
|
||||||
|
// 修改单据
|
||||||
|
foreach (ControlModel model in this.ControlObj.ControlModels)
|
||||||
|
{
|
||||||
|
if (!model.IsSave ||
|
||||||
|
model.FieldName.Equals(billModel.RtagidKey, StringComparison.OrdinalIgnoreCase) ||
|
||||||
|
model.FieldType == ControlType.LabPic ||
|
||||||
|
model.FieldType == ControlType.LabPicEx)
|
||||||
|
continue;
|
||||||
|
BaseUserControl userControl = this.ControlObj.FindControl(model);
|
||||||
|
if (userControl != null)
|
||||||
|
{
|
||||||
|
string fieldValue = this.ControlObj.GetControlValue(model);
|
||||||
|
if (SystemInfo.Instance.TrimWhiteSpace)
|
||||||
|
fieldValue = fieldValue.Trim();
|
||||||
|
if (fieldValue == "****") continue;
|
||||||
|
|
||||||
|
errorMessage = errorMessage + DatabaseFormatJudgment.SaveOrModifyBalidation(DetailedProperties, model, fieldValue);
|
||||||
|
if (string.IsNullOrEmpty(fieldValue) && model.Isintordecimal) fieldValue = "0";//数值保存时为空的话默认保存为0;
|
||||||
|
|
||||||
|
updateBuilder.Append(string.IsNullOrEmpty(fieldValue) ? string.Format("{0}={1}", model.FieldName, this.ControlObj.GetNullValue(model)) : string.Format("{0}=N'{1}',", model.FieldName, fieldValue.Contains("'") ? fieldValue.Replace("'", "''") : fieldValue));
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (!string.IsNullOrWhiteSpace(errorMessage)) SaveErrorMessage = "表头错误:" + errorMessage;
|
||||||
|
return string.Format("update {0} set {1} where {2}='{3}'", billModel.MasterTable, updateBuilder.ToString().TrimEnd(','), billModel.PrimaryKey, parmaryValue);
|
||||||
|
}
|
||||||
|
private string GetAddRecord(ref string parmaryValue)
|
||||||
|
{
|
||||||
|
if (billModel.NewVer == 0)
|
||||||
|
{
|
||||||
|
// 检查当前的单据号是否已被占用.
|
||||||
|
string newBillNo = BillImpl.GetBillNo(billModel.BillSeq);
|
||||||
|
if (!parmaryValue.Equals(newBillNo))
|
||||||
|
{
|
||||||
|
if (MessageUtil.Show(ResourceKeys.BillRecordRepeat, MessageBoxButtons.YesNo) == DialogResult.No)
|
||||||
|
{
|
||||||
|
return string.Empty;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
this.lblOrderNo.Text = newBillNo;
|
||||||
|
parmaryValue = newBillNo;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
StringBuilder fieldBuilder = new StringBuilder();
|
||||||
|
StringBuilder valueBuilder = new StringBuilder();
|
||||||
|
DataTable DetailedProperties = BaseImpl.GetDataTableResult(string.Format("select COLUMN_NAME,DATA_TYPE,CHARACTER_MAXIMUM_LENGTH from information_schema.columns where table_name = '{0}'", billModel.MasterTable));
|
||||||
|
string errorMessage = string.Empty;//数据不符合数据库规范的信息
|
||||||
|
foreach (ControlModel model in this.ControlObj.ControlModels)
|
||||||
|
{
|
||||||
|
if (!model.IsSave ||
|
||||||
|
model.FieldName.Equals(billModel.PrimaryKey, StringComparison.OrdinalIgnoreCase) ||
|
||||||
|
model.FieldName.Equals(billModel.RtagidKey, StringComparison.OrdinalIgnoreCase) ||
|
||||||
|
model.FieldType == ControlType.LabPic ||
|
||||||
|
model.FieldType == ControlType.LabPicEx)
|
||||||
|
continue;
|
||||||
|
|
||||||
|
string fieldValue = this.ControlObj.GetControlValue(model);
|
||||||
|
if (SystemInfo.Instance.TrimWhiteSpace)
|
||||||
|
fieldValue = fieldValue.Trim();
|
||||||
|
if (fieldValue == "****") continue;
|
||||||
|
|
||||||
|
errorMessage = errorMessage + DatabaseFormatJudgment.SaveOrModifyBalidation(DetailedProperties, model, fieldValue);
|
||||||
|
if (string.IsNullOrEmpty(fieldValue) && model.Isintordecimal) fieldValue = "0";//数值保存时为空的话默认保存为0;
|
||||||
|
|
||||||
|
fieldBuilder.Append(model.FieldName + ",");
|
||||||
|
valueBuilder.Append(string.IsNullOrEmpty(fieldValue) ? this.ControlObj.GetNullValue(model) : string.Format("N'{0}',", fieldValue));
|
||||||
|
|
||||||
|
}
|
||||||
|
if (!string.IsNullOrWhiteSpace(errorMessage)) SaveErrorMessage = "表头错误:" + errorMessage;
|
||||||
|
// 增加主键
|
||||||
|
fieldBuilder.Append(billModel.PrimaryKey);
|
||||||
|
//valueBuilder.Append("N'" + parmaryValue + "'");
|
||||||
|
valueBuilder.Append("N'" + parmaryValue + "'");
|
||||||
|
// 增加红蓝字单标记
|
||||||
|
fieldBuilder.Append("," + billModel.RtagidKey);
|
||||||
|
valueBuilder.Append(",N'" + (rdRed.Checked ? 1 : 0) + "'");
|
||||||
|
return string.Format("insert into {0}({1}) values ({2})", billModel.MasterTable, fieldBuilder.ToString().TrimEnd(','), valueBuilder.ToString().TrimEnd(','));
|
||||||
|
}
|
||||||
|
private StringBuilder GetDetailRecord(string guid, string billNo)
|
||||||
|
{
|
||||||
|
// 构造明细
|
||||||
|
StringBuilder detailBuilder = new StringBuilder();
|
||||||
|
DataTable detailTable = this.gcMain.GridControl.DataSourceTable().TrimDeleteRows();
|
||||||
|
if (billModel.DetailTreeTable)
|
||||||
|
{
|
||||||
|
detailTable = ((this.gcMain as TreeGridControlEx).TreeListObj.DataSource as DataTable).TrimDeleteRows();
|
||||||
|
}
|
||||||
|
DataTable DetailedProperties = BaseImpl.GetDataTableResult(string.Format("select COLUMN_NAME,DATA_TYPE,CHARACTER_MAXIMUM_LENGTH from information_schema.columns where table_name = '{0}'", billModel.DetailTable + "_temp"));//单据明细性表
|
||||||
|
if (detailTable.Rows.Count > 0)
|
||||||
|
{
|
||||||
|
int lineNumber = 1;
|
||||||
|
DataTable BillColumns = BaseImpl.GetDataTableResult(string.Format("select * from {0} where 1<>1", billModel.DetailTable));
|
||||||
|
DataTable BillTempColumns = BaseImpl.GetDataTableResult(string.Format("select * from {0} where 1<>1", billModel.DetailTable + "_temp"));
|
||||||
|
foreach (DataRow dataRow in detailTable.Rows)
|
||||||
|
{
|
||||||
|
string errorMessage = string.Empty;//数据不符合数据库规范的信息
|
||||||
|
StringBuilder fields = new StringBuilder();
|
||||||
|
StringBuilder values = new StringBuilder();
|
||||||
|
string detailSql = @"insert into " + billModel.DetailTable + "_temp" + "({0}) values({1})";
|
||||||
|
fields.Append("sysstr,");
|
||||||
|
values.Append("'" + guid + "',");
|
||||||
|
foreach (DataColumn item in BillColumns.Columns)
|
||||||
|
{
|
||||||
|
if (item.ColumnName.Equals(guidField) || item.ColumnName.Equals(ERPInfo.Instance.isAddRows)) continue;
|
||||||
|
if (!BillTempColumns.Columns.Contains(item.ColumnName))
|
||||||
|
{
|
||||||
|
string type = "varchar(100)";
|
||||||
|
if (item.DataType == typeof(DateTime))
|
||||||
|
{
|
||||||
|
type = "datetime";
|
||||||
|
}
|
||||||
|
BaseImpl.ExecSqlValue(string.Format("alter table {0} add {1} {2}", billModel.DetailTable + "_temp", item.ColumnName, type));
|
||||||
|
}
|
||||||
|
if (billModel.DetailTreeTable)
|
||||||
|
{
|
||||||
|
TreeListColumn[] TreeListColumns = (this.gcMain as TreeGridControlEx).TreeListObj.Columns.Cast<TreeListColumn>().Where(x => x.FieldName.Equals(item.Caption, StringComparison.OrdinalIgnoreCase)).ToArray();
|
||||||
|
if (TreeListColumns.Count() == 0 && item.Caption.Equals(billModel.PrimaryDetailKey))
|
||||||
|
{
|
||||||
|
string primaryValues = dataRow[billModel.PrimaryDetailKey] + "";
|
||||||
|
if (!string.IsNullOrWhiteSpace(primaryValues))
|
||||||
|
{
|
||||||
|
fields.Append(item.ColumnName + ",");
|
||||||
|
values.Append("N'" + primaryValues.Replace("'", "''") + "',");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (TreeListColumns.Count() == 0) continue;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
GridColumn[] gridColumns = gcMain.GridView.Columns.Cast<GridColumn>().Where(x => x.FieldName.Equals(item.Caption, StringComparison.OrdinalIgnoreCase)).ToArray();
|
||||||
|
if (gridColumns.Count() == 0 && item.Caption.Equals(billModel.PrimaryDetailKey))
|
||||||
|
{
|
||||||
|
string primaryValues = dataRow[billModel.PrimaryDetailKey] + "";
|
||||||
|
if (!string.IsNullOrWhiteSpace(primaryValues))
|
||||||
|
{
|
||||||
|
fields.Append(item.ColumnName + ",");
|
||||||
|
values.Append("N'" + primaryValues.Replace("'", "''") + "',");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (gridColumns.Count() == 0) continue;
|
||||||
|
}
|
||||||
|
fields.Append(item.ColumnName + ",");
|
||||||
|
string fieldValue = dataRow.Table.Columns.Contains(item.ColumnName) ? dataRow[item.ColumnName] + "" : string.Empty;
|
||||||
|
//if (SystemInfo.Instance.TrimWhiteSpace)
|
||||||
|
// fieldValue = fieldValue.Trim();
|
||||||
|
if (item.ColumnName.Equals(billModel.PrimaryDetailKey, StringComparison.OrdinalIgnoreCase))
|
||||||
|
fieldValue = billNo;
|
||||||
|
if (!string.IsNullOrWhiteSpace(fieldValue))
|
||||||
|
{
|
||||||
|
values.Append(item.DataType == typeof(DateTime) ? "'" + Convert.ToDateTime(fieldValue).ToString("yyyy-MM-dd HH:mm:ss") + "'," : fieldValue.Contains("'") ? "N'" + fieldValue.Replace("'", "''") + "'," : "N'" + fieldValue + "',");
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if (item.DataType == typeof(Decimal) ||
|
||||||
|
item.DataType == typeof(Double) ||
|
||||||
|
item.DataType == typeof(Int16) ||
|
||||||
|
item.DataType == typeof(Int32) ||
|
||||||
|
item.DataType == typeof(Int64))
|
||||||
|
values.Append("0,");
|
||||||
|
else if (item.DataType == typeof(DateTime))
|
||||||
|
{
|
||||||
|
values.Append("NULL,");
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
values.Append("'',");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
errorMessage = errorMessage + DatabaseFormatJudgment.SaveOrModifyBalidation(_detailColumns, DetailedProperties, dataRow, item, fieldValue);
|
||||||
|
}
|
||||||
|
detailBuilder.AppendFormat(detailSql, fields.ToString().Trim(','), values.ToString().Trim(','));
|
||||||
|
if (!string.IsNullOrWhiteSpace(errorMessage)) errorMessage = "第" + lineNumber + "行:" + errorMessage;
|
||||||
|
lineNumber++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return detailBuilder;
|
||||||
|
}
|
||||||
|
private void SetBillStatus(DataRow rowItem)
|
||||||
|
{
|
||||||
|
if (rowItem != null)
|
||||||
|
{
|
||||||
|
// 单据为修改状态,无需设置赋值时不需要计算面板属性
|
||||||
|
bool isReadOnly = !string.IsNullOrEmpty(billModel.ModifyCond) && !ReplaceHelper.ReplaceRowParamCond(rowItem, billModel.ModifyCond);
|
||||||
|
this.ControlObj.CanExecControl = false; // 单据为修改状态时,无需计算面板属性
|
||||||
|
this.lbTitle.Text = billModel.TypeName + "(修改)";
|
||||||
|
this.lblOrderNo.Text = rowItem[billModel.PrimaryKey] + "";
|
||||||
|
this.rdBlue.Checked = "0".Equals(rowItem[billModel.RtagidKey] + "");
|
||||||
|
this.rdRed.Checked = "1".Equals(rowItem[billModel.RtagidKey] + "");
|
||||||
|
billModel.SaveState = true;
|
||||||
|
this.rdBlue.Enabled = this.rdRed.Enabled = false;
|
||||||
|
this.ControlObj.SetReadOnlyAllControl(isReadOnly);
|
||||||
|
this.ControlObj.SetAllControlValue(rowItem);
|
||||||
|
this.dbpFP.Enabled = this.btnDelete.Enabled = this.btnBillSave.Enabled = this.btnBillApply.Enabled = !isReadOnly;
|
||||||
|
this.ControlObj.CanExecControl = true;
|
||||||
|
this.cb_input.Enabled = this.btn_input.Enabled = this.txt_input.Enabled = !isReadOnly;
|
||||||
|
this.labelControl1.ForeColor = this.lblOrderNo.ForeColor = this.lbTitle.ForeColor = rdBlue.Checked ? Color.Blue : Color.Red;
|
||||||
|
this.gcMain.GridView.OptionsBehavior.Editable = !isReadOnly;
|
||||||
|
// 上一次查询
|
||||||
|
int oldRowHandle = this.gcMain.GridView.FocusedRowHandle;
|
||||||
|
//获取数据源并排序
|
||||||
|
DataTable dt = BillImpl.GetDataTableResult(ReplaceHelper.ReplaceRowParam(rowItem, billModel.DetailSql));
|
||||||
|
if (dt.Columns.Contains(billModel.DetailOrderField))
|
||||||
|
{
|
||||||
|
DataView dataView = dt.AsDataView();
|
||||||
|
dataView.Sort = billModel.DetailOrderField;
|
||||||
|
dt = dataView.ToTable();
|
||||||
|
}
|
||||||
|
if (billModel.DetailTreeTable)
|
||||||
|
{
|
||||||
|
//判断是否有tap_id和tap_pid
|
||||||
|
(this.gcMain as TreeGridControlEx).SetGridViewDataSourceGenerateID(dt);
|
||||||
|
this.gcMain.GridView.SelectRowHandler(oldRowHandle);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
this.gcMain.GridControl.DataSource = dt;
|
||||||
|
this.gcMain.GridView.SelectRowHandler(oldRowHandle);
|
||||||
|
if (billModel.SelectLast && dt.Rows.Count > 0)
|
||||||
|
{
|
||||||
|
this.gcMain.GridView.SelectRowHandler(dt.Rows.Count - 1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
BaseUserControl userControl = this.ControlObj.FindControl(billModel.RtagidKey);
|
||||||
|
if (userControl != null)
|
||||||
|
{
|
||||||
|
userControl.EditText = this.rdRed.Checked ? "1" : "0";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
// 单据为新增状态
|
||||||
|
this.dbpFP.Enabled = this.btnDelete.Enabled = this.btnBillSave.Enabled = this.btnBillApply.Enabled = true;
|
||||||
|
this.lbTitle.Text = billModel.TypeName + "(新增)";
|
||||||
|
this.lblOrderNo.Text = BillImpl.GetBillNo(billModel.BillSeq);
|
||||||
|
this.cb_input.Enabled = this.btn_input.Enabled = this.txt_input.Enabled = true;
|
||||||
|
this.cb_templete.Enabled = true;
|
||||||
|
billModel.SaveState = false;
|
||||||
|
this.ControlObj.SetReadOnlyAllControl(false);
|
||||||
|
this.rdBlue.Enabled = this.rdRed.Enabled = true;
|
||||||
|
// 通过右键菜单打开单据,假如明细有数据则在初始化时使用传入数据.
|
||||||
|
if (billModel.DetailTreeTable)
|
||||||
|
{
|
||||||
|
(this.gcMain as TreeGridControlEx).TreeListObj.OptionsBehavior.Editable = true;
|
||||||
|
(this.gcMain as TreeGridControlEx).SetGridViewDataSourceGenerateID(BillImpl.GetDataTableResult(billModel.DetailSql));
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
this.gcMain.GridView.OptionsBehavior.Editable = true;
|
||||||
|
this.gcMain.GridControl.DataSource = BillImpl.GetDataTableResult(billModel.DetailSql);
|
||||||
|
}
|
||||||
|
BaseUserControl userControl = this.ControlObj.FindControl(billModel.RtagidKey);
|
||||||
|
if (userControl != null)
|
||||||
|
{
|
||||||
|
userControl.EditText = this.rdRed.Checked ? "1" : "0";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
this.lbTitle.Invalidate();
|
||||||
|
}
|
||||||
|
public void OnBillAdd()
|
||||||
|
{
|
||||||
|
this.SetBillStatus(null);
|
||||||
|
this.ControlObj.ResetControlValue(billModel.ManuallyTriggerCorrelation, true);
|
||||||
|
}
|
||||||
|
public void AddOrUpdateBill(DataRow rowItem, DataTable newSource)
|
||||||
|
{
|
||||||
|
string masterSql = rowItem == null ? billModel.MasterSql.Replace("{" + billModel.PrimaryKey + "}", this.lblOrderNo.Text) : ReplaceHelper.ReplaceRowParam(rowItem, billModel.MasterSql);
|
||||||
|
// 加载单据信息
|
||||||
|
DataRow mainRow = BillImpl.GetDataRowResult(masterSql);
|
||||||
|
this.SetBillStatus(mainRow);
|
||||||
|
if (!billModel.SaveState)
|
||||||
|
{
|
||||||
|
this.InitializeHeader(rowItem);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if (rowItem != null)
|
||||||
|
{
|
||||||
|
DataRow dataRow = BaseImpl.GetDataRowResult($"select '{rowItem["bak"] + ""}' as bak,'{rowItem["bombb"] + ""}' as bombb,'{rowItem["bombc"] + ""}' as bombc");
|
||||||
|
this.InitializeHeader(dataRow);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (mainRow != null)
|
||||||
|
{
|
||||||
|
//更新
|
||||||
|
DataTable source = this.gcMain.GridControl.DataSourceTable();
|
||||||
|
|
||||||
|
List<DataRow> deleteRows = new List<DataRow>();
|
||||||
|
foreach (DataRow sourceRow in source.Rows)
|
||||||
|
{
|
||||||
|
string productId = sourceRow["ProductId"] + "";
|
||||||
|
DataRow newSourceRow = newSource.Rows.Cast<DataRow>().Where(n => (n["ProductId"] + "").Equals(productId)).FirstOrDefault();
|
||||||
|
if (newSourceRow != null)
|
||||||
|
{
|
||||||
|
sourceRow["tamount"] = newSourceRow["tamount"];
|
||||||
|
sourceRow["amount"] = newSourceRow["amount"];
|
||||||
|
sourceRow["bak"] = newSourceRow["bak"];
|
||||||
|
sourceRow["bombb"] = newSourceRow["bombb"];
|
||||||
|
sourceRow["bombc"] = newSourceRow["bombc"];
|
||||||
|
newSource.Rows.Remove(newSourceRow);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
deleteRows.Add(sourceRow);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
foreach (DataRow deleteRow in deleteRows)
|
||||||
|
{
|
||||||
|
source.Rows.Remove(deleteRow);
|
||||||
|
}
|
||||||
|
foreach (DataRow newSourceRow in newSource.Rows)
|
||||||
|
{
|
||||||
|
DataRow newRow = source.NewRow();
|
||||||
|
newRow.ItemArray = newSourceRow.ItemArray;
|
||||||
|
source.Rows.Add(newRow);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
//新增
|
||||||
|
this.gcMain.GridControl.DataSource = newSource;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
public void AddOrUpdateBillByZZQD(DataRow rowItem, DataTable newSource)
|
||||||
|
{
|
||||||
|
string masterSql = rowItem == null ? billModel.MasterSql.Replace("{" + billModel.PrimaryKey + "}", this.lblOrderNo.Text) : ReplaceHelper.ReplaceRowParam(rowItem, billModel.MasterSql);
|
||||||
|
// 加载单据信息
|
||||||
|
DataRow mainRow = BillImpl.GetDataRowResult(masterSql);
|
||||||
|
this.SetBillStatus(mainRow);
|
||||||
|
if (!billModel.SaveState)
|
||||||
|
{
|
||||||
|
this.InitializeHeader(rowItem);
|
||||||
|
}
|
||||||
|
string controlSql = "select '' as billdocument_id,'0' affirmer,'0' rtagid,'{材料代码}' as productid";
|
||||||
|
if (mainRow != null)
|
||||||
|
{
|
||||||
|
//更新
|
||||||
|
DataTable source = this.gcMain.GridC
|
||||||
@@ -0,0 +1,120 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<root>
|
||||||
|
<!--
|
||||||
|
Microsoft ResX Schema
|
||||||
|
|
||||||
|
Version 2.0
|
||||||
|
|
||||||
|
The primary goals of this format is to allow a simple XML format
|
||||||
|
that is mostly human readable. The generation and parsing of the
|
||||||
|
various data types are done through the TypeConverter classes
|
||||||
|
associated with the data types.
|
||||||
|
|
||||||
|
Example:
|
||||||
|
|
||||||
|
... ado.net/XML headers & schema ...
|
||||||
|
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||||
|
<resheader name="version">2.0</resheader>
|
||||||
|
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||||
|
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||||
|
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||||
|
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||||
|
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||||
|
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||||
|
</data>
|
||||||
|
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||||
|
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||||
|
<comment>This is a comment</comment>
|
||||||
|
</data>
|
||||||
|
|
||||||
|
There are any number of "resheader" rows that contain simple
|
||||||
|
name/value pairs.
|
||||||
|
|
||||||
|
Each data row contains a name, and value. The row also contains a
|
||||||
|
type or mimetype. Type corresponds to a .NET class that support
|
||||||
|
text/value conversion through the TypeConverter architecture.
|
||||||
|
Classes that don't support this are serialized and stored with the
|
||||||
|
mimetype set.
|
||||||
|
|
||||||
|
The mimetype is used for serialized objects, and tells the
|
||||||
|
ResXResourceReader how to depersist the object. This is currently not
|
||||||
|
extensible. For a given mimetype the value must be set accordingly:
|
||||||
|
|
||||||
|
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||||
|
that the ResXResourceWriter will generate, however the reader can
|
||||||
|
read any of the formats listed below.
|
||||||
|
|
||||||
|
mimetype: application/x-microsoft.net.object.binary.base64
|
||||||
|
value : The object must be serialized with
|
||||||
|
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||||
|
: and then encoded with base64 encoding.
|
||||||
|
|
||||||
|
mimetype: application/x-microsoft.net.object.soap.base64
|
||||||
|
value : The object must be serialized with
|
||||||
|
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||||
|
: and then encoded with base64 encoding.
|
||||||
|
|
||||||
|
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||||
|
value : The object must be serialized into a byte array
|
||||||
|
: using a System.ComponentModel.TypeConverter
|
||||||
|
: and then encoded with base64 encoding.
|
||||||
|
-->
|
||||||
|
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||||
|
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||||
|
<xsd:element name="root" msdata:IsDataSet="true">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:choice maxOccurs="unbounded">
|
||||||
|
<xsd:element name="metadata">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||||
|
</xsd:sequence>
|
||||||
|
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||||
|
<xsd:attribute name="type" type="xsd:string" />
|
||||||
|
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||||
|
<xsd:attribute ref="xml:space" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
<xsd:element name="assembly">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:attribute name="alias" type="xsd:string" />
|
||||||
|
<xsd:attribute name="name" type="xsd:string" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
<xsd:element name="data">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||||
|
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||||
|
</xsd:sequence>
|
||||||
|
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||||
|
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||||
|
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||||
|
<xsd:attribute ref="xml:space" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
<xsd:element name="resheader">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||||
|
</xsd:sequence>
|
||||||
|
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
</xsd:choice>
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
</xsd:schema>
|
||||||
|
<resheader name="resmimetype">
|
||||||
|
<value>text/microsoft-resx</value>
|
||||||
|
</resheader>
|
||||||
|
<resheader name="version">
|
||||||
|
<value>2.0</value>
|
||||||
|
</resheader>
|
||||||
|
<resheader name="reader">
|
||||||
|
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</resheader>
|
||||||
|
<resheader name="writer">
|
||||||
|
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</resheader>
|
||||||
|
</root>
|
||||||
+291
@@ -0,0 +1,291 @@
|
|||||||
|
|
||||||
|
namespace Lskj.PubBomImportNew
|
||||||
|
{
|
||||||
|
partial class FrmMain
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// 必需的设计器变量。
|
||||||
|
/// </summary>
|
||||||
|
private System.ComponentModel.IContainer components = null;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 清理所有正在使用的资源。
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="disposing">如果应释放托管资源,为 true;否则为 false。</param>
|
||||||
|
protected override void Dispose(bool disposing)
|
||||||
|
{
|
||||||
|
if (disposing && (components != null))
|
||||||
|
{
|
||||||
|
components.Dispose();
|
||||||
|
}
|
||||||
|
base.Dispose(disposing);
|
||||||
|
}
|
||||||
|
|
||||||
|
#region Windows 窗体设计器生成的代码
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 设计器支持所需的方法 - 不要修改
|
||||||
|
/// 使用代码编辑器修改此方法的内容。
|
||||||
|
/// </summary>
|
||||||
|
private void InitializeComponent()
|
||||||
|
{
|
||||||
|
this.btnImport = new DevExpress.XtraEditors.SimpleButton();
|
||||||
|
this.btnRead = new DevExpress.XtraEditors.SimpleButton();
|
||||||
|
this.pl_bottom = new DevExpress.XtraEditors.PanelControl();
|
||||||
|
this.btnCancel = new DevExpress.XtraEditors.SimpleButton();
|
||||||
|
this.btnOk = new DevExpress.XtraEditors.SimpleButton();
|
||||||
|
this.pl_cond = new DevExpress.XtraEditors.PanelControl();
|
||||||
|
this.condTxtEdit = new DevExpress.XtraEditors.TextEdit();
|
||||||
|
this.lb_cond = new System.Windows.Forms.Label();
|
||||||
|
this.pl_purview = new DevExpress.XtraEditors.PanelControl();
|
||||||
|
this.purview_Mulit = new Lskj.Control.LabelMultiAutoTextEdit();
|
||||||
|
this.lb_purview = new System.Windows.Forms.Label();
|
||||||
|
this.tips = new DevExpress.XtraEditors.PanelControl();
|
||||||
|
this.tipsEdit = new DevExpress.XtraEditors.TextEdit();
|
||||||
|
this.splitMainContainer = new DevExpress.XtraEditors.SplitContainerControl();
|
||||||
|
this.gcMain = new Lskj.Control.GridControlEx();
|
||||||
|
this.gc_Right = new Lskj.Control.GridControlEx();
|
||||||
|
((System.ComponentModel.ISupportInitialize)(this.pl_bottom)).BeginInit();
|
||||||
|
this.pl_bottom.SuspendLayout();
|
||||||
|
((System.ComponentModel.ISupportInitialize)(this.pl_cond)).BeginInit();
|
||||||
|
this.pl_cond.SuspendLayout();
|
||||||
|
((System.ComponentModel.ISupportInitialize)(this.condTxtEdit.Properties)).BeginInit();
|
||||||
|
((System.ComponentModel.ISupportInitialize)(this.pl_purview)).BeginInit();
|
||||||
|
this.pl_purview.SuspendLayout();
|
||||||
|
((System.ComponentModel.ISupportInitialize)(this.tips)).BeginInit();
|
||||||
|
this.tips.SuspendLayout();
|
||||||
|
((System.ComponentModel.ISupportInitialize)(this.tipsEdit.Properties)).BeginInit();
|
||||||
|
((System.ComponentModel.ISupportInitialize)(this.splitMainContainer)).BeginInit();
|
||||||
|
this.splitMainContainer.SuspendLayout();
|
||||||
|
this.SuspendLayout();
|
||||||
|
//
|
||||||
|
// btnImport
|
||||||
|
//
|
||||||
|
this.btnImport.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
|
||||||
|
this.btnImport.Location = new System.Drawing.Point(764, 10);
|
||||||
|
this.btnImport.Margin = new System.Windows.Forms.Padding(4);
|
||||||
|
this.btnImport.Name = "btnImport";
|
||||||
|
this.btnImport.Size = new System.Drawing.Size(97, 31);
|
||||||
|
this.btnImport.TabIndex = 11;
|
||||||
|
this.btnImport.Text = "导入数据";
|
||||||
|
//
|
||||||
|
// btnRead
|
||||||
|
//
|
||||||
|
this.btnRead.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
|
||||||
|
this.btnRead.Location = new System.Drawing.Point(656, 10);
|
||||||
|
this.btnRead.Margin = new System.Windows.Forms.Padding(4);
|
||||||
|
this.btnRead.Name = "btnRead";
|
||||||
|
this.btnRead.Size = new System.Drawing.Size(97, 31);
|
||||||
|
this.btnRead.TabIndex = 10;
|
||||||
|
this.btnRead.Text = "读取Excel";
|
||||||
|
//
|
||||||
|
// pl_bottom
|
||||||
|
//
|
||||||
|
this.pl_bottom.Appearance.BackColor = System.Drawing.Color.Transparent;
|
||||||
|
this.pl_bottom.Appearance.Options.UseBackColor = true;
|
||||||
|
this.pl_bottom.BorderStyle = DevExpress.XtraEditors.Controls.BorderStyles.NoBorder;
|
||||||
|
this.pl_bottom.Controls.Add(this.btnImport);
|
||||||
|
this.pl_bottom.Controls.Add(this.btnCancel);
|
||||||
|
this.pl_bottom.Controls.Add(this.btnRead);
|
||||||
|
this.pl_bottom.Controls.Add(this.btnOk);
|
||||||
|
this.pl_bottom.Dock = System.Windows.Forms.DockStyle.Bottom;
|
||||||
|
this.pl_bottom.Location = new System.Drawing.Point(0, 549);
|
||||||
|
this.pl_bottom.Margin = new System.Windows.Forms.Padding(4);
|
||||||
|
this.pl_bottom.Name = "pl_bottom";
|
||||||
|
this.pl_bottom.Size = new System.Drawing.Size(872, 50);
|
||||||
|
this.pl_bottom.TabIndex = 2;
|
||||||
|
//
|
||||||
|
// btnCancel
|
||||||
|
//
|
||||||
|
this.btnCancel.Location = new System.Drawing.Point(120, 10);
|
||||||
|
this.btnCancel.Margin = new System.Windows.Forms.Padding(4);
|
||||||
|
this.btnCancel.Name = "btnCancel";
|
||||||
|
this.btnCancel.Size = new System.Drawing.Size(97, 31);
|
||||||
|
this.btnCancel.TabIndex = 11;
|
||||||
|
this.btnCancel.Text = "清除绑定";
|
||||||
|
//
|
||||||
|
// btnOk
|
||||||
|
//
|
||||||
|
this.btnOk.Location = new System.Drawing.Point(12, 10);
|
||||||
|
this.btnOk.Margin = new System.Windows.Forms.Padding(4);
|
||||||
|
this.btnOk.Name = "btnOk";
|
||||||
|
this.btnOk.Size = new System.Drawing.Size(97, 31);
|
||||||
|
this.btnOk.TabIndex = 10;
|
||||||
|
this.btnOk.Text = "保存绑定";
|
||||||
|
//
|
||||||
|
// pl_cond
|
||||||
|
//
|
||||||
|
this.pl_cond.Appearance.BackColor = System.Drawing.Color.White;
|
||||||
|
this.pl_cond.Appearance.Options.UseBackColor = true;
|
||||||
|
this.pl_cond.Controls.Add(this.condTxtEdit);
|
||||||
|
this.pl_cond.Controls.Add(this.lb_cond);
|
||||||
|
this.pl_cond.Dock = System.Windows.Forms.DockStyle.Top;
|
||||||
|
this.pl_cond.Location = new System.Drawing.Point(0, 0);
|
||||||
|
this.pl_cond.Margin = new System.Windows.Forms.Padding(4);
|
||||||
|
this.pl_cond.Name = "pl_cond";
|
||||||
|
this.pl_cond.Size = new System.Drawing.Size(872, 42);
|
||||||
|
this.pl_cond.TabIndex = 12;
|
||||||
|
//
|
||||||
|
// condTxtEdit
|
||||||
|
//
|
||||||
|
this.condTxtEdit.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||||
|
this.condTxtEdit.Location = new System.Drawing.Point(87, 2);
|
||||||
|
this.condTxtEdit.Name = "condTxtEdit";
|
||||||
|
this.condTxtEdit.Properties.Appearance.BackColor = System.Drawing.Color.White;
|
||||||
|
this.condTxtEdit.Properties.Appearance.Options.UseBackColor = true;
|
||||||
|
this.condTxtEdit.Properties.AutoHeight = false;
|
||||||
|
this.condTxtEdit.Properties.BorderStyle = DevExpress.XtraEditors.Controls.BorderStyles.NoBorder;
|
||||||
|
this.condTxtEdit.Size = new System.Drawing.Size(783, 38);
|
||||||
|
this.condTxtEdit.TabIndex = 5;
|
||||||
|
//
|
||||||
|
// lb_cond
|
||||||
|
//
|
||||||
|
this.lb_cond.BackColor = System.Drawing.Color.White;
|
||||||
|
this.lb_cond.Dock = System.Windows.Forms.DockStyle.Left;
|
||||||
|
this.lb_cond.Location = new System.Drawing.Point(2, 2);
|
||||||
|
this.lb_cond.Name = "lb_cond";
|
||||||
|
this.lb_cond.Size = new System.Drawing.Size(85, 38);
|
||||||
|
this.lb_cond.TabIndex = 3;
|
||||||
|
this.lb_cond.Text = "筛选条件:";
|
||||||
|
this.lb_cond.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
|
||||||
|
//
|
||||||
|
// pl_purview
|
||||||
|
//
|
||||||
|
this.pl_purview.Appearance.BackColor = System.Drawing.Color.White;
|
||||||
|
this.pl_purview.Appearance.Options.UseBackColor = true;
|
||||||
|
this.pl_purview.Controls.Add(this.purview_Mulit);
|
||||||
|
this.pl_purview.Controls.Add(this.lb_purview);
|
||||||
|
this.pl_purview.Cursor = System.Windows.Forms.Cursors.Default;
|
||||||
|
this.pl_purview.Dock = System.Windows.Forms.DockStyle.Top;
|
||||||
|
this.pl_purview.Location = new System.Drawing.Point(0, 42);
|
||||||
|
this.pl_purview.Margin = new System.Windows.Forms.Padding(4);
|
||||||
|
this.pl_purview.Name = "pl_purview";
|
||||||
|
this.pl_purview.Size = new System.Drawing.Size(872, 21);
|
||||||
|
this.pl_purview.TabIndex = 13;
|
||||||
|
//
|
||||||
|
// purview_Mulit
|
||||||
|
//
|
||||||
|
this.purview_Mulit.BackColor = System.Drawing.Color.White;
|
||||||
|
this.purview_Mulit.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||||
|
this.purview_Mulit.EditText = "";
|
||||||
|
this.purview_Mulit.FontSize = 0F;
|
||||||
|
this.purview_Mulit.LabelText = "名称";
|
||||||
|
this.purview_Mulit.Location = new System.Drawing.Point(135, 2);
|
||||||
|
this.purview_Mulit.Margin = new System.Windows.Forms.Padding(4);
|
||||||
|
this.purview_Mulit.Model = null;
|
||||||
|
this.purview_Mulit.Name = "purview_Mulit";
|
||||||
|
this.purview_Mulit.NullText = "";
|
||||||
|
this.purview_Mulit.ReadOnly = false;
|
||||||
|
this.purview_Mulit.Required = false;
|
||||||
|
this.purview_Mulit.Size = new System.Drawing.Size(735, 17);
|
||||||
|
this.purview_Mulit.TabIndex = 4;
|
||||||
|
this.purview_Mulit.TextBoxProhibition = false;
|
||||||
|
//
|
||||||
|
// lb_purview
|
||||||
|
//
|
||||||
|
this.lb_purview.BackColor = System.Drawing.Color.White;
|
||||||
|
this.lb_purview.Dock = System.Windows.Forms.DockStyle.Left;
|
||||||
|
this.lb_purview.Location = new System.Drawing.Point(2, 2);
|
||||||
|
this.lb_purview.Name = "lb_purview";
|
||||||
|
this.lb_purview.Size = new System.Drawing.Size(133, 17);
|
||||||
|
this.lb_purview.TabIndex = 3;
|
||||||
|
this.lb_purview.Text = "条件可编辑人员:";
|
||||||
|
this.lb_purview.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
|
||||||
|
//
|
||||||
|
// tips
|
||||||
|
//
|
||||||
|
this.tips.Appearance.BackColor = System.Drawing.Color.White;
|
||||||
|
this.tips.Appearance.Options.UseBackColor = true;
|
||||||
|
this.tips.BorderStyle = DevExpress.XtraEditors.Controls.BorderStyles.Office2003;
|
||||||
|
this.tips.Controls.Add(this.tipsEdit);
|
||||||
|
this.tips.Dock = System.Windows.Forms.DockStyle.Top;
|
||||||
|
this.tips.Location = new System.Drawing.Point(0, 63);
|
||||||
|
this.tips.Margin = new System.Windows.Forms.Padding(4);
|
||||||
|
this.tips.Name = "tips";
|
||||||
|
this.tips.Size = new System.Drawing.Size(872, 42);
|
||||||
|
this.tips.TabIndex = 14;
|
||||||
|
//
|
||||||
|
// tipsEdit
|
||||||
|
//
|
||||||
|
this.tipsEdit.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||||
|
this.tipsEdit.EditValue = "请导入Excel模板";
|
||||||
|
this.tipsEdit.Location = new System.Drawing.Point(2, 2);
|
||||||
|
this.tipsEdit.Name = "tipsEdit";
|
||||||
|
this.tipsEdit.Properties.Appearance.BackColor = System.Drawing.Color.White;
|
||||||
|
this.tipsEdit.Properties.Appearance.ForeColor = System.Drawing.Color.Red;
|
||||||
|
this.tipsEdit.Properties.Appearance.Options.UseBackColor = true;
|
||||||
|
this.tipsEdit.Properties.Appearance.Options.UseForeColor = true;
|
||||||
|
this.tipsEdit.Properties.AutoHeight = false;
|
||||||
|
this.tipsEdit.Properties.BorderStyle = DevExpress.XtraEditors.Controls.BorderStyles.NoBorder;
|
||||||
|
this.tipsEdit.Properties.ReadOnly = true;
|
||||||
|
this.tipsEdit.Size = new System.Drawing.Size(868, 38);
|
||||||
|
this.tipsEdit.TabIndex = 6;
|
||||||
|
//
|
||||||
|
// splitMainContainer
|
||||||
|
//
|
||||||
|
this.splitMainContainer.Appearance.BackColor = System.Drawing.Color.Transparent;
|
||||||
|
this.splitMainContainer.Appearance.Options.UseBackColor = true;
|
||||||
|
this.splitMainContainer.BorderStyle = DevExpress.XtraEditors.Controls.BorderStyles.Default;
|
||||||
|
this.splitMainContainer.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||||
|
this.splitMainContainer.Location = new System.Drawing.Point(0, 105);
|
||||||
|
this.splitMainContainer.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2);
|
||||||
|
this.splitMainContainer.Name = "splitMainContainer";
|
||||||
|
this.splitMainContainer.Panel1.Controls.Add(this.gcMain);
|
||||||
|
this.splitMainContainer.Panel1.Text = "Panel1";
|
||||||
|
this.splitMainContainer.Panel2.Controls.Add(this.gc_Right);
|
||||||
|
this.splitMainContainer.Panel2.Text = "Panel2";
|
||||||
|
this.splitMainContainer.Size = new System.Drawing.Size(872, 444);
|
||||||
|
this.splitMainContainer.SplitterPosition = 500;
|
||||||
|
this.splitMainContainer.TabIndex = 17;
|
||||||
|
this.splitMainContainer.Text = "splitContainerControl1";
|
||||||
|
//
|
||||||
|
// gcMain
|
||||||
|
//
|
||||||
|
this.gcMain.AdapterObj = null;
|
||||||
|
this.gcMain.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||||
|
this.gcMain.Location = new System.Drawing.Point(0, 0);
|
||||||
|
this.gcMain.Margin = new System.Windows.Forms.Padding(4);
|
||||||
|
this.gcMain.Name = "gcMain";
|
||||||
|
this.gcMain.SiftEnumObj = Lskj.Control.GridControlEx.HeaderSiftEnum.Sum;
|
||||||
|
this.gcMain.Size = new System.Drawing.Size(500, 444);
|
||||||
|
this.gcMain.TabIndex = 16;
|
||||||
|
//
|
||||||
|
// gc_Right
|
||||||
|
//
|
||||||
|
this.gc_Right.AdapterObj = null;
|
||||||
|
this.gc_Right.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||||
|
this.gc_Right.Location = new System.Drawing.Point(0, 0);
|
||||||
|
this.gc_Right.Margin = new System.Windows.Forms.Padding(4);
|
||||||
|
this.gc_Right.Name = "gc_Right";
|
||||||
|
this.gc_Right.SiftEnumObj = Lskj.Control.GridControlEx.HeaderSiftEnum.Sum;
|
||||||
|
this.gc_Right.Size = new System.Drawing.Size(367, 444);
|
||||||
|
this.gc_Right.TabIndex = 18;
|
||||||
|
//
|
||||||
|
// FrmMain
|
||||||
|
//
|
||||||
|
this.Appearance.BackColor = System.Drawing.SystemColors.Control;
|
||||||
|
this.Appearance.Options.UseBackColor = true;
|
||||||
|
this.Appearance.Options.UseFont = true;
|
||||||
|
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None;
|
||||||
|
this.ClientSize = new System.Drawing.Size(872, 599);
|
||||||
|
this.Controls.Add(this.splitMainContainer);
|
||||||
|
this.Controls.Add(this.tips);
|
||||||
|
this.Controls.Add(this.pl_purview);
|
||||||
|
this.Controls.Add(this.pl_cond);
|
||||||
|
this.Controls.Add(this.pl_bottom);
|
||||||
|
this.Name = "FrmMain";
|
||||||
|
this.Opacity = 0D;
|
||||||
|
this.Text = "表格导入";
|
||||||
|
((System.ComponentModel.ISupportInitialize)(this.pl_bottom)).EndInit();
|
||||||
|
this.pl_bottom.ResumeLayout(false);
|
||||||
|
((System.ComponentModel.ISupportInitialize)(this.pl_cond)).EndInit();
|
||||||
|
this.pl_cond.ResumeLayout(false);
|
||||||
|
((System.ComponentModel.ISupportInitialize)(this.condTxtEdit.Properties)).EndInit();
|
||||||
|
((System.ComponentModel.ISupportInitialize)(this.pl_purview)).EndInit();
|
||||||
|
this.pl_purview.ResumeLayout(false);
|
||||||
|
((System.ComponentModel.ISupportInitialize)(this.tips)).EndInit();
|
||||||
|
this.tips.ResumeLayout(false);
|
||||||
|
((System.ComponentModel.ISupportInitialize)(this.tipsEdit.Properties)).EndInit();
|
||||||
|
((System.ComponentModel.ISupportInitialize)(this.splitMainContainer)).EndInit();
|
||||||
|
this.splitMainContainer.ResumeLayout(false);
|
||||||
|
this.ResumeLayout(f
|
||||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,120 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<root>
|
||||||
|
<!--
|
||||||
|
Microsoft ResX Schema
|
||||||
|
|
||||||
|
Version 2.0
|
||||||
|
|
||||||
|
The primary goals of this format is to allow a simple XML format
|
||||||
|
that is mostly human readable. The generation and parsing of the
|
||||||
|
various data types are done through the TypeConverter classes
|
||||||
|
associated with the data types.
|
||||||
|
|
||||||
|
Example:
|
||||||
|
|
||||||
|
... ado.net/XML headers & schema ...
|
||||||
|
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||||
|
<resheader name="version">2.0</resheader>
|
||||||
|
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||||
|
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||||
|
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||||
|
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||||
|
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||||
|
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||||
|
</data>
|
||||||
|
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||||
|
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||||
|
<comment>This is a comment</comment>
|
||||||
|
</data>
|
||||||
|
|
||||||
|
There are any number of "resheader" rows that contain simple
|
||||||
|
name/value pairs.
|
||||||
|
|
||||||
|
Each data row contains a name, and value. The row also contains a
|
||||||
|
type or mimetype. Type corresponds to a .NET class that support
|
||||||
|
text/value conversion through the TypeConverter architecture.
|
||||||
|
Classes that don't support this are serialized and stored with the
|
||||||
|
mimetype set.
|
||||||
|
|
||||||
|
The mimetype is used for serialized objects, and tells the
|
||||||
|
ResXResourceReader how to depersist the object. This is currently not
|
||||||
|
extensible. For a given mimetype the value must be set accordingly:
|
||||||
|
|
||||||
|
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||||
|
that the ResXResourceWriter will generate, however the reader can
|
||||||
|
read any of the formats listed below.
|
||||||
|
|
||||||
|
mimetype: application/x-microsoft.net.object.binary.base64
|
||||||
|
value : The object must be serialized with
|
||||||
|
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||||
|
: and then encoded with base64 encoding.
|
||||||
|
|
||||||
|
mimetype: application/x-microsoft.net.object.soap.base64
|
||||||
|
value : The object must be serialized with
|
||||||
|
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||||
|
: and then encoded with base64 encoding.
|
||||||
|
|
||||||
|
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||||
|
value : The object must be serialized into a byte array
|
||||||
|
: using a System.ComponentModel.TypeConverter
|
||||||
|
: and then encoded with base64 encoding.
|
||||||
|
-->
|
||||||
|
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||||
|
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||||
|
<xsd:element name="root" msdata:IsDataSet="true">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:choice maxOccurs="unbounded">
|
||||||
|
<xsd:element name="metadata">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||||
|
</xsd:sequence>
|
||||||
|
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||||
|
<xsd:attribute name="type" type="xsd:string" />
|
||||||
|
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||||
|
<xsd:attribute ref="xml:space" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
<xsd:element name="assembly">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:attribute name="alias" type="xsd:string" />
|
||||||
|
<xsd:attribute name="name" type="xsd:string" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
<xsd:element name="data">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||||
|
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||||
|
</xsd:sequence>
|
||||||
|
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||||
|
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||||
|
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||||
|
<xsd:attribute ref="xml:space" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
<xsd:element name="resheader">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||||
|
</xsd:sequence>
|
||||||
|
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
</xsd:choice>
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
</xsd:schema>
|
||||||
|
<resheader name="resmimetype">
|
||||||
|
<value>text/microsoft-resx</value>
|
||||||
|
</resheader>
|
||||||
|
<resheader name="version">
|
||||||
|
<value>2.0</value>
|
||||||
|
</resheader>
|
||||||
|
<resheader name="reader">
|
||||||
|
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</resheader>
|
||||||
|
<resheader name="writer">
|
||||||
|
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</resheader>
|
||||||
|
</root>
|
||||||
+143
@@ -0,0 +1,143 @@
|
|||||||
|
namespace Lskj.PubBomImport
|
||||||
|
{
|
||||||
|
partial class FrmProgress
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// Required designer variable.
|
||||||
|
/// </summary>
|
||||||
|
private System.ComponentModel.IContainer components = null;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Clean up any resources being used.
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
|
||||||
|
protected override void Dispose(bool disposing)
|
||||||
|
{
|
||||||
|
if (disposing && (components != null))
|
||||||
|
{
|
||||||
|
components.Dispose();
|
||||||
|
}
|
||||||
|
base.Dispose(disposing);
|
||||||
|
}
|
||||||
|
|
||||||
|
#region Windows Form Designer generated code
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Required method for Designer support - do not modify
|
||||||
|
/// the contents of this method with the code editor.
|
||||||
|
/// </summary>
|
||||||
|
private void InitializeComponent()
|
||||||
|
{
|
||||||
|
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(FrmProgress));
|
||||||
|
this.label3 = new System.Windows.Forms.Label();
|
||||||
|
this.splitter1 = new System.Windows.Forms.Splitter();
|
||||||
|
this.progressBarTotal = new System.Windows.Forms.ProgressBar();
|
||||||
|
this.panel2 = new System.Windows.Forms.Panel();
|
||||||
|
this.labelCurrentItem = new System.Windows.Forms.Label();
|
||||||
|
this.progressBarCurrent = new System.Windows.Forms.ProgressBar();
|
||||||
|
this.lblAll = new System.Windows.Forms.Label();
|
||||||
|
this.panel1 = new System.Windows.Forms.Panel();
|
||||||
|
this.splitter2 = new System.Windows.Forms.Splitter();
|
||||||
|
this.panel2.SuspendLayout();
|
||||||
|
this.panel1.SuspendLayout();
|
||||||
|
this.SuspendLayout();
|
||||||
|
//
|
||||||
|
// label3
|
||||||
|
//
|
||||||
|
this.label3.AutoSize = true;
|
||||||
|
this.label3.Font = new System.Drawing.Font("宋体", 9F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||||
|
this.label3.Location = new System.Drawing.Point(11, 8);
|
||||||
|
this.label3.Name = "label3";
|
||||||
|
this.label3.Size = new System.Drawing.Size(104, 12);
|
||||||
|
this.label3.TabIndex = 0;
|
||||||
|
this.label3.Text = "系统正在导入Bom";
|
||||||
|
//
|
||||||
|
// splitter1
|
||||||
|
//
|
||||||
|
this.splitter1.BackColor = System.Drawing.SystemColors.InactiveBorder;
|
||||||
|
this.splitter1.Dock = System.Windows.Forms.DockStyle.Top;
|
||||||
|
this.splitter1.Location = new System.Drawing.Point(0, 31);
|
||||||
|
this.splitter1.Name = "splitter1";
|
||||||
|
this.splitter1.Size = new System.Drawing.Size(462, 2);
|
||||||
|
this.splitter1.TabIndex = 10;
|
||||||
|
this.splitter1.TabStop = false;
|
||||||
|
//
|
||||||
|
// progressBarTotal
|
||||||
|
//
|
||||||
|
this.progressBarTotal.Location = new System.Drawing.Point(16, 71);
|
||||||
|
this.progressBarTotal.Name = "progressBarTotal";
|
||||||
|
this.progressBarTotal.Size = new System.Drawing.Size(438, 12);
|
||||||
|
this.progressBarTotal.Step = 1;
|
||||||
|
this.progressBarTotal.TabIndex = 4;
|
||||||
|
//
|
||||||
|
// panel2
|
||||||
|
//
|
||||||
|
this.panel2.Controls.Add(this.progressBarTotal);
|
||||||
|
this.panel2.Controls.Add(this.labelCurrentItem);
|
||||||
|
this.panel2.Controls.Add(this.progressBarCurrent);
|
||||||
|
this.panel2.Controls.Add(this.lblAll);
|
||||||
|
this.panel2.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||||
|
this.panel2.ForeColor = System.Drawing.SystemColors.ControlDark;
|
||||||
|
this.panel2.Location = new System.Drawing.Point(0, 31);
|
||||||
|
this.panel2.Name = "panel2";
|
||||||
|
this.panel2.Size = new System.Drawing.Size(462, 101);
|
||||||
|
this.panel2.TabIndex = 8;
|
||||||
|
//
|
||||||
|
// labelCurrentItem
|
||||||
|
//
|
||||||
|
this.labelCurrentItem.AutoSize = true;
|
||||||
|
this.labelCurrentItem.Location = new System.Drawing.Point(14, 16);
|
||||||
|
this.labelCurrentItem.Name = "labelCurrentItem";
|
||||||
|
this.labelCurrentItem.Size = new System.Drawing.Size(65, 12);
|
||||||
|
this.labelCurrentItem.TabIndex = 0;
|
||||||
|
this.labelCurrentItem.Text = "正在导入:";
|
||||||
|
//
|
||||||
|
// progressBarCurrent
|
||||||
|
//
|
||||||
|
this.progressBarCurrent.Location = new System.Drawing.Point(15, 33);
|
||||||
|
this.progressBarCurrent.Name = "progressBarCurrent";
|
||||||
|
this.progressBarCurrent.Size = new System.Drawing.Size(438, 12);
|
||||||
|
this.progressBarCurrent.Step = 1;
|
||||||
|
this.progressBarCurrent.TabIndex = 5;
|
||||||
|
//
|
||||||
|
// lblAll
|
||||||
|
//
|
||||||
|
this.lblAll.AutoSize = true;
|
||||||
|
this.lblAll.Location = new System.Drawing.Point(14, 55);
|
||||||
|
this.lblAll.Name = "lblAll";
|
||||||
|
this.lblAll.Size = new System.Drawing.Size(53, 12);
|
||||||
|
this.lblAll.TabIndex = 2;
|
||||||
|
this.lblAll.Text = "总进度:";
|
||||||
|
//
|
||||||
|
// panel1
|
||||||
|
//
|
||||||
|
this.panel1.BackColor = System.Drawing.SystemColors.ButtonHighlight;
|
||||||
|
this.panel1.Controls.Add(this.label3);
|
||||||
|
this.panel1.Dock = System.Windows.Forms.DockStyle.Top;
|
||||||
|
this.panel1.Location = new System.Drawing.Point(0, 0);
|
||||||
|
this.panel1.Name = "panel1";
|
||||||
|
this.panel1.Size = new System.Drawing.Size(462, 31);
|
||||||
|
this.panel1.TabIndex = 7;
|
||||||
|
//
|
||||||
|
// splitter2
|
||||||
|
//
|
||||||
|
this.splitter2.BackColor = System.Drawing.SystemColors.InactiveBorder;
|
||||||
|
this.splitter2.Dock = System.Windows.Forms.DockStyle.Bottom;
|
||||||
|
this.splitter2.Location = new System.Drawing.Point(0, 132);
|
||||||
|
this.splitter2.Name = "splitter2";
|
||||||
|
this.splitter2.Size = new System.Drawing.Size(462, 2);
|
||||||
|
this.splitter2.TabIndex = 11;
|
||||||
|
this.splitter2.TabStop = false;
|
||||||
|
//
|
||||||
|
// FrmProgress
|
||||||
|
//
|
||||||
|
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F);
|
||||||
|
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||||
|
this.ClientSize = new System.Drawing.Size(462, 134);
|
||||||
|
this.Controls.Add(this.splitter1);
|
||||||
|
this.Controls.Add(this.panel2);
|
||||||
|
this.Controls.Add(this.panel1);
|
||||||
|
this.Controls.Add(this.splitter2);
|
||||||
|
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog;
|
||||||
|
this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
|
||||||
|
|
||||||
@@ -0,0 +1,958 @@
|
|||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.ComponentModel;
|
||||||
|
using System.Data;
|
||||||
|
using System.Drawing;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
using System.Windows.Forms;
|
||||||
|
using System.IO;
|
||||||
|
using System.Threading;
|
||||||
|
using System.Net;
|
||||||
|
using Lskj.Control;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
using Lskj.Core;
|
||||||
|
using DevExpress.XtraGrid.Columns;
|
||||||
|
using NPOI.SS.UserModel;
|
||||||
|
using NPOI.SS.Util;
|
||||||
|
using NPOI.XSSF.UserModel;
|
||||||
|
using NPOI.HSSF.UserModel;
|
||||||
|
using Lskj.Model;
|
||||||
|
using Lskj.Control.BrowserSetting;
|
||||||
|
using Lskj.Business;
|
||||||
|
using Newtonsoft.Json.Linq;
|
||||||
|
using Newtonsoft.Json;
|
||||||
|
using Lskj.Business.Impl;
|
||||||
|
using System.Text.RegularExpressions;
|
||||||
|
using Lskj.Util;
|
||||||
|
using System.Web;
|
||||||
|
using Lskj.Control.Model;
|
||||||
|
using System.Data.SqlClient;
|
||||||
|
|
||||||
|
namespace Lskj.PubBomImportNew
|
||||||
|
{
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 下载进度窗口
|
||||||
|
/// </summary>
|
||||||
|
public partial class FrmProgress : Form
|
||||||
|
{
|
||||||
|
public FrmMain frmMain;
|
||||||
|
public DynamicBomImportNew Model;
|
||||||
|
public System.Windows.Forms.Timer ImportTimer = new System.Windows.Forms.Timer();
|
||||||
|
public FrmProgress()
|
||||||
|
{
|
||||||
|
InitializeComponent();
|
||||||
|
this.ControlBox = false;
|
||||||
|
}
|
||||||
|
/// <summary>
|
||||||
|
/// bom结构上传(总部)
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="dirPaths"></param>
|
||||||
|
public void StartImportInFileByZB(List<DataRow> selectRows)
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
if (Directory.Exists("BomImportTemp"))
|
||||||
|
{
|
||||||
|
Directory.Delete("BomImportTemp", true);
|
||||||
|
}
|
||||||
|
Directory.CreateDirectory("BomImportTemp");
|
||||||
|
int execOrder = 1;
|
||||||
|
if (selectRows.Count > 1)
|
||||||
|
{
|
||||||
|
throw new Exception($"不允许选择多个文件");
|
||||||
|
}
|
||||||
|
DataRow mxRow = selectRows[0];
|
||||||
|
if (mxRow != null)
|
||||||
|
{
|
||||||
|
string mxDirPath = mxRow["BomFieldNameDir"] + "";
|
||||||
|
string productId = mxRow["BomMxMainProduct"] + "";
|
||||||
|
string addState = mxRow["BomMxAddState"] + "";
|
||||||
|
if (string.IsNullOrEmpty(Model.MainFieldDic))
|
||||||
|
{
|
||||||
|
throw new Exception($"字段对应关系配置异常");
|
||||||
|
}
|
||||||
|
if (string.IsNullOrEmpty(productId))
|
||||||
|
{
|
||||||
|
throw new Exception($"保存失败\r\n请重新进行BOM上传后保存");
|
||||||
|
}
|
||||||
|
if (addState.Equals("新增"))
|
||||||
|
{
|
||||||
|
DataRow billRow = BaseImpl.GetDataRowResult($"select qms_maddf_billdocument_id from qms_BillFileAddMaintab where qms_maddf_productid = '{productId}' and isnull(qms_maddf_addMode,'0') = '0'");
|
||||||
|
if (billRow != null)
|
||||||
|
{
|
||||||
|
throw new Exception($"物料编码{productId}的BOM新增单已存在审批流\r\n请进行审批");
|
||||||
|
}
|
||||||
|
DataRow billbomRow = BaseImpl.GetDataRowResult($"select top 1 billdocument_id from bom_BillTab where productid='{productId}'");
|
||||||
|
if (billRow != null)
|
||||||
|
{
|
||||||
|
throw new Exception($"物料编码{productId}的BOM建立单已存在\r\n请进行修改操作");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
DataRow billbomRow = BaseImpl.GetDataRowResult($"select top 1 billdocument_id from bom_BillTab where productid='{productId}' and stepover = '1'");
|
||||||
|
if (billbomRow != null)
|
||||||
|
{
|
||||||
|
throw new Exception($"物料编码{productId}的BOM建立单已终审\r\n禁止修改操作");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
FileInfo mxInfo = null;
|
||||||
|
if (!string.IsNullOrEmpty(mxDirPath))
|
||||||
|
{
|
||||||
|
mxInfo = new FileInfo(mxDirPath);
|
||||||
|
}
|
||||||
|
if (mxInfo != null)
|
||||||
|
{
|
||||||
|
DataTable mxfiletable = BaseImpl.GetDataTableResult($"select sname,fileId,webpath from p_fm_filetab where parentid in (select dirid from P_fm_DirectoryTab where pid = '{productId}' and dllcoid = '1000202') and speciesno = '010106' and sname = '{mxInfo.Name}'");
|
||||||
|
if (mxfiletable.Rows.Count > 0)
|
||||||
|
{
|
||||||
|
throw new Exception($"该文件已存在,请确认后再创建BOM");
|
||||||
|
}
|
||||||
|
FrmBillInfo frmBillInfo = new FrmBillInfo();
|
||||||
|
int.TryParse(Model.FirstRowIndex + "", out int firstRowIndex);
|
||||||
|
DataTable parentTable = ExcelToDatatable(mxInfo.FullName, Model, Model.SheetName, firstRowIndex);
|
||||||
|
parentTable = parentTable.Rows.Cast<DataRow>().Where(n => int.TryParse(n["序号"] + "", out _) && !string.IsNullOrEmpty(n["物料编码"] + "")).ToList().CopyToDataTable();
|
||||||
|
//StringBuilder stringBuilder = new StringBuilder();
|
||||||
|
//foreach (DataRow dataRow in parentTable.Rows)
|
||||||
|
//{
|
||||||
|
// string code = (dataRow["图号"] + "").Trim();
|
||||||
|
// if (code.StartsWith("QD"))
|
||||||
|
// {
|
||||||
|
// int createCode = ProductSaveUnique(code.Replace("'", "''"), (dataRow["名称"] + "").Replace("'", "''"), (dataRow["备注"] + "").Replace("'", "''"), "1000202_1", out string pid, out string msg);
|
||||||
|
// if ((createCode + "").Equals("-1"))
|
||||||
|
// {
|
||||||
|
// throw new Exception($"虚拟物料创建失败\r\n{msg}");
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
//}
|
||||||
|
//if (!string.IsNullOrEmpty(stringBuilder.ToString()))
|
||||||
|
//{
|
||||||
|
// SqlHelper.ExecuteNonQuery(stringBuilder.ToString());
|
||||||
|
//}
|
||||||
|
frmBillInfo.OnControlSourceBind += (s, args) =>
|
||||||
|
{
|
||||||
|
Task task = new Task(() =>
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
int.TryParse(Model.FirstRowIndex, out int index);
|
||||||
|
frmMain.FirstRowIndex = index;
|
||||||
|
bool isUpload = false;
|
||||||
|
string msg = "";
|
||||||
|
Dictionary<string, DataRow> maxBcFileDic = new Dictionary<string, DataRow>();
|
||||||
|
Dictionary<string, DataTable> fileTableDic = new Dictionary<string, DataTable>();
|
||||||
|
#region 新增或修改MX
|
||||||
|
frmBillInfo.OnBillAdd();
|
||||||
|
SetProcessBar(0, 0);
|
||||||
|
SetProcessMsg($"正在导入:{Path.GetFileName(mxInfo.FullName)}");
|
||||||
|
DataTable childTable = frmBillInfo.GcMainView.GridControl.DataSourceTable().Clone();
|
||||||
|
var mxCodeRows = parentTable.AsEnumerable();
|
||||||
|
string[] fieldDic = Model.MainFieldDic.Split(',');
|
||||||
|
foreach (DataRow parentRow in parentTable.Rows)
|
||||||
|
{
|
||||||
|
string code = (parentRow["物料编码"] + "").Trim();
|
||||||
|
int codeCount = mxCodeRows.Where(n => (n["物料编码"] + "").Trim().StartsWith(code)).Count();
|
||||||
|
if (codeCount > 1)//只允许存在一个
|
||||||
|
{
|
||||||
|
throw new Exception($"文件中的物料编码{code}重复,请修改");
|
||||||
|
}
|
||||||
|
DataRow childRow = childTable.NewRow();
|
||||||
|
foreach (string item in fieldDic)
|
||||||
|
{
|
||||||
|
string[] fieldArray = item.Split('^');
|
||||||
|
string key0 = fieldArray[0];
|
||||||
|
string key1 = fieldArray[1];
|
||||||
|
childRow[key0] = parentRow[key1] + "";
|
||||||
|
}
|
||||||
|
//childRow["ProductId"] = parentRow["物料编码"] + "";
|
||||||
|
//childRow["appellation"] = parentRow["名称"] + "";
|
||||||
|
//childRow["bak"] = parentRow["备注"] + "";
|
||||||
|
//childRow["tamount"] = parentRow["数量"] + "";
|
||||||
|
//childRow["amount"] = parentRow["数量"] + "";
|
||||||
|
childTable.Rows.Add(childRow);
|
||||||
|
}
|
||||||
|
SetProcessBar(20, 0);
|
||||||
|
if (childTable.Rows.Count == 0)
|
||||||
|
{
|
||||||
|
throw new Exception($"明细数据不能空");
|
||||||
|
}
|
||||||
|
SetProcessBar(40, 0);
|
||||||
|
string billMasterSql = $"select (select top 1 billdocument_id from bom_BillTab where productid='{productId}') as billdocument_id,'0' affirmer,'0' rtagid,'{productId}' as productid,'' as bak,'' as bombb,'' as bombc";
|
||||||
|
// 处理单据表头数据
|
||||||
|
DataRow masterRow = BillImpl.GetDataRowResult(billMasterSql);
|
||||||
|
SetProcessBar(60, 0);
|
||||||
|
frmBillInfo.AddOrUpdateBill(masterRow, childTable);
|
||||||
|
string guid = Guid.NewGuid() + "";
|
||||||
|
frmBillInfo.BillSaveSql(guid);
|
||||||
|
SetProcessBar(80, 0);
|
||||||
|
//上传文件
|
||||||
|
string uploadMxFileId = "";
|
||||||
|
if (mxfiletable.Rows.Count == 0)
|
||||||
|
{
|
||||||
|
isUpload = UploadFileToAudit(mxInfo.FullName, productId, "010106", out msg, out uploadMxFileId);
|
||||||
|
if (!isUpload)
|
||||||
|
{
|
||||||
|
throw new Exception($"{mxInfo.Name}附件上传失败\r\n{msg}");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
StaticControl.RightMenuGridView.GridControl.Invoke(new Action(() =>
|
||||||
|
{
|
||||||
|
if (mxRow.Table.Columns.Contains("qms_laddf_FileId"))
|
||||||
|
{
|
||||||
|
int.TryParse(uploadMxFileId, out int qms_laddf_FileId);
|
||||||
|
mxRow["qms_laddf_FileId"] = qms_laddf_FileId;
|
||||||
|
}
|
||||||
|
if (mxRow.Table.Columns.Contains("qms_laddf_Exec"))
|
||||||
|
{
|
||||||
|
mxRow["qms_laddf_Exec"] = guid;
|
||||||
|
}
|
||||||
|
if (mxRow.Table.Columns.Contains("qms_laddf_ExecOrder"))
|
||||||
|
{
|
||||||
|
mxRow["qms_laddf_ExecOrder"] = execOrder;
|
||||||
|
}
|
||||||
|
}));
|
||||||
|
execOrder += 1;
|
||||||
|
#endregion
|
||||||
|
SetProcessBar(100, (1 / (parentTable.Rows.Count + 1)) * 100);
|
||||||
|
SetProcessLabelAllMsg($"总进度:{1}/{parentTable.Rows.Count + 1}");
|
||||||
|
this.Invoke(new Action(() =>
|
||||||
|
{
|
||||||
|
this.DialogResult = DialogResult.OK;
|
||||||
|
Close();
|
||||||
|
ImportTimer?.Dispose();
|
||||||
|
}));
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
MessageUtil.Show(ex.Message);
|
||||||
|
this.Invoke(new Action(() =>
|
||||||
|
{
|
||||||
|
this.DialogResult = DialogResult.Cancel;
|
||||||
|
Close();
|
||||||
|
ImportTimer?.Dispose();
|
||||||
|
}));
|
||||||
|
}
|
||||||
|
});
|
||||||
|
task.Start();
|
||||||
|
};
|
||||||
|
frmBillInfo.OnLoad(Model);
|
||||||
|
frmMain.ParentView = frmBillInfo.GcMainView;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
throw new Exception("文件不存在");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
MessageUtil.Show(ex.Message);
|
||||||
|
this.Invoke(new Action(() =>
|
||||||
|
{
|
||||||
|
this.DialogResult = DialogResult.Cancel;
|
||||||
|
Close();
|
||||||
|
ImportTimer?.Dispose();
|
||||||
|
}));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
public int ProductSaveUnique(string spec, string appellation, string bak, string billSeq, out string productId, out string tipMsg)
|
||||||
|
{
|
||||||
|
productId = string.Empty;
|
||||||
|
tipMsg = string.Empty;
|
||||||
|
try
|
||||||
|
{
|
||||||
|
/*----------------------------------------------------
|
||||||
|
* 1) 组装存储过程参数
|
||||||
|
*--------------------------------------------------*/
|
||||||
|
// ProductId OUTPUT
|
||||||
|
SqlParameter pProductId = new SqlParameter("@ProductId", SqlDbType.VarChar, 100)
|
||||||
|
{
|
||||||
|
Direction = ParameterDirection.Output
|
||||||
|
};
|
||||||
|
|
||||||
|
// 存储过程 RETURN 值
|
||||||
|
SqlParameter pReturn = new SqlParameter("@return", SqlDbType.Int)
|
||||||
|
{
|
||||||
|
Direction = ParameterDirection.ReturnValue
|
||||||
|
};
|
||||||
|
|
||||||
|
// 中文字段可根据服务器排序规则切换参数类型
|
||||||
|
bool useNVar = ERPInfo.Instance.ChangeParameterType;
|
||||||
|
|
||||||
|
SqlParameter[] param =
|
||||||
|
{
|
||||||
|
new SqlParameter("@Spec", SqlDbType.VarChar, 50),
|
||||||
|
useNVar
|
||||||
|
? new SqlParameter("@Appellation", SqlDbType.NVarChar, 200)
|
||||||
|
: new SqlParameter("@Appellation", SqlDbType.VarChar, 200),
|
||||||
|
useNVar
|
||||||
|
? new SqlParameter("@Bak", SqlDbType.NVarChar, 200)
|
||||||
|
: new SqlParameter("@Bak", SqlDbType.VarChar, 200),
|
||||||
|
new SqlParameter("@BillSeq", SqlDbType.VarChar, 40),
|
||||||
|
pProductId,
|
||||||
|
pReturn
|
||||||
|
};
|
||||||
|
|
||||||
|
param[0].Value = spec;
|
||||||
|
param[1].Value = appellation ?? string.Empty;
|
||||||
|
param[2].Value = bak ?? string.Empty;
|
||||||
|
param[3].Value = string.IsNullOrWhiteSpace(billSeq) ? (object)DBNull.Value : billSeq;
|
||||||
|
|
||||||
|
SqlHelper.ExecuteNonQuery(
|
||||||
|
CommandType.StoredProcedure,
|
||||||
|
"sp_InsertProductUnique",
|
||||||
|
param);
|
||||||
|
|
||||||
|
/*----------------------------------------------------
|
||||||
|
* 3) 处理返回值与提示信息
|
||||||
|
*--------------------------------------------------*/
|
||||||
|
productId = pProductId.Value == DBNull.Value ? string.Empty
|
||||||
|
: pProductId.Value.ToString();
|
||||||
|
int retCode = (pReturn.Value == DBNull.Value) ? -1
|
||||||
|
: Convert.ToInt32(pReturn.Value);
|
||||||
|
|
||||||
|
// 根据返回值给出业务提示
|
||||||
|
switch (retCode)
|
||||||
|
{
|
||||||
|
case 0:
|
||||||
|
tipMsg = "保存成功!";
|
||||||
|
break;
|
||||||
|
case 1:
|
||||||
|
tipMsg = "规格已存在,直接返回现有编码。";
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
tipMsg = "发生异常,请查看日志!";
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
return retCode;
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
tipMsg = ex.Message;
|
||||||
|
throw; // 继续向外抛,让调用层捕获日志
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 显示当前文件
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="text"></param>
|
||||||
|
private void SetProcessMsg(string text)
|
||||||
|
{
|
||||||
|
this.labelCurrentItem.Invoke(new Action(() =>
|
||||||
|
{
|
||||||
|
this.labelCurrentItem.Text = text;
|
||||||
|
}));
|
||||||
|
}
|
||||||
|
private void SetProcessLabelAllMsg(string text)
|
||||||
|
{
|
||||||
|
this.lblAll.Invoke(new Action(() =>
|
||||||
|
{
|
||||||
|
this.lblAll.Text = text;
|
||||||
|
}));
|
||||||
|
}
|
||||||
|
/// <summary>
|
||||||
|
/// 显示当前进度
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="current"></param>
|
||||||
|
/// <param name="total"></param>
|
||||||
|
private void SetProcessBar(int current, int total)
|
||||||
|
{
|
||||||
|
this.Invoke(new Action(() =>
|
||||||
|
{
|
||||||
|
this.progressBarCurrent.Value = current;
|
||||||
|
this.progressBarTotal.Value = total;
|
||||||
|
}));
|
||||||
|
}
|
||||||
|
/// <summary>
|
||||||
|
/// 获取表格数据
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="fileName"></param>
|
||||||
|
/// <param name="sheetName"></param>
|
||||||
|
/// <param name="isFirstRowColumn"></param>
|
||||||
|
/// <returns></returns>
|
||||||
|
public DataTable ExcelToDatatable(string fileName, DynamicBomImportNew Model, string sheetName = "", int firstRowIndex = 0)
|
||||||
|
{
|
||||||
|
DataTable data = new DataTable();
|
||||||
|
FileStream fs;
|
||||||
|
IWorkbook workbook = null;
|
||||||
|
try
|
||||||
|
{
|
||||||
|
fs = new FileStream(fileName, FileMode.Open, FileAccess.Read);
|
||||||
|
if (fileName.IndexOf(".xlsx") > 0) // 2007版本
|
||||||
|
{
|
||||||
|
workbook = new XSSFWorkbook(fs);
|
||||||
|
}
|
||||||
|
else if (fileName.IndexOf(".xls") > 0) // 2003版本
|
||||||
|
{
|
||||||
|
workbook = new HSSFWorkbook(fs);
|
||||||
|
}
|
||||||
|
ISheet sheet;
|
||||||
|
if (!string.IsNullOrEmpty(sheetName))
|
||||||
|
{
|
||||||
|
sheet = workbook.GetSheet(sheetName);//根据给定的sheet名称获取数据
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
//也可以根据sheet编号来获取数据
|
||||||
|
sheet = workbook.GetSheetAt(0);//获取第几个sheet表(此处表示如果没有给定sheet名称,默认是第一个sheet表)
|
||||||
|
}
|
||||||
|
if (sheet != null)
|
||||||
|
{
|
||||||
|
int startRow = firstRowIndex + 1;
|
||||||
|
IRow firstRow = sheet.GetRow(firstRowIndex);
|
||||||
|
IRow bandRow = null;
|
||||||
|
int cellCount = firstRow.LastCellNum;
|
||||||
|
for (int i = firstRow.FirstCellNum; i < firstRow.LastCellNum; i++)//第一行列数循环
|
||||||
|
{
|
||||||
|
ICell titleCell = firstRow.GetCell(i);
|
||||||
|
ICell bandCell = null;
|
||||||
|
bool isBandTitle = false;
|
||||||
|
if (titleCell.IsMergedCell)
|
||||||
|
{
|
||||||
|
CellRangeAddress mergrRange = FindMergedRegion(sheet, firstRowIndex, i);
|
||||||
|
startRow = mergrRange.LastRow + 1;
|
||||||
|
if (mergrRange != null)
|
||||||
|
{
|
||||||
|
if (mergrRange.FirstColumn < mergrRange.LastColumn && !Model.CustomerServiceApp)
|
||||||
|
{
|
||||||
|
isBandTitle = true;
|
||||||
|
bandRow = sheet.GetRow(mergrRange.LastRow + 1);
|
||||||
|
titleCell = firstRow.GetCell(mergrRange.FirstColumn);
|
||||||
|
bandCell = bandRow.GetCell(i);
|
||||||
|
CellRangeAddress bandMergrRange = FindMergedRegion(sheet, mergrRange.LastRow + 1, i);
|
||||||
|
if (bandMergrRange != null)
|
||||||
|
{
|
||||||
|
startRow = bandMergrRange.LastRow + 1;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
startRow = mergrRange.LastRow + 2;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
startRow = mergrRange.LastRow + 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
string fieldName = "";
|
||||||
|
if (!isBandTitle || bandRow == null)
|
||||||
|
{
|
||||||
|
fieldName = GetCellValue(titleCell);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
fieldName = $"{GetCellValue(titleCell)}|{GetCellValue(bandCell)}";
|
||||||
|
}
|
||||||
|
if (string.IsNullOrEmpty(fieldName) && titleCell.IsMergedCell)
|
||||||
|
{
|
||||||
|
cellCount -= 1;
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
DataColumn column = new DataColumn(fieldName);//获取标题
|
||||||
|
data.Columns.Add(column);//添加列
|
||||||
|
}
|
||||||
|
//最后一行的标号
|
||||||
|
int rowCount = sheet.LastRowNum;
|
||||||
|
for (int i = startRow; i <= rowCount; i++)//循环遍历所有行
|
||||||
|
{
|
||||||
|
IRow row = sheet.GetRow(i);//第几行
|
||||||
|
if (row == null)
|
||||||
|
{
|
||||||
|
continue; //没有数据的行默认是null;
|
||||||
|
}
|
||||||
|
//将excel表每一行的数据添加到datatable的行中
|
||||||
|
DataRow dataRow = data.NewRow();
|
||||||
|
int dataRowIndex = 0;
|
||||||
|
for (int j = firstRow.FirstCellNum; j < cellCount; j++)
|
||||||
|
{
|
||||||
|
ICell cell = row.GetCell(j);
|
||||||
|
if (cell != null && cell.IsMergedCell)
|
||||||
|
{
|
||||||
|
CellRangeAddress mergrRange = FindMergedRegion(sheet, i, j);
|
||||||
|
if (j == mergrRange.FirstColumn)
|
||||||
|
{
|
||||||
|
dataRow[dataRowIndex] = GetCellValue(row.GetCell(j));
|
||||||
|
dataRowIndex += 1;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
cellCount += 1;
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if (row.GetCell(j) != null) //同理,没有数据的单元格都默认是null
|
||||||
|
{
|
||||||
|
dataRow[dataRowIndex] = GetCellValue(row.GetCell(j));
|
||||||
|
dataRowIndex += 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
data.Rows.Add(dataRow);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return data;
|
||||||
|
}
|
||||||
|
catch (IOException ex)
|
||||||
|
{
|
||||||
|
throw new IOException(string.Format("读取模板内容失败,原因:{0}", ex.Message));
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
throw new Exception(string.Format("读取模板内容失败,原因:{0}", ex.Message));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
/// <summary>
|
||||||
|
/// 获取单元格值
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="cell"></param>
|
||||||
|
/// <returns></returns>
|
||||||
|
public static string GetCellValue(ICell cell)
|
||||||
|
{
|
||||||
|
string cellValue = "";
|
||||||
|
try
|
||||||
|
{
|
||||||
|
if (cell != null)
|
||||||
|
{
|
||||||
|
// 根据单元格类型获取值
|
||||||
|
switch (cell.CellType)
|
||||||
|
{
|
||||||
|
case CellType.String:
|
||||||
|
cellValue = cell.StringCellValue;
|
||||||
|
break;
|
||||||
|
case CellType.Numeric:
|
||||||
|
cellValue = cell.NumericCellValue.ToString();
|
||||||
|
break;
|
||||||
|
case CellType.Boolean:
|
||||||
|
cellValue = cell.BooleanCellValue.ToString();
|
||||||
|
break;
|
||||||
|
case CellType.Formula://单元格中带有公式,根据类型继续判断
|
||||||
|
switch (cell.CachedFormulaResultType)
|
||||||
|
{
|
||||||
|
case CellType.String:
|
||||||
|
cellValue = cell.StringCellValue;
|
||||||
|
break;
|
||||||
|
case CellType.Numeric:
|
||||||
|
cellValue = cell.NumericCellValue.ToString();
|
||||||
|
break;
|
||||||
|
case CellType.Boolean:
|
||||||
|
cellValue = cell.BooleanCellValue.ToString();
|
||||||
|
break;
|
||||||
|
case CellType.Blank:
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
cellValue.ToString();
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
cellValue = cell.ToString();
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
catch (Exception)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
return cellValue;
|
||||||
|
}
|
||||||
|
/// <summary>
|
||||||
|
/// 获取合并区域
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="sheet"></param>
|
||||||
|
/// <param name="rowIndex"></param>
|
||||||
|
/// <param name="columnIndex"></param>
|
||||||
|
/// <returns></returns>
|
||||||
|
private CellRangeAddress FindMergedRegion(ISheet sheet, int rowIndex, int columnIndex)
|
||||||
|
{
|
||||||
|
int mergedRegionsCount = sheet.NumMergedRegions;
|
||||||
|
|
||||||
|
for (int i = 0; i < mergedRegionsCount; i++)
|
||||||
|
{
|
||||||
|
CellRangeAddress mergedRegion = sheet.GetMergedRegion(i);
|
||||||
|
if (mergedRegion.IsInRange(rowIndex, columnIndex))
|
||||||
|
{
|
||||||
|
return mergedRegion; // 返回合并区域
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return null; // 未找到合并区域
|
||||||
|
}
|
||||||
|
/// <summary>
|
||||||
|
/// 上传文件
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="filePath"></param>
|
||||||
|
/// <param name="msg"></param>
|
||||||
|
/// <returns></returns>
|
||||||
|
private bool UploadFile(string filePath, string idValue, out string msg, out string outFileId)
|
||||||
|
{
|
||||||
|
bool isUpload = false;
|
||||||
|
string File = filePath;
|
||||||
|
string returnMsg = "";
|
||||||
|
string fileId = "";
|
||||||
|
string postUrl = "";
|
||||||
|
try
|
||||||
|
{
|
||||||
|
//获取文件信息
|
||||||
|
FileInfo fileInfo = new FileInfo(File);
|
||||||
|
string suffix = Path.GetExtension(File);
|
||||||
|
string name = fileInfo.Name;
|
||||||
|
DateTime creationTime = fileInfo.CreationTime;
|
||||||
|
byte[] fileBytes = ConvertFileToBytes(File);
|
||||||
|
string fileStream = Convert.ToBase64String(fileBytes);
|
||||||
|
string userId = ERPInfo.Instance.UserId;
|
||||||
|
DateTime uploadTime = DateTime.Now;
|
||||||
|
string speciesno = "010102";
|
||||||
|
// 检查扩展名是否为 .xlsx 或 .xls
|
||||||
|
if (suffix.Equals(".xlsx", StringComparison.OrdinalIgnoreCase) ||
|
||||||
|
suffix.Equals(".xls", StringComparison.OrdinalIgnoreCase))
|
||||||
|
{
|
||||||
|
speciesno = "010101";
|
||||||
|
}
|
||||||
|
//上传文件到服务器目录
|
||||||
|
postUrl = "{0}Api/FileUploadApi.ashx?moduleId={1}&idValue={2}&speciesno={8}&folder={3}&totsize={4}&position={5}&filename={6}&method={7}&confirm=1";
|
||||||
|
if (!string.IsNullOrEmpty(idValue))
|
||||||
|
{
|
||||||
|
string token = "";
|
||||||
|
string loginUrl = $"{SystemInfo.Instance.OAUrl}/Api/SysUserAjaxApi.ashx";
|
||||||
|
HttpTools.setting("application/x-www-form-urlencoded", null, null, HttpTools.Encode.UTF8);
|
||||||
|
Dictionary<string, string> loginPmsDic = new Dictionary<string, string>();
|
||||||
|
loginPmsDic.Add("method", "Login");
|
||||||
|
loginPmsDic.Add("username", HttpUtility.UrlEncode(ERPInfo.Instance.UserName));
|
||||||
|
loginPmsDic.Add("password", HttpUtility.UrlEncode(ERPInfo.Instance.InPassWord));
|
||||||
|
HttpWebResponse loginResponse = HttpTools.Post(loginUrl, "", loginPmsDic, HttpTools.Method.POST, out CookieCollection loginCookie, out string loginResult);
|
||||||
|
if (loginResponse != null && !string.IsNullOrEmpty(loginResult))
|
||||||
|
{
|
||||||
|
JObject jObject = JsonConvert.DeserializeObject<JObject>(loginResult);
|
||||||
|
if (jObject.ContainsKey("success"))
|
||||||
|
{
|
||||||
|
if ((jObject["success"] + "").Equals("True"))
|
||||||
|
{
|
||||||
|
if (jObject.ContainsKey("token"))
|
||||||
|
{
|
||||||
|
token = jObject["token"] + "";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (!string.IsNullOrEmpty(token))
|
||||||
|
{
|
||||||
|
//string selectSql = $"select * from P_fm_FileTab where parentid in (select dirid from P_fm_DirectoryTab where pid = '{idValue}' and dllcoid = '1000202') and speciesno = '{speciesno}' and sname = '{name.Replace(" ", "")}'";
|
||||||
|
//DataTable deleteTable = BaseImpl.GetDataTableResult(selectSql);
|
||||||
|
//if (deleteTable != null && deleteTable.Rows.Count > 0)
|
||||||
|
//{
|
||||||
|
// foreach (DataRow deleteRow in deleteTable.Rows)
|
||||||
|
// {
|
||||||
|
// string field = HttpUtility.UrlEncode(deleteRow["fileId"] + "");
|
||||||
|
// string webpath = HttpUtility.UrlEncode(deleteRow["webpath"] + "");
|
||||||
|
// //删除文件
|
||||||
|
// string deleteUrl = "{0}Api/FileUploadApi.ashx?fileId={1}&filename={2}&method={3}";
|
||||||
|
// deleteUrl = string.Format(deleteUrl, SystemInfo.Instance.OAUrl, field, webpath, "DoDelete");
|
||||||
|
// HttpHelper.Setting("application/x-www-form-urlencoded", null, null);
|
||||||
|
// Dictionary<string, string> deleteHeaderDic = new Dictionary<string, string>();
|
||||||
|
// deleteHeaderDic.Add("Authorization", $"Bearer {token}");
|
||||||
|
// HttpWebResponse deleteWebResponse = HttpHelper.Post(deleteUrl, fileStream, null, deleteHeaderDic, out string deleteResult);
|
||||||
|
// }
|
||||||
|
//}
|
||||||
|
postUrl = string.Format(postUrl, SystemInfo.Instance.OAUrl, "1000202", HttpUtility.UrlEncode(idValue), "file", fileBytes.Length, 0, HttpUtility.UrlEncode(name), "DoWebUpload", speciesno);
|
||||||
|
HttpTools.setting("application/x-www-form-urlencoded", null, null);
|
||||||
|
string result = "";
|
||||||
|
CookieCollection cookieCollection = null;
|
||||||
|
Dictionary<string, string> headerDic = new Dictionary<string, string>();
|
||||||
|
headerDic.Add("Authorization", $"Bearer {token}");
|
||||||
|
HttpWebResponse webResponse = HttpTools.Post(postUrl, fileStream, null, headerDic, HttpTools.Method.POST, out cookieCollection, out result);
|
||||||
|
if (webResponse != null && !string.IsNullOrEmpty(result))
|
||||||
|
{
|
||||||
|
JObject jsonObject = (JObject)JsonConvert.DeserializeObject(result);
|
||||||
|
string isSuccess = jsonObject["success"] + "";
|
||||||
|
if (isSuccess.Equals("True", StringComparison.CurrentCultureIgnoreCase))
|
||||||
|
{
|
||||||
|
if (jsonObject.ContainsKey("other"))
|
||||||
|
{
|
||||||
|
fileId = jsonObject["other"] + "";
|
||||||
|
}
|
||||||
|
isUpload = true;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if (jsonObject.ContainsKey("msg"))
|
||||||
|
{
|
||||||
|
returnMsg = jsonObject["msg"] + "";
|
||||||
|
}
|
||||||
|
isUpload = false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
returnMsg = "上传请求失败";
|
||||||
|
isUpload = false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
returnMsg = loginResult;
|
||||||
|
isUpload = false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
returnMsg = "上传节点值不能为空";
|
||||||
|
isUpload = false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
returnMsg = ex.Message;
|
||||||
|
throw new Exception($"文件{Path.GetFileName(filePath)}上传失败\r\n{ex.Message}");
|
||||||
|
isUpload = false;
|
||||||
|
}
|
||||||
|
msg = returnMsg;
|
||||||
|
outFileId = fileId;
|
||||||
|
return isUpload;
|
||||||
|
}
|
||||||
|
private bool UploadFileToAudit(string filePath, string idValue, string speciesno, out string msg, out string outFileId)
|
||||||
|
{
|
||||||
|
bool isUpload = false;
|
||||||
|
string File = filePath;
|
||||||
|
string returnMsg = "";
|
||||||
|
string fileId = "";
|
||||||
|
string postUrl = "";
|
||||||
|
try
|
||||||
|
{
|
||||||
|
//获取文件信息
|
||||||
|
FileInfo fileInfo = new FileInfo(File);
|
||||||
|
string suffix = Path.GetExtension(File);
|
||||||
|
string name = fileInfo.Name;
|
||||||
|
DateTime creationTime = fileInfo.CreationTime;
|
||||||
|
byte[] fileBytes = ConvertFileToBytes(File);
|
||||||
|
string fileStream = Convert.ToBase64String(fileBytes);
|
||||||
|
string userId = ERPInfo.Instance.UserId;
|
||||||
|
DateTime uploadTime = DateTime.Now;
|
||||||
|
string code = "";
|
||||||
|
string namepattern = @"^(.*-S[A-Z]\d*)(.*)$";
|
||||||
|
Match namematch = Regex.Match(Path.GetFileNameWithoutExtension(fileInfo.Name).Trim(), namepattern);
|
||||||
|
if (namematch.Success)
|
||||||
|
{
|
||||||
|
code = namematch.Groups[1].Value;
|
||||||
|
}
|
||||||
|
//上传文件到服务器目录
|
||||||
|
postUrl = "{0}Api/FileUploadApi.ashx?moduleId={1}&idValue={2}&speciesno={8}&folder={3}&totsize={4}&position={5}&filename={6}&method={7}&confirm=1";
|
||||||
|
if (!string.IsNullOrEmpty(idValue))
|
||||||
|
{
|
||||||
|
string token = "";
|
||||||
|
string loginUrl = $"{SystemInfo.Instance.OAUrl}/Api/SysUserAjaxApi.ashx";
|
||||||
|
HttpTools.setting("application/x-www-form-urlencoded", null, null, HttpTools.Encode.UTF8);
|
||||||
|
Dictionary<string, string> loginPmsDic = new Dictionary<string, string>();
|
||||||
|
loginPmsDic.Add("method", "Login");
|
||||||
|
loginPmsDic.Add("username", HttpUtility.UrlEncode(ERPInfo.Instance.UserName));
|
||||||
|
loginPmsDic.Add("password", HttpUtility.UrlEncode(ERPInfo.Instance.InPassWord));
|
||||||
|
HttpWebResponse loginResponse = HttpTools.Post(loginUrl, "", loginPmsDic, HttpTools.Method.POST, out CookieCollection loginCookie, out string loginResult);
|
||||||
|
if (loginResponse != null && !string.IsNullOrEmpty(loginResult))
|
||||||
|
{
|
||||||
|
JObject jObject = JsonConvert.DeserializeObject<JObject>(loginResult);
|
||||||
|
if (jObject.ContainsKey("success"))
|
||||||
|
{
|
||||||
|
if ((jObject["success"] + "").Equals("True"))
|
||||||
|
{
|
||||||
|
if (jObject.ContainsKey("token"))
|
||||||
|
{
|
||||||
|
token = jObject["token"] + "";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (!string.IsNullOrEmpty(token))
|
||||||
|
{
|
||||||
|
//string selectSql = $"select * from P_fm_FileTab where parentid in (select dirid from P_fm_DirectoryTab where pid = '{idValue}' and dllcoid = '1000202') and speciesno = '{speciesno}' and sname = '{name.Replace(" ", "")}'";
|
||||||
|
//DataTable deleteTable = BaseImpl.GetDataTableResult(selectSql);
|
||||||
|
//if (deleteTable != null && deleteTable.Rows.Count > 0)
|
||||||
|
//{
|
||||||
|
// foreach (DataRow deleteRow in deleteTable.Rows)
|
||||||
|
// {
|
||||||
|
// string field = HttpUtility.UrlEncode(deleteRow["fileId"] + "");
|
||||||
|
// string webpath = HttpUtility.UrlEncode(deleteRow["webpath"] + "");
|
||||||
|
// //删除文件
|
||||||
|
// string deleteUrl = "{0}Api/FileUploadApi.ashx?fileId={1}&filename={2}&method={3}";
|
||||||
|
// deleteUrl = string.Format(deleteUrl, SystemInfo.Instance.OAUrl, field, webpath, "DoDelete");
|
||||||
|
// HttpHelper.Setting("application/x-www-form-urlencoded", null, null);
|
||||||
|
// Dictionary<string, string> deleteHeaderDic = new Dictionary<string, string>();
|
||||||
|
// deleteHeaderDic.Add("Authorization", $"Bearer {token}");
|
||||||
|
// HttpWebResponse deleteWebResponse = HttpHelper.Post(deleteUrl, fileStream, null, deleteHeaderDic, out string deleteResult);
|
||||||
|
// }
|
||||||
|
//}
|
||||||
|
postUrl = string.Format(postUrl, SystemInfo.Instance.OAUrl, "1000202", HttpUtility.UrlEncode(idValue), "file", fileBytes.Length, 0, HttpUtility.UrlEncode(name), "DoWebUpload", speciesno);
|
||||||
|
HttpTools.setting("application/x-www-form-urlencoded", null, null);
|
||||||
|
string result = "";
|
||||||
|
CookieCollection cookieCollection = null;
|
||||||
|
Dictionary<string, string> headerDic = new Dictionary<string, string>();
|
||||||
|
headerDic.Add("Authorization", $"Bearer {token}");
|
||||||
|
HttpWebResponse webResponse = HttpTools.Post(postUrl, fileStream, null, headerDic, HttpTools.Method.POST, out cookieCollection, out result);
|
||||||
|
if (webResponse != null && !string.IsNullOrEmpty(result))
|
||||||
|
{
|
||||||
|
JObject jsonObject = (JObject)Newtonsoft.Json.JsonConvert.DeserializeObject(result);
|
||||||
|
string isSuccess = jsonObject["success"] + "";
|
||||||
|
if (isSuccess.Equals("True", StringComparison.CurrentCultureIgnoreCase))
|
||||||
|
{
|
||||||
|
if (jsonObject.ContainsKey("other"))
|
||||||
|
{
|
||||||
|
fileId = jsonObject["other"] + "";
|
||||||
|
BaseImpl.ExecSqlValue($"update p_fm_filetab set isdisabled = 2 where fileid = '{fileId}'");
|
||||||
|
}
|
||||||
|
isUpload = true;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if (jsonObject.ContainsKey("msg"))
|
||||||
|
{
|
||||||
|
returnMsg = jsonObject["msg"] + "";
|
||||||
|
}
|
||||||
|
isUpload = false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
returnMsg = "上传请求失败";
|
||||||
|
isUpload = false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
returnMsg = loginResult;
|
||||||
|
isUpload = false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
returnMsg = "上传节点值不能为空";
|
||||||
|
isUpload = false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
returnMsg = ex.Message;
|
||||||
|
throw new Exception($"文件{Path.GetFileName(filePath)}上传失败\r\n{ex.Message}");
|
||||||
|
isUpload = false;
|
||||||
|
}
|
||||||
|
msg = returnMsg;
|
||||||
|
outFileId = fileId;
|
||||||
|
return isUpload;
|
||||||
|
}
|
||||||
|
/// <summary>
|
||||||
|
/// 记录附件变更数据
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="dt"></param>
|
||||||
|
/// <returns></returns>
|
||||||
|
public string BuildBomFileTabSql(DataTable dt, string billno)
|
||||||
|
{
|
||||||
|
if (dt == null || dt.Rows.Count == 0) return string.Empty;
|
||||||
|
var sb = new StringBuilder();
|
||||||
|
sb.AppendLine("BEGIN TRANSACTION;");
|
||||||
|
foreach (DataRow row in dt.Rows)
|
||||||
|
{
|
||||||
|
int fileId = Convert.ToInt32(row["文件ID"]);
|
||||||
|
string fileName = row["附件名称"].ToString().Replace("'", "''");// 单引号转义
|
||||||
|
string speciesNo = row["目录ID"].ToString().Replace("'", "''");// → speciesno
|
||||||
|
string dirName = row["目录名称"].ToString().Trim();// → pid
|
||||||
|
int pid = 0;
|
||||||
|
int.TryParse(dirName, out pid); //目录名称若为数字则转换,否则默认为 0
|
||||||
|
sb.AppendFormat(
|
||||||
|
@"IF NOT EXISTS (
|
||||||
|
SELECT 1 FROM bom_filetab
|
||||||
|
WHERE fileid = {0}
|
||||||
|
AND speciesno = '{1}'
|
||||||
|
AND pid = {2})
|
||||||
|
INSERT INTO bom_filetab (billno, fileid, filename, speciesno, pid)
|
||||||
|
VALUES ('{4}',{0}, N'{3}', '{1}', {2});
|
||||||
|
", fileId, speciesNo, pid, fileName, billno);
|
||||||
|
}
|
||||||
|
sb.AppendLine("COMMIT TRANSACTION;");
|
||||||
|
return sb.ToString();
|
||||||
|
}
|
||||||
|
/// <summary>
|
||||||
|
/// 附件转换byte[]
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="filePath">附件路径</param>
|
||||||
|
/// <returns>二进制</returns>
|
||||||
|
private byte[] ConvertFileToBytes(string filePath)
|
||||||
|
{
|
||||||
|
byte[] bytContent = null;
|
||||||
|
System.IO.FileStream fs = null;
|
||||||
|
System.IO.BinaryReader br = null;
|
||||||
|
try
|
||||||
|
{
|
||||||
|
fs = new FileStream(filePath, System.IO.FileMode.Open);
|
||||||
|
}
|
||||||
|
catch (Exception)
|
||||||
|
{
|
||||||
|
throw;
|
||||||
|
}
|
||||||
|
finally
|
||||||
|
{
|
||||||
|
if (fs != null)
|
||||||
|
br = new BinaryReader((Stream)fs);
|
||||||
|
if (br != null)
|
||||||
|
bytContent = br.ReadBytes((Int32)fs.Length);
|
||||||
|
if (fs != null)
|
||||||
|
fs.Dispose();
|
||||||
|
}
|
||||||
|
return bytContent;
|
||||||
|
}
|
||||||
|
/// <summary>
|
||||||
|
/// 解析code信息
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="sourceCode"></param>
|
||||||
|
/// <param name="code"></param>
|
||||||
|
/// <param name="name"></param>
|
||||||
|
/// <param name="bb"></param>
|
||||||
|
/// <param name="bc"></param>
|
||||||
|
private void GetFileCodeInfo(string sourceCode, out string code, out string name, out string bb, out int bc)
|
||||||
|
{
|
||||||
|
string namepattern = @"^(.*-S[A-Z]\d*)(.*)$";
|
||||||
|
string pattern = @"^(.*?)(\d+)?$";
|
||||||
|
string childcode = "";
|
||||||
|
string childname = "";
|
||||||
|
string childsourceCode = "";
|
||||||
|
string childsourceBB = "";
|
||||||
|
int childsourceBC = 0;
|
||||||
|
Match namematch = Regex.Match(Path.GetFileNameWithoutExtension(sourceCode).Trim(), namepattern);
|
||||||
|
if (namematch.Success)
|
||||||
|
{
|
||||||
|
childcode = namematch.Groups[1].Value.Trim();
|
||||||
|
childname = namematch.Groups[2].Value.Trim();
|
||||||
|
}
|
||||||
|
Match match = Regex.Match(childcode, pattern);
|
||||||
|
if (match.Success)
|
||||||
|
{
|
||||||
|
childsourceCode = match.Groups[1].Value;
|
||||||
|
int.TryParse(match.Groups[2].Value, out childsourceBC);//版次
|
||||||
|
Match bbMatch = Regex.Match(childsourceCode, @"^.*?([A-Za-z]+)(\d*)$");
|
||||||
|
if (bbMatch.Success)
|
||||||
|
{
|
||||||
|
childsourceBB = bbMatch.Groups[1].Value.Trim();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
code = childsourceCode;
|
||||||
|
name = childname;
|
||||||
|
bb = childsourceBB;
|
||||||
|
bc = childsourceBC;
|
||||||
|
}
|
||||||
|
/// <summary>
|
||||||
|
/// 解析code信息
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="sourceCode"></param>
|
||||||
|
/// <param name="code"></param>
|
||||||
|
/// <param name="name"></param>
|
||||||
|
/// <param name="bb"></param>
|
||||||
|
/// <param name="bc"></param>
|
||||||
|
private bool GetOtherFileCodeInfo(string fileName, out string code, out string spec, out string name, out string extension, out string bb, out int bc)
|
||||||
|
{
|
||||||
|
string namepattern = @"^(\S+)\s+(\S*-S[A-Z][0-9]*)\s+(.+)(\.[^.]+)$";
|
||||||
|
string pattern = @"^(.*?)(\d+)?$";
|
||||||
|
var match = Regex.Match(fileName, namepattern);
|
||||||
|
code = "";
|
||||||
|
spec = "";
|
||||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,141 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||||
|
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
|
||||||
|
<PropertyGroup>
|
||||||
|
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
|
||||||
|
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
|
||||||
|
<ProjectGuid>{8C507C31-8C19-46C9-82F8-85DDCAE69190}</ProjectGuid>
|
||||||
|
<OutputType>Library</OutputType>
|
||||||
|
<RootNamespace>Lskj.PubBomImport</RootNamespace>
|
||||||
|
<AssemblyName>Lskj.PubBomImport</AssemblyName>
|
||||||
|
<TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
|
||||||
|
<FileAlignment>512</FileAlignment>
|
||||||
|
<Deterministic>true</Deterministic>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
|
||||||
|
<DebugSymbols>true</DebugSymbols>
|
||||||
|
<DebugType>full</DebugType>
|
||||||
|
<Optimize>false</Optimize>
|
||||||
|
<OutputPath>..\..\Debug\Lib\</OutputPath>
|
||||||
|
<DefineConstants>DEBUG;TRACE</DefineConstants>
|
||||||
|
<ErrorReport>prompt</ErrorReport>
|
||||||
|
<WarningLevel>4</WarningLevel>
|
||||||
|
<PlatformTarget>x86</PlatformTarget>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
|
||||||
|
<DebugType>pdbonly</DebugType>
|
||||||
|
<Optimize>true</Optimize>
|
||||||
|
<OutputPath>bin\Release\</OutputPath>
|
||||||
|
<DefineConstants>TRACE</DefineConstants>
|
||||||
|
<ErrorReport>prompt</ErrorReport>
|
||||||
|
<WarningLevel>4</WarningLevel>
|
||||||
|
</PropertyGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<Reference Include="DevExpress.Data.v15.2, Version=15.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
|
||||||
|
<Reference Include="DevExpress.Utils.v15.2, Version=15.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
|
||||||
|
<Reference Include="DevExpress.XtraEditors.v15.2, Version=15.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
|
||||||
|
<Reference Include="DevExpress.XtraPrinting.v15.2, Version=15.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
|
||||||
|
<Reference Include="DevExpress.XtraGrid.v15.2, Version=15.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
|
||||||
|
<Reference Include="DevExpress.XtraTreeList.v15.2, Version=15.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
|
||||||
|
<Reference Include="Newtonsoft.Json, Version=13.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL">
|
||||||
|
<SpecificVersion>False</SpecificVersion>
|
||||||
|
<HintPath>..\..\引用DLL\Newtonsoft.Json.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="NPOI">
|
||||||
|
<HintPath>..\..\..\引用DLL\NPOI.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="NPOI.OOXML">
|
||||||
|
<HintPath>..\..\..\引用DLL\NPOI.OOXML.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="NPOI.OpenXml4Net">
|
||||||
|
<HintPath>D:\工作\lserp_cs_6.0\引用DLL\NPOI.OpenXml4Net.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="NPOI.OpenXmlFormats">
|
||||||
|
<HintPath>D:\工作\lserp_cs_6.0\引用DLL\NPOI.OpenXmlFormats.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="System" />
|
||||||
|
<Reference Include="System.Core" />
|
||||||
|
<Reference Include="System.Web" />
|
||||||
|
<Reference Include="System.Xml.Linq" />
|
||||||
|
<Reference Include="System.Data.DataSetExtensions" />
|
||||||
|
<Reference Include="Microsoft.CSharp" />
|
||||||
|
<Reference Include="System.Data" />
|
||||||
|
<Reference Include="System.Drawing" />
|
||||||
|
<Reference Include="System.Windows.Forms" />
|
||||||
|
<Reference Include="System.Xml" />
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<Compile Include="DllBaseClass.cs" />
|
||||||
|
<Compile Include="FrmBillInfo.cs">
|
||||||
|
<SubType>UserControl</SubType>
|
||||||
|
</Compile>
|
||||||
|
<Compile Include="FrmBillInfo.Designer.cs">
|
||||||
|
<DependentUpon>FrmBillInfo.cs</DependentUpon>
|
||||||
|
</Compile>
|
||||||
|
<Compile Include="FrmMain.cs">
|
||||||
|
<SubType>Form</SubType>
|
||||||
|
</Compile>
|
||||||
|
<Compile Include="FrmMain.Designer.cs">
|
||||||
|
<DependentUpon>FrmMain.cs</DependentUpon>
|
||||||
|
</Compile>
|
||||||
|
<Compile Include="FrmProgress.cs">
|
||||||
|
<SubType>Form</SubType>
|
||||||
|
</Compile>
|
||||||
|
<Compile Include="FrmProgress.Designer.cs">
|
||||||
|
<DependentUpon>FrmProgress.cs</DependentUpon>
|
||||||
|
</Compile>
|
||||||
|
<Compile Include="Properties\AssemblyInfo.cs" />
|
||||||
|
<Compile Include="Properties\Settings.Designer.cs">
|
||||||
|
<AutoGen>True</AutoGen>
|
||||||
|
<DesignTimeSharedInput>True</DesignTimeSharedInput>
|
||||||
|
<DependentUpon>Settings.settings</DependentUpon>
|
||||||
|
</Compile>
|
||||||
|
<Service Include="{94E38DFF-614B-4cbd-B67C-F211BB35CE8B}" />
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<EmbeddedResource Include="FrmBillInfo.resx">
|
||||||
|
<DependentUpon>FrmBillInfo.cs</DependentUpon>
|
||||||
|
</EmbeddedResource>
|
||||||
|
<EmbeddedResource Include="FrmMain.resx">
|
||||||
|
<DependentUpon>FrmMain.cs</DependentUpon>
|
||||||
|
</EmbeddedResource>
|
||||||
|
<EmbeddedResource Include="FrmProgress.resx">
|
||||||
|
<DependentUpon>FrmProgress.cs</DependentUpon>
|
||||||
|
</EmbeddedResource>
|
||||||
|
<EmbeddedResource Include="Properties\licenses.licx" />
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<ProjectReference Include="..\Lskj.Business\Lskj.Business.csproj">
|
||||||
|
<Project>{7EAFCCC2-A18F-49E9-85C6-A984966CFD01}</Project>
|
||||||
|
<Name>Lskj.Business</Name>
|
||||||
|
</ProjectReference>
|
||||||
|
<ProjectReference Include="..\Lskj.Control\Lskj.Control.csproj">
|
||||||
|
<Project>{447CDC40-659F-4CCA-9ED6-8E818B4CF8BF}</Project>
|
||||||
|
<Name>Lskj.Control</Name>
|
||||||
|
</ProjectReference>
|
||||||
|
<ProjectReference Include="..\Lskj.Core\Lskj.Core.csproj">
|
||||||
|
<Project>{2A1BE6AC-1077-491B-A754-C5822FE8121E}</Project>
|
||||||
|
<Name>Lskj.Core</Name>
|
||||||
|
</ProjectReference>
|
||||||
|
<ProjectReference Include="..\Lskj.Data\Lskj.Data.csproj">
|
||||||
|
<Project>{308B9B18-9BE2-495C-9C64-EED81D567813}</Project>
|
||||||
|
<Name>Lskj.Data</Name>
|
||||||
|
</ProjectReference>
|
||||||
|
<ProjectReference Include="..\Lskj.Model\Lskj.Model.csproj">
|
||||||
|
<Project>{52BC40E0-C0C6-4F78-996B-CAE028D209CA}</Project>
|
||||||
|
<Name>Lskj.Model</Name>
|
||||||
|
</ProjectReference>
|
||||||
|
<ProjectReference Include="..\Lskj.Util\Lskj.Util.csproj">
|
||||||
|
<Project>{A51BF642-6543-4DE3-8948-83F558B72BD4}</Project>
|
||||||
|
<Name>Lskj.Util</Name>
|
||||||
|
</ProjectReference>
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<None Include="app.config" />
|
||||||
|
<None Include="Properties\Settings.settings">
|
||||||
|
<Generator>SettingsSingleFileGenerator</Generator>
|
||||||
|
<LastGenOutput>Settings.Designer.cs</LastGenOutput>
|
||||||
|
</None>
|
||||||
|
</ItemGroup>
|
||||||
|
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
|
||||||
|
</Project>
|
||||||
@@ -0,0 +1,9 @@
|
|||||||
|
using System.Reflection;
|
||||||
|
using System.Runtime.CompilerServices;
|
||||||
|
using System.Runtime.InteropServices;
|
||||||
|
|
||||||
|
// 有关程序集的一般信息由以下
|
||||||
|
// 控制。更改这些特性值可修改
|
||||||
|
// 与程序集关联的信息。
|
||||||
|
[assembly: AssemblyTitle("Lskj.PubBomImport")]
|
||||||
|
[assembly: AssemblyDe
|
||||||
@@ -0,0 +1,14 @@
|
|||||||
|
//------------------------------------------------------------------------------
|
||||||
|
// <auto-generated>
|
||||||
|
// 此代码由工具生成。
|
||||||
|
// 运行时版本:4.0.30319.42000
|
||||||
|
//
|
||||||
|
// 对此文件的更改可能会导致不正确的行为,并且如果
|
||||||
|
// 重新生成代码,这些更改将会丢失。
|
||||||
|
// </auto-generated>
|
||||||
|
//------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
namespace Lskj.PubBomImport.Properties {
|
||||||
|
|
||||||
|
|
||||||
|
[global::System.Runtime.CompilerServices.CompilerGeneratedAttrib
|
||||||
@@ -0,0 +1,9 @@
|
|||||||
|
<?xml version='1.0' encoding='utf-8'?>
|
||||||
|
<SettingsFile xmlns="http://schemas.microsoft.com/VisualStudio/2004/01/settings" CurrentProfile="(Default)" GeneratedClassNamespace="Lskj.PubBomImport.Properties" GeneratedClassName="Settings">
|
||||||
|
<Profiles />
|
||||||
|
<Settings>
|
||||||
|
<Setting Name="LastSelectFolder" Type="System.String" Scope="User">
|
||||||
|
<Value Profile="(Default)" />
|
||||||
|
</Setting>
|
||||||
|
</Settings>
|
||||||
|
</SettingsFile>
|
||||||
@@ -0,0 +1,15 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8" ?>
|
||||||
|
<configuration>
|
||||||
|
<configSections>
|
||||||
|
<sectionGroup name="userSettings" type="System.Configuration.UserSettingsGroup, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" >
|
||||||
|
<section name="Lskj.PubBomImport.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" allowExeDefinition="MachineToLocalUser" requirePermission="false" />
|
||||||
|
</sectionGroup>
|
||||||
|
</configSections>
|
||||||
|
<userSettings>
|
||||||
|
<Lskj.PubBomImport.Properties.Settings>
|
||||||
|
<setting name="LastSelectFolder" serializeAs="String">
|
||||||
|
<value />
|
||||||
|
</setting>
|
||||||
|
</Lskj.PubBomImport.Properties.Settings>
|
||||||
|
</userSettings>
|
||||||
|
</configuration>
|
||||||
Reference in New Issue
Block a user