1
0
Fork 0

add - 添加班次管理

nodyang
SoulStar 2 months ago
parent 87e82eefea
commit 56541ff30f

@ -52,10 +52,20 @@
<Reference Include="System.Xml" />
</ItemGroup>
<ItemGroup>
<Compile Include="domain\SysShiftTimeEntity.cs" />
<Compile Include="domain\SysUserEntity.cs" />
<Compile Include="domain\SysRoleEntity.cs" />
<Compile Include="domain\ZxMaterialEntity.cs" />
<Compile Include="domain\ZxRecipeEntity.cs" />
<Compile Include="domain\ZxRecipeParaEntity.cs" />
<Compile Include="domain\ZxWeightEntity.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
<Compile Include="Repository.cs" />
<Compile Include="service\ZxRecipeParaService.cs" />
<Compile Include="service\ZxRecipeService.cs" />
<Compile Include="service\ZxMaterialService.cs" />
<Compile Include="service\ZxWeightService.cs" />
<Compile Include="service\SysShiftTimeService.cs" />
<Compile Include="service\SysUserRoleService.cs" />
<Compile Include="service\SysUserInfoService.cs" />
<Compile Include="SqlSugarHelper.cs" />

@ -0,0 +1,51 @@
using SqlSugar;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace HighWayIot.Repository.domain
{
/// <summary>
/// 班次时间表
///</summary>
[SugarTable("sys_shift_time")]
public class SysShiftTimeEntity
{
/// <summary>
/// 备 注: 班次ID
/// 默认值:
///</summary>
[SugarColumn(ColumnName = "shift_id", IsPrimaryKey = true)]
public string ShiftId { get; set; }
/// <summary>
/// 备 注:班次名称
/// 默认值:
///</summary>
[SugarColumn(ColumnName = "shift_name")]
public string ShiftName { get; set; } = null;
/// <summary>
/// 备 注:班次开始时间
/// 默认值:
///</summary>
[SugarColumn(ColumnName = "shift_st")]
public string ShiftStartTime { get; set; } = null;
/// <summary>
/// 备 注:班次结束时间
/// 默认值:
///</summary>
[SugarColumn(ColumnName = "shift_et")]
public string ShiftEndTime { get; set; } = null;
/// <summary>
/// 备 注:班次类型
/// 默认值:
///</summary>
[SugarColumn(ColumnName = "shift_class")]
public string ShiftClass { get; set; } = null;
}
}

@ -0,0 +1,58 @@
using System;
using System.Collections.Generic;
using System.Linq;
using SqlSugar;
namespace Models
{
/// <summary>
///
///</summary>
[SugarTable("zx_material")]
public class ZxMaterialEntity
{
/// <summary>
/// 备 注:物料编码
/// 默认值:
///</summary>
[SugarColumn(ColumnName = "material_code", IsPrimaryKey = true)]
public string MaterialCode { get; set; } = null;
/// <summary>
/// 备 注:物料名称
/// 默认值:
///</summary>
[SugarColumn(ColumnName = "material_name")]
public string MaterialName { get; set; } = null;
/// <summary>
/// 备 注:物料类型
/// 默认值:
///</summary>
[SugarColumn(ColumnName = "material_type")]
public string MaterialType { get; set; } = null;
/// <summary>
/// 备 注:子类型
/// 默认值:
///</summary>
[SugarColumn(ColumnName = "child_type")]
public string ChildType { get; set; } = null;
/// <summary>
/// 备 注:是否已删除
/// 默认值:
///</summary>
[SugarColumn(ColumnName = "is_deleted")]
public bool? IsDeleted { get; set; }
/// <summary>
/// 备 注:是否使用
/// 默认值:
///</summary>
[SugarColumn(ColumnName = "is_use")]
public bool? IsUse { get; set; }
}
}

@ -0,0 +1,79 @@
using System;
using System.Collections.Generic;
using System.Linq;
using SqlSugar;
namespace Models
{
/// <summary>
///
///</summary>
[SugarTable("zx_recipe")]
public class ZxRecipeEntity
{
/// <summary>
/// 备 注:配方编号
/// 默认值:
///</summary>
[SugarColumn(ColumnName = "recipe_code", IsPrimaryKey = true)]
public string RecipeCode { get; set; }
/// <summary>
/// 备 注:配方名称
/// 默认值:
///</summary>
[SugarColumn(ColumnName = "recipe_name")]
public string RecipeName { get; set; } = null;
/// <summary>
/// 备 注:SPEC编号
/// 默认值:
///</summary>
[SugarColumn(ColumnName = "recipe_spec_code")]
public string RecipeSpecCode { get; set; } = null;
/// <summary>
/// 备 注:SPEC规格
/// 默认值:
///</summary>
[SugarColumn(ColumnName = "recipe_spec_name")]
public string RecipeSpecName { get; set; } = null;
/// <summary>
/// 备 注:寸别
/// 默认值:
///</summary>
[SugarColumn(ColumnName = "size_kind")]
public int? SizeKind { get; set; }
/// <summary>
/// 备 注:固定胶宽度
/// 默认值:
///</summary>
[SugarColumn(ColumnName = "fixed_width")]
public decimal? FixedWidth { get; set; }
/// <summary>
/// 备 注:重量公差(%)
/// 默认值:
///</summary>
[SugarColumn(ColumnName = "weight_error")]
public int? WeightError { get; set; }
/// <summary>
/// 备 注:是否使用
/// 默认值:
///</summary>
[SugarColumn(ColumnName = "is_use")]
public bool? IsUse { get; set; }
/// <summary>
/// 备 注:是否已删除
/// 默认值:
///</summary>
[SugarColumn(ColumnName = "is_deleted")]
public bool? IsDeleted { get; set; }
}
}

@ -0,0 +1,32 @@
using System;
using System.Collections.Generic;
using System.Linq;
using SqlSugar;
namespace Models
{
/// <summary>
///
///</summary>
[SugarTable("zx_recipe_para")]
public class ZxRecipeParaEntity
{
/// <summary>
/// 备 注:
/// 默认值:
///</summary>
[SugarColumn(ColumnName = "id", IsPrimaryKey = true, IsIdentity = true)]
public int Id { get; set; }
/// <summary>
/// 备 注:
/// 默认值:
///</summary>
[SugarColumn(ColumnName = "recipe_code")]
public string RecipeCode { get; set; } = null;
}
}

@ -0,0 +1,81 @@
using System;
using System.Collections.Generic;
using System.Linq;
using SqlSugar;
namespace Models
{
/// <summary>
///
///</summary>
[SugarTable("zx_weight")]
public class ZxWeightEntity
{
/// <summary>
/// 备 注:
/// 默认值:
///</summary>
[SugarColumn(ColumnName = "id", IsPrimaryKey = true, IsIdentity = true)]
public int Id { get; set; }
/// <summary>
/// 备 注:配方编号
/// 默认值:
///</summary>
[SugarColumn(ColumnName = "recipe_code")]
public string RecipeCode { get; set; } = null;
/// <summary>
/// 备 注:物料编号
/// 默认值:
///</summary>
[SugarColumn(ColumnName = "material_code")]
public string MaterialCode { get; set; } = null;
/// <summary>
/// 备 注:厚度
/// 默认值:
///</summary>
[SugarColumn(ColumnName = "set_thickness")]
public decimal? SetThickness { get; set; }
/// <summary>
/// 备 注:宽度
/// 默认值:
///</summary>
[SugarColumn(ColumnName = "set_width")]
public decimal? SetWidth { get; set; }
/// <summary>
/// 备 注:层数
/// 默认值:
///</summary>
[SugarColumn(ColumnName = "set_layer")]
public int? SetLayer { get; set; }
/// <summary>
/// 备 注:重量
/// 默认值:
///</summary>
[SugarColumn(ColumnName = "set_weight")]
public decimal? SetWeight { get; set; }
/// <summary>
/// 备 注:公差
/// 默认值:
///</summary>
[SugarColumn(ColumnName = "set_error")]
public decimal? SetError { get; set; }
/// <summary>
/// 备 注:是否使用
/// 默认值:
///</summary>
[SugarColumn(ColumnName = "is_use")]
public bool? IsUse { get; set; }
}
}

