Compare commits

...

2 Commits

Author SHA1 Message Date
李鹏飞 d31db46f18 Merge branch 'master' of http://47.104.102.122:3000/lpf/SGGL_SHJ 2026-05-18 21:29:06 +08:00
李鹏飞 44cd0fcf8c feat(clgl): 新增入库材料条形码打印
生成入库单时同步生成入库材料条形码明细,并在入库单管理中支持整单和单条条形码打印。
2026-05-18 21:28:56 +08:00
13 changed files with 563 additions and 43 deletions

View File

@ -0,0 +1,18 @@
IF OBJECT_ID(N'dbo.Tw_InputDetailBarCode', N'U') IS NULL
BEGIN
CREATE TABLE dbo.Tw_InputDetailBarCode
(
Id NVARCHAR(50) NOT NULL,
InputDetailId NVARCHAR(50) NOT NULL,
InputMasterId NVARCHAR(50) NOT NULL,
MaterialCode NVARCHAR(50) NULL,
BarCode NVARCHAR(500) NULL,
CONSTRAINT PK_Tw_InputDetailBarCode PRIMARY KEY CLUSTERED (Id ASC)
);
CREATE NONCLUSTERED INDEX IX_Tw_InputDetailBarCode_InputMasterId
ON dbo.Tw_InputDetailBarCode(InputMasterId);
CREATE NONCLUSTERED INDEX IX_Tw_InputDetailBarCode_InputDetailId
ON dbo.Tw_InputDetailBarCode(InputDetailId);
END;

View File

@ -292,6 +292,7 @@
<Compile Include="CLGL\TwInOutplandetailRelationService.cs" /> <Compile Include="CLGL\TwInOutplandetailRelationService.cs" />
<Compile Include="CLGL\TwInOutplandetailService.cs" /> <Compile Include="CLGL\TwInOutplandetailService.cs" />
<Compile Include="CLGL\TwInOutplanmasterService.cs" /> <Compile Include="CLGL\TwInOutplanmasterService.cs" />
<Compile Include="CLGL\TwInputdetailBarCodeService.cs" />
<Compile Include="CLGL\TwInputdetailService.cs" /> <Compile Include="CLGL\TwInputdetailService.cs" />
<Compile Include="CLGL\TwInputmasterService.cs" /> <Compile Include="CLGL\TwInputmasterService.cs" />
<Compile Include="CLGL\TwMaterialstockService.cs" /> <Compile Include="CLGL\TwMaterialstockService.cs" />

View File

@ -0,0 +1,123 @@
using FineUIPro;
using Model;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
namespace BLL
{
public static class TwInputdetailBarCodeService
{
public static int Count
{
get;
set;
}
public static IEnumerable GetListData(Tw_InputDetailBarCodeOutput table, Grid grid1)
{
List<Tw_InputDetailBarCodeOutput> list = GetListData(table);
Count = list.Count;
if (Count == 0)
{
return null;
}
return list.Skip(grid1.PageSize * grid1.PageIndex).Take(grid1.PageSize);
}
public static List<Tw_InputDetailBarCodeOutput> GetListData(Tw_InputDetailBarCodeOutput table)
{
var q = from x in Funs.DB.Tw_InputDetailBarCode
join master in Funs.DB.Tw_InputMaster on x.InputMasterId equals master.Id into masters
from master in masters.DefaultIfEmpty()
join mat in Funs.DB.HJGL_MaterialCodeLib on x.MaterialCode equals mat.MaterialCode into mats
from mat in mats.DefaultIfEmpty()
where
(string.IsNullOrEmpty(table.Id) || x.Id.Contains(table.Id)) &&
(string.IsNullOrEmpty(table.InputDetailId) || x.InputDetailId.Contains(table.InputDetailId)) &&
(string.IsNullOrEmpty(table.InputMasterId) || x.InputMasterId.Contains(table.InputMasterId)) &&
(string.IsNullOrEmpty(table.MaterialCode) || x.MaterialCode.Contains(table.MaterialCode))
orderby master.CusBillCode, x.MaterialCode, x.Id
select new Tw_InputDetailBarCodeOutput
{
Id = x.Id,
InputDetailId = x.InputDetailId,
InputMasterId = x.InputMasterId,
CusBillCode = master.CusBillCode,
MaterialCode = x.MaterialCode,
MaterialName = mat.MaterialName,
MaterialDef = mat.MaterialDef,
BarCode = x.BarCode
};
return q.ToList();
}
public static void AddByInputDetail(Tw_InputMaster inputMaster, Tw_InputDetail inputDetail)
{
if (inputMaster == null || inputDetail == null)
{
return;
}
if (IsExist(inputDetail.Id))
{
return;
}
string id = SQLHelper.GetNewID();
Tw_InputDetailBarCode table = new Tw_InputDetailBarCode
{
Id = id,
InputDetailId = inputDetail.Id,
InputMasterId = inputMaster.Id,
MaterialCode = inputDetail.MaterialCode,
BarCode = BuildBarCode(inputMaster, inputDetail, id)
};
Funs.DB.Tw_InputDetailBarCode.InsertOnSubmit(table);
Funs.DB.SubmitChanges();
}
public static void DeleteByInputMasterId(string inputMasterId)
{
if (string.IsNullOrEmpty(inputMasterId))
{
return;
}
var list = Funs.DB.Tw_InputDetailBarCode.Where(x => x.InputMasterId == inputMasterId).ToList();
if (list.Count > 0)
{
Funs.DB.Tw_InputDetailBarCode.DeleteAllOnSubmit(list);
Funs.DB.SubmitChanges();
}
}
public static void DeleteByInputDetailId(string inputDetailId)
{
if (string.IsNullOrEmpty(inputDetailId))
{
return;
}
var list = Funs.DB.Tw_InputDetailBarCode.Where(x => x.InputDetailId == inputDetailId).ToList();
if (list.Count > 0)
{
Funs.DB.Tw_InputDetailBarCode.DeleteAllOnSubmit(list);
Funs.DB.SubmitChanges();
}
}
private static bool IsExist(string inputDetailId)
{
return Funs.DB.Tw_InputDetailBarCode.Any(x => x.InputDetailId == inputDetailId);
}
/// <summary>
/// 入库材料条形码生成规则,后续调整条形码内容只需修改此方法。
/// </summary>
public static string BuildBarCode(Tw_InputMaster inputMaster, Tw_InputDetail inputDetail, string barCodeDetailId)
{
return "IB" + barCodeDetailId.Replace("-", string.Empty).ToUpperInvariant();
}
}
}

View File

@ -117,6 +117,7 @@ namespace BLL
Model.Tw_InputDetail table = Funs.DB.Tw_InputDetail.FirstOrDefault(x => x.Id == Id); Model.Tw_InputDetail table = Funs.DB.Tw_InputDetail.FirstOrDefault(x => x.Id == Id);
if (table != null) if (table != null)
{ {
TwInputdetailBarCodeService.DeleteByInputDetailId(Id);
Funs.DB.Tw_InputDetail.DeleteOnSubmit(table); Funs.DB.Tw_InputDetail.DeleteOnSubmit(table);
Funs.DB.SubmitChanges(); Funs.DB.SubmitChanges();
} }

View File

@ -288,6 +288,7 @@ namespace BLL
SortIndex = detail.SortIndex, SortIndex = detail.SortIndex,
}; };
TwInputdetailService.Add(detailTable); TwInputdetailService.Add(detailTable);
TwInputdetailBarCodeService.AddByInputDetail(master, detailTable);
TwMaterialstockService.UpdateStockNum(master.ProjectId, detail.MaterialCode, master.WarehouseCode, TwConst.InOutType., detailTable.ActNum); TwMaterialstockService.UpdateStockNum(master.ProjectId, detail.MaterialCode, master.WarehouseCode, TwConst.InOutType., detailTable.ActNum);
} }
@ -319,6 +320,7 @@ namespace BLL
{ {
return; return;
} }
TwInputdetailBarCodeService.DeleteByInputMasterId(master.Id);
DeleteById(master.Id); //删除入库单 DeleteById(master.Id); //删除入库单
//删除明细 //删除明细
Tw_InOutDetailOutput queryDetail = new Tw_InOutDetailOutput(); Tw_InOutDetailOutput queryDetail = new Tw_InOutDetailOutput();

