| @ -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> | |||||