@ -0,0 +1,63 @@
using HighWayIot.Log4net;
using HighWayIot.Repository.domain;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Linq.Expressions;
using System.Text;
using System.Threading.Tasks;
namespace HighWayIot.Repository.service
{
public class SysShiftTimeService
{
private static readonly Lazy<SysShiftTimeService> lazy = new Lazy<SysShiftTimeService>(() => new SysShiftTimeService());
public static SysShiftTimeService Instance
{
get
{
return lazy.Value;
}
}
private LogHelper log = LogHelper.Instance;
Repository<SysShiftTimeEntity> _repository => new Repository<SysShiftTimeEntity>("sqlserver");
/// <summary>
/// 条件查询所有用户列表 用户名为模糊查询
/// </summary>
/// <returns></returns>
public List<SysShiftTimeEntity> GetShiftInfos()
{
try
{
List<SysShiftTimeEntity> deviceInfo = _repository.GetList();
return deviceInfo;
}
catch (Exception ex)
{
log.Error("用户信息获取异常", ex);
return null;
}
}
/// <summary>
/// 修改班次信息
/// </summary>
/// <param name="sysUserEntity"></param>
/// <returns></returns>
public bool UpdateShiftInfo(SysShiftTimeEntity sysUserEntity)
{
try
{
return _repository.Update(sysUserEntity);
}
catch(Exception ex)
{
log.Error("用户信息修改异常", ex);
return false;
}
}
}
}

@ -0,0 +1,64 @@
using HighWayIot.Log4net;
using HighWayIot.Repository.domain;
using Models;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Linq.Expressions;
using System.Text;
using System.Threading.Tasks;
namespace HighWayIot.Repository.service
{
public class ZxMaterialService
{
private static readonly Lazy<ZxMaterialService> lazy = new Lazy<ZxMaterialService>(() => new ZxMaterialService());
public static ZxMaterialService Instance
{
get
{
return lazy.Value;
}
}
private LogHelper log = LogHelper.Instance;
Repository<ZxMaterialEntity> _repository => new Repository<ZxMaterialEntity>("sqlserver");
/// <summary>
/// 条件查询所有用户列表 用户名为模糊查询
/// </summary>
/// <returns></returns>
public List<ZxMaterialEntity> GetShiftInfos()
{
try
{
List<ZxMaterialEntity> deviceInfo = _repository.GetList();
return deviceInfo;
}
catch (Exception ex)
{
log.Error("用户信息获取异常", ex);
return null;
}
}
/// <summary>
/// 修改班次信息
/// </summary>
/// <param name="sysUserEntity"></param>
/// <returns></returns>
public bool UpdateShiftInfo(ZxMaterialEntity sysUserEntity)
{
try
{
return _repository.Update(sysUserEntity);
}
catch(Exception ex)
{
log.Error("用户信息修改异常", ex);
return false;
}
}
}
}

@ -0,0 +1,64 @@
using HighWayIot.Log4net;
using HighWayIot.Repository.domain;
using Models;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Linq.Expressions;
using System.Text;
using System.Threading.Tasks;
namespace HighWayIot.Repository.service
{
public class ZxRecipeParaService
{
private static readonly Lazy<ZxRecipeParaService> lazy = new Lazy<ZxRecipeParaService>(() => new ZxRecipeParaService());
public static ZxRecipeParaService Instance
{
get
{
return lazy.Value;
}
}
private LogHelper log = LogHelper.Instance;
Repository<ZxRecipeParaEntity> _repository => new Repository<ZxRecipeParaEntity>("sqlserver");
/// <summary>
/// 条件查询所有用户列表 用户名为模糊查询
/// </summary>
/// <returns></returns>
public List<ZxRecipeParaEntity> GetShiftInfos()
{
try
{
List<ZxRecipeParaEntity> deviceInfo = _repository.GetList();
return deviceInfo;
}
catch (Exception ex)
{
log.Error("用户信息获取异常", ex);
return null;
}
}
/// <summary>
/// 修改班次信息
/// </summary>
/// <param name="sysUserEntity"></param>
/// <returns></returns>
public bool UpdateShiftInfo(ZxRecipeParaEntity sysUserEntity)
{
try
{
return _repository.Update(sysUserEntity);
}
catch(Exception ex)
{
log.Error("用户信息修改异常", ex);
return false;
}
}
}
}

@ -0,0 +1,64 @@
using HighWayIot.Log4net;
using HighWayIot.Repository.domain;
using Models;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Linq.Expressions;
using System.Text;
using System.Threading.Tasks;
namespace HighWayIot.Repository.service
{
public class ZxRecipeService
{
private static readonly Lazy<ZxRecipeService> lazy = new Lazy<ZxRecipeService>(() => new ZxRecipeService());
public static ZxRecipeService Instance
{
get
{
return lazy.Value;
}
}
private LogHelper log = LogHelper.Instance;
Repository<ZxRecipeEntity> _repository => new Repository<ZxRecipeEntity>("sqlserver");
/// <summary>
/// 条件查询所有用户列表 用户名为模糊查询
/// </summary>
/// <returns></returns>
public List<ZxRecipeEntity> GetShiftInfos()
{
try
{
List<ZxRecipeEntity> deviceInfo = _repository.GetList();
return deviceInfo;
}
catch (Exception ex)
{
log.Error("用户信息获取异常", ex);
return null;
}
}
/// <summary>
/// 修改班次信息
/// </summary>
/// <param name="sysUserEntity"></param>
/// <returns></returns>
public bool UpdateShiftInfo(ZxRecipeEntity sysUserEntity)
{
try
{
return _repository.Update(sysUserEntity);
}
catch(Exception ex)
{
log.Error("用户信息修改异常", ex);
return false;
}
}
}
}

@ -0,0 +1,64 @@
using HighWayIot.Log4net;
using HighWayIot.Repository.domain;
using Models;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Linq.Expressions;
using System.Text;
using System.Threading.Tasks;
namespace HighWayIot.Repository.service
{
public class ZxWeightService
{
private static readonly Lazy<ZxWeightService> lazy = new Lazy<ZxWeightService>(() => new ZxWeightService());
public static ZxWeightService Instance
{
get
{
return lazy.Value;
}
}
private LogHelper log = LogHelper.Instance;
Repository<ZxWeightEntity> _repository => new Repository<ZxWeightEntity>("sqlserver");
/// <summary>
/// 条件查询所有用户列表 用户名为模糊查询
/// </summary>
/// <returns></returns>
public List<ZxWeightEntity> GetShiftInfos()
{
try
{
List<ZxWeightEntity> deviceInfo = _repository.GetList();
return deviceInfo;
}
catch (Exception ex)
{
log.Error("用户信息获取异常", ex);
return null;
}
}
/// <summary>
/// 修改班次信息
/// </summary>
/// <param name="sysUserEntity"></param>
/// <returns></returns>
public bool UpdateShiftInfo(ZxWeightEntity sysUserEntity)
{
try
{
return _repository.Update(sysUserEntity);
}
catch(Exception ex)
{
log.Error("用户信息修改异常", ex);
return false;
}
}
}
}

@ -62,6 +62,7 @@ namespace HighWayIot.Winform.Business
//转换为Char数组
char[] chars = roleString.ToCharArray();
//返回权限结果
return chars[roleConfig.RoleIndex] == '1';
}

@ -8,6 +8,12 @@
<Role PageName = "操作日志" RoleIndex = "2" />
<Role PageName = "报警日志" RoleIndex = "3" />
<Role PageName = "监控主界面" RoleIndex = "4" />
<Role PageName = "班时间维护" RoleIndex = "5" />
<Role PageName = "原材料管理" RoleIndex = "6" />
<Role PageName = "配方管理" RoleIndex = "7" />
<Role PageName = "日报表" RoleIndex = "8" />
<Role PageName = "机台物料信息绑定" RoleIndex = "9" />
<Role PageName = "生产排程" RoleIndex = "10" />
</RoleConfig>
</root>

@ -83,6 +83,36 @@
<Compile Include="UserControlPages\MonitorMainPage.Designer.cs">
<DependentUpon>MonitorMainPage.cs</DependentUpon>
</Compile>
<Compile Include="UserControlPages\RecipeConfigPage.cs">
<SubType>UserControl</SubType>
</Compile>
<Compile Include="UserControlPages\RecipeConfigPage.Designer.cs">
<DependentUpon>RecipeConfigPage.cs</DependentUpon>
</Compile>
<Compile Include="UserControlPages\DailyReportPage.cs">
<SubType>UserControl</SubType>
</Compile>
<Compile Include="UserControlPages\DailyReportPage.Designer.cs">
<DependentUpon>DailyReportPage.cs</DependentUpon>
</Compile>
<Compile Include="UserControlPages\EquipMaterialBindingPage.cs">
<SubType>UserControl</SubType>
</Compile>
<Compile Include="UserControlPages\EquipMaterialBindingPage.Designer.cs">
<DependentUpon>EquipMaterialBindingPage.cs</DependentUpon>
</Compile>
<Compile Include="UserControlPages\ProductionScheduling.cs">
<SubType>UserControl</SubType>
</Compile>
<Compile Include="UserControlPages\ProductionScheduling.Designer.cs">
<DependentUpon>ProductionScheduling.cs</DependentUpon>
</Compile>
<Compile Include="UserControlPages\MaterialConfigPage.cs">
<SubType>UserControl</SubType>
</Compile>
<Compile Include="UserControlPages\MaterialConfigPage.Designer.cs">
<DependentUpon>MaterialConfigPage.cs</DependentUpon>
</Compile>
<Compile Include="UserControlPages\SysConfigPages\RoleUpdateForm.cs">
<SubType>Form</SubType>
</Compile>
@ -95,10 +125,16 @@
<Compile Include="UserControlPages\SysConfigPages\RoleConfigPage.Designer.cs">
<DependentUpon>RoleConfigPage.cs</DependentUpon>
</Compile>
<Compile Include="UserControlPages\SysConfigPages\TestPage.cs">
<Compile Include="UserControlPages\SysConfigPages\ShiftTimePage.cs">
<SubType>UserControl</SubType>
</Compile>
<Compile Include="UserControlPages\SysConfigPages\ShiftTimePage.Designer.cs">
<DependentUpon>ShiftTimePage.cs</DependentUpon>
</Compile>
<Compile Include="UserControlPages\TestPage.cs">
<SubType>UserControl</SubType>
</Compile>
<Compile Include="UserControlPages\SysConfigPages\TestPage.Designer.cs">
<Compile Include="UserControlPages\TestPage.Designer.cs">
<DependentUpon>TestPage.cs</DependentUpon>
</Compile>
<Compile Include="UserControlPages\SysConfigPages\RoleAddForm.cs">
@ -150,13 +186,31 @@
<EmbeddedResource Include="UserControlPages\MonitorMainPage.resx">
<DependentUpon>MonitorMainPage.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="UserControlPages\RecipeConfigPage.resx">
<DependentUpon>RecipeConfigPage.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="UserControlPages\DailyReportPage.resx">
<DependentUpon>DailyReportPage.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="UserControlPages\EquipMaterialBindingPage.resx">
<DependentUpon>EquipMaterialBindingPage.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="UserControlPages\ProductionScheduling.resx">
<DependentUpon>ProductionScheduling.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="UserControlPages\MaterialConfigPage.resx">
<DependentUpon>MaterialConfigPage.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="UserControlPages\SysConfigPages\RoleUpdateForm.resx">
<DependentUpon>RoleUpdateForm.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="UserControlPages\SysConfigPages\RoleConfigPage.resx">
<DependentUpon>RoleConfigPage.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="UserControlPages\SysConfigPages\TestPage.resx">
<EmbeddedResource Include="UserControlPages\SysConfigPages\ShiftTimePage.resx">
<DependentUpon>ShiftTimePage.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="UserControlPages\TestPage.resx">
<DependentUpon>TestPage.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="UserControlPages\SysConfigPages\RoleAddForm.resx">

@ -38,12 +38,18 @@ namespace HighWayIot.Winform.MainForm
this.SysConfigStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.UserStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.RoleStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.ShiftTimeConfigStripItem = new System.Windows.Forms.ToolStripMenuItem();
this.LogoutStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.SysQuitStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.LogManageStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.DaliyReportStripItem = new System.Windows.Forms.ToolStripMenuItem();
this.OperateLogStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.AlarmLogStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.MonitorMainPageStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.ProductionSchedulingStripItem = new System.Windows.Forms.ToolStripMenuItem();
this.MaterialConfigStripItem = new System.Windows.Forms.ToolStripMenuItem();
this.RecipeConfigStripItem = new System.Windows.Forms.ToolStripMenuItem();
this.EquipMaterialBindingStripItem = new System.Windows.Forms.ToolStripMenuItem();
this.TestMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.UserControlTabs = new System.Windows.Forms.TabControl();
this.ClosePageButton = new System.Windows.Forms.Button();
@ -66,6 +72,10 @@ namespace HighWayIot.Winform.MainForm
this.SysConfigStripMenuItem,
this.LogManageStripMenuItem,
this.MonitorMainPageStripMenuItem,
this.ProductionSchedulingStripItem,
this.MaterialConfigStripItem,
this.RecipeConfigStripItem,
this.EquipMaterialBindingStripItem,
this.TestMenuItem});
this.MainMenu.Location = new System.Drawing.Point(0, 0);
this.MainMenu.Name = "MainMenu";
@ -79,6 +89,7 @@ namespace HighWayIot.Winform.MainForm
this.SysConfigStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.UserStripMenuItem,
this.RoleStripMenuItem,
this.ShiftTimeConfigStripItem,
this.LogoutStripMenuItem,
this.SysQuitStripMenuItem});
this.SysConfigStripMenuItem.Name = "SysConfigStripMenuItem";
@ -88,51 +99,66 @@ namespace HighWayIot.Winform.MainForm
// UserStripMenuItem
//
this.UserStripMenuItem.Name = "UserStripMenuItem";
this.UserStripMenuItem.Size = new System.Drawing.Size(124, 22);
this.UserStripMenuItem.Size = new System.Drawing.Size(136, 22);
this.UserStripMenuItem.Text = "用户管理";
this.UserStripMenuItem.Click += new System.EventHandler(this.StripMenuItemClick);
//
// RoleStripMenuItem
//
this.RoleStripMenuItem.Name = "RoleStripMenuItem";
this.RoleStripMenuItem.Size = new System.Drawing.Size(124, 22);
this.RoleStripMenuItem.Size = new System.Drawing.Size(136, 22);
this.RoleStripMenuItem.Text = "角色管理";
this.RoleStripMenuItem.Click += new System.EventHandler(this.StripMenuItemClick);
//
// ShiftTimeConfigStripItem
//
this.ShiftTimeConfigStripItem.Name = "ShiftTimeConfigStripItem";
this.ShiftTimeConfigStripItem.Size = new System.Drawing.Size(136, 22);
this.ShiftTimeConfigStripItem.Text = "班时间维护";
this.ShiftTimeConfigStripItem.Click += new System.EventHandler(this.StripMenuItemClick);
//
// LogoutStripMenuItem
//
this.LogoutStripMenuItem.Name = "LogoutStripMenuItem";
this.LogoutStripMenuItem.Size = new System.Drawing.Size(124, 22);
this.LogoutStripMenuItem.Size = new System.Drawing.Size(136, 22);
this.LogoutStripMenuItem.Text = "注销";
this.LogoutStripMenuItem.Click += new System.EventHandler(this.LogoutStripMenuItem_Click);
//
// SysQuitStripMenuItem
//
this.SysQuitStripMenuItem.Name = "SysQuitStripMenuItem";
this.SysQuitStripMenuItem.Size = new System.Drawing.Size(124, 22);
this.SysQuitStripMenuItem.Size = new System.Drawing.Size(136, 22);
this.SysQuitStripMenuItem.Text = "退出系统";
this.SysQuitStripMenuItem.Click += new System.EventHandler(this.SysQuitStripMenuItem_Click);
//
// LogManageStripMenuItem
//
this.LogManageStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.DaliyReportStripItem,
this.OperateLogStripMenuItem,
this.AlarmLogStripMenuItem});
this.LogManageStripMenuItem.Name = "LogManageStripMenuItem";
this.LogManageStripMenuItem.Size = new System.Drawing.Size(68, 22);
this.LogManageStripMenuItem.Text = "日志管理";
//
// DaliyReportStripItem
//
this.DaliyReportStripItem.Name = "DaliyReportStripItem";
this.DaliyReportStripItem.Size = new System.Drawing.Size(180, 22);
this.DaliyReportStripItem.Text = "日报表";
this.DaliyReportStripItem.Click += new System.EventHandler(this.StripMenuItemClick);
//
// OperateLogStripMenuItem
//
this.OperateLogStripMenuItem.Name = "OperateLogStripMenuItem";
this.OperateLogStripMenuItem.Size = new System.Drawing.Size(124, 22);
this.OperateLogStripMenuItem.Size = new System.Drawing.Size(180, 22);
this.OperateLogStripMenuItem.Text = "操作日志";
this.OperateLogStripMenuItem.Click += new System.EventHandler(this.StripMenuItemClick);
//
// AlarmLogStripMenuItem
//
this.AlarmLogStripMenuItem.Name = "AlarmLogStripMenuItem";
this.AlarmLogStripMenuItem.Size = new System.Drawing.Size(124, 22);
this.AlarmLogStripMenuItem.Size = new System.Drawing.Size(180, 22);
this.AlarmLogStripMenuItem.Text = "报警日志";
this.AlarmLogStripMenuItem.Click += new System.EventHandler(this.StripMenuItemClick);
//
@ -143,6 +169,34 @@ namespace HighWayIot.Winform.MainForm
this.MonitorMainPageStripMenuItem.Text = "监控主页面";
this.MonitorMainPageStripMenuItem.Click += new System.EventHandler(this.StripMenuItemClick);
//
// ProductionSchedulingStripItem
//
this.ProductionSchedulingStripItem.Name = "ProductionSchedulingStripItem";
this.ProductionSchedulingStripItem.Size = new System.Drawing.Size(68, 22);
this.ProductionSchedulingStripItem.Text = "生产排程";
this.ProductionSchedulingStripItem.Click += new System.EventHandler(this.StripMenuItemClick);
//
// MaterialConfigStripItem
//
this.MaterialConfigStripItem.Name = "MaterialConfigStripItem";
this.MaterialConfigStripItem.Size = new System.Drawing.Size(80, 22);
this.MaterialConfigStripItem.Text = "原材料管理";
this.MaterialConfigStripItem.Click += new System.EventHandler(this.StripMenuItemClick);
//
// RecipeConfigStripItem
//
this.RecipeConfigStripItem.Name = "RecipeConfigStripItem";
this.RecipeConfigStripItem.Size = new System.Drawing.Size(68, 22);
this.RecipeConfigStripItem.Text = "配方管理";
this.RecipeConfigStripItem.Click += new System.EventHandler(this.StripMenuItemClick);
//
// EquipMaterialBindingStripItem
//
this.EquipMaterialBindingStripItem.Name = "EquipMaterialBindingStripItem";
this.EquipMaterialBindingStripItem.Size = new System.Drawing.Size(116, 22);
this.EquipMaterialBindingStripItem.Text = "机台物料信息绑定";
this.EquipMaterialBindingStripItem.Click += new System.EventHandler(this.StripMenuItemClick);
//
// TestMenuItem
//
this.TestMenuItem.Name = "TestMenuItem";
@ -169,6 +223,7 @@ namespace HighWayIot.Winform.MainForm
this.ClosePageButton.BackColor = System.Drawing.Color.Red;
this.ClosePageButton.Cursor = System.Windows.Forms.Cursors.Hand;
this.ClosePageButton.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
this.ClosePageButton.ForeColor = System.Drawing.SystemColors.ButtonHighlight;
this.ClosePageButton.Location = new System.Drawing.Point(1580, 1);
this.ClosePageButton.Name = "ClosePageButton";
this.ClosePageButton.Size = new System.Drawing.Size(20, 20);
@ -288,5 +343,11 @@ namespace HighWayIot.Winform.MainForm
private ToolStripStatusLabel TimeStripLabel;
private Timer TimeDisplayTimer;
private ToolStripMenuItem TestMenuItem;
private ToolStripMenuItem ShiftTimeConfigStripItem;
private ToolStripMenuItem DaliyReportStripItem;
private ToolStripMenuItem ProductionSchedulingStripItem;
private ToolStripMenuItem MaterialConfigStripItem;
private ToolStripMenuItem RecipeConfigStripItem;
private ToolStripMenuItem EquipMaterialBindingStripItem;
}
}

@ -17,6 +17,9 @@ namespace HighWayIot.Winform.MainForm
{
public partial class BaseForm : Form
{
/// <summary>
/// 日志实例
/// </summary>
private static LogHelper logger = LogHelper.Instance;
/// <summary>
@ -54,7 +57,6 @@ namespace HighWayIot.Winform.MainForm
/// <param name="e"></param>
private void SysQuitStripMenuItem_Click(object sender, EventArgs e)
{
Application.Exit();
}
@ -70,15 +72,14 @@ namespace HighWayIot.Winform.MainForm
/// <summary>
/// 菜单事件
/// 菜单事件
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void StripMenuItemClick(object sender, EventArgs e)
{
if (sender is ToolStripMenuItem && sender != null)
if (sender is ToolStripMenuItem item && sender != null)
{
ToolStripMenuItem button = (ToolStripMenuItem)sender;
ToolStripMenuItem button = item;
switch (button.Text)
{
case "角色管理":
@ -88,7 +89,7 @@ namespace HighWayIot.Winform.MainForm
UserPanelSwitch(typeof(UserConfigPage), button.Text);
break;
case "操作日志":
UserPanelSwitch(typeof(OperateConfigPage), button.Text);
UserPanelSwitch(typeof(MaterialConfigPage), button.Text);
break;
case "报警日志":
UserPanelSwitch(typeof(AlarmConfigPage), button.Text);
@ -99,6 +100,24 @@ namespace HighWayIot.Winform.MainForm
case "测试页面":
UserPanelSwitch(typeof(TestPage), button.Text);
break;
case "班时间维护":
UserPanelSwitch(typeof(ShiftTimePage), button.Text);
break;
case "原材料管理":
UserPanelSwitch(typeof(MaterialConfigPage), button.Text);
break;
case "配方管理":
UserPanelSwitch(typeof(RecipeConfigPage), button.Text);
break;
case "日报表":
UserPanelSwitch(typeof(DailyReportPage), button.Text);
break;
case "机台物料信息绑定":
UserPanelSwitch(typeof(EquipMaterialBindingPage), button.Text);
break;
case "生产排程":
UserPanelSwitch(typeof(ProductionScheduling), button.Text);
break;
case "":
break;
default:
@ -233,10 +252,12 @@ namespace HighWayIot.Winform.MainForm
private void TraverseMenuitem(ToolStripMenuItem item)
{
item.Enabled = roleBusiness.PageIsAccess(item.Text);
//if(UserControls.Where(x => x.Tag == item.Text))
foreach (ToolStripMenuItem i in item.DropDownItems)
{
TraverseMenuitem(i);
}
}
}
}

@ -0,0 +1,98 @@
using System.Drawing;
using System.Windows.Forms;
namespace HighWayIot.Winform.UserControlPages
{
partial class DailyReportPage
{
/// <summary>
/// 必需的设计器变量。
/// </summary>
private System.ComponentModel.IContainer components = null;
/// <summary>
/// 清理所有正在使用的资源。
/// </summary>
/// <param name="disposing">如果应释放托管资源,为 true否则为 false。</param>
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}
#region 组件设计器生成的代码
/// <summary>
/// 设计器支持所需的方法 - 不要修改
/// 使用代码编辑器修改此方法的内容。
/// </summary>
private void InitializeComponent()
{
this.RoleDataGridView = new System.Windows.Forms.DataGridView();
this.AddRole = new System.Windows.Forms.Button();
this.ButtonPanel = new System.Windows.Forms.Panel();
((System.ComponentModel.ISupportInitialize)(this.RoleDataGridView)).BeginInit();
this.ButtonPanel.SuspendLayout();
this.SuspendLayout();
//
// RoleDataGridView
//
this.RoleDataGridView.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.RoleDataGridView.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize;
this.RoleDataGridView.Location = new System.Drawing.Point(0, 65);
this.RoleDataGridView.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2);
this.RoleDataGridView.Name = "RoleDataGridView";
this.RoleDataGridView.RowTemplate.Height = 25;
this.RoleDataGridView.Size = new System.Drawing.Size(883, 497);
this.RoleDataGridView.TabIndex = 0;
this.RoleDataGridView.Tag = "";
//
// AddRole
//
this.AddRole.Location = new System.Drawing.Point(11, 11);
this.AddRole.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2);
this.AddRole.Name = "AddRole";
this.AddRole.Size = new System.Drawing.Size(103, 39);
this.AddRole.TabIndex = 1;
this.AddRole.Text = "查询操作信息";
this.AddRole.UseVisualStyleBackColor = true;
//
// ButtonPanel
//
this.ButtonPanel.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.ButtonPanel.Controls.Add(this.AddRole);
this.ButtonPanel.Location = new System.Drawing.Point(0, 0);
this.ButtonPanel.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2);
this.ButtonPanel.Name = "ButtonPanel";
this.ButtonPanel.Size = new System.Drawing.Size(883, 61);
this.ButtonPanel.TabIndex = 4;
//
// OperateConfigPage
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.BackColor = System.Drawing.SystemColors.ControlLight;
this.Controls.Add(this.ButtonPanel);
this.Controls.Add(this.RoleDataGridView);
this.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2);
this.Name = "OperateConfigPage";
this.Size = new System.Drawing.Size(883, 562);
((System.ComponentModel.ISupportInitialize)(this.RoleDataGridView)).EndInit();
this.ButtonPanel.ResumeLayout(false);
this.ResumeLayout(false);
}
#endregion
private DataGridView RoleDataGridView;
private Button AddRole;
private Panel ButtonPanel;
}
}

@ -0,0 +1,25 @@
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace HighWayIot.Winform.UserControlPages
{
public partial class DailyReportPage : UserControl
{
public DailyReportPage()
{
InitializeComponent();
}
private void UpdateRole_Click(object sender, EventArgs e)
{
}
}
}

@ -0,0 +1,98 @@
using System.Drawing;
using System.Windows.Forms;
namespace HighWayIot.Winform.UserControlPages
{
partial class EquipMaterialBindingPage
{
/// <summary>
/// 必需的设计器变量。
/// </summary>
private System.ComponentModel.IContainer components = null;
/// <summary>
/// 清理所有正在使用的资源。
/// </summary>
/// <param name="disposing">如果应释放托管资源,为 true否则为 false。</param>
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}
#region 组件设计器生成的代码
/// <summary>
/// 设计器支持所需的方法 - 不要修改
/// 使用代码编辑器修改此方法的内容。
/// </summary>
private void InitializeComponent()
{
this.RoleDataGridView = new System.Windows.Forms.DataGridView();
this.AddRole = new System.Windows.Forms.Button();
this.ButtonPanel = new System.Windows.Forms.Panel();
((System.ComponentModel.ISupportInitialize)(this.RoleDataGridView)).BeginInit();
this.ButtonPanel.SuspendLayout();
this.SuspendLayout();
//
// RoleDataGridView
//
this.RoleDataGridView.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.RoleDataGridView.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize;
this.RoleDataGridView.Location = new System.Drawing.Point(0, 65);
this.RoleDataGridView.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2);
this.RoleDataGridView.Name = "RoleDataGridView";
this.RoleDataGridView.RowTemplate.Height = 25;
this.RoleDataGridView.Size = new System.Drawing.Size(883, 497);
this.RoleDataGridView.TabIndex = 0;
this.RoleDataGridView.Tag = "";
//
// AddRole
//
this.AddRole.Location = new System.Drawing.Point(11, 11);
this.AddRole.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2);
this.AddRole.Name = "AddRole";
this.AddRole.Size = new System.Drawing.Size(103, 39);
this.AddRole.TabIndex = 1;
this.AddRole.Text = "查询操作信息";
this.AddRole.UseVisualStyleBackColor = true;
//
// ButtonPanel
//
this.ButtonPanel.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.ButtonPanel.Controls.Add(this.AddRole);
this.ButtonPanel.Location = new System.Drawing.Point(0, 0);
this.ButtonPanel.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2);
this.ButtonPanel.Name = "ButtonPanel";
this.ButtonPanel.Size = new System.Drawing.Size(883, 61);
this.ButtonPanel.TabIndex = 4;
//
// OperateConfigPage
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.BackColor = System.Drawing.SystemColors.ControlLight;
this.Controls.Add(this.ButtonPanel);
this.Controls.Add(this.RoleDataGridView);
this.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2);
this.Name = "OperateConfigPage";
this.Size = new System.Drawing.Size(883, 562);
((System.ComponentModel.ISupportInitialize)(this.RoleDataGridView)).EndInit();
this.ButtonPanel.ResumeLayout(false);
this.ResumeLayout(false);
}
#endregion
private DataGridView RoleDataGridView;
private Button AddRole;
private Panel ButtonPanel;
}
}