View File

@ -98,6 +98,7 @@
FieldType="String" HeaderText="备注" TextAlign="Left" HeaderTextAlign="Center"> FieldType="String" HeaderText="备注" TextAlign="Left" HeaderTextAlign="Center">
</f:RenderField> </f:RenderField>
<f:LinkButtonField Width="150px" ColumnID="btnInPlanMasterPrint" TextAlign="Center" CommandName="btnInPlanMasterPrint" Text="入库单打印" /> <f:LinkButtonField Width="150px" ColumnID="btnInPlanMasterPrint" TextAlign="Center" CommandName="btnInPlanMasterPrint" Text="入库单打印" />
<f:LinkButtonField Width="150px" ColumnID="btnInputBarCodePrint" TextAlign="Center" CommandName="btnInputBarCodePrint" Text="入库条码打印" />
</Columns> </Columns>
<Listeners> <Listeners>
<f:Listener Event="beforerowcontextmenu" Handler="onRowContextMenu" /> <f:Listener Event="beforerowcontextmenu" Handler="onRowContextMenu" />
@ -125,40 +126,77 @@
<f:Panel runat="server" ID="panelBottomRegion" RegionPosition="Bottom" RegionSplit="true" RegionSplitWidth="20px" EnableCollapse="true" <f:Panel runat="server" ID="panelBottomRegion" RegionPosition="Bottom" RegionSplit="true" RegionSplitWidth="20px" EnableCollapse="true"
Title="底部面板" ShowBorder="false" RegionPercent="40%" ShowHeader="false" BodyPadding="1px" Layout="Fit"> Title="底部面板" ShowBorder="false" RegionPercent="40%" ShowHeader="false" BodyPadding="1px" Layout="Fit">
<Items> <Items>
<f:Panel ID="Panel3" runat="server" Margin="5px" BodyPadding="5px" ShowBorder="false" AutoScroll="true" <f:TabStrip ID="TabStrip1" ShowBorder="false" TabPosition="Top"
ShowHeader="false" Layout="VBox" BoxConfigAlign="Stretch"> EnableTabCloseMenu="false" ActiveTabIndex="0" runat="server" AutoPostBack="true" OnTabIndexChanged="TabStrip1_TabIndexChanged">
<Items> <Tabs>
<f:Grid ID="Grid2" ShowBorder="true" ShowHeader="true" Title="入库申请明细表" EnableCollapse="true" <f:Tab ID="TabDetail" Title="入库明细表" BodyPadding="1px" Layout="VBox" runat="server" AutoScroll="true">
runat="server" BoxFlex="1" DataKeyNames="Id" AllowCellEditing="true" <Items>
ClicksToEdit="2" DataIDField="Id" AllowSorting="true" SortField="Id" <f:Grid ID="Grid2" ShowBorder="false" ShowHeader="false" Title="入库申请明细表" EnableCollapse="true"
SortDirection="DESC" EnableColumnLines="true" runat="server" BoxFlex="1" DataKeyNames="Id" AllowCellEditing="true"
AllowPaging="true" IsDatabasePaging="true" PageSize="10000" EnableSummary="true" SummaryPosition="Bottom"> ClicksToEdit="2" DataIDField="Id" AllowSorting="true" SortField="Id"
<Columns> SortDirection="DESC" EnableColumnLines="true"
<f:TemplateField ColumnID="tfNumber" Width="50px" HeaderText="序号" HeaderTextAlign="Center" AllowPaging="true" IsDatabasePaging="true" PageSize="10000" EnableSummary="true" SummaryPosition="Bottom">
TextAlign="Center"> <Columns>
<ItemTemplate> <f:TemplateField ColumnID="tfNumber" Width="50px" HeaderText="序号" HeaderTextAlign="Center"
<asp:Label ID="Label1" runat="server" Text='<%# Grid2.PageIndex * Grid2.PageSize + Container.DataItemIndex + 1 %>'></asp:Label> TextAlign="Center">
</ItemTemplate> <ItemTemplate>
</f:TemplateField> <asp:Label ID="Label1" runat="server" Text='<%# Grid2.PageIndex * Grid2.PageSize + Container.DataItemIndex + 1 %>'></asp:Label>
<f:RenderField Width="150px" ColumnID="MaterialCode" DataField="MaterialCode" SortField="MaterialCode" </ItemTemplate>
FieldType="String" HeaderText="材料编码" TextAlign="Left" HeaderTextAlign="Center"> </f:TemplateField>
</f:RenderField> <f:RenderField Width="150px" ColumnID="MaterialCode" DataField="MaterialCode" SortField="MaterialCode"
<f:RenderField Width="150px" ColumnID="MaterialName" DataField="MaterialName" SortField="MaterialName" FieldType="String" HeaderText="材料编码" TextAlign="Left" HeaderTextAlign="Center">
FieldType="String" HeaderText="材料名称" TextAlign="Left" HeaderTextAlign="Center"> </f:RenderField>
</f:RenderField> <f:RenderField Width="150px" ColumnID="MaterialName" DataField="MaterialName" SortField="MaterialName"
<f:RenderField Width="300px" ColumnID="MaterialDef" DataField="MaterialDef" SortField="MaterialDef" FieldType="String" HeaderText="材料名称" TextAlign="Left" HeaderTextAlign="Center">
FieldType="String" HeaderText="材料描述" TextAlign="Left" HeaderTextAlign="Center" ExpandUnusedSpace="True"> </f:RenderField>
</f:RenderField> <f:RenderField Width="300px" ColumnID="MaterialDef" DataField="MaterialDef" SortField="MaterialDef"
<f:RenderField Width="100px" ColumnID="PlanNum" DataField="PlanNum" SortField="PlanNum" FieldType="String" HeaderText="材料描述" TextAlign="Left" HeaderTextAlign="Center" ExpandUnusedSpace="True">
FieldType="String" HeaderText="计划数量" TextAlign="Left" HeaderTextAlign="Center"> </f:RenderField>
</f:RenderField> <f:RenderField Width="100px" ColumnID="PlanNum" DataField="PlanNum" SortField="PlanNum"
<f:RenderField Width="100px" ColumnID="ActNum" DataField="ActNum" SortField="ActNum" FieldType="String" HeaderText="计划数量" TextAlign="Left" HeaderTextAlign="Center">
FieldType="String" HeaderText="实际数量" TextAlign="Left" HeaderTextAlign="Center"> </f:RenderField>
</f:RenderField> <f:RenderField Width="100px" ColumnID="ActNum" DataField="ActNum" SortField="ActNum"
</Columns> FieldType="String" HeaderText="实际数量" TextAlign="Left" HeaderTextAlign="Center">
</f:Grid> </f:RenderField>
</Items> </Columns>
</f:Panel> </f:Grid>
</Items>
</f:Tab>
<f:Tab ID="TabInputDetailBarCode" Title="入库明细条码表" BodyPadding="1px" Layout="VBox" runat="server" AutoScroll="true">
<Items>
<f:Grid ID="Grid3" ShowBorder="false" ShowHeader="false" Title="入库明细条码表" EnableCollapse="true"
runat="server" BoxFlex="1" DataKeyNames="Id" DataIDField="Id" AllowSorting="true"
SortField="Id" SortDirection="DESC" EnableColumnLines="true" EnableTextSelection="true"
AllowPaging="true" IsDatabasePaging="true" PageSize="10000" OnRowCommand="Grid3_RowCommand">
<Columns>
<f:TemplateField ColumnID="tfNumber" Width="50px" HeaderText="序号" HeaderTextAlign="Center"
TextAlign="Center">
<ItemTemplate>
<asp:Label ID="Label2" runat="server" Text='<%# Grid3.PageIndex * Grid3.PageSize + Container.DataItemIndex + 1 %>'></asp:Label>
</ItemTemplate>
</f:TemplateField>
<f:RenderField Width="220px" ColumnID="CusBillCode" DataField="CusBillCode" SortField="CusBillCode"
FieldType="String" HeaderText="入库单编号" TextAlign="Left" HeaderTextAlign="Center">
</f:RenderField>
<f:RenderField Width="150px" ColumnID="MaterialCode" DataField="MaterialCode" SortField="MaterialCode"
FieldType="String" HeaderText="材料编码" TextAlign="Left" HeaderTextAlign="Center">
</f:RenderField>
<f:RenderField Width="150px" ColumnID="MaterialName" DataField="MaterialName" SortField="MaterialName"
FieldType="String" HeaderText="材料名称" TextAlign="Left" HeaderTextAlign="Center">
</f:RenderField>
<f:RenderField Width="300px" ColumnID="MaterialDef" DataField="MaterialDef" SortField="MaterialDef"
FieldType="String" HeaderText="材料描述" TextAlign="Left" HeaderTextAlign="Center" ExpandUnusedSpace="True">
</f:RenderField>
<f:RenderField Width="360px" ColumnID="BarCode" DataField="BarCode" SortField="BarCode"
FieldType="String" HeaderText="条码内容" TextAlign="Left" HeaderTextAlign="Center">
</f:RenderField>
<f:LinkButtonField Width="120px" ColumnID="btnBarCodePrint" TextAlign="Center" CommandName="btnBarCodePrint" Text="入库条码打印" />
</Columns>
</f:Grid>
</Items>
</f:Tab>
</Tabs>
</f:TabStrip>
</Items> </Items>
</f:Panel> </f:Panel>
</Items> </Items>

View File

@ -64,6 +64,8 @@ namespace FineUIPro.Web.CLGL
Grid2.DataSource = null; Grid2.DataSource = null;
Grid2.DataBind(); Grid2.DataBind();
Grid3.DataSource = null;
Grid3.DataBind();
} }
private void BindDetailGrid(string inputMasterId) private void BindDetailGrid(string inputMasterId)
{ {
@ -93,6 +95,15 @@ namespace FineUIPro.Web.CLGL
Grid2.SummaryData = summary; Grid2.SummaryData = summary;
} }
private void BindBarCodeGrid(string inputMasterId)
{
Model.Tw_InputDetailBarCodeOutput table = new Model.Tw_InputDetailBarCodeOutput();
table.InputMasterId = inputMasterId;
var tb = BLL.TwInputdetailBarCodeService.GetListData(table, Grid3);
Grid3.DataSource = tb;
Grid3.DataBind();
}
#endregion #endregion
#region GV #region GV
@ -134,6 +145,7 @@ namespace FineUIPro.Web.CLGL
{ {
string ID = Grid1.DataKeys[e.RowIndex][0].ToString(); string ID = Grid1.DataKeys[e.RowIndex][0].ToString();
BindDetailGrid(ID); BindDetailGrid(ID);
BindBarCodeGrid(ID);
} }
} }
/// <summary> /// <summary>
@ -321,7 +333,71 @@ namespace FineUIPro.Web.CLGL
{ {
Print(e.RowID); Print(e.RowID);
} }
else if (e.CommandName == "btnInputBarCodePrint")
{
PrintInputBarCode(e.RowID, string.Empty);
}
} }
protected void Grid3_RowCommand(object sender, GridCommandEventArgs e)
{
if (e.CommandName == "btnBarCodePrint")
{
PrintInputBarCode(string.Empty, e.RowID);
}
}
protected void TabStrip1_TabIndexChanged(object sender, EventArgs e)
{
if (!string.IsNullOrEmpty(Grid1.SelectedRowID))
{
if (TabStrip1.ActiveTabIndex == 0)
{
BindDetailGrid(Grid1.SelectedRowID);
}
else if (TabStrip1.ActiveTabIndex == 1)
{
BindBarCodeGrid(Grid1.SelectedRowID);
}
}
}
private void PrintInputBarCode(string inputMasterId, string barCodeId)
{
if (string.IsNullOrEmpty(inputMasterId) && string.IsNullOrEmpty(barCodeId))
{
ShowNotify("请选择要打印的项", MessageBoxIcon.Warning);
return;
}
BLL.FastReportService.ResetData();
var query = new Tw_InputDetailBarCodeOutput
{
Id = barCodeId,
InputMasterId = inputMasterId
};
var list = TwInputdetailBarCodeService.GetListData(query);
if (list == null || list.Count == 0)
{
ShowNotify("未找到入库条码明细,请确认已生成入库单并已创建条码明细表。", MessageBoxIcon.Warning);
return;
}
DataTable table = LINQToDataTable(list);
if (table != null)
{
table.TableName = "Table1";
}
BLL.FastReportService.AddFastreportTable(table);
string rootPath = Server.MapPath("~/");
string initTemplatePath = "File\\Fastreport\\材料入库条码.frx";
if (File.Exists(rootPath + initTemplatePath))
{
PageContext.RegisterStartupScript(Window2.GetShowReference(String.Format("~/Controls/Fastreport.aspx?ReportPath={0}", rootPath + initTemplatePath)));
}
}
private void Print(string Id) private void Print(string Id)
{ {
BLL.FastReportService.ResetData(); BLL.FastReportService.ResetData();

View File

@ -159,13 +159,22 @@ namespace FineUIPro.Web.CLGL
protected global::FineUIPro.Panel panelBottomRegion; protected global::FineUIPro.Panel panelBottomRegion;
/// <summary> /// <summary>
/// Panel3 控件。 /// TabStrip1 控件。
/// </summary> /// </summary>
/// <remarks> /// <remarks>
/// 自动生成的字段。 /// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks> /// </remarks>
protected global::FineUIPro.Panel Panel3; protected global::FineUIPro.TabStrip TabStrip1;
/// <summary>
/// TabDetail 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.Tab TabDetail;
/// <summary> /// <summary>
/// Grid2 控件。 /// Grid2 控件。
@ -185,6 +194,33 @@ namespace FineUIPro.Web.CLGL
/// </remarks> /// </remarks>
protected global::System.Web.UI.WebControls.Label Label1; protected global::System.Web.UI.WebControls.Label Label1;
/// <summary>
/// TabInputDetailBarCode 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.Tab TabInputDetailBarCode;
/// <summary>
/// Grid3 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.Grid Grid3;
/// <summary>
/// Label2 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::System.Web.UI.WebControls.Label Label2;
/// <summary> /// <summary>
/// Window1 控件。 /// Window1 控件。
/// </summary> /// </summary>

View File

@ -0,0 +1,41 @@
<?xml version="1.0" encoding="utf-8"?>
<Report ScriptLanguage="CSharp" ReportInfo.Created="05/18/2026 00:00:00" ReportInfo.Modified="05/18/2026 00:00:00" ReportInfo.CreatorVersion="2021.3.0.0">
<ScriptText>using System;
using System.Collections;
using System.Collections.Generic;
using System.ComponentModel;
using System.Windows.Forms;
using System.Drawing;
using System.Data;
using FastReport;
using FastReport.Data;
using FastReport.Dialog;
using FastReport.Barcode;
using FastReport.Table;
using FastReport.Utils;
namespace FastReport
{
public class ReportScript
{
}
}
</ScriptText>
<Dictionary>
<TableDataSource Name="Table1" ReferenceName="Table1" DataType="System.Int32" Enabled="true">
<Column Name="Id" DataType="System.String"/>
<Column Name="InputDetailId" DataType="System.String"/>
<Column Name="InputMasterId" DataType="System.String"/>
<Column Name="CusBillCode" DataType="System.String"/>
<Column Name="MaterialCode" DataType="System.String"/>
<Column Name="MaterialName" DataType="System.String"/>
<Column Name="MaterialDef" DataType="System.String"/>
<Column Name="BarCode" DataType="System.String"/>
</TableDataSource>
</Dictionary>
<ReportPage Name="Page1" PaperWidth="80" PaperHeight="30" LeftMargin="0" TopMargin="0" RightMargin="0" BottomMargin="0">
<DataBand Name="Data1" Width="302.4" Height="113.4" DataSource="Table1">
<BarcodeObject Name="Barcode1" Left="18.9" Top="18.9" Width="264.6" Height="75.6" AutoSize="false" Text="[Table1.BarCode]" ShowText="true" AllowExpressions="true" Barcode="Code128"/>
</DataBand>
</ReportPage>
</Report>

View File

@ -377,6 +377,7 @@
<Content Include="Controls\QRCodePrint.aspx" /> <Content Include="Controls\QRCodePrint.aspx" />
<Content Include="Controls\SeeQRImage.aspx" /> <Content Include="Controls\SeeQRImage.aspx" />
<Content Include="Controls\ShowQRImage.aspx" /> <Content Include="Controls\ShowQRImage.aspx" />
<Content Include="File\Fastreport\材料入库条码.frx" />
<Content Include="Controls\ProjectWBSControl.ascx" /> <Content Include="Controls\ProjectWBSControl.ascx" />
<Content Include="Controls\UnitProjectTControl.ascx" /> <Content Include="Controls\UnitProjectTControl.ascx" />
<Content Include="Controls\WBSControl.ascx" /> <Content Include="Controls\WBSControl.ascx" />

View File

@ -0,0 +1,14 @@
namespace Model
{
public class Tw_InputDetailBarCodeOutput
{
public string Id { get; set; }
public string InputDetailId { get; set; }
public string InputMasterId { get; set; }
public string CusBillCode { get; set; }
public string MaterialCode { get; set; }
public string MaterialName { get; set; }
public string MaterialDef { get; set; }
public string BarCode { get; set; }
}
}

View File

@ -1,5 +1,4 @@
 #pragma warning disable 1591
#pragma warning disable 1591
//------------------------------------------------------------------------------ //------------------------------------------------------------------------------
// <auto-generated> // <auto-generated>
// 此代码由工具生成。 // 此代码由工具生成。
@ -1797,6 +1796,9 @@ namespace Model
partial void InsertTw_InputDetail(Tw_InputDetail instance); partial void InsertTw_InputDetail(Tw_InputDetail instance);
partial void UpdateTw_InputDetail(Tw_InputDetail instance); partial void UpdateTw_InputDetail(Tw_InputDetail instance);
partial void DeleteTw_InputDetail(Tw_InputDetail instance); partial void DeleteTw_InputDetail(Tw_InputDetail instance);
partial void InsertTw_InputDetailBarCode(Tw_InputDetailBarCode instance);
partial void UpdateTw_InputDetailBarCode(Tw_InputDetailBarCode instance);
partial void DeleteTw_InputDetailBarCode(Tw_InputDetailBarCode instance);
partial void InsertTw_InputMaster(Tw_InputMaster instance); partial void InsertTw_InputMaster(Tw_InputMaster instance);
partial void UpdateTw_InputMaster(Tw_InputMaster instance); partial void UpdateTw_InputMaster(Tw_InputMaster instance);
partial void DeleteTw_InputMaster(Tw_InputMaster instance); partial void DeleteTw_InputMaster(Tw_InputMaster instance);
@ -6692,6 +6694,14 @@ namespace Model
} }
} }
public System.Data.Linq.Table<Tw_InputDetailBarCode> Tw_InputDetailBarCode
{
get
{
return this.GetTable<Tw_InputDetailBarCode>();
}
}
public System.Data.Linq.Table<Tw_InputMaster> Tw_InputMaster public System.Data.Linq.Table<Tw_InputMaster> Tw_InputMaster
{ {
get get
@ -277196,6 +277206,164 @@ namespace Model
} }
} }
[global::System.Data.Linq.Mapping.TableAttribute(Name="dbo.Tw_InputDetailBarCode")]
public partial class Tw_InputDetailBarCode : INotifyPropertyChanging, INotifyPropertyChanged
{
private static PropertyChangingEventArgs emptyChangingEventArgs = new PropertyChangingEventArgs(String.Empty);
private string _Id;
private string _InputDetailId;
private string _InputMasterId;
private string _MaterialCode;
private string _BarCode;
#region
partial void OnLoaded();
partial void OnValidate(System.Data.Linq.ChangeAction action);
partial void OnCreated();
partial void OnIdChanging(string value);
partial void OnIdChanged();
partial void OnInputDetailIdChanging(string value);
partial void OnInputDetailIdChanged();
partial void OnInputMasterIdChanging(string value);
partial void OnInputMasterIdChanged();
partial void OnMaterialCodeChanging(string value);
partial void OnMaterialCodeChanged();
partial void OnBarCodeChanging(string value);
partial void OnBarCodeChanged();
#endregion
public Tw_InputDetailBarCode()
{
OnCreated();
}
[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_Id", DbType="NVarChar(50) NOT NULL", CanBeNull=false, IsPrimaryKey=true)]
public string Id
{
get
{
return this._Id;
}
set
{
if ((this._Id != value))
{
this.OnIdChanging(value);
this.SendPropertyChanging();
this._Id = value;
this.SendPropertyChanged("Id");
this.OnIdChanged();
}
}
}
[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_InputDetailId", DbType="NVarChar(50) NOT NULL", CanBeNull=false)]
public string InputDetailId
{
get
{
return this._InputDetailId;
}
set
{
if ((this._InputDetailId != value))
{
this.OnInputDetailIdChanging(value);
this.SendPropertyChanging();
this._InputDetailId = value;
this.SendPropertyChanged("InputDetailId");
this.OnInputDetailIdChanged();
}
}
}
[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_InputMasterId", DbType="NVarChar(50) NOT NULL", CanBeNull=false)]
public string InputMasterId
{
get
{
return this._InputMasterId;
}
set
{
if ((this._InputMasterId != value))
{
this.OnInputMasterIdChanging(value);
this.SendPropertyChanging();
this._InputMasterId = value;
this.SendPropertyChanged("InputMasterId");
this.OnInputMasterIdChanged();
}
}
}
[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_MaterialCode", DbType="NVarChar(50)")]
public string MaterialCode
{
get
{
return this._MaterialCode;
}
set
{
if ((this._MaterialCode != value))
{
this.OnMaterialCodeChanging(value);
this.SendPropertyChanging();
this._MaterialCode = value;
this.SendPropertyChanged("MaterialCode");
this.OnMaterialCodeChanged();
}
}
}
[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_BarCode", DbType="NVarChar(500)")]
public string BarCode
{
get
{
return this._BarCode;
}
set
{
if ((this._BarCode != value))
{
this.OnBarCodeChanging(value);
this.SendPropertyChanging();
this._BarCode = value;
this.SendPropertyChanged("BarCode");
this.OnBarCodeChanged();
}
}
}
public event PropertyChangingEventHandler PropertyChanging;
public event PropertyChangedEventHandler PropertyChanged;
protected virtual void SendPropertyChanging()
{
if ((this.PropertyChanging != null))
{
this.PropertyChanging(this, emptyChangingEventArgs);
}
}
protected virtual void SendPropertyChanged(String propertyName)
{
if ((this.PropertyChanged != null))
{
this.PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
}
}
}
[global::System.Data.Linq.Mapping.TableAttribute(Name="dbo.Tw_InputMaster")] [global::System.Data.Linq.Mapping.TableAttribute(Name="dbo.Tw_InputMaster")]
public partial class Tw_InputMaster : INotifyPropertyChanging, INotifyPropertyChanged public partial class Tw_InputMaster : INotifyPropertyChanging, INotifyPropertyChanged
{ {

View File

@ -226,6 +226,7 @@
<Compile Include="CLGL\Tw_PipeMatMatchOutput.cs" /> <Compile Include="CLGL\Tw_PipeMatMatchOutput.cs" />
<Compile Include="CLGL\Tw_PrintModel.cs" /> <Compile Include="CLGL\Tw_PrintModel.cs" />
<Compile Include="CLGL\Tw_InOutDetailOutput.cs" /> <Compile Include="CLGL\Tw_InOutDetailOutput.cs" />
<Compile Include="CLGL\Tw_InputDetailBarCodeOutput.cs" />
<Compile Include="CLGL\Tw_InOutMasterOutput.cs" /> <Compile Include="CLGL\Tw_InOutMasterOutput.cs" />
<Compile Include="CLGL\Tw_MaterialStockOutput.cs" /> <Compile Include="CLGL\Tw_MaterialStockOutput.cs" />
<Compile Include="CLGL\Tw_PipeLineMat.cs" /> <Compile Include="CLGL\Tw_PipeLineMat.cs" />