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