Commit 563e385a authored by 段廷瑞's avatar 段廷瑞

1、Excel导出配置:增加卡片配置

parent 05b572a2
......@@ -4,6 +4,12 @@
<add key="LoginInfo" value="wwF/xpBzWek=" />
<add key="LoginVerify" value="v86f5Q3Xa7U=" />
<add key="UpdateTime" value="2021-12-09 09:48:49.755" />
<add key="ExceptFiles" value="" />
<add key="ContainFiles" value="" />
<add key="PatchTimeFrame_Dll" value="48" />
<add key="PatchTimeFrame_Sql" value="720" />
<add key="PatchTimeFrame_Xml" value="720" />
<add key="Exclude_PDB" value="1" />
</appSettings>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.8" />
......
......@@ -3,4 +3,14 @@
3、右侧通过右键菜单増行和删行
4、右侧-上表:前缀自动生成,只需填写模板名称
5、右侧-下表:模板通过单击选择,表名必填
6、通过右上角“保存设置”按钮,保存所有配置
\ No newline at end of file
6、通过右上角“保存设置”按钮,保存所有配置
【卡片配置特别说明】
*卡片式某个Sheet页内的一个矩形区域,所以为了定位模板,我们需要以下属性:
所属模板:用于定位所属模板
Sheet序号:用于定位具体是模板内的Sheet位置(从0开始),模板+Sheet应该是唯一的
起始行:用于定位卡片的起始行位置,即卡片的第一行。(从0开始,即实际行号减1)
起始列:用于定位卡片的起始列位置,及卡片的第一列。(从0开始)
行跨度:卡片占用的总行数,至少1行
列跨度:卡片占用的总列数,至少1列
每行卡片数量:即每行并列摆放几个卡片,至少1个
\ No newline at end of file
......@@ -120,4 +120,16 @@
<UserId>sa</UserId>
<Pwd>sa</Pwd>
</links>
<links>
<Link>192.168.1.204</Link>
<DbName>FTT_GeErRui</DbName>
<UserId>sa</UserId>
<Pwd>sa</Pwd>
</links>
<links>
<Link>192.168.1.202</Link>
<DbName>FTT_CJ211123</DbName>
<UserId>sa</UserId>
<Pwd>sa</Pwd>
</links>
</DocumentElement>
\ No newline at end of file
......@@ -23,11 +23,14 @@ namespace Tools.UI.Popups
/// </summary>
public List<string> CheckedItems => this.checkedListBox1.CheckedItems.Cast<string>().ToList();
public wSelectTemplates(IEnumerable<string> items)
public wSelectTemplates(IEnumerable<string> items, bool isMultiSelect = true)
{
InitializeComponent();
//状态初始化
this.DialogResult = DialogResult.None;
//界面初始化
this.btnShotAll.Enabled = isMultiSelect;
this.btnShotAdded.Enabled = isMultiSelect;
//初始化数据源
this.checkedListBox1.Items.AddRange(items.ToArray());
}
......
This diff is collapsed.
......@@ -58,6 +58,24 @@ namespace Tools.UI
SelectSQL VARCHAR(MAX) NULL
)
END
IF NOT EXISTS(SELECT 1 FROM sys.tables WHERE name = 'ModuleTemplateCardInfo')
BEGIN
CREATE TABLE ModuleTemplateCardInfo
(
ID INT IDENTITY(1,1) PRIMARY KEY
, ModuleID INT NULL
, TemplateName VARCHAR(50)
, SheetIndex INT NULL
, PerLineCount INT NULL
, RowStart INT NULL
, ColumnStart INT NULL
, RowSpan INT NULL
, ColumnSpan INT NULL
, Remark VARCHAR(MAX) NULL
, IsStop BIT NULL
)
END";
this._db.ExecNonSql(sql);
......@@ -66,6 +84,7 @@ namespace Tools.UI
this.ModuleTableList = new List<TQuery>() {
new TQuery("ModuleTemplate"),
new TQuery("ModuleTemplateTable"),
new TQuery("ModuleTemplateCardInfo"),
};
this._ds = this._db.GetData(this.ModuleTableList, true);
}
......@@ -78,9 +97,13 @@ namespace Tools.UI
this.dgvTemplates.AutoGenerateColumns = false;
this.dgvTables.AllowUserToAddRows = false;
this.dgvTables.AutoGenerateColumns = false;
this.dgvCardInfo.AllowUserToAddRows = false;
this.dgvCardInfo.AutoGenerateColumns = false;
this.dgvTemplates.DataSource = this._ds.Tables["ModuleTemplate"].DefaultView;
this.dgvTables.DataSource = this._ds.Tables["ModuleTemplateTable"].DefaultView;
this.dgvCardInfo.DataSource = this._ds.Tables["ModuleTemplateCardInfo"].DefaultView;
this.dgvTables.CellClick += DgvTables_CellClick;
this.dgvCardInfo.CellClick += DgvCardInfo_CellClick;
//初始化树结构
var sql = $"SELECT * FROM dbo.SysBusinessModel";
this.myTreeView1.DataSource = this._db.GetDataTable(sql, "SysModels");
......@@ -102,15 +125,19 @@ namespace Tools.UI
var id = Convert.ToInt32(drNow["ID"]);
this._ds.Tables["ModuleTemplate"].DefaultView.RowFilter = $"ModuleID={id}";
this._ds.Tables["ModuleTemplateTable"].DefaultView.RowFilter = $"ModuleID={id}";
this._ds.Tables["ModuleTemplateCardInfo"].DefaultView.RowFilter = $"ModuleID={id}";
//仅当叶子节点(即模块节点)操作时表格有效
bool isEnabled = e.Node.Nodes.Count == 0;
this.dgvTemplates.Enabled = isEnabled;
this.dgvTables.Enabled = isEnabled;
this.dgvCardInfo.Enabled = isEnabled;
this.tslTemplates.ForeColor = isEnabled ? Color.Black : Color.Gray;
this.tslTables.ForeColor = isEnabled ? Color.Black : Color.Gray;
this.tslCardInfo.ForeColor = isEnabled ? Color.Black : Color.Gray;
var tag = isEnabled ? "" : "(已禁用)";
this.tslTemplates.Text = $"模板维护{tag}";
this.tslTables.Text = $"数据源绑定{tag}";
this.tslCardInfo.Text = $"卡片模板配置{tag}";
}
//单元格单击:选择模板
private void DgvTables_CellClick(object sender, DataGridViewCellEventArgs e)
......@@ -145,14 +172,39 @@ namespace Tools.UI
}
}
}
//单元格点击:选择模板
private void DgvCardInfo_CellClick(object sender, DataGridViewCellEventArgs e)
{
if (e.RowIndex < 0 || e.ColumnIndex < 0)
return;
if (this.dgvTables.Columns[e.ColumnIndex].DataPropertyName.Equals("TpNames"))
{
var items = this._ds.Tables["ModuleTemplate"].DefaultView.Cast<DataRowView>().Select(r => r["TpName"].ToString());
wSelectTemplates frm = new wSelectTemplates(items);
if (frm.ShowDialog() == DialogResult.OK)
{
var drNow = this._ds.Tables["ModuleTemplateCardInfo"].DefaultView[e.RowIndex];
var result = "";
if (frm.CheckedItems.Count > 0)
{
result = frm.CheckedItems[0];
}
drNow["TemplateName"] = result;
drNow.EndEdit();
}
}
}
//上下文菜单
DataTable dtFocused = null;
private void contextMenuStrip1_Opening(object sender, CancelEventArgs e)
{
var name = (sender as ContextMenuStrip).SourceControl.Name;
var tableName = name.Equals(dgvTemplates.Name) ? "ModuleTemplate" : "ModuleTemplateTable";
dtFocused = this._ds.Tables[tableName];
dtFocused = null;
var ctrl = (sender as ContextMenuStrip).SourceControl;
if (ctrl is DataGridView)
{
dtFocused = ((ctrl as DataGridView).DataSource as DataView).Table;
}
}
private void tsmiAddRow_Click(object sender, EventArgs e)
{
......@@ -172,10 +224,17 @@ namespace Tools.UI
//清除所有对该模板的引用
if (isTemplate)
{
string mName = $"[{drDel["TpName"].ToString()}]";
string tpName = drDel["TpName"].ToString();
//清除数据绑定
foreach (DataRowView drv in this._ds.Tables["ModuleTemplateTable"].DefaultView)
{
drv["TpNames"] = drv["TpNames"].ToString().Replace($"[{tpName}]", "");
drv.EndEdit();
}
//清除卡片设置
foreach (DataRowView drv in this._ds.Tables["ModuleTemplateTable"].DefaultView)
{
drv["TpNames"] = drv["TpNames"].ToString().Replace(mName, "");
drv["TemplateName"] = drv["TemplateName"].ToString().Replace(tpName, "");
drv.EndEdit();
}
}
......
......@@ -117,6 +117,36 @@
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<metadata name="cbTemplateName.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="dataGridViewTextBoxColumn2.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="dataGridViewCheckBoxColumn1.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="dataGridViewCheckBoxColumn2.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="dataGridViewTextBoxColumn3.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="dataGridViewTextBoxColumn4.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="dataGridViewTextBoxColumn5.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="dataGridViewTextBoxColumn6.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="contextMenuStrip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>347, 17</value>
</metadata>
<metadata name="toolStrip4.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>622, 17</value>
</metadata>
<metadata name="Column10.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
......@@ -141,12 +171,12 @@
<metadata name="Column9.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="contextMenuStrip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>347, 17</value>
</metadata>
<metadata name="toolStrip3.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>237, 17</value>
</metadata>
<metadata name="toolStrip2.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>127, 17</value>
</metadata>
<metadata name="Column11.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
......@@ -168,9 +198,6 @@
<metadata name="Column13.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="toolStrip2.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>127, 17</value>
</metadata>
<metadata name="toolStrip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>512, 17</value>
</metadata>
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment