📄 table1.cs
字号:
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 + -