⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 table1.cs

📁 PDF文件格式解析库源代码
💻 CS
📖 第 1 页 / 共 2 页
字号:
using System;
using System.Collections.Generic;
using System.Text;
using System.Drawing;
using AnotherPDFLib.Forms;

namespace AnotherPDFLibTest
{
    public class Table1 : AppendentTable
    {
        public Table1()
        {
            Name = "table1";
            Title = "表1 人 员 费 预 算 明 细 表";
            Remarks =
@"本表(11列)≤(9)列。
本表(9)列累计数=“上海市科研计划项目资助课题经费预算表”中“预算总额”列相关数字
本表(11)列累计数=“上海市科研计划项目资助课题经费预算表”中“其中:申请本次资助额”列相关数字
";

            ColumnCaptions = new string[]
            {
                "姓名",
                "身份证号码",
                "现工作单位",
                "现专业技术\r\n职务",
                "目前参加其它\r\n课题数/时间",
                "在本课题中\r\n的责任分工",
                "投入本课题的\r\n计划全时工作\r\n时间(人月)",
                "人员费支出总数",
                "其中:申请本次\r\n资助额"
            };

            ColumnNumbers = new string[]
            {
                "(1)",
                "(2)",
                "(3)",
                "(4)",
                "(5)",
                "(6)",
                "(7)",
                "(8)",
                "(10)"
            };

            FieldNames = new string[]{
                "T:Name",
                "T:ID",
                "T:Workplace",
                "T:Profession",
                "N:otherTime",
                "T:thisJob",
                "N:thisTime",
                "N:aveCost",
                "N:totalCost",
                "N:aveApply",
                "N:totalApply",
                "T:Signature"
            };

            footNames = new string[]{
                "",
                "",
                "",
                "",
                "",
                "",
                "costSum",
                "",
                "applySum",
                ""
            };

        }

        //public override Table BuildTable()
        //{
        //    Table subtable1 = BuildSubTable("人员费支出总数");
        //    Table subtable2 = BuildSubTable("其中:申请本次\r\n资助额");

        //    Table subtable3 = new Table(2, 2);
        //    subtable3.Cells[0][0] = subtable1;
        //    subtable3.Cells[0][1] = subtable2;
        //    return subtable3;
        //}
        List<float> widths;
        float RowHeight = 20;
        float TitleWidth = 20;
        public override Table[] BuildTable()
        {
            Label subtable1 = CreateLabel("人员费支出总数");
            Label subtable2 = CreateLabel("其中:申请本次\r\n资助额");
            subtable1.Height = subtable2.Height;
            Table subtable3 = BuildSubTable();
            Table subtable4 = BuildSubTable();

            Table subtable5 = new Table(2, 1);
            subtable5.Cells[0][0] = subtable1;
            subtable5.Cells[1][0] = subtable3;

            Table subtable6 = new Table(2, 1);
            subtable6.Cells[0][0] = subtable2;
            subtable6.Cells[1][0] = subtable4;

            string[] ColumnNumbers7 = new string[]
            {
                "(8)",
                "(9)=(7)\r\n×(8)/1000"
            };
            string[] ColumnNumbers8 = new string[]
            {
                "(10)",
                "(11)=(7)\r\n×(10)/1000"
            };

            Table subtable7 = CreateTableHeader(new string[][] { ColumnNumbers7 });
            Table subtable8 = CreateTableHeader(new string[][] { ColumnNumbers8 });

            subtable7.CalculateSize();
            float cellwidth = subtable7.Cells[0][1].Width;
            float[] columnWidths = new float[] { cellwidth, cellwidth };
            subtable3.ColumnWidths = columnWidths;
            subtable4.ColumnWidths = columnWidths;
            subtable7.ColumnWidths = columnWidths;
            subtable8.ColumnWidths = columnWidths;

            string[][] columnHeaders = new string[][] { ColumnCaptions, ColumnNumbers };
            Table subtable01 = CreateTableHeader(columnHeaders);
            subtable01.CalculateSize();
            TableWidth *= 0.9F;
            if (subtable01.Width < TableWidth)
            {
                subtable01.SetWidth(TableWidth);
            }
            subtable01.Cells[0][7] = subtable5;
            subtable01.Cells[0][8] = subtable6;
            subtable01.Cells[1][7] = subtable7;
            subtable01.Cells[1][8] = subtable8;

            Table headtable = new Table(1, 3);
            headtable.Cells[0][0] = CreateLabel("");
            headtable.Cells[0][1] = subtable01;
            headtable.Cells[0][2] = CreateLabel("签章");

            widths = new List<float>(subtable01.ColumnWidths);
            widths.RemoveAt(widths.Count - 1);
            widths.RemoveAt(widths.Count - 1);
            widths.AddRange(columnWidths);
            widths.AddRange(columnWidths);
            widths.Add(headtable.Cells[0][2].Width);

            Label title = CreateLabel("课\r\n题\r\n责\r\n任\r\n人");
            TitleWidth = title.Width;
            headtable.Cells[0][0].Width = TitleWidth;

            return new Table[] { headtable };
        }

        public override Form[] BuildSubform()
        {
            Form[] forms = new Form[4];
            forms[0] = BuildInputTable(widths, "课\r\n题\r\n责\r\n任\r\n人", 3, "Title1", "inputRow");
            forms[1] = BuildInputTable(widths, "课\r\n题\r\n高\r\n级\r\n研\r\n究\r\n人\r\n员", 5, "Title2", "inputRow2");
            forms[2] = BuildInputTable(widths, "课\r\n题\r\n参\r\n与\r\n人\r\n员", 5, "Title3", "inputRow3");
            forms[3] = BuildFootRow();
            return forms;
        }

        Form BuildInputTable(List<float> widths, string title, int intitalRows, string titleName, string rowName)
        {
            Label titleLabel = CreateLabel(title);
            titleLabel.Name = titleName;
            float paddingLeft, paddingRight;
            Table table = CreateInputRow(FieldNames, widths, out paddingLeft, out paddingRight);
            table.Name = rowName;
            table.Occurance.Inintial = intitalRows;
            Form growingtable = new Form();
            growingtable.Layout = Layout.Flow;
            growingtable.Growable = true;
            growingtable.Controls.Add(table);

            table.CalculateSize();
            titleLabel.Height = table.Height * intitalRows;

            Form form = new Form();
            form.Layout = Layout.FlowLR;
            form.Growable = true;
            form.Controls.Add(titleLabel);
            form.Controls.Add(growingtable);
            return form;
        }

        Table BuildSubTable(string caption)
        {
            string[] columnCaptions = new string[]
            {
                "平均标准\r\n(元/人月)",
                "金额"
            };
            string[][] columnHeaders = new string[][] { columnCaptions };
            Table subtable1 = CreateTableHeader(columnHeaders);

            Table subtable2 = new Table(2, 1);
            subtable2.Cells[0][0] = CreateLabel(caption);
            subtable2.Cells[1][0] = subtable1;
            return subtable2;
        }

        Table BuildSubTable()
        {
            string[] columnCaptions = new string[]
            {
                "平均标准\r\n(元/人月)",
                "金额"
            };
            string[][] columnHeaders = new string[][] { columnCaptions };
            Table subtable1 = CreateTableHeader(columnHeaders);
            return subtable1;
        }

        Form BuildFootRow()
        {
            Label titleLabel = CreateLabel("");
            titleLabel.Width = TitleWidth;
            titleLabel.Height = RowHeight;
            Table footRow = CreateFootRow(2, footNames, widths);
            Form form = new Form();
            form.Layout = Layout.FlowLR;
            form.Growable = true;
            form.Controls.Add(titleLabel);
            form.Controls.Add(footRow);
            return form;
        }

        protected override Button CreateAddRowButton()
        {
            Button btnAddRow = CreateButton("增加行", 42, 16);
            btnAddRow.Event.Click = new JavaScript(@"
var lastTable = table1.all.item(table1.all.length-1);
if(lastTable.inputRow.all.length < 10){
    lastTable.inputRow.instanceManager.addInstance(1);

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -