コード例 #1
0
        private void PopulateDetail(Contract contract)
        {
            BuildingComparer current = new BuildingComparer();
            BuildingComparer previous = new BuildingComparer();
            string projectName = string.Empty;
            string blockName = string.Empty;
            string workName = string.Empty;
            string groupName = string.Empty;
            string arrow = Resources.BuildingMonitorResources.SeparatorLR;
            TableRow row = null;
            TableCell cell = null;

            foreach (ContractDetail detail in contract.Detail)
            {
                current.Set(detail.ProjectId, detail.BlockId, detail.WorkId, detail.GroupId, detail.ItemId, detail.SubItemId);

                if (!current.IsProject(previous))
                    projectName = Project.Create(detail.ProjectId).Name;

                if (!current.IsBlock(previous))
                    blockName = Block.Create(detail.ProjectId, detail.BlockId).Name;

                if (!current.IsWork(previous))
                    workName = Work.Create(detail.ProjectId, detail.BlockId, detail.WorkId).Name;

                if (!current.IsGroup(previous))
                {
                    groupName = Group.Create(detail.ProjectId, detail.BlockId, detail.WorkId, detail.GroupId).Name;
                    row = new TableRow();
                    row.CssClass = "bm-group-hd";
                    cell = new TableCell();
                    row.Cells.Add(cell);
                    cell.ColumnSpan = 4;
                    cell.Text = projectName + arrow + blockName + arrow + workName + arrow + groupName;
                    tblContractDetail.Rows.Add(row);
                }

                row = new TableRow();
                cell = new TableCell();
                row.Cells.Add(cell);
                cell.Text = " ";
                cell = new TableCell();
                row.Cells.Add(cell);
                cell.Text = detail.Name;
                cell = new TableCell();
                row.Cells.Add(cell);
                cell.Text = Helpers.Formatter.Decimal(detail.Quantity) + " " + detail.Unit;
                cell.CssClass = "bm-number";
                cell = new TableCell();
                row.Cells.Add(cell);
                cell.Text = Helpers.Formatter.Decimal(detail.Price);
                cell.CssClass = "bm-number";
                tblContractDetail.Rows.Add(row);
                previous.CopyFrom(current);
            }

            row = new TableRow();
            row.TableSection = TableRowSection.TableFooter;

            cell = new TableCell();
            cell.ColumnSpan = 3;
            cell.CssClass = "bm-label-total";
            cell.Text = "Total: ";
            row.Cells.Add(cell);

            cell = new TableCell();
            cell.CssClass = "bm-total bm-number";
            cell.Text = Helpers.Formatter.Decimal(contract.Amount);
            row.Cells.Add(cell);

            tblContractDetail.Rows.Add(row);
        }
コード例 #2
0
        private void PopulateDetail()
        {
            BuildingComparer prevBc = new BuildingComparer();
            BuildingComparer currBc = new BuildingComparer();
            int counter = 0;
            int rowCounter = 0;

            foreach(ContractDetail detail in _contract.Detail)
            {
                TableRow row = new TableRow();
                TableCell cell = new TableCell();

                currBc.Set(detail.ProjectId, detail.BlockId, detail.WorkId, detail.GroupId, detail.ItemId, detail.SubItemId);

                if (!currBc.IsGroup(prevBc))
                {
                    cell.Text = string.Format("{1} {0} {2} {0} {3} {0} {4}",
                        Resources.BuildingMonitorResources.SeparatorLR,
                        Project.Create(detail.ProjectId).Name,
                        Block.Create(detail.ProjectId, detail.BlockId).Name,
                        Work.Create(detail.ProjectId, detail.BlockId, detail.WorkId).Name,
                        Group.Create(detail.ProjectId, detail.BlockId, detail.WorkId, detail.GroupId).Name);
                    cell.ColumnSpan = 6;
                    row.CssClass = "bm-group-hd";
                    row.Cells.Add(cell);
                    prevBc.CopyFrom(currBc);
                    tblContractDetail.Rows.AddAt(tblContractDetail.Rows.Count - 1, row);

                    cell = new TableCell();
                    row = new TableRow();
                    counter = 1;
                }

                cell.CssClass = "bm-number";
                cell.Text = (++rowCounter).ToInvariantString();
                row.Cells.Add(cell);

                cell = new TableCell();
                cell.Text = detail.Name;
                row.TableSection = TableRowSection.TableBody;
                row.Cells.Add(cell);

                cell = new TableCell();
                cell.CssClass = "bm-number";
                cell.Text = Helpers.Formatter.Decimal(detail.Quantity) + " " + detail.Unit;
                row.Cells.Add(cell);

                cell = new TableCell();
                cell.CssClass = "bm-number";
                cell.Text = detail.InitialProgress.ToInvariantString() + "%";
                row.Cells.Add(cell);

                cell = new TableCell();
                cell.CssClass = "bm-number";
                cell.Text = Helpers.Formatter.Decimal(detail.Price);
                row.Cells.Add(cell);

                row.CssClass = counter++ % 2 == 0 ? "alternate" : string.Empty;
                tblContractDetail.Rows.AddAt(tblContractDetail.Rows.Count - 1, row);
            }
        }