@ -0,0 +1,25 @@
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace HighWayIot.Winform.UserControlPages
{
public partial class EquipMaterialBindingPage : UserControl
{
public EquipMaterialBindingPage()
{
InitializeComponent();
}
private void UpdateRole_Click(object sender, EventArgs e)
{
}
}
}

@ -0,0 +1,120 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
</root>

@ -0,0 +1,98 @@
using System.Drawing;
using System.Windows.Forms;
namespace HighWayIot.Winform.UserControlPages
{
partial class MaterialConfigPage
{
/// <summary>
/// 必需的设计器变量。
/// </summary>
private System.ComponentModel.IContainer components = null;
/// <summary>
/// 清理所有正在使用的资源。
/// </summary>
/// <param name="disposing">如果应释放托管资源,为 true否则为 false。</param>
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}
#region 组件设计器生成的代码
/// <summary>
/// 设计器支持所需的方法 - 不要修改
/// 使用代码编辑器修改此方法的内容。
/// </summary>
private void InitializeComponent()
{
this.RoleDataGridView = new System.Windows.Forms.DataGridView();
this.AddRole = new System.Windows.Forms.Button();
this.ButtonPanel = new System.Windows.Forms.Panel();
((System.ComponentModel.ISupportInitialize)(this.RoleDataGridView)).BeginInit();
this.ButtonPanel.SuspendLayout();
this.SuspendLayout();
//
// RoleDataGridView
//
this.RoleDataGridView.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.RoleDataGridView.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize;
this.RoleDataGridView.Location = new System.Drawing.Point(0, 65);
this.RoleDataGridView.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2);
this.RoleDataGridView.Name = "RoleDataGridView";
this.RoleDataGridView.RowTemplate.Height = 25;
this.RoleDataGridView.Size = new System.Drawing.Size(883, 497);
this.RoleDataGridView.TabIndex = 0;
this.RoleDataGridView.Tag = "";
//
// AddRole
//
this.AddRole.Location = new System.Drawing.Point(11, 11);
this.AddRole.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2);
this.AddRole.Name = "AddRole";
this.AddRole.Size = new System.Drawing.Size(103, 39);
this.AddRole.TabIndex = 1;
this.AddRole.Text = "查询操作信息";
this.AddRole.UseVisualStyleBackColor = true;
//
// ButtonPanel
//
this.ButtonPanel.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.ButtonPanel.Controls.Add(this.AddRole);
this.ButtonPanel.Location = new System.Drawing.Point(0, 0);
this.ButtonPanel.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2);
this.ButtonPanel.Name = "ButtonPanel";
this.ButtonPanel.Size = new System.Drawing.Size(883, 61);
this.ButtonPanel.TabIndex = 4;
//
// OperateConfigPage
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.BackColor = System.Drawing.SystemColors.ControlLight;
this.Controls.Add(this.ButtonPanel);
this.Controls.Add(this.RoleDataGridView);
this.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2);
this.Name = "OperateConfigPage";
this.Size = new System.Drawing.Size(883, 562);
((System.ComponentModel.ISupportInitialize)(this.RoleDataGridView)).EndInit();
this.ButtonPanel.ResumeLayout(false);
this.ResumeLayout(false);
}
#endregion
private DataGridView RoleDataGridView;
private Button AddRole;
private Panel ButtonPanel;
}
}

@ -0,0 +1,25 @@
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace HighWayIot.Winform.UserControlPages
{
public partial class MaterialConfigPage : UserControl
{
public MaterialConfigPage()
{
InitializeComponent();
}
private void UpdateRole_Click(object sender, EventArgs e)
{
}
}
}

@ -0,0 +1,120 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
</root>

@ -0,0 +1,98 @@
using System.Drawing;
using System.Windows.Forms;
namespace HighWayIot.Winform.UserControlPages
{
partial class ProductionScheduling
{
/// <summary>
/// 必需的设计器变量。
/// </summary>
private System.ComponentModel.IContainer components = null;
/// <summary>
/// 清理所有正在使用的资源。
/// </summary>
/// <param name="disposing">如果应释放托管资源,为 true否则为 false。</param>
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}
#region 组件设计器生成的代码
/// <summary>
/// 设计器支持所需的方法 - 不要修改
/// 使用代码编辑器修改此方法的内容。
/// </summary>
private void InitializeComponent()
{
this.RoleDataGridView = new System.Windows.Forms.DataGridView();
this.AddRole = new System.Windows.Forms.Button();
this.ButtonPanel = new System.Windows.Forms.Panel();
((System.ComponentModel.ISupportInitialize)(this.RoleDataGridView)).BeginInit();
this.ButtonPanel.SuspendLayout();
this.SuspendLayout();
//
// RoleDataGridView
//
this.RoleDataGridView.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.RoleDataGridView.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize;
this.RoleDataGridView.Location = new System.Drawing.Point(0, 65);
this.RoleDataGridView.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2);
this.RoleDataGridView.Name = "RoleDataGridView";
this.RoleDataGridView.RowTemplate.Height = 25;
this.RoleDataGridView.Size = new System.Drawing.Size(883, 497);
this.RoleDataGridView.TabIndex = 0;
this.RoleDataGridView.Tag = "";
//
// AddRole
//
this.AddRole.Location = new System.Drawing.Point(11, 11);
this.AddRole.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2);
this.AddRole.Name = "AddRole";
this.AddRole.Size = new System.Drawing.Size(103, 39);
this.AddRole.TabIndex = 1;
this.AddRole.Text = "查询操作信息";
this.AddRole.UseVisualStyleBackColor = true;
//
// ButtonPanel
//
this.ButtonPanel.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.ButtonPanel.Controls.Add(this.AddRole);
this.ButtonPanel.Location = new System.Drawing.Point(0, 0);
this.ButtonPanel.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2);
this.ButtonPanel.Name = "ButtonPanel";
this.ButtonPanel.Size = new System.Drawing.Size(883, 61);
this.ButtonPanel.TabIndex = 4;
//
// OperateConfigPage
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.BackColor = System.Drawing.SystemColors.ControlLight;
this.Controls.Add(this.ButtonPanel);
this.Controls.Add(this.RoleDataGridView);
this.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2);
this.Name = "OperateConfigPage";
this.Size = new System.Drawing.Size(883, 562);
((System.ComponentModel.ISupportInitialize)(this.RoleDataGridView)).EndInit();
this.ButtonPanel.ResumeLayout(false);
this.ResumeLayout(false);
}
#endregion
private DataGridView RoleDataGridView;
private Button AddRole;
private Panel ButtonPanel;
}
}

@ -0,0 +1,25 @@
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace HighWayIot.Winform.UserControlPages
{
public partial class ProductionScheduling : UserControl
{
public ProductionScheduling()
{
InitializeComponent();
}
private void UpdateRole_Click(object sender, EventArgs e)
{
}
}
}

@ -0,0 +1,120 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
</root>

