| @ -0,0 +1,126 @@ | |||||
| using BWP.B3SheepButcherManage.BL; | |||||
| using BWP.B3SheepButcherManage.BO; | |||||
| using BWP.Web.CustomPageLayout; | |||||
| using BWP.Web.Layout; | |||||
| using BWP.Web.WebControls; | |||||
| using Forks.EnterpriseServices.DataForm; | |||||
| using System; | |||||
| using System.Collections.Generic; | |||||
| using System.Linq; | |||||
| using System.Text; | |||||
| using System.Web.UI; | |||||
| using System.Web.UI.WebControls; | |||||
| using TSingSoft.WebControls2; | |||||
| using Forks.Utils.Collections; | |||||
| using BWP.Web.Utils; | |||||
| namespace BWP.Web.Pages.B3SheepButcherManage.Bills.ButcherOrder_ | |||||
| { | |||||
| class ButcherOrderEdit : DepartmentWorkFlowBillEditPage<ButcherOrder, IButcherOrderBL> | |||||
| { | |||||
| private DFEditGrid detailGrid; | |||||
| protected override void BuildBasePropertiesEditor(TitlePanel titlePanel, PageLayoutSection section) | |||||
| { | |||||
| var layoutManager = new LayoutManager("main", mDFInfo, mDFContainer); | |||||
| var config = new AutoLayoutConfig(); | |||||
| config.Add("AccountingUnit_ID"); | |||||
| config.Add("Department_ID"); | |||||
| config.Add("Date"); | |||||
| config.Add("Employee_ID"); | |||||
| config.Add("Remark"); | |||||
| layoutManager.Config = config; | |||||
| section.ApplyLayout(layoutManager, config, mPageLayoutManager, mDFInfo); | |||||
| titlePanel.Controls.Add(layoutManager.CreateLayout()); | |||||
| } | |||||
| protected override void BuildBody(Control form) | |||||
| { | |||||
| base.BuildBody(form); | |||||
| CreateDetailPanel(form.EAdd(new TitlePanel("排宰明细"))); | |||||
| } | |||||
| private void CreateDetailPanel(TitlePanel titlePanel) | |||||
| { | |||||
| var vPanel = new VLayoutPanel(); | |||||
| titlePanel.Controls.Add(vPanel); | |||||
| if (CanSave) | |||||
| { | |||||
| var hPanel = vPanel.Add(new HLayoutPanel(), new VLayoutOption(HorizontalAlign.Left)); | |||||
| var dialogButton = hPanel.Add(new DialogButton | |||||
| { | |||||
| Text = "选择过磅单", | |||||
| Url = string.Format("SelectWeighBillDialog.aspx?ID={0}&", MinDmo.ID) | |||||
| }); | |||||
| dialogButton.BeforeClientClick = "var accID=__DFContainer.getValue('AccountingUnit_ID'); if (accID == '') { alert('先选择会计单位');return false;}"; | |||||
| dialogButton.ClientDynamicParamGetter = "return 'AccountingUnit_ID=' + __DFContainer.getValue('AccountingUnit_ID')"; | |||||
| dialogButton.Click += delegate | |||||
| { | |||||
| detailGrid.GetFromUI(); | |||||
| var details = DialogUtil.GetCachedObj<ButcherOrder_Detail>(this); | |||||
| var selectItems = detailGrid.GetSelectedItems(); | |||||
| if (selectItems.Count > 0) | |||||
| { | |||||
| var selectDetail = (ButcherOrder_Detail)(selectItems[0]); | |||||
| var idx = Dmo.Details.IndexOf(selectDetail) + 1; | |||||
| foreach (var detail in details) | |||||
| { | |||||
| Dmo.Details.Insert(idx, detail); | |||||
| idx++; | |||||
| } | |||||
| } | |||||
| else | |||||
| { | |||||
| foreach (var detail in details) | |||||
| Dmo.Details.Add(detail); | |||||
| } | |||||
| detailGrid.DataBind(); | |||||
| }; | |||||
| } | |||||
| var detailEditor = new DFCollectionEditor<ButcherOrder_Detail>(() => Dmo.Details); | |||||
| detailEditor.AllowDeletionFunc = () => CanSave; | |||||
| detailEditor.CanDeleteFunc = (detail) => CanSave; | |||||
| detailEditor.IsEditableFunc = (field, detail) => CanSave; | |||||
| detailEditor.CanSelectFunc = (detail) => CanSave; | |||||
| detailGrid = vPanel.Add(new DFEditGrid(detailEditor) { Width = Unit.Percentage(100), MultiSelectionEnabled = CanSave }); | |||||
| detailGrid.Columns.EAdd(new DFEditGridColumn<DFTextBox>("Sequence")).InitEditControl += (sender, e) => | |||||
| { | |||||
| e.Control.Style["width"] = "160px"; | |||||
| }; | |||||
| detailGrid.Columns.EAdd(new DFEditGridColumn<DFTextBox>("WeightBill_ID")).InitEditControl += (sender, e) => | |||||
| { | |||||
| e.Control.Style["width"] = "160px"; | |||||
| }; | |||||
| detailGrid.Columns.Add(new DFEditGridColumn<DFValueLabel>("Supplier_Name")); | |||||
| detailGrid.Columns.Add(new DFEditGridColumn<DFValueLabel>("BuyNum")); | |||||
| detailGrid.Columns.EAdd(new DFEditGridColumn<DFTextBox>("Number")).InitEditControl += (sender, e) => | |||||
| { | |||||
| e.Control.Style["width"] = "160px"; | |||||
| }; | |||||
| detailGrid.PreferWidthGridSet = new Dictionary<string, Unit> { { "顺序号", Unit.Percentage(20) }, { "过磅单号", Unit.Percentage(20) }, { "排宰头数", Unit.Percentage(20) } }; | |||||
| var section2 = mPageLayoutManager.AddSection("detailColumns1", "明细"); | |||||
| section2.ApplyLayout(detailGrid, mPageLayoutManager, DFInfo.Get(typeof(ButcherOrder_Detail))); | |||||
| titlePanel.SetPageLayoutSetting(mPageLayoutManager, section2.Name); | |||||
| mDFContainer.AddNonDFControl(detailGrid, "$Details"); | |||||
| } | |||||
| protected override void OnLoad(EventArgs e) | |||||
| { | |||||
| base.OnLoad(e); | |||||
| if (!IsPostBack) | |||||
| DataBind(); | |||||
| } | |||||
| public override void GetFromUI() | |||||
| { | |||||
| base.GetFromUI(); | |||||
| detailGrid.GetFromUI(); | |||||
| } | |||||
| protected override bool EnableReferToCreate | |||||
| { | |||||
| get { return false; } | |||||
| } | |||||
| } | |||||
| } | |||||
| @ -0,0 +1,38 @@ | |||||
| using BWP.B3SheepButcherManage.BL; | |||||
| using BWP.B3SheepButcherManage.BO; | |||||
| using System; | |||||
| using System.Collections.Generic; | |||||
| using System.Linq; | |||||
| using System.Text; | |||||
| using TSingSoft.WebControls2; | |||||
| namespace BWP.Web.Pages.B3SheepButcherManage.Bills.ButcherOrder_ | |||||
| { | |||||
| class ButcherOrderList : DomainBillListPage<ButcherOrder, IButcherOrderBL> | |||||
| { | |||||
| protected override void AddQueryControls(VLayoutPanel vPanel) | |||||
| { | |||||
| vPanel.Add(CreateDefaultBillQueryControls((panel, config) => | |||||
| { | |||||
| config.Add("Date"); | |||||
| config.Add("AccountingUnit_ID"); | |||||
| config.Add("Department_ID"); | |||||
| config.Add("Employee_ID"); | |||||
| })); | |||||
| } | |||||
| protected override void AddDFBrowseGridColumn(DFBrowseGrid grid, string field) | |||||
| { | |||||
| base.AddDFBrowseGridColumn(grid, field); | |||||
| if (field == "BillState") | |||||
| { | |||||
| AddDFBrowseGridColumn(grid, "Date"); | |||||
| AddDFBrowseGridColumn(grid, "AccountingUnit_Name"); | |||||
| AddDFBrowseGridColumn(grid, "Department_Name"); | |||||
| AddDFBrowseGridColumn(grid, "Employee_Name"); | |||||
| AddDFBrowseGridColumn(grid, "CheckUser_Name"); | |||||
| AddDFBrowseGridColumn(grid, "Remark"); | |||||
| } | |||||
| } | |||||
| } | |||||
| } | |||||
| @ -0,0 +1,65 @@ | |||||
| <?xml version="1.0" encoding="utf-8" ?> | |||||
| <Select xmlns="urn:XDQuery"> | |||||
| <Columns> | |||||
| <Field name="ID"/> | |||||
| </Columns> | |||||
| <From> | |||||
| <DmoClass class="BWP.B3SheepButcherManage.BO.ButcherOrder, B3SheepButcherManage"/> | |||||
| </From> | |||||
| <Where> | |||||
| <And> | |||||
| <EQ> | |||||
| <Field name="ID"/> | |||||
| <QBE paramName="ID"/> | |||||
| </EQ> | |||||
| <EQ> | |||||
| <Field name="IsLocked"/> | |||||
| <QBE paramName="IsLocked"/> | |||||
| </EQ> | |||||
| <Contains> | |||||
| <Field name="Remark"/> | |||||
| <QBE paramName="Remark"/> | |||||
| </Contains> | |||||
| <Contains> | |||||
| <Field name="CreateUser_Name"/> | |||||
| <QBE paramName="CreateUser_Name"/> | |||||
| </Contains> | |||||
| <Contains> | |||||
| <Field name="CheckUser_Name"/> | |||||
| <QBE paramName="CheckUser_Name"/> | |||||
| </Contains> | |||||
| <EQ> | |||||
| <Field name="AccountingUnit_ID"/> | |||||
| <QBE paramName="AccountingUnit_ID"/> | |||||
| </EQ> | |||||
| <EQ> | |||||
| <Field name="Employee_ID"/> | |||||
| <QBE paramName="Employee_ID"/> | |||||
| </EQ> | |||||
| <EQ> | |||||
| <Field name="Department_ID"/> | |||||
| <QBE paramName="Department_ID"/> | |||||
| </EQ> | |||||
| <GreaterThanOrEqual> | |||||
| <Field name="CreateTime"/> | |||||
| <QBE paramName="MinCreateTime" /> | |||||
| </GreaterThanOrEqual> | |||||
| <LessThanOrEqual> | |||||
| <Field name="CreateTime"/> | |||||
| <QBE paramName="MaxCreateTime"/> | |||||
| </LessThanOrEqual> | |||||
| <GreaterThanOrEqual> | |||||
| <Field name="Date"/> | |||||
| <QBE paramName="MinDate" /> | |||||
| </GreaterThanOrEqual> | |||||
| <LessThanOrEqual> | |||||
| <Field name="Date"/> | |||||
| <QBE paramName="MaxDate"/> | |||||
| </LessThanOrEqual> | |||||
| <EQ> | |||||
| <Field name="BillState"/> | |||||
| <QBE paramName ="BillState"/> | |||||
| </EQ> | |||||
| </And> | |||||
| </Where> | |||||
| </Select> | |||||
| @ -0,0 +1,19 @@ | |||||
| using BWP.B3SheepButcherManage.BL; | |||||
| using BWP.B3SheepButcherManage.BO; | |||||
| using System; | |||||
| using System.Collections.Generic; | |||||
| using System.Linq; | |||||
| using System.Text; | |||||
| namespace BWP.Web.Pages.B3SheepButcherManage.Bills.ButcherOrder_ | |||||
| { | |||||
| class ButcherOrderPrint : DomainTemplatePrintPage<ButcherOrder, IButcherOrderBL> | |||||
| { | |||||
| protected override void AddParameters(IDictionary<string, object> dic) | |||||
| { | |||||
| dic.Add("$ID", Dmo.ID); | |||||
| dic.Add("$Details", Dmo.Details); | |||||
| dic.Add("$DetailType", typeof(ButcherOrder_Detail)); | |||||
| } | |||||
| } | |||||
| } | |||||
| @ -0,0 +1,100 @@ | |||||
| using BWP.B3SheepButcherManage.BO; | |||||
| using System; | |||||
| using System.Collections.Generic; | |||||
| using System.Linq; | |||||
| using System.Text; | |||||
| using TSingSoft.WebControls2; | |||||
| using Forks.Utils.Collections; | |||||
| using BWP.Web.Layout; | |||||
| using Forks.EnterpriseServices.DomainObjects2; | |||||
| using Forks.EnterpriseServices.DomainObjects2.DQuery; | |||||
| using Forks.EnterpriseServices.SqlDoms; | |||||
| using BWP.B3Frameworks.BO.NamedValueTemplate; | |||||
| using BWP.B3Frameworks; | |||||
| using BWP.B3Frameworks.Utils; | |||||
| using Forks.EnterpriseServices.DataForm; | |||||
| namespace BWP.Web.Pages.B3SheepButcherManage.Bills.ButcherOrder_ | |||||
| { | |||||
| class SelectWeighBillDialog : DmoMultiSelectDialog<WeightBill, ButcherOrder_Detail> | |||||
| { | |||||
| protected override void CreateQueryGridColumns(DFBrowseGrid grid) | |||||
| { | |||||
| grid.Columns.Add(new DFBrowseGridColumn("ID")); | |||||
| grid.Columns.Add(new DFBrowseGridColumn("Supplier_Name")); | |||||
| grid.Columns.Add(new DFBrowseGridColumn("Number")); | |||||
| grid.Columns.Add(new DFBrowseGridColumn("LiveColonyHouse_Name")); | |||||
| grid.Columns.Add(new DFBrowseGridColumn("AlreadyNumber")); | |||||
| grid.Columns.EAdd(new DFEditGridColumn("ThisNumber")).HeaderText = "本次计划头数"; | |||||
| grid.Columns.Add(new DFBrowseGridColumn("Remark")); | |||||
| } | |||||
| protected override void CreateQuery(VLayoutPanel vPanel) | |||||
| { | |||||
| var layout = new LayoutManager("", mDFInfo, mQueryContainer); | |||||
| var config = new AutoLayoutConfig(); | |||||
| config.Add("WeighTime"); | |||||
| layout.Config = config; | |||||
| vPanel.Add(layout.CreateLayout()); | |||||
| base.CreateQuery(vPanel); | |||||
| } | |||||
| protected override DQueryDom GetQueryDom() | |||||
| { | |||||
| var dom = base.GetQueryDom(); | |||||
| var detail = JoinAlias.Create("detail"); | |||||
| var temp = new JoinAlias(typeof(AlreadyTemp)); | |||||
| AlreadyTemp.Register(dom); | |||||
| dom.From.AddJoin(JoinType.Left, new DQDmoSource(temp), DQCondition.EQ(detail, "WeightBill_ID", temp, "WeightBill_ID")); | |||||
| dom.Columns.Add(DQSelectColumn.Field("Supplier_Name")); | |||||
| dom.Columns.Add(DQSelectColumn.Field("ID", "过磅单号")); | |||||
| dom.Columns.Add(DQSelectColumn.Field("BuyNum")); | |||||
| dom.Columns.Add(DQSelectColumn.Field("Number", detail, "收购头数")); | |||||
| dom.Columns.Add(DQSelectColumn.Field("LiveColonyHouse_Name", detail)); | |||||
| dom.Columns.Add(DQSelectColumn.Field("AlreadyNumber", temp, "已排头数")); | |||||
| var lastNumber = DQExpression.Subtract(DQExpression.IfNull(DQExpression.Field(detail, "Number"), DQExpression.Value(0)), DQExpression.IfNull(DQExpression.Field(temp, "AlreadyNumber"), DQExpression.Value(0))); | |||||
| dom.Columns.Add(DQSelectColumn.Create(lastNumber, "ThisNumber")); | |||||
| dom.Columns.Add(DQSelectColumn.Field("Remark", detail)); | |||||
| dom.Where.Conditions.Add(DQCondition.And(DQCondition.EQ("AccountingUnit_ID", long.Parse(Request.QueryString["AccountingUnit_ID"])), DQCondition.InEQ("BillState", 单据状态.已作废), DQCondition.EQ("Domain_ID", DomainContext.Current.ID))); | |||||
| dom.Where.Conditions.Add(DQCondition.GreaterThan(lastNumber, DQExpression.Value(0))); | |||||
| OrganizationUtil.AddOrganizationLimit(dom, typeof(WeightBill)); | |||||
| return dom; | |||||
| } | |||||
| protected override void SetResultFromDFDataRow(ButcherOrder_Detail dmo, DFDataRow row) | |||||
| { | |||||
| var number = (int?)row["Number"]; | |||||
| var already = (int?)row["AlreadyNumber"]; | |||||
| dmo.Supplier_Name = (string)row["Supplier_Name"]; | |||||
| dmo.WeightBill_ID = (long)row["ID"]; | |||||
| dmo.BuyNum = (int?)row["BuyNum"]; | |||||
| var thiNumber = row["ThisNumber"]; | |||||
| if (thiNumber == null) | |||||
| throw new Exception("本次计划头数不能为空"); | |||||
| dmo.Number = Convert.ToInt32(thiNumber); | |||||
| var more = (already ?? 0) + (dmo.Number ?? 0) - (number ?? 0); | |||||
| if (more > 0) | |||||
| throw new Exception(string.Format("过磅单No.{0} 排宰头数超出收购头数{1}头", dmo.WeightBill_ID, more)); | |||||
| } | |||||
| class AlreadyTemp | |||||
| { | |||||
| public long WeightBill_ID { get; set; } | |||||
| public int AlreadyNumber { get; set; } | |||||
| public static void Register(DQueryDom root) | |||||
| { | |||||
| var main = new JoinAlias(typeof(ButcherOrder)); | |||||
| var detail = new JoinAlias(typeof(ButcherOrder_Detail)); | |||||
| var query = new DQueryDom(main); | |||||
| query.From.AddJoin(JoinType.Inner, new DQDmoSource(detail), DQCondition.EQ(main, "ID", detail, "ButcherOrder_ID")); | |||||
| query.Columns.Add(DQSelectColumn.Field("WeightBill_ID", detail)); | |||||
| query.Columns.Add(DQSelectColumn.Sum(detail, "Number")); | |||||
| query.GroupBy.Expressions.Add(DQExpression.Field(detail, "WeightBill_ID")); | |||||
| query.Where.Conditions.Add(DQCondition.And(DQCondition.EQ(main, "Domain_ID", DomainContext.Current.ID), (DQCondition.InEQ(main, "BillState", 单据状态.已作废)))); | |||||
| root.RegisterQueryTable(typeof(AlreadyTemp), new string[] { "WeightBill_ID", "AlreadyNumber" }, query); | |||||
| } | |||||
| } | |||||
| } | |||||
| } | |||||
| @ -0,0 +1,30 @@ | |||||
| <?xml version="1.0" encoding="utf-8" ?> | |||||
| <Select xmlns="urn:XDQuery"> | |||||
| <Columns> | |||||
| <Field name="ID"/> | |||||
| </Columns> | |||||
| <From> | |||||
| <Join type="Inner"> | |||||
| <DmoClass class="BWP.B3SheepButcherManage.BO.WeightBill, B3SheepButcherManage"/> | |||||
| <DmoClass class="BWP.B3SheepButcherManage.BO.WeightBill_Record, B3SheepButcherManage" alias="detail"/> | |||||
| <Condition> | |||||
| <EQ> | |||||
| <Field name="ID"/> | |||||
| <Field name="WeightBill_ID" alias="detail"/> | |||||
| </EQ> | |||||
| </Condition> | |||||
| </Join> | |||||
| </From> | |||||
| <Where> | |||||
| <And> | |||||
| <GreaterThanOrEqual> | |||||
| <Field name="WeighTime"/> | |||||
| <QBE paramName="MinWeighTime" /> | |||||
| </GreaterThanOrEqual> | |||||
| <LessThanOrEqual> | |||||
| <Field name="WeighTime"/> | |||||
| <QBE paramName="MaxWeighTime"/> | |||||
| </LessThanOrEqual> | |||||
| </And> | |||||
| </Where> | |||||
| </Select> | |||||
| @ -0,0 +1,30 @@ | |||||
| using BWP.B3Frameworks.BL; | |||||
| using BWP.B3SheepButcherManage.BO; | |||||
| using Forks.EnterpriseServices; | |||||
| using Forks.EnterpriseServices.BusinessInterfaces; | |||||
| using System; | |||||
| using System.Collections.Generic; | |||||
| using System.Linq; | |||||
| using System.Text; | |||||
| namespace BWP.B3SheepButcherManage.BL | |||||
| { | |||||
| [BusinessInterface(typeof(ButcherOrderBL))] | |||||
| [LogicName("羊排宰")] | |||||
| public interface IButcherOrderBL : IDepartmentWorkFlowBillBL<ButcherOrder> | |||||
| { } | |||||
| public class ButcherOrderBL : DepartmentWorkFlowBillBL<ButcherOrder>, IButcherOrderBL | |||||
| { | |||||
| protected override void beforeSave(ButcherOrder dmo) | |||||
| { | |||||
| var idx = 1; | |||||
| foreach (var detail in dmo.Details) | |||||
| { | |||||
| detail.Sequence = idx; | |||||
| idx++; | |||||
| } | |||||
| base.beforeSave(dmo); | |||||
| } | |||||
| } | |||||
| } | |||||
| @ -0,0 +1,35 @@ | |||||
| using BWP.B3Frameworks; | |||||
| using BWP.B3Frameworks.Attributes; | |||||
| using BWP.B3Frameworks.BO; | |||||
| using Forks.EnterpriseServices; | |||||
| using Forks.EnterpriseServices.DataForm; | |||||
| using Forks.EnterpriseServices.DomainObjects2; | |||||
| using System; | |||||
| using System.Collections.Generic; | |||||
| using System.Linq; | |||||
| using System.Text; | |||||
| using TSingSoft.WebControls2; | |||||
| namespace BWP.B3SheepButcherManage.BO | |||||
| { | |||||
| [DFClass, Serializable] | |||||
| [LogicName("羊排宰")] | |||||
| [DmoTypeID(B3FrameworksConsts.DmoTypeIDBases.B3SheepButcherManage, B3SheepButcherManageConsts.DmoTypeIDOffsets.ButcherOrder)] | |||||
| [EditUrl("~/B3SheepButcherManage/Bills/ButcherOrder_/ButcherOrderEdit.aspx")] | |||||
| public class ButcherOrder : DepartmentWorkFlowBill | |||||
| { | |||||
| private DateTime dt = DateTime.Today; | |||||
| [LogicName("宰杀日期")] | |||||
| [DFExtProperty("WebControlType", DFEditControl.DateInput)] | |||||
| public DateTime Date { get { return dt; } set { dt = value; } } | |||||
| private ButcherOrder_DetailCollection mDetail = new ButcherOrder_DetailCollection(); | |||||
| [OneToMany(typeof(ButcherOrder_Detail), "Sequence")] | |||||
| [Join("ID", "ButcherOrder_ID")] | |||||
| public ButcherOrder_DetailCollection Details | |||||
| { | |||||
| get { return mDetail; } | |||||
| set { mDetail = value; } | |||||
| } | |||||
| } | |||||
| } | |||||
| @ -0,0 +1,44 @@ | |||||
| using BWP.B3Frameworks.BO; | |||||
| using Forks.EnterpriseServices; | |||||
| using Forks.EnterpriseServices.DataDictionary; | |||||
| using Forks.EnterpriseServices.DataForm; | |||||
| using Forks.EnterpriseServices.DomainObjects2; | |||||
| using System; | |||||
| using System.Collections.Generic; | |||||
| using System.Linq; | |||||
| using System.Text; | |||||
| namespace BWP.B3SheepButcherManage.BO | |||||
| { | |||||
| [DFClass, Serializable] | |||||
| [LogicName("羊排宰_明细")] | |||||
| public class ButcherOrder_Detail : Base | |||||
| { | |||||
| [DbColumn(Index = IndexType.Normal, AllowNull = false)] | |||||
| public long ButcherOrder_ID { get; set; } | |||||
| [LogicName("顺序号")] | |||||
| [DFNotEmpty] | |||||
| public int Sequence { get; set; } | |||||
| [LogicName("过磅单号")] | |||||
| public long? WeightBill_ID { get; set; } | |||||
| [Join("WeightBill_ID", "ID")] | |||||
| [LogicName("收购头数")] | |||||
| [ReferenceTo(typeof(WeightBill), "BuyNum")] | |||||
| public int? BuyNum { get; set; } | |||||
| [LogicName("排宰头数")] | |||||
| public int? Number { get; set; } | |||||
| [Join("WeightBill_ID", "ID")] | |||||
| [LogicName("供应商")] | |||||
| [ReferenceTo(typeof(WeightBill), "Supplier_Name")] | |||||
| public string Supplier_Name { get; set; } | |||||
| } | |||||
| [Serializable] | |||||
| public class ButcherOrder_DetailCollection : DmoCollection<ButcherOrder_Detail> | |||||
| { } | |||||
| } | |||||
| @ -0,0 +1,28 @@ | |||||
| <?xml version="1.0" encoding="utf-8" ?> | |||||
| <BillReports xmlns="urn:BillReports" version="1.0" displayName="羊排宰" phyName="羊排宰"> | |||||
| <Report phyName="标准格式"> | |||||
| <BillReport xmlns="urn:BillReport" version="1" displayName="标准格式" > | |||||
| <Bands> | |||||
| <TextBand fontName="黑体" fontSize="15" align="Center">羊排宰№$Dmo.ID</TextBand> | |||||
| <DFInfoBand object="$Dmo" cols="4"> | |||||
| <Field name="AccountingUnit_Name" lblWidth="4"/> | |||||
| <Field name="Department_Name" lblWidth="4"/> | |||||
| <Field name="Date" lblWidth="4"/> | |||||
| <Field name="Employee_Name" lblWidth="4"/> | |||||
| <Field name="Remark" lblWidth="4"/> | |||||
| </DFInfoBand> | |||||
| <HtmlBand> | |||||
| <![CDATA[<h2>排宰明细</h2>]]> | |||||
| </HtmlBand> | |||||
| <DFListBand collection="$Details" itemType="$DetailType" enablePaging="true" > | |||||
| <Field name="Sequence"/> | |||||
| <Field name="WeightBill_ID"/> | |||||
| <Field name="Supplier_Name" /> | |||||
| <Field name="BuyNum" /> | |||||
| <Field name="Number"/> | |||||
| </DFListBand> | |||||
| </Bands> | |||||
| </BillReport> | |||||
| </Report> | |||||
| </BillReports> | |||||