| @ -0,0 +1,242 @@ | |||
| using System; | |||
| using System.Diagnostics; | |||
| using System.Reflection; | |||
| using System.Runtime.InteropServices; | |||
| using System.Text; | |||
| namespace BO | |||
| { | |||
| /// <summary> | |||
| /// 获取键盘输入或者USB扫描枪数据 可以是没有焦点 应为使用的是全局钩子 | |||
| /// USB扫描枪 是模拟键盘按下 | |||
| /// 这里主要处理扫描枪的值,手动输入的值不太好处理 | |||
| /// </summary> | |||
| public class BardCodeHooK | |||
| { | |||
| public delegate void BardCodeDeletegate(BarCodes barCode); | |||
| public event BardCodeDeletegate BarCodeEvent; | |||
| //定义成静态,这样不会抛出回收异常 | |||
| private static HookProc hookproc; | |||
| public struct BarCodes | |||
| { | |||
| public int VirtKey;//虚拟吗 | |||
| public int ScanCode;//扫描码 | |||
| public string KeyName;//键名 | |||
| public uint Ascll;//Ascll | |||
| public char Chr;//字符 | |||
| public string OriginalChrs; //原始 字符 | |||
| public string OriginalAsciis;//原始 ASCII | |||
| public string OriginalBarCode; //原始数据条码 | |||
| public bool IsValid;//条码是否有效 | |||
| public DateTime Time;//扫描时间, | |||
| public string BarCode;//条码信息 保存最终的条码 | |||
| } | |||
| private struct EventMsg | |||
| { | |||
| public int message; | |||
| public int paramL; | |||
| public int paramH; | |||
| public int Time; | |||
| public int hwnd; | |||
| } | |||
| [DllImport("user32.dll", CharSet = CharSet.Auto, CallingConvention = CallingConvention.StdCall)] | |||
| private static extern int SetWindowsHookEx(int idHook, HookProc lpfn, IntPtr hInstance, int threadId); | |||
| [DllImport("user32.dll", CharSet = CharSet.Auto, CallingConvention = CallingConvention.StdCall)] | |||
| private static extern bool UnhookWindowsHookEx(int idHook); | |||
| [DllImport("user32.dll", CharSet = CharSet.Auto, CallingConvention = CallingConvention.StdCall)] | |||
| private static extern int CallNextHookEx(int idHook, int nCode, Int32 wParam, IntPtr lParam); | |||
| [DllImport("user32", EntryPoint = "GetKeyNameText")] | |||
| private static extern int GetKeyNameText(int IParam, StringBuilder lpBuffer, int nSize); | |||
| [DllImport("user32", EntryPoint = "GetKeyboardState")] | |||
| private static extern int GetKeyboardState(byte[] pbKeyState); | |||
| [DllImport("user32", EntryPoint = "ToAscii")] | |||
| private static extern bool ToAscii(int VirtualKey, int ScanCode, byte[] lpKeySate, ref uint lpChar, int uFlags); | |||
| [DllImport("kernel32.dll")] | |||
| public static extern IntPtr GetModuleHandle(string name); | |||
| delegate int HookProc(int nCode, Int32 wParam, IntPtr lParam); | |||
| BarCodes barCode = new BarCodes(); | |||
| int hKeyboardHook = 0; | |||
| // string strBarCode = ""; | |||
| StringBuilder sbBarCode = new StringBuilder(); | |||
| private int KeyboardHookProc(int nCode, Int32 wParam, IntPtr lParam) | |||
| { | |||
| int i_calledNext = -10; | |||
| if (nCode == 0) | |||
| { | |||
| EventMsg msg = (EventMsg)Marshal.PtrToStructure(lParam, typeof(EventMsg)); | |||
| if (wParam == 0x100)//WM_KEYDOWN=0x100 | |||
| { | |||
| barCode.VirtKey = msg.message & 0xff;//虚拟吗 | |||
| barCode.ScanCode = msg.paramL & 0xff;//扫描码 | |||
| StringBuilder strKeyName = new StringBuilder(225); | |||
| if (GetKeyNameText(barCode.ScanCode * 65536, strKeyName, 255) > 0) | |||
| { | |||
| barCode.KeyName = strKeyName.ToString().Trim(new char[] { ' ', '\0' }); | |||
| } | |||
| else | |||
| { | |||
| barCode.KeyName = ""; | |||
| } | |||
| byte[] kbArray = new byte[256]; | |||
| uint uKey = 0; | |||
| GetKeyboardState(kbArray); | |||
| // if (barCode.KeyName.Equals("A") || barCode.KeyName.Equals("a")) | |||
| // { | |||
| if (ToAscii(barCode.VirtKey, barCode.ScanCode, kbArray, ref uKey, 0)) | |||
| { | |||
| barCode.Ascll = uKey; | |||
| barCode.Chr = Convert.ToChar(uKey); | |||
| barCode.OriginalChrs += " " + Convert.ToString(barCode.Chr); | |||
| barCode.OriginalAsciis += " " + Convert.ToString(barCode.Ascll); | |||
| barCode.OriginalBarCode += Convert.ToString(barCode.Chr); | |||
| } | |||
| // } | |||
| TimeSpan ts = DateTime.Now.Subtract(barCode.Time); | |||
| if (ts.TotalMilliseconds > 50) | |||
| {//时间戳,大于50 毫秒表示手动输入 | |||
| sbBarCode.Remove(0, sbBarCode.Length); | |||
| sbBarCode.Append(barCode.Chr.ToString()); | |||
| barCode.OriginalChrs = " " + Convert.ToString(barCode.Chr); | |||
| barCode.OriginalAsciis = " " + Convert.ToString(barCode.Ascll); | |||
| barCode.OriginalBarCode = Convert.ToString(barCode.Chr); | |||
| } | |||
| else | |||
| { | |||
| if ((msg.message & 0xff) == 13 && sbBarCode.Length > 3) | |||
| { | |||
| //回车 | |||
| barCode.BarCode = barCode.OriginalBarCode.Replace("\r","").Replace("\t",""); | |||
| barCode.IsValid = true; | |||
| sbBarCode.Remove(0, sbBarCode.Length); | |||
| } | |||
| sbBarCode.Append(barCode.Chr.ToString()); | |||
| } | |||
| try | |||
| { | |||
| if (BarCodeEvent != null && barCode.IsValid) | |||
| { | |||
| //barCode.BarCode = barCode.BarCode.Replace("\b", "").Replace("\0",""); 可以不需要 因为大于50毫秒已经处理 | |||
| //先进行 WINDOWS事件往下传 | |||
| i_calledNext = CallNextHookEx(hKeyboardHook, nCode, wParam, lParam); | |||
| BarCodeEvent(barCode);//触发事件 | |||
| barCode.BarCode = ""; | |||
| barCode.OriginalChrs = ""; | |||
| barCode.OriginalAsciis = ""; | |||
| barCode.OriginalBarCode = ""; | |||
| } | |||
| } | |||
| catch { } | |||
| finally | |||
| { | |||
| barCode.IsValid = false; //最后一定要 设置barCode无效 | |||
| barCode.Time = DateTime.Now; | |||
| } | |||
| } | |||
| } | |||
| if (i_calledNext == -10) | |||
| { | |||
| i_calledNext = CallNextHookEx(hKeyboardHook, nCode, wParam, lParam); | |||
| } | |||
| return i_calledNext; | |||
| } | |||
| //安装钩子 | |||
| public bool Start() | |||
| { | |||
| if (hKeyboardHook == 0) | |||
| { | |||
| hookproc = new HookProc(KeyboardHookProc); | |||
| //GetModuleHandle 函数 替代 Marshal.GetHINSTANCE | |||
| //防止在 framework4.0中 注册钩子不成功 | |||
| var moduleName1 = Process.GetCurrentProcess().MainModule.ModuleName; | |||
| var moduleName = Assembly.GetExecutingAssembly().ManifestModule.Name; | |||
| IntPtr modulePtr = GetModuleHandle(moduleName1); | |||
| //WH_KEYBOARD_LL=13 | |||
| //全局钩子 WH_KEYBOARD_LL | |||
| // hKeyboardHook = SetWindowsHookEx(13, hookproc, Marshal.GetHINSTANCE(Assembly.GetExecutingAssembly().GetModules()[0]), 0); | |||
| hKeyboardHook = SetWindowsHookEx(13, hookproc, modulePtr, 0); | |||
| } | |||
| return (hKeyboardHook != 0); | |||
| } | |||
| //卸载钩子 | |||
| public bool Stop() | |||
| { | |||
| if (hKeyboardHook != 0) | |||
| { | |||
| return UnhookWindowsHookEx(hKeyboardHook); | |||
| } | |||
| return true; | |||
| } | |||
| } | |||
| } | |||
| @ -0,0 +1,36 @@ | |||
| using System.Reflection; | |||
| using System.Runtime.CompilerServices; | |||
| using System.Runtime.InteropServices; | |||
| // 有关程序集的一般信息由以下 | |||
| // 控制。更改这些特性值可修改 | |||
| // 与程序集关联的信息。 | |||
| [assembly: AssemblyTitle("SegmentationInStore")] | |||
| [assembly: AssemblyDescription("")] | |||
| [assembly: AssemblyConfiguration("")] | |||
| [assembly: AssemblyCompany("")] | |||
| [assembly: AssemblyProduct("SegmentationInStore")] | |||
| [assembly: AssemblyCopyright("Copyright © 2017")] | |||
| [assembly: AssemblyTrademark("")] | |||
| [assembly: AssemblyCulture("")] | |||
| //将 ComVisible 设置为 false 将使此程序集中的类型 | |||
| //对 COM 组件不可见。 如果需要从 COM 访问此程序集中的类型, | |||
| //请将此类型的 ComVisible 特性设置为 true。 | |||
| [assembly: ComVisible(false)] | |||
| // 如果此项目向 COM 公开,则下列 GUID 用于类型库的 ID | |||
| [assembly: Guid("7528b945-c2cc-4266-83bd-d2214140c4bd")] | |||
| // 程序集的版本信息由下列四个值组成: | |||
| // | |||
| // 主版本 | |||
| // 次版本 | |||
| // 生成号 | |||
| // 修订号 | |||
| // | |||
| //可以指定所有这些值,也可以使用“生成号”和“修订号”的默认值, | |||
| // 方法是按如下所示使用“*”: : | |||
| // [assembly: AssemblyVersion("1.0.*")] | |||
| [assembly: AssemblyVersion("1.0.0.0")] | |||
| [assembly: AssemblyFileVersion("1.0.0.0")] | |||
| @ -0,0 +1,19 @@ | |||
| using System; | |||
| namespace SegmentationInStore.Rpc.Dto | |||
| { | |||
| public class SegmentationInStoreDto | |||
| { | |||
| public long ID { get; set; } | |||
| public string BarCode { get; set; } | |||
| public long Goods_ID { get; set; } | |||
| public string Goods_Name { get; set; } | |||
| public string Goods_Spec { get; set; } | |||
| public decimal Weight { get; set; } | |||
| public DateTime CreateTime { get; set; } | |||
| public long? Store_ID { get; set; } | |||
| public string Store_Name { get; set; } | |||
| } | |||
| } | |||
| @ -0,0 +1,20 @@ | |||
| namespace SegmentationInStore.Rpc.Dto | |||
| { | |||
| public class SegmentationWeightRecord | |||
| { | |||
| public long ID { get; set; } | |||
| public string BarCode { get; set; }//条码 | |||
| public long Goods_ID { get; set; } | |||
| public string Goods_Name { get; set; } | |||
| public string Goods_Spec { get; set; } | |||
| public decimal PiWeight { get; set; }//皮重 | |||
| public decimal MaoWeight { get; set; }//毛重 | |||
| public decimal JingWeight { get; set; }//净重 | |||
| public string CardBarCode{ get; set; }//放产品的车的条码 | |||
| public string BiaoShi { get; set; }//用来记录那个工作台或者哪台触摸屏做的 | |||
| } | |||
| } | |||
| @ -0,0 +1,23 @@ | |||
| using System; | |||
| using System.Collections.Generic; | |||
| using System.Linq; | |||
| using System.Text; | |||
| using System.Threading.Tasks; | |||
| using SegmentationInStore.Rpc.Dto; | |||
| namespace SegmentationInStore.Rpc | |||
| { | |||
| public static class Ext | |||
| { | |||
| public static SegmentationInStoreDto EToSegmentationInStore(this SegmentationWeightRecord record) | |||
| { | |||
| var instore=new SegmentationInStoreDto(); | |||
| instore.BarCode = record.BarCode; | |||
| instore.Goods_ID = record.Goods_ID; | |||
| instore.Goods_Name = record.Goods_Name; | |||
| instore.Goods_Spec = record.Goods_Spec; | |||
| instore.Weight = record.JingWeight; | |||
| return instore; | |||
| } | |||
| } | |||
| } | |||
| @ -0,0 +1,40 @@ | |||
| using System.Collections.Generic; | |||
| using Forks.JsonRpc.Client; | |||
| using Newtonsoft.Json; | |||
| using SegmentationInStore.Rpc.Dto; | |||
| namespace SegmentationInStore.Rpc | |||
| { | |||
| public class SegmentationInStoreRpc | |||
| { | |||
| /// <summary> | |||
| /// 获取所有未扫码的 | |||
| /// </summary> | |||
| /// <returns></returns> | |||
| public static List<SegmentationWeightRecord> GetNotInStoreList() | |||
| { | |||
| var json = RpcFacade.Call<string>("/MainSystem/B3ClientService/Rpcs/BillRpc/SegmentationWeightRecordRpc/GetNotInStoreList"); | |||
| var list= JsonConvert.DeserializeObject<List<SegmentationWeightRecord>>(json); | |||
| return list; | |||
| } | |||
| /// <summary> | |||
| /// 获取所有未扫码的 | |||
| /// </summary> | |||
| /// <returns></returns> | |||
| public static List<SegmentationWeightRecord> GetNotInStoreListByMaxId(long id) | |||
| { | |||
| var json = RpcFacade.Call<string>("/MainSystem/B3ClientService/Rpcs/BillRpc/SegmentationWeightRecordRpc/GetNotInStoreListByMaxId",id); | |||
| var list= JsonConvert.DeserializeObject<List<SegmentationWeightRecord>>(json); | |||
| return list; | |||
| } | |||
| /// <summary> | |||
| /// 添加入库记录 | |||
| /// </summary> | |||
| public static long Insert(SegmentationInStoreDto instore) | |||
| { | |||
| var json = JsonConvert.SerializeObject(instore); | |||
| return RpcFacade.Call<long>("/MainSystem/B3ClientService/Rpcs/BillRpc/SegmentationInStoreRecordRpc/Insert", json); | |||
| } | |||
| } | |||
| } | |||
| @ -0,0 +1,89 @@ | |||
| <?xml version="1.0" encoding="utf-8"?> | |||
| <Project ToolsVersion="14.0" DefaultTargets="Build" 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>{7528B945-C2CC-4266-83BD-D2214140C4BD}</ProjectGuid> | |||
| <OutputType>Library</OutputType> | |||
| <AppDesignerFolder>Properties</AppDesignerFolder> | |||
| <RootNamespace>SegmentationInStore</RootNamespace> | |||
| <AssemblyName>SegmentationInStore</AssemblyName> | |||
| <TargetFrameworkVersion>v4.5</TargetFrameworkVersion> | |||
| <FileAlignment>512</FileAlignment> | |||
| </PropertyGroup> | |||
| <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' "> | |||
| <DebugSymbols>true</DebugSymbols> | |||
| <DebugType>full</DebugType> | |||
| <Optimize>false</Optimize> | |||
| <OutputPath>bin\Debug\</OutputPath> | |||
| <DefineConstants>DEBUG;TRACE</DefineConstants> | |||
| <ErrorReport>prompt</ErrorReport> | |||
| <WarningLevel>4</WarningLevel> | |||
| </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="Forks.JsonRpc.Client, Version=1.0.0.0, Culture=neutral, PublicKeyToken=7254430f49d10aae, processorArchitecture=MSIL" /> | |||
| <Reference Include="Newtonsoft.Json, Version=4.0.3.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL"> | |||
| <SpecificVersion>False</SpecificVersion> | |||
| <HintPath>..\..\..\tsref\Debug\Newtonsoft.Json.dll</HintPath> | |||
| </Reference> | |||
| <Reference Include="PresentationCore" /> | |||
| <Reference Include="PresentationFramework" /> | |||
| <Reference Include="System" /> | |||
| <Reference Include="System.Core" /> | |||
| <Reference Include="System.Drawing" /> | |||
| <Reference Include="System.Windows.Forms" /> | |||
| <Reference Include="System.Xaml" /> | |||
| <Reference Include="System.Xml.Linq" /> | |||
| <Reference Include="System.Data.DataSetExtensions" /> | |||
| <Reference Include="Microsoft.CSharp" /> | |||
| <Reference Include="System.Data" /> | |||
| <Reference Include="System.Net.Http" /> | |||
| <Reference Include="System.Xml" /> | |||
| <Reference Include="WindowsBase" /> | |||
| </ItemGroup> | |||
| <ItemGroup> | |||
| <Compile Include="Rpc\Dto\SegmentationInStoreDto.cs" /> | |||
| <Compile Include="Rpc\Dto\SegmentationWeightRecord.cs" /> | |||
| <Compile Include="Rpc\Ext.cs" /> | |||
| <Compile Include="Rpc\SegmentationInStoreRpc.cs" /> | |||
| <Compile Include="Properties\AssemblyInfo.cs" /> | |||
| <Compile Include="SegmentationInStoreForm.cs"> | |||
| <SubType>Form</SubType> | |||
| </Compile> | |||
| <Compile Include="SegmentationInStoreForm.Designer.cs"> | |||
| <DependentUpon>SegmentationInStoreForm.cs</DependentUpon> | |||
| </Compile> | |||
| </ItemGroup> | |||
| <ItemGroup> | |||
| <EmbeddedResource Include="SegmentationInStoreForm.resx"> | |||
| <DependentUpon>SegmentationInStoreForm.cs</DependentUpon> | |||
| </EmbeddedResource> | |||
| </ItemGroup> | |||
| <ItemGroup> | |||
| <ProjectReference Include="..\BO\BO.csproj"> | |||
| <Project>{8968f14a-c7c7-4751-96ce-b114fbfd65ef}</Project> | |||
| <Name>BO</Name> | |||
| </ProjectReference> | |||
| <ProjectReference Include="..\BWP.WinFormControl\BWP.WinFormControl.csproj"> | |||
| <Project>{A782B23E-BE6D-4F51-B5CB-5CD259BA97CC}</Project> | |||
| <Name>BWP.WinFormControl</Name> | |||
| </ProjectReference> | |||
| </ItemGroup> | |||
| <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" /> | |||
| <!-- To modify your build process, add your task inside one of the targets below and uncomment it. | |||
| Other similar extension points exist, see Microsoft.Common.targets. | |||
| <Target Name="BeforeBuild"> | |||
| </Target> | |||
| <Target Name="AfterBuild"> | |||
| </Target> | |||
| --> | |||
| </Project> | |||
| @ -0,0 +1,524 @@ | |||
| namespace SegmentationInStore | |||
| { | |||
| partial class SegmentationInStoreForm | |||
| { | |||
| /// <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.components = new System.ComponentModel.Container(); | |||
| System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle1 = new System.Windows.Forms.DataGridViewCellStyle(); | |||
| System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle2 = new System.Windows.Forms.DataGridViewCellStyle(); | |||
| System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle4 = new System.Windows.Forms.DataGridViewCellStyle(); | |||
| System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle5 = new System.Windows.Forms.DataGridViewCellStyle(); | |||
| System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle6 = new System.Windows.Forms.DataGridViewCellStyle(); | |||
| System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle9 = new System.Windows.Forms.DataGridViewCellStyle(); | |||
| System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle10 = new System.Windows.Forms.DataGridViewCellStyle(); | |||
| System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle11 = new System.Windows.Forms.DataGridViewCellStyle(); | |||
| System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle14 = new System.Windows.Forms.DataGridViewCellStyle(); | |||
| System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle12 = new System.Windows.Forms.DataGridViewCellStyle(); | |||
| System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle13 = new System.Windows.Forms.DataGridViewCellStyle(); | |||
| System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle7 = new System.Windows.Forms.DataGridViewCellStyle(); | |||
| System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle8 = new System.Windows.Forms.DataGridViewCellStyle(); | |||
| System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle3 = new System.Windows.Forms.DataGridViewCellStyle(); | |||
| this.splitContainer1 = new System.Windows.Forms.SplitContainer(); | |||
| this.splitContainer2 = new System.Windows.Forms.SplitContainer(); | |||
| this.groupBox2 = new System.Windows.Forms.GroupBox(); | |||
| this.gridUnSubmit = new BWP.WinFormControl.UDataGridView(); | |||
| this.groupBox1 = new System.Windows.Forms.GroupBox(); | |||
| this.gridUnScan = new BWP.WinFormControl.UDataGridView(); | |||
| this.groupBox4 = new System.Windows.Forms.GroupBox(); | |||
| this.groupBox3 = new System.Windows.Forms.GroupBox(); | |||
| this.gridSubmited = new BWP.WinFormControl.UDataGridView(); | |||
| this.button1 = new System.Windows.Forms.Button(); | |||
| this.uComboBox1 = new BWP.WinFormControl.UComboBox(); | |||
| this.label1 = new System.Windows.Forms.Label(); | |||
| this.timerSyncUnScan = new System.Windows.Forms.Timer(this.components); | |||
| this.timerUpload = new System.Windows.Forms.Timer(this.components); | |||
| this.submited序号 = new System.Windows.Forms.DataGridViewTextBoxColumn(); | |||
| this.submited条码 = new System.Windows.Forms.DataGridViewTextBoxColumn(); | |||
| this.submited产品 = new System.Windows.Forms.DataGridViewTextBoxColumn(); | |||
| this.submited重量 = new System.Windows.Forms.DataGridViewTextBoxColumn(); | |||
| this.submited仓库 = new System.Windows.Forms.DataGridViewTextBoxColumn(); | |||
| this.submited日期 = new System.Windows.Forms.DataGridViewTextBoxColumn(); | |||
| this.unscan序号 = new System.Windows.Forms.DataGridViewTextBoxColumn(); | |||
| this.unscan条码 = new System.Windows.Forms.DataGridViewTextBoxColumn(); | |||
| this.unscan产品 = new System.Windows.Forms.DataGridViewTextBoxColumn(); | |||
| this.unscan重量 = new System.Windows.Forms.DataGridViewTextBoxColumn(); | |||
| this.unscan日期 = new System.Windows.Forms.DataGridViewTextBoxColumn(); | |||
| this.unsubmit条码 = new System.Windows.Forms.DataGridViewTextBoxColumn(); | |||
| this.unsubmit产品 = new System.Windows.Forms.DataGridViewTextBoxColumn(); | |||
| this.unsubmit重量 = new System.Windows.Forms.DataGridViewTextBoxColumn(); | |||
| this.unsubmit仓库 = new System.Windows.Forms.DataGridViewTextBoxColumn(); | |||
| ((System.ComponentModel.ISupportInitialize)(this.splitContainer1)).BeginInit(); | |||
| this.splitContainer1.Panel2.SuspendLayout(); | |||
| this.splitContainer1.SuspendLayout(); | |||
| ((System.ComponentModel.ISupportInitialize)(this.splitContainer2)).BeginInit(); | |||
| this.splitContainer2.Panel1.SuspendLayout(); | |||
| this.splitContainer2.Panel2.SuspendLayout(); | |||
| this.splitContainer2.SuspendLayout(); | |||
| this.groupBox2.SuspendLayout(); | |||
| ((System.ComponentModel.ISupportInitialize)(this.gridUnSubmit)).BeginInit(); | |||
| this.groupBox1.SuspendLayout(); | |||
| ((System.ComponentModel.ISupportInitialize)(this.gridUnScan)).BeginInit(); | |||
| this.groupBox3.SuspendLayout(); | |||
| ((System.ComponentModel.ISupportInitialize)(this.gridSubmited)).BeginInit(); | |||
| this.SuspendLayout(); | |||
| // | |||
| // splitContainer1 | |||
| // | |||
| this.splitContainer1.Dock = System.Windows.Forms.DockStyle.Fill; | |||
| this.splitContainer1.FixedPanel = System.Windows.Forms.FixedPanel.Panel1; | |||
| this.splitContainer1.Location = new System.Drawing.Point(0, 0); | |||
| this.splitContainer1.Name = "splitContainer1"; | |||
| this.splitContainer1.Orientation = System.Windows.Forms.Orientation.Horizontal; | |||
| // | |||
| // splitContainer1.Panel2 | |||
| // | |||
| this.splitContainer1.Panel2.Controls.Add(this.splitContainer2); | |||
| this.splitContainer1.Size = new System.Drawing.Size(1031, 558); | |||
| this.splitContainer1.SplitterDistance = 25; | |||
| this.splitContainer1.TabIndex = 0; | |||
| // | |||
| // splitContainer2 | |||
| // | |||
| this.splitContainer2.Dock = System.Windows.Forms.DockStyle.Fill; | |||
| this.splitContainer2.Location = new System.Drawing.Point(0, 0); | |||
| this.splitContainer2.Name = "splitContainer2"; | |||
| // | |||
| // splitContainer2.Panel1 | |||
| // | |||
| this.splitContainer2.Panel1.Controls.Add(this.groupBox2); | |||
| this.splitContainer2.Panel1.Controls.Add(this.groupBox1); | |||
| // | |||
| // splitContainer2.Panel2 | |||
| // | |||
| this.splitContainer2.Panel2.Controls.Add(this.groupBox4); | |||
| this.splitContainer2.Panel2.Controls.Add(this.groupBox3); | |||
| this.splitContainer2.Panel2.Controls.Add(this.button1); | |||
| this.splitContainer2.Panel2.Controls.Add(this.uComboBox1); | |||
| this.splitContainer2.Panel2.Controls.Add(this.label1); | |||
| this.splitContainer2.Size = new System.Drawing.Size(1031, 529); | |||
| this.splitContainer2.SplitterDistance = 467; | |||
| this.splitContainer2.TabIndex = 0; | |||
| // | |||
| // groupBox2 | |||
| // | |||
| this.groupBox2.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left) | |||
| | System.Windows.Forms.AnchorStyles.Right))); | |||
| this.groupBox2.Controls.Add(this.gridUnSubmit); | |||
| this.groupBox2.Location = new System.Drawing.Point(4, 313); | |||
| this.groupBox2.Name = "groupBox2"; | |||
| this.groupBox2.Size = new System.Drawing.Size(460, 213); | |||
| this.groupBox2.TabIndex = 1; | |||
| this.groupBox2.TabStop = false; | |||
| this.groupBox2.Text = "等待提交产品"; | |||
| // | |||
| // gridUnSubmit | |||
| // | |||
| this.gridUnSubmit.AllowUserToAddRows = false; | |||
| this.gridUnSubmit.AllowUserToDeleteRows = false; | |||
| this.gridUnSubmit.AllowUserToResizeColumns = false; | |||
| this.gridUnSubmit.AllowUserToResizeRows = false; | |||
| dataGridViewCellStyle1.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(235)))), ((int)(((byte)(235)))), ((int)(((byte)(235))))); | |||
| this.gridUnSubmit.AlternatingRowsDefaultCellStyle = dataGridViewCellStyle1; | |||
| this.gridUnSubmit.BackgroundColor = System.Drawing.Color.White; | |||
| dataGridViewCellStyle2.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft; | |||
| dataGridViewCellStyle2.BackColor = System.Drawing.SystemColors.Control; | |||
| dataGridViewCellStyle2.Font = new System.Drawing.Font("宋体", 12F); | |||
| dataGridViewCellStyle2.ForeColor = System.Drawing.SystemColors.WindowText; | |||
| dataGridViewCellStyle2.SelectionBackColor = System.Drawing.SystemColors.Highlight; | |||
| dataGridViewCellStyle2.SelectionForeColor = System.Drawing.SystemColors.HighlightText; | |||
| dataGridViewCellStyle2.WrapMode = System.Windows.Forms.DataGridViewTriState.True; | |||
| this.gridUnSubmit.ColumnHeadersDefaultCellStyle = dataGridViewCellStyle2; | |||
| this.gridUnSubmit.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize; | |||
| this.gridUnSubmit.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] { | |||
| this.unsubmit条码, | |||
| this.unsubmit产品, | |||
| this.unsubmit重量, | |||
| this.unsubmit仓库}); | |||
| this.gridUnSubmit.Dock = System.Windows.Forms.DockStyle.Fill; | |||
| this.gridUnSubmit.Location = new System.Drawing.Point(3, 17); | |||
| this.gridUnSubmit.MultiSelect = false; | |||
| this.gridUnSubmit.Name = "gridUnSubmit"; | |||
| this.gridUnSubmit.ReadOnly = true; | |||
| this.gridUnSubmit.RowHeadersVisible = false; | |||
| dataGridViewCellStyle4.Font = new System.Drawing.Font("宋体", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); | |||
| dataGridViewCellStyle4.SelectionBackColor = System.Drawing.Color.FromArgb(((int)(((byte)(66)))), ((int)(((byte)(163)))), ((int)(((byte)(218))))); | |||
| this.gridUnSubmit.RowsDefaultCellStyle = dataGridViewCellStyle4; | |||
| this.gridUnSubmit.RowTemplate.Height = 23; | |||
| this.gridUnSubmit.SelectionMode = System.Windows.Forms.DataGridViewSelectionMode.FullRowSelect; | |||
| this.gridUnSubmit.Size = new System.Drawing.Size(454, 193); | |||
| this.gridUnSubmit.TabIndex = 1; | |||
| // | |||
| // groupBox1 | |||
| // | |||
| this.groupBox1.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) | |||
| | System.Windows.Forms.AnchorStyles.Left) | |||
| | System.Windows.Forms.AnchorStyles.Right))); | |||
| this.groupBox1.Controls.Add(this.gridUnScan); | |||
| this.groupBox1.Location = new System.Drawing.Point(4, 4); | |||
| this.groupBox1.Name = "groupBox1"; | |||
| this.groupBox1.Size = new System.Drawing.Size(460, 302); | |||
| this.groupBox1.TabIndex = 0; | |||
| this.groupBox1.TabStop = false; | |||
| this.groupBox1.Text = "未扫码产品"; | |||
| // | |||
| // gridUnScan | |||
| // | |||
| this.gridUnScan.AllowUserToAddRows = false; | |||
| this.gridUnScan.AllowUserToDeleteRows = false; | |||
| this.gridUnScan.AllowUserToResizeColumns = false; | |||
| this.gridUnScan.AllowUserToResizeRows = false; | |||
| dataGridViewCellStyle5.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(235)))), ((int)(((byte)(235)))), ((int)(((byte)(235))))); | |||
| this.gridUnScan.AlternatingRowsDefaultCellStyle = dataGridViewCellStyle5; | |||
| this.gridUnScan.BackgroundColor = System.Drawing.Color.White; | |||
| dataGridViewCellStyle6.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft; | |||
| dataGridViewCellStyle6.BackColor = System.Drawing.SystemColors.Control; | |||
| dataGridViewCellStyle6.Font = new System.Drawing.Font("宋体", 12F); | |||
| dataGridViewCellStyle6.ForeColor = System.Drawing.SystemColors.WindowText; | |||
| dataGridViewCellStyle6.SelectionBackColor = System.Drawing.SystemColors.Highlight; | |||
| dataGridViewCellStyle6.SelectionForeColor = System.Drawing.SystemColors.HighlightText; | |||
| dataGridViewCellStyle6.WrapMode = System.Windows.Forms.DataGridViewTriState.True; | |||
| this.gridUnScan.ColumnHeadersDefaultCellStyle = dataGridViewCellStyle6; | |||
| this.gridUnScan.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize; | |||
| this.gridUnScan.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] { | |||
| this.unscan序号, | |||
| this.unscan条码, | |||
| this.unscan产品, | |||
| this.unscan重量, | |||
| this.unscan日期}); | |||
| this.gridUnScan.Dock = System.Windows.Forms.DockStyle.Fill; | |||
| this.gridUnScan.Location = new System.Drawing.Point(3, 17); | |||
| this.gridUnScan.MultiSelect = false; | |||
| this.gridUnScan.Name = "gridUnScan"; | |||
| this.gridUnScan.ReadOnly = true; | |||
| this.gridUnScan.RowHeadersVisible = false; | |||
| dataGridViewCellStyle9.Font = new System.Drawing.Font("宋体", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); | |||
| dataGridViewCellStyle9.SelectionBackColor = System.Drawing.Color.FromArgb(((int)(((byte)(66)))), ((int)(((byte)(163)))), ((int)(((byte)(218))))); | |||
| this.gridUnScan.RowsDefaultCellStyle = dataGridViewCellStyle9; | |||
| this.gridUnScan.RowTemplate.Height = 23; | |||
| this.gridUnScan.SelectionMode = System.Windows.Forms.DataGridViewSelectionMode.FullRowSelect; | |||
| this.gridUnScan.Size = new System.Drawing.Size(454, 282); | |||
| this.gridUnScan.TabIndex = 0; | |||
| // | |||
| // groupBox4 | |||
| // | |||
| this.groupBox4.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left) | |||
| | System.Windows.Forms.AnchorStyles.Right))); | |||
| this.groupBox4.Location = new System.Drawing.Point(4, 324); | |||
| this.groupBox4.Name = "groupBox4"; | |||
| this.groupBox4.Size = new System.Drawing.Size(553, 205); | |||
| this.groupBox4.TabIndex = 4; | |||
| this.groupBox4.TabStop = false; | |||
| this.groupBox4.Text = "最近异常记录"; | |||
| // | |||
| // groupBox3 | |||
| // | |||
| this.groupBox3.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) | |||
| | System.Windows.Forms.AnchorStyles.Left) | |||
| | System.Windows.Forms.AnchorStyles.Right))); | |||
| this.groupBox3.Controls.Add(this.gridSubmited); | |||
| this.groupBox3.Location = new System.Drawing.Point(4, 47); | |||
| this.groupBox3.Name = "groupBox3"; | |||
| this.groupBox3.Size = new System.Drawing.Size(553, 259); | |||
| this.groupBox3.TabIndex = 3; | |||
| this.groupBox3.TabStop = false; | |||
| this.groupBox3.Text = "已提交产品"; | |||
| // | |||
| // gridSubmited | |||
| // | |||
| this.gridSubmited.AllowUserToAddRows = false; | |||
| this.gridSubmited.AllowUserToDeleteRows = false; | |||
| this.gridSubmited.AllowUserToResizeColumns = false; | |||
| this.gridSubmited.AllowUserToResizeRows = false; | |||
| dataGridViewCellStyle10.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(235)))), ((int)(((byte)(235)))), ((int)(((byte)(235))))); | |||
| this.gridSubmited.AlternatingRowsDefaultCellStyle = dataGridViewCellStyle10; | |||
| this.gridSubmited.BackgroundColor = System.Drawing.Color.White; | |||
| dataGridViewCellStyle11.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft; | |||
| dataGridViewCellStyle11.BackColor = System.Drawing.SystemColors.Control; | |||
| dataGridViewCellStyle11.Font = new System.Drawing.Font("宋体", 12F); | |||
| dataGridViewCellStyle11.ForeColor = System.Drawing.SystemColors.WindowText; | |||
| dataGridViewCellStyle11.SelectionBackColor = System.Drawing.SystemColors.Highlight; | |||
| dataGridViewCellStyle11.SelectionForeColor = System.Drawing.SystemColors.HighlightText; | |||
| dataGridViewCellStyle11.WrapMode = System.Windows.Forms.DataGridViewTriState.True; | |||
| this.gridSubmited.ColumnHeadersDefaultCellStyle = dataGridViewCellStyle11; | |||
| this.gridSubmited.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize; | |||
| this.gridSubmited.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] { | |||
| this.submited序号, | |||
| this.submited条码, | |||
| this.submited产品, | |||
| this.submited重量, | |||
| this.submited仓库, | |||
| this.submited日期}); | |||
| this.gridSubmited.Dock = System.Windows.Forms.DockStyle.Fill; | |||
| this.gridSubmited.Location = new System.Drawing.Point(3, 17); | |||
| this.gridSubmited.MultiSelect = false; | |||
| this.gridSubmited.Name = "gridSubmited"; | |||
| this.gridSubmited.ReadOnly = true; | |||
| this.gridSubmited.RowHeadersVisible = false; | |||
| dataGridViewCellStyle14.Font = new System.Drawing.Font("宋体", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); | |||
| dataGridViewCellStyle14.SelectionBackColor = System.Drawing.Color.FromArgb(((int)(((byte)(66)))), ((int)(((byte)(163)))), ((int)(((byte)(218))))); | |||
| this.gridSubmited.RowsDefaultCellStyle = dataGridViewCellStyle14; | |||
| this.gridSubmited.RowTemplate.Height = 23; | |||
| this.gridSubmited.SelectionMode = System.Windows.Forms.DataGridViewSelectionMode.FullRowSelect; | |||
| this.gridSubmited.Size = new System.Drawing.Size(547, 239); | |||
| this.gridSubmited.TabIndex = 1; | |||
| // | |||
| // button1 | |||
| // | |||
| this.button1.Location = new System.Drawing.Point(262, 14); | |||
| this.button1.Name = "button1"; | |||
| this.button1.Size = new System.Drawing.Size(89, 23); | |||
| this.button1.TabIndex = 2; | |||
| this.button1.Text = "同步数据"; | |||
| this.button1.UseVisualStyleBackColor = true; | |||
| // | |||
| // uComboBox1 | |||
| // | |||
| this.uComboBox1.CodeArgs = null; | |||
| this.uComboBox1.DrawMode = System.Windows.Forms.DrawMode.OwnerDrawFixed; | |||
| this.uComboBox1.EnableTopItem = true; | |||
| this.uComboBox1.FormattingEnabled = true; | |||
| this.uComboBox1.Location = new System.Drawing.Point(97, 14); | |||
| this.uComboBox1.Name = "uComboBox1"; | |||
| this.uComboBox1.Range = 10; | |||
| this.uComboBox1.Size = new System.Drawing.Size(140, 22); | |||
| this.uComboBox1.TabIndex = 1; | |||
| // | |||
| // label1 | |||
| // | |||
| this.label1.AutoSize = true; | |||
| this.label1.Location = new System.Drawing.Point(26, 19); | |||
| this.label1.Name = "label1"; | |||
| this.label1.Size = new System.Drawing.Size(65, 12); | |||
| this.label1.TabIndex = 0; | |||
| this.label1.Text = "入库仓库:"; | |||
| // | |||
| // timerSyncUnScan | |||
| // | |||
| this.timerSyncUnScan.Enabled = true; | |||
| this.timerSyncUnScan.Interval = 1000; | |||
| this.timerSyncUnScan.Tick += new System.EventHandler(this.timerSyncUnScan_Tick); | |||
| // | |||
| // timerUpload | |||
| // | |||
| this.timerUpload.Enabled = true; | |||
| this.timerUpload.Interval = 1000; | |||
| this.timerUpload.Tick += new System.EventHandler(this.timerUpload_Tick); | |||
| // | |||
| // submited序号 | |||
| // | |||
| this.submited序号.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.DisplayedCells; | |||
| this.submited序号.DataPropertyName = "ID"; | |||
| this.submited序号.HeaderText = "序号"; | |||
| this.submited序号.Name = "submited序号"; | |||
| this.submited序号.ReadOnly = true; | |||
| this.submited序号.Width = 65; | |||
| // | |||
| // submited条码 | |||
| // | |||
| this.submited条码.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.DisplayedCells; | |||
| this.submited条码.DataPropertyName = "BarCode"; | |||
| this.submited条码.HeaderText = "条码"; | |||
| this.submited条码.Name = "submited条码"; | |||
| this.submited条码.ReadOnly = true; | |||
| this.submited条码.Width = 65; | |||
| // | |||
| // submited产品 | |||
| // | |||
| this.submited产品.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.Fill; | |||
| this.submited产品.DataPropertyName = "Goods_Name"; | |||
| this.submited产品.HeaderText = "产品"; | |||
| this.submited产品.Name = "submited产品"; | |||
| this.submited产品.ReadOnly = true; | |||
| // | |||
| // submited重量 | |||
| // | |||
| this.submited重量.DataPropertyName = "Weight"; | |||
| dataGridViewCellStyle12.Format = "N2"; | |||
| dataGridViewCellStyle12.NullValue = null; | |||
| this.submited重量.DefaultCellStyle = dataGridViewCellStyle12; | |||
| this.submited重量.HeaderText = "重量"; | |||
| this.submited重量.Name = "submited重量"; | |||
| this.submited重量.ReadOnly = true; | |||
| // | |||
| // submited仓库 | |||
| // | |||
| this.submited仓库.DataPropertyName = "Store_Name"; | |||
| this.submited仓库.HeaderText = "仓库"; | |||
| this.submited仓库.Name = "submited仓库"; | |||
| this.submited仓库.ReadOnly = true; | |||
| // | |||
| // submited日期 | |||
| // | |||
| this.submited日期.DataPropertyName = "CreateTime"; | |||
| dataGridViewCellStyle13.Format = "F"; | |||
| dataGridViewCellStyle13.NullValue = null; | |||
| this.submited日期.DefaultCellStyle = dataGridViewCellStyle13; | |||
| this.submited日期.HeaderText = "日期"; | |||
| this.submited日期.Name = "submited日期"; | |||
| this.submited日期.ReadOnly = true; | |||
| // | |||
| // unscan序号 | |||
| // | |||
| this.unscan序号.DataPropertyName = "ID"; | |||
| this.unscan序号.HeaderText = "序号"; | |||
| this.unscan序号.Name = "unscan序号"; | |||
| this.unscan序号.ReadOnly = true; | |||
| // | |||
| // unscan条码 | |||
| // | |||
| this.unscan条码.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.Fill; | |||
| this.unscan条码.DataPropertyName = "BarCode"; | |||
| this.unscan条码.HeaderText = "条码"; | |||
| this.unscan条码.Name = "unscan条码"; | |||
| this.unscan条码.ReadOnly = true; | |||
| // | |||
| // unscan产品 | |||
| // | |||
| this.unscan产品.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.DisplayedCells; | |||
| this.unscan产品.DataPropertyName = "Goods_Name"; | |||
| this.unscan产品.HeaderText = "产品"; | |||
| this.unscan产品.Name = "unscan产品"; | |||
| this.unscan产品.ReadOnly = true; | |||
| this.unscan产品.Width = 65; | |||
| // | |||
| // unscan重量 | |||
| // | |||
| this.unscan重量.DataPropertyName = "JingWeight"; | |||
| dataGridViewCellStyle7.Format = "N2"; | |||
| this.unscan重量.DefaultCellStyle = dataGridViewCellStyle7; | |||
| this.unscan重量.HeaderText = "重量"; | |||
| this.unscan重量.Name = "unscan重量"; | |||
| this.unscan重量.ReadOnly = true; | |||
| // | |||
| // unscan日期 | |||
| // | |||
| this.unscan日期.DataPropertyName = "CreateTime"; | |||
| dataGridViewCellStyle8.Format = "F"; | |||
| dataGridViewCellStyle8.NullValue = null; | |||
| this.unscan日期.DefaultCellStyle = dataGridViewCellStyle8; | |||
| this.unscan日期.HeaderText = "日期"; | |||
| this.unscan日期.Name = "unscan日期"; | |||
| this.unscan日期.ReadOnly = true; | |||
| // | |||
| // unsubmit条码 | |||
| // | |||
| this.unsubmit条码.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.DisplayedCells; | |||
| this.unsubmit条码.DataPropertyName = "BarCode"; | |||
| this.unsubmit条码.HeaderText = "条码"; | |||
| this.unsubmit条码.Name = "unsubmit条码"; | |||
| this.unsubmit条码.ReadOnly = true; | |||
| this.unsubmit条码.Width = 65; | |||
| // | |||
| // unsubmit产品 | |||
| // | |||
| this.unsubmit产品.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.Fill; | |||
| this.unsubmit产品.DataPropertyName = "Goods_Name"; | |||
| this.unsubmit产品.HeaderText = "产品"; | |||
| this.unsubmit产品.Name = "unsubmit产品"; | |||
| this.unsubmit产品.ReadOnly = true; | |||
| // | |||
| // unsubmit重量 | |||
| // | |||
| this.unsubmit重量.DataPropertyName = "Weight"; | |||
| dataGridViewCellStyle3.Format = "N2"; | |||
| this.unsubmit重量.DefaultCellStyle = dataGridViewCellStyle3; | |||
| this.unsubmit重量.HeaderText = "重量"; | |||
| this.unsubmit重量.Name = "unsubmit重量"; | |||
| this.unsubmit重量.ReadOnly = true; | |||
| // | |||
| // unsubmit仓库 | |||
| // | |||
| this.unsubmit仓库.DataPropertyName = "Store_Name"; | |||
| this.unsubmit仓库.HeaderText = "仓库"; | |||
| this.unsubmit仓库.Name = "unsubmit仓库"; | |||
| this.unsubmit仓库.ReadOnly = true; | |||
| // | |||
| // SegmentationInStoreForm | |||
| // | |||
| this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F); | |||
| this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; | |||
| this.ClientSize = new System.Drawing.Size(1031, 558); | |||
| this.Controls.Add(this.splitContainer1); | |||
| this.MinimizeBox = false; | |||
| this.Name = "SegmentationInStoreForm"; | |||
| this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; | |||
| this.Text = "分割品入库"; | |||
| this.WindowState = System.Windows.Forms.FormWindowState.Maximized; | |||
| this.FormClosed += new System.Windows.Forms.FormClosedEventHandler(this.SegmentationInStoreForm_FormClosed); | |||
| this.Load += new System.EventHandler(this.SegmentationInStoreForm_Load); | |||
| this.splitContainer1.Panel2.ResumeLayout(false); | |||
| ((System.ComponentModel.ISupportInitialize)(this.splitContainer1)).EndInit(); | |||
| this.splitContainer1.ResumeLayout(false); | |||
| this.splitContainer2.Panel1.ResumeLayout(false); | |||
| this.splitContainer2.Panel2.ResumeLayout(false); | |||
| this.splitContainer2.Panel2.PerformLayout(); | |||
| ((System.ComponentModel.ISupportInitialize)(this.splitContainer2)).EndInit(); | |||
| this.splitContainer2.ResumeLayout(false); | |||
| this.groupBox2.ResumeLayout(false); | |||
| ((System.ComponentModel.ISupportInitialize)(this.gridUnSubmit)).EndInit(); | |||
| this.groupBox1.ResumeLayout(false); | |||
| ((System.ComponentModel.ISupportInitialize)(this.gridUnScan)).EndInit(); | |||
| this.groupBox3.ResumeLayout(false); | |||
| ((System.ComponentModel.ISupportInitialize)(this.gridSubmited)).EndInit(); | |||
| this.ResumeLayout(false); | |||
| } | |||
| #endregion | |||
| private System.Windows.Forms.SplitContainer splitContainer1; | |||
| private System.Windows.Forms.SplitContainer splitContainer2; | |||
| private System.Windows.Forms.GroupBox groupBox2; | |||
| private System.Windows.Forms.GroupBox groupBox1; | |||
| private BWP.WinFormControl.UComboBox uComboBox1; | |||
| private System.Windows.Forms.Label label1; | |||
| private System.Windows.Forms.Button button1; | |||
| private System.Windows.Forms.GroupBox groupBox3; | |||
| private System.Windows.Forms.GroupBox groupBox4; | |||
| private System.Windows.Forms.Timer timerSyncUnScan; | |||
| private BWP.WinFormControl.UDataGridView gridUnSubmit; | |||
| private BWP.WinFormControl.UDataGridView gridUnScan; | |||
| private BWP.WinFormControl.UDataGridView gridSubmited; | |||
| private System.Windows.Forms.Timer timerUpload; | |||
| private System.Windows.Forms.DataGridViewTextBoxColumn unsubmit条码; | |||
| private System.Windows.Forms.DataGridViewTextBoxColumn unsubmit产品; | |||
| private System.Windows.Forms.DataGridViewTextBoxColumn unsubmit重量; | |||
| private System.Windows.Forms.DataGridViewTextBoxColumn unsubmit仓库; | |||
| private System.Windows.Forms.DataGridViewTextBoxColumn unscan序号; | |||
| private System.Windows.Forms.DataGridViewTextBoxColumn unscan条码; | |||
| private System.Windows.Forms.DataGridViewTextBoxColumn unscan产品; | |||
| private System.Windows.Forms.DataGridViewTextBoxColumn unscan重量; | |||
| private System.Windows.Forms.DataGridViewTextBoxColumn unscan日期; | |||
| private System.Windows.Forms.DataGridViewTextBoxColumn submited序号; | |||
| private System.Windows.Forms.DataGridViewTextBoxColumn submited条码; | |||
| private System.Windows.Forms.DataGridViewTextBoxColumn submited产品; | |||
| private System.Windows.Forms.DataGridViewTextBoxColumn submited重量; | |||
| private System.Windows.Forms.DataGridViewTextBoxColumn submited仓库; | |||
| private System.Windows.Forms.DataGridViewTextBoxColumn submited日期; | |||
| } | |||
| } | |||
| @ -0,0 +1,168 @@ | |||
| using System; | |||
| using System.Collections.Generic; | |||
| using System.ComponentModel; | |||
| using System.Linq; | |||
| using System.Windows.Forms; | |||
| using BO; | |||
| using BO.Utils; | |||
| using SegmentationInStore.Rpc; | |||
| using SegmentationInStore.Rpc.Dto; | |||
| namespace SegmentationInStore | |||
| { | |||
| public partial class SegmentationInStoreForm : Form,IAfterLogin | |||
| { | |||
| private static readonly Object lockOjbUnScan = new object(); | |||
| private static readonly Object lockOjbUnSubmit = new object(); | |||
| private static readonly Object lockOjbSubmited = new object(); | |||
| private BindingList<SegmentationWeightRecord> mUnScanList; | |||
| private BindingList<SegmentationInStoreDto> mUnSubmitList; | |||
| private BindingList<SegmentationInStoreDto> mSubmitedList; | |||
| BardCodeHooK BarCode = new BardCodeHooK(); | |||
| public SegmentationInStoreForm() | |||
| { | |||
| InitializeComponent(); | |||
| gridUnScan.AutoGenerateColumns = false; | |||
| gridUnSubmit.AutoGenerateColumns = false; | |||
| gridSubmited.AutoGenerateColumns = false; | |||
| mUnScanList=new BindingList<SegmentationWeightRecord>(); | |||
| mUnSubmitList = new BindingList<SegmentationInStoreDto>(); | |||
| mSubmitedList = new BindingList<SegmentationInStoreDto>(); | |||
| BarCode.BarCodeEvent += new BardCodeHooK.BardCodeDeletegate(BarCode_BarCodeEvent); | |||
| } | |||
| void BarCode_BarCodeEvent(BardCodeHooK.BarCodes barCode) | |||
| { | |||
| ShowInfo(barCode); | |||
| } | |||
| private delegate void ShowInfoDelegate(BardCodeHooK.BarCodes barCode); | |||
| private void ShowInfo(BardCodeHooK.BarCodes barCode) | |||
| { | |||
| if (this.InvokeRequired) | |||
| { | |||
| this.BeginInvoke(new ShowInfoDelegate(ShowInfo), new object[] { barCode }); | |||
| } | |||
| else | |||
| { | |||
| if (barCode.IsValid) | |||
| { | |||
| if (!string.IsNullOrWhiteSpace(barCode.BarCode)) | |||
| { | |||
| doInsertUnSubmit(barCode.BarCode); | |||
| } | |||
| } | |||
| } | |||
| } | |||
| private void doInsertUnSubmit(string barCode) | |||
| { | |||
| var fd = mUnScanList.FirstOrDefault(x => x.BarCode == barCode); | |||
| if (fd == null) | |||
| { | |||
| //todo 放到错误信息里 | |||
| } | |||
| mUnScanList.Remove(fd); | |||
| var inStoreDto = fd.EToSegmentationInStore(); | |||
| inStoreDto.Store_ID = 0; | |||
| inStoreDto.Store_Name = "仓库"; | |||
| mUnSubmitList.Insert(0, inStoreDto); | |||
| BindUnSubmitGrid(); | |||
| } | |||
| void BindUnScanGrid() | |||
| { | |||
| lock (lockOjbUnScan) | |||
| { | |||
| gridUnScan.DataSource = mUnScanList; | |||
| } | |||
| } | |||
| void BindUnSubmitGrid() | |||
| { | |||
| lock (lockOjbUnSubmit) | |||
| { | |||
| gridUnSubmit.DataSource = mUnSubmitList; | |||
| } | |||
| } | |||
| void BindSubmitedGrid() | |||
| { | |||
| lock (lockOjbSubmited) | |||
| { | |||
| gridSubmited.DataSource = mSubmitedList; | |||
| } | |||
| } | |||
| private void SegmentationInStoreForm_Load(object sender, EventArgs e) | |||
| { | |||
| var enable=BarCode.Start(); | |||
| if (!enable) | |||
| { | |||
| MessageBox.Show("注册扫码失败,联系管理员"); | |||
| } | |||
| } | |||
| //同步未扫码 | |||
| private void timerSyncUnScan_Tick(object sender, EventArgs e) | |||
| { | |||
| if (mUnScanList.Count < 1) | |||
| { | |||
| var list = SegmentationInStoreRpc.GetNotInStoreList(); | |||
| foreach (SegmentationWeightRecord record in list) | |||
| { | |||
| mUnScanList.Insert(0,record); | |||
| } | |||
| } | |||
| else | |||
| { | |||
| var maxid = mUnScanList.Max(x => x.ID); | |||
| var list = SegmentationInStoreRpc.GetNotInStoreListByMaxId(maxid); | |||
| foreach (SegmentationWeightRecord record in list) | |||
| { | |||
| mUnScanList.Insert(0,record); | |||
| } | |||
| } | |||
| BindUnScanGrid(); | |||
| } | |||
| //扫到的 未提交的提交 | |||
| private void timerUpload_Tick(object sender, EventArgs e) | |||
| { | |||
| var unSubmitList = mUnSubmitList.ToList(); | |||
| for (int i = unSubmitList.Count-1; i >=0 ; i--) | |||
| { | |||
| try | |||
| { | |||
| var dto = unSubmitList[i]; | |||
| dto.CreateTime = DateTime.Now; | |||
| dto.ID=SegmentationInStoreRpc.Insert(dto); | |||
| mSubmitedList.Insert(0,dto); | |||
| mUnSubmitList.Remove(dto); | |||
| } | |||
| catch (Exception ex) | |||
| { | |||
| //todo 记录异常 | |||
| } | |||
| } | |||
| //把成功的从未提交记录中移除 | |||
| BindUnSubmitGrid(); | |||
| BindSubmitedGrid(); | |||
| } | |||
| public string RoleName { get { return "分割入库"; } } | |||
| public Form Generate() | |||
| { | |||
| return this; | |||
| } | |||
| private void SegmentationInStoreForm_FormClosed(object sender, FormClosedEventArgs e) | |||
| { | |||
| BarCode.Stop(); | |||
| } | |||
| } | |||
| } | |||
| @ -0,0 +1,171 @@ | |||
| <?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> | |||
| <metadata name="unsubmit条码.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> | |||
| <value>True</value> | |||
| </metadata> | |||
| <metadata name="unsubmit产品.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> | |||
| <value>True</value> | |||
| </metadata> | |||
| <metadata name="unsubmit重量.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> | |||
| <value>True</value> | |||
| </metadata> | |||
| <metadata name="unsubmit仓库.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> | |||
| <value>True</value> | |||
| </metadata> | |||
| <metadata name="unscan序号.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> | |||
| <value>True</value> | |||
| </metadata> | |||
| <metadata name="unscan条码.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> | |||
| <value>True</value> | |||
| </metadata> | |||
| <metadata name="unscan产品.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> | |||
| <value>True</value> | |||
| </metadata> | |||
| <metadata name="unscan重量.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> | |||
| <value>True</value> | |||
| </metadata> | |||
| <metadata name="unscan日期.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> | |||
| <value>True</value> | |||
| </metadata> | |||
| <metadata name="submited序号.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> | |||
| <value>True</value> | |||
| </metadata> | |||
| <metadata name="submited条码.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> | |||
| <value>True</value> | |||
| </metadata> | |||
| <metadata name="submited产品.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> | |||
| <value>True</value> | |||
| </metadata> | |||
| <metadata name="submited重量.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> | |||
| <value>True</value> | |||
| </metadata> | |||
| <metadata name="submited仓库.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> | |||
| <value>True</value> | |||
| </metadata> | |||
| <metadata name="submited日期.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> | |||
| <value>True</value> | |||
| </metadata> | |||
| <metadata name="timerSyncUnScan.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"> | |||
| <value>17, 17</value> | |||
| </metadata> | |||
| <metadata name="timerUpload.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"> | |||
| <value>159, 18</value> | |||
| </metadata> | |||
| </root> | |||