@ -0,0 +1,98 @@
using System.Drawing;
using System.Windows.Forms;
namespace HighWayIot.Winform.UserControlPages
{
partial class RecipeConfigPage
{
/// <summary>
/// 必需的设计器变量。
/// </summary>
private System.ComponentModel.IContainer components = null;
/// <summary>
/// 清理所有正在使用的资源。
/// </summary>
/// <param name="disposing">如果应释放托管资源,为 true否则为 false。</param>
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}
#region 组件设计器生成的代码
/// <summary>
/// 设计器支持所需的方法 - 不要修改
/// 使用代码编辑器修改此方法的内容。
/// </summary>
private void InitializeComponent()
{
this.RoleDataGridView = new System.Windows.Forms.DataGridView();
this.AddRole = new System.Windows.Forms.Button();
this.ButtonPanel = new System.Windows.Forms.Panel();
((System.ComponentModel.ISupportInitialize)(this.RoleDataGridView)).BeginInit();
this.ButtonPanel.SuspendLayout();
this.SuspendLayout();
//
// RoleDataGridView
//
this.RoleDataGridView.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.RoleDataGridView.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize;
this.RoleDataGridView.Location = new System.Drawing.Point(0, 65);
this.RoleDataGridView.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2);
this.RoleDataGridView.Name = "RoleDataGridView";
this.RoleDataGridView.RowTemplate.Height = 25;
this.RoleDataGridView.Size = new System.Drawing.Size(883, 497);
this.RoleDataGridView.TabIndex = 0;
this.RoleDataGridView.Tag = "";
//
// AddRole
//
this.AddRole.Location = new System.Drawing.Point(11, 11);
this.AddRole.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2);
this.AddRole.Name = "AddRole";
this.AddRole.Size = new System.Drawing.Size(103, 39);
this.AddRole.TabIndex = 1;
this.AddRole.Text = "查询操作信息";
this.AddRole.UseVisualStyleBackColor = true;
//
// ButtonPanel
//
this.ButtonPanel.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.ButtonPanel.Controls.Add(this.AddRole);
this.ButtonPanel.Location = new System.Drawing.Point(0, 0);
this.ButtonPanel.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2);
this.ButtonPanel.Name = "ButtonPanel";
this.ButtonPanel.Size = new System.Drawing.Size(883, 61);
this.ButtonPanel.TabIndex = 4;
//
// OperateConfigPage
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.BackColor = System.Drawing.SystemColors.ControlLight;
this.Controls.Add(this.ButtonPanel);
this.Controls.Add(this.RoleDataGridView);
this.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2);
this.Name = "OperateConfigPage";
this.Size = new System.Drawing.Size(883, 562);
((System.ComponentModel.ISupportInitialize)(this.RoleDataGridView)).EndInit();
this.ButtonPanel.ResumeLayout(false);
this.ResumeLayout(false);
}
#endregion
private DataGridView RoleDataGridView;
private Button AddRole;
private Panel ButtonPanel;
}
}

@ -0,0 +1,25 @@
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace HighWayIot.Winform.UserControlPages
{
public partial class RecipeConfigPage : UserControl
{
public RecipeConfigPage()
{
InitializeComponent();
}
private void UpdateRole_Click(object sender, EventArgs e)
{
}
}
}

@ -0,0 +1,120 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
</root>

@ -1,7 +1,7 @@
using System.Drawing;
using System.Windows.Forms;
namespace HighWayIot.Winform.UserControlPages
namespace HighWayIot.Winform.UserControlPages.SysConfigPages
{
partial class RoleConfigPage
{

@ -13,7 +13,7 @@ using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace HighWayIot.Winform.UserControlPages
namespace HighWayIot.Winform.UserControlPages.SysConfigPages
{
public partial class RoleConfigPage : UserControl
{

@ -101,7 +101,7 @@ namespace HighWayIot.Winform.UserControlPages.SysConfigPages
if (_sysUserRoleService.UpdateRoleInfo(_roleEntity))
{
MessageBox.Show("角色修改成功", "提示", MessageBoxButtons.OK);
MessageBox.Show("角色修改成功,若重新应用权限需重启软件", "提示", MessageBoxButtons.OK);
}
else
{

@ -0,0 +1,180 @@
using System.Windows.Forms;
namespace HighWayIot.Winform.UserControlPages.SysConfigPages
{
partial class ShiftTimePage
{
/// <summary>
/// 必需的设计器变量。
/// </summary>
private System.ComponentModel.IContainer components = null;
/// <summary>
/// 清理所有正在使用的资源。
/// </summary>
/// <param name="disposing">如果应释放托管资源,为 true否则为 false。</param>
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}
#region 组件设计器生成的代码
/// <summary>
/// 设计器支持所需的方法 - 不要修改
/// 使用代码编辑器修改此方法的内容。
/// </summary>
private void InitializeComponent()
{
this.ShiftTimeDataGridView = new System.Windows.Forms.DataGridView();
this.UpdateShiftTimeButton = new System.Windows.Forms.Button();
this.ButtonPanel = new System.Windows.Forms.Panel();
this.RefreshShiftTime = new System.Windows.Forms.Button();
this.ShiftId = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.ShiftName = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.ShiftStartTime = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.ShiftEndTime = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.ShiftClass = new System.Windows.Forms.DataGridViewTextBoxColumn();
((System.ComponentModel.ISupportInitialize)(this.ShiftTimeDataGridView)).BeginInit();
this.ButtonPanel.SuspendLayout();
this.SuspendLayout();
//
// ShiftTimeDataGridView
//
this.ShiftTimeDataGridView.AllowUserToAddRows = false;
this.ShiftTimeDataGridView.AllowUserToDeleteRows = false;
this.ShiftTimeDataGridView.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.ShiftTimeDataGridView.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize;
this.ShiftTimeDataGridView.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] {
this.ShiftId,
this.ShiftName,
this.ShiftStartTime,
this.ShiftEndTime,
this.ShiftClass});
this.ShiftTimeDataGridView.Location = new System.Drawing.Point(0, 65);
this.ShiftTimeDataGridView.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2);
this.ShiftTimeDataGridView.Name = "ShiftTimeDataGridView";
this.ShiftTimeDataGridView.RowHeadersVisible = false;
this.ShiftTimeDataGridView.RowTemplate.Height = 25;
this.ShiftTimeDataGridView.Size = new System.Drawing.Size(1164, 772);
this.ShiftTimeDataGridView.TabIndex = 0;
//
// UpdateShiftTimeButton
//
this.UpdateShiftTimeButton.Location = new System.Drawing.Point(11, 11);
this.UpdateShiftTimeButton.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2);
this.UpdateShiftTimeButton.Name = "UpdateShiftTimeButton";
this.UpdateShiftTimeButton.Size = new System.Drawing.Size(103, 39);
this.UpdateShiftTimeButton.TabIndex = 1;
this.UpdateShiftTimeButton.Text = "更改班次信息";
this.UpdateShiftTimeButton.UseVisualStyleBackColor = true;
this.UpdateShiftTimeButton.Click += new System.EventHandler(this.UpdateShiftTimeButton_Click);
//
// ButtonPanel
//
this.ButtonPanel.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.ButtonPanel.Controls.Add(this.RefreshShiftTime);
this.ButtonPanel.Controls.Add(this.UpdateShiftTimeButton);
this.ButtonPanel.Location = new System.Drawing.Point(0, 0);
this.ButtonPanel.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2);
this.ButtonPanel.Name = "ButtonPanel";
this.ButtonPanel.Size = new System.Drawing.Size(1164, 61);
this.ButtonPanel.TabIndex = 4;
this.ButtonPanel.Tag = "报警日志";
//
// RefreshShiftTime
//
this.RefreshShiftTime.Location = new System.Drawing.Point(122, 11);
this.RefreshShiftTime.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2);
this.RefreshShiftTime.Name = "RefreshShiftTime";
this.RefreshShiftTime.Size = new System.Drawing.Size(103, 39);
this.RefreshShiftTime.TabIndex = 2;
this.RefreshShiftTime.Text = "刷新班次信息";
this.RefreshShiftTime.UseVisualStyleBackColor = true;
this.RefreshShiftTime.Click += new System.EventHandler(this.RefreshShiftTime_Click);
//
// ShiftId
//
this.ShiftId.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.Fill;
this.ShiftId.DataPropertyName = "ShiftId";
this.ShiftId.HeaderText = "班次代号";
this.ShiftId.Name = "ShiftId";
this.ShiftId.ReadOnly = true;
this.ShiftId.Resizable = System.Windows.Forms.DataGridViewTriState.True;
this.ShiftId.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.NotSortable;
//
// ShiftName
//
this.ShiftName.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.Fill;
this.ShiftName.DataPropertyName = "ShiftName";
this.ShiftName.HeaderText = "班次名称";
this.ShiftName.Name = "ShiftName";
this.ShiftName.Resizable = System.Windows.Forms.DataGridViewTriState.True;
this.ShiftName.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.NotSortable;
//
// ShiftStartTime
//
this.ShiftStartTime.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.Fill;
this.ShiftStartTime.DataPropertyName = "ShiftStartTime";
this.ShiftStartTime.HeaderText = "班次开始时间";
this.ShiftStartTime.Name = "ShiftStartTime";
this.ShiftStartTime.Resizable = System.Windows.Forms.DataGridViewTriState.True;
this.ShiftStartTime.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.NotSortable;
this.ShiftStartTime.ToolTipText = "格式为hh:mm:ss";
//
// ShiftEndTime
//
this.ShiftEndTime.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.Fill;
this.ShiftEndTime.DataPropertyName = "ShiftEndTime";
this.ShiftEndTime.HeaderText = "班次结束时间";
this.ShiftEndTime.Name = "ShiftEndTime";
this.ShiftEndTime.Resizable = System.Windows.Forms.DataGridViewTriState.True;
this.ShiftEndTime.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.NotSortable;
this.ShiftEndTime.ToolTipText = "格式为hh:mm:ss";
//
// ShiftClass
//
this.ShiftClass.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.Fill;
this.ShiftClass.DataPropertyName = "ShiftClass";
this.ShiftClass.HeaderText = "班次类型";
this.ShiftClass.Name = "ShiftClass";
this.ShiftClass.Resizable = System.Windows.Forms.DataGridViewTriState.True;
this.ShiftClass.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.NotSortable;
//
// ShiftTimePage
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.BackColor = System.Drawing.SystemColors.ControlLight;
this.Controls.Add(this.ButtonPanel);
this.Controls.Add(this.ShiftTimeDataGridView);
this.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2);
this.Name = "ShiftTimePage";
this.Size = new System.Drawing.Size(1164, 837);
this.Tag = "";
((System.ComponentModel.ISupportInitialize)(this.ShiftTimeDataGridView)).EndInit();
this.ButtonPanel.ResumeLayout(false);
this.ResumeLayout(false);
}
#endregion
private DataGridView ShiftTimeDataGridView;
private Button UpdateShiftTimeButton;
private Panel ButtonPanel;
private Button RefreshShiftTime;
private DataGridViewTextBoxColumn ShiftId;
private DataGridViewTextBoxColumn ShiftName;
private DataGridViewTextBoxColumn ShiftStartTime;
private DataGridViewTextBoxColumn ShiftEndTime;
private DataGridViewTextBoxColumn ShiftClass;
}
}

@ -0,0 +1,90 @@
using HighWayIot.Repository.domain;
using HighWayIot.Repository.service;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace HighWayIot.Winform.UserControlPages.SysConfigPages
{
public partial class ShiftTimePage : UserControl
{
/// <summary>
/// 班组时间业务实例
/// </summary>
SysShiftTimeService _sysShiftTimeService = SysShiftTimeService.Instance;
/// <summary>
/// 数据流转
/// </summary>
private List<SysShiftTimeEntity> _list;
public ShiftTimePage()
{
InitializeComponent();
Init();
}
private void Init()
{
ShiftTimeDataGridView.AutoGenerateColumns = false;
_list = _sysShiftTimeService.GetShiftInfos();
ShiftTimeDataGridView.DataSource = null;
ShiftTimeDataGridView.DataSource = _list;
}
private void RefreshShiftTime_Click(object sender, EventArgs e)
{
_list = _sysShiftTimeService.GetShiftInfos();
ShiftTimeDataGridView.DataSource = null;
ShiftTimeDataGridView.DataSource = _list;
}
private void UpdateShiftTimeButton_Click(object sender, EventArgs e)
{
if (MessageBox.Show("确认要修改班次信息?", "确认", MessageBoxButtons.OKCancel) == DialogResult.Cancel)
{
return;
}
foreach (DataGridViewRow row in ShiftTimeDataGridView.Rows)
{
if (row.IsNewRow)
{
continue;
}
SysShiftTimeEntity shiftTimeEntity = new SysShiftTimeEntity();
if (row.Cells[1].Value.ToString().Length > 1 ||
row.Cells[2].Value.ToString().Length > 8 ||
row.Cells[3].Value.ToString().Length > 8 ||
row.Cells[4].Value.ToString().Length > 1
)
{
MessageBox.Show("输入信息长度有误,班次内容、班次类型为单字,班次时间格式为 时时:分分:秒秒 \" 08:00:00 \"");
return;
}
shiftTimeEntity.ShiftId = row.Cells[0].Value.ToString();
shiftTimeEntity.ShiftName = row.Cells[1].Value.ToString();
shiftTimeEntity.ShiftStartTime = row.Cells[2].Value.ToString();
shiftTimeEntity.ShiftEndTime = row.Cells[3].Value.ToString();
shiftTimeEntity.ShiftClass = row.Cells[4].Value.ToString();
_sysShiftTimeService.UpdateShiftInfo(shiftTimeEntity);
}
_list = _sysShiftTimeService.GetShiftInfos();
ShiftTimeDataGridView.DataSource = null;
ShiftTimeDataGridView.DataSource = _list;
}
}
}

@ -0,0 +1,135 @@
<?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="ShiftId.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="ShiftName.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="ShiftStartTime.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="ShiftEndTime.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="ShiftClass.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
</root>

@ -1,7 +1,7 @@
using System.Drawing;
using System.Windows.Forms;
namespace HighWayIot.Winform.UserControlPages
namespace HighWayIot.Winform.UserControlPages.SysConfigPages
{
partial class UserConfigPage
{

@ -11,7 +11,7 @@ using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace HighWayIot.Winform.UserControlPages
namespace HighWayIot.Winform.UserControlPages.SysConfigPages
{
public partial class UserConfigPage : UserControl
{

@ -1,4 +1,4 @@
namespace HighWayIot.Winform.UserControlPages.SysConfigPages
namespace HighWayIot.Winform.UserControlPages
{
partial class TestPage
{

@ -10,7 +10,7 @@ using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace HighWayIot.Winform.UserControlPages.SysConfigPages
namespace HighWayIot.Winform.UserControlPages
{
public partial class TestPage : UserControl
{

@ -0,0 +1,120 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
</root>
Loading…
Cancel
Save