コード例 #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);
        }