Compare commits
2 Commits
2b1edf17c1
...
d31db46f18
| Author | SHA1 | Date |
|---|---|---|
|
|
d31db46f18 | |
|
|
44cd0fcf8c |
|
|
@ -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;
|
||||||
|
|
@ -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" />
|
||||||
|
|
|
||||||
|
|
@ -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();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
@ -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();
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -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();
|
||||||
|
|
|
||||||
|
|
@ -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>
|
||||||
|
|
|
||||||
|
|
@ -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();
|
||||||
|
|
|
||||||
|
|
@ -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>
|
||||||
|
|
|
||||||
|
|
@ -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>
|
||||||
|
|
@ -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" />
|
||||||
|
|
|
||||||
|
|
@ -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; }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -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
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -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" />
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue