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

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

parent 05b572a2
...@@ -4,6 +4,12 @@ ...@@ -4,6 +4,12 @@
<add key="LoginInfo" value="wwF/xpBzWek=" /> <add key="LoginInfo" value="wwF/xpBzWek=" />
<add key="LoginVerify" value="v86f5Q3Xa7U=" /> <add key="LoginVerify" value="v86f5Q3Xa7U=" />
<add key="UpdateTime" value="2021-12-09 09:48:49.755" /> <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> </appSettings>
<startup> <startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.8" /> <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.8" />
......
...@@ -3,4 +3,14 @@ ...@@ -3,4 +3,14 @@
3、右侧通过右键菜单増行和删行 3、右侧通过右键菜单増行和删行
4、右侧-上表:前缀自动生成,只需填写模板名称 4、右侧-上表:前缀自动生成,只需填写模板名称
5、右侧-下表:模板通过单击选择,表名必填 5、右侧-下表:模板通过单击选择,表名必填
6、通过右上角“保存设置”按钮,保存所有配置 6、通过右上角“保存设置”按钮,保存所有配置
\ No newline at end of file
【卡片配置特别说明】
*卡片式某个Sheet页内的一个矩形区域,所以为了定位模板,我们需要以下属性:
所属模板:用于定位所属模板
Sheet序号:用于定位具体是模板内的Sheet位置(从0开始),模板+Sheet应该是唯一的
起始行:用于定位卡片的起始行位置,即卡片的第一行。(从0开始,即实际行号减1)
起始列:用于定位卡片的起始列位置,及卡片的第一列。(从0开始)
行跨度:卡片占用的总行数,至少1行
列跨度:卡片占用的总列数,至少1列
每行卡片数量:即每行并列摆放几个卡片,至少1个
\ No newline at end of file
...@@ -120,4 +120,16 @@ ...@@ -120,4 +120,16 @@
<UserId>sa</UserId> <UserId>sa</UserId>
<Pwd>sa</Pwd> <Pwd>sa</Pwd>
</links> </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> </DocumentElement>
\ No newline at end of file
...@@ -23,11 +23,14 @@ namespace Tools.UI.Popups ...@@ -23,11 +23,14 @@ namespace Tools.UI.Popups
/// </summary> /// </summary>
public List<string> CheckedItems => this.checkedListBox1.CheckedItems.Cast<string>().ToList(); public List<string> CheckedItems => this.checkedListBox1.CheckedItems.Cast<string>().ToList();
public wSelectTemplates(IEnumerable<string> items) public wSelectTemplates(IEnumerable<string> items, bool isMultiSelect = true)
{ {
InitializeComponent(); InitializeComponent();
//状态初始化 //状态初始化
this.DialogResult = DialogResult.None; this.DialogResult = DialogResult.None;
//界面初始化
this.btnShotAll.Enabled = isMultiSelect;
this.btnShotAdded.Enabled = isMultiSelect;
//初始化数据源 //初始化数据源
this.checkedListBox1.Items.AddRange(items.ToArray()); this.checkedListBox1.Items.AddRange(items.ToArray());
} }
......
This diff is collapsed.
...@@ -58,6 +58,24 @@ namespace Tools.UI ...@@ -58,6 +58,24 @@ namespace Tools.UI
SelectSQL VARCHAR(MAX) NULL 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"; END";
this._db.ExecNonSql(sql); this._db.ExecNonSql(sql);
...@@ -66,6 +84,7 @@ namespace Tools.UI ...@@ -66,6 +84,7 @@ namespace Tools.UI
this.ModuleTableList = new List<TQuery>() { this.ModuleTableList = new List<TQuery>() {
new TQuery("ModuleTemplate"), new TQuery("ModuleTemplate"),
new TQuery("ModuleTemplateTable"), new TQuery("ModuleTemplateTable"),
new TQuery("ModuleTemplateCardInfo"),
}; };
this._ds = this._db.GetData(this.ModuleTableList, true); this._ds = this._db.GetData(this.ModuleTableList, true);
} }
...@@ -78,9 +97,13 @@ namespace Tools.UI ...@@ -78,9 +97,13 @@ namespace Tools.UI
this.dgvTemplates.AutoGenerateColumns = false; this.dgvTemplates.AutoGenerateColumns = false;
this.dgvTables.AllowUserToAddRows = false; this.dgvTables.AllowUserToAddRows = false;
this.dgvTables.AutoGenerateColumns = false; this.dgvTables.AutoGenerateColumns = false;
this.dgvCardInfo.AllowUserToAddRows = false;
this.dgvCardInfo.AutoGenerateColumns = false;
this.dgvTemplates.DataSource = this._ds.Tables["ModuleTemplate"].DefaultView; this.dgvTemplates.DataSource = this._ds.Tables["ModuleTemplate"].DefaultView;
this.dgvTables.DataSource = this._ds.Tables["ModuleTemplateTable"].DefaultView; this.dgvTables.DataSource = this._ds.Tables["ModuleTemplateTable"].DefaultView;
this.dgvCardInfo.DataSource = this._ds.Tables["ModuleTemplateCardInfo"].DefaultView;
this.dgvTables.CellClick += DgvTables_CellClick; this.dgvTables.CellClick += DgvTables_CellClick;
this.dgvCardInfo.CellClick += DgvCardInfo_CellClick;
//初始化树结构 //初始化树结构
var sql = $"SELECT * FROM dbo.SysBusinessModel"; var sql = $"SELECT * FROM dbo.SysBusinessModel";
this.myTreeView1.DataSource = this._db.GetDataTable(sql, "SysModels"); this.myTreeView1.DataSource = this._db.GetDataTable(sql, "SysModels");
...@@ -102,15 +125,19 @@ namespace Tools.UI ...@@ -102,15 +125,19 @@ namespace Tools.UI
var id = Convert.ToInt32(drNow["ID"]); var id = Convert.ToInt32(drNow["ID"]);
this._ds.Tables["ModuleTemplate"].DefaultView.RowFilter = $"ModuleID={id}"; this._ds.Tables["ModuleTemplate"].DefaultView.RowFilter = $"ModuleID={id}";
this._ds.Tables["ModuleTemplateTable"].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; bool isEnabled = e.Node.Nodes.Count == 0;
this.dgvTemplates.Enabled = isEnabled; this.dgvTemplates.Enabled = isEnabled;
this.dgvTables.Enabled = isEnabled; this.dgvTables.Enabled = isEnabled;
this.dgvCardInfo.Enabled = isEnabled;
this.tslTemplates.ForeColor = isEnabled ? Color.Black : Color.Gray; this.tslTemplates.ForeColor = isEnabled ? Color.Black : Color.Gray;
this.tslTables.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 ? "" : "(已禁用)"; var tag = isEnabled ? "" : "(已禁用)";
this.tslTemplates.Text = $"模板维护{tag}"; this.tslTemplates.Text = $"模板维护{tag}";
this.tslTables.Text = $"数据源绑定{tag}"; this.tslTables.Text = $"数据源绑定{tag}";
this.tslCardInfo.Text = $"卡片模板配置{tag}";
} }
//单元格单击:选择模板 //单元格单击:选择模板
private void DgvTables_CellClick(object sender, DataGridViewCellEventArgs e) private void DgvTables_CellClick(object sender, DataGridViewCellEventArgs e)
...@@ -145,14 +172,39 @@ namespace Tools.UI ...@@ -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; DataTable dtFocused = null;
private void contextMenuStrip1_Opening(object sender, CancelEventArgs e) private void contextMenuStrip1_Opening(object sender, CancelEventArgs e)
{ {
var name = (sender as ContextMenuStrip).SourceControl.Name; dtFocused = null;
var tableName = name.Equals(dgvTemplates.Name) ? "ModuleTemplate" : "ModuleTemplateTable"; var ctrl = (sender as ContextMenuStrip).SourceControl;
dtFocused = this._ds.Tables[tableName]; if (ctrl is DataGridView)
{
dtFocused = ((ctrl as DataGridView).DataSource as DataView).Table;
}
} }
private void tsmiAddRow_Click(object sender, EventArgs e) private void tsmiAddRow_Click(object sender, EventArgs e)
{ {
...@@ -172,10 +224,17 @@ namespace Tools.UI ...@@ -172,10 +224,17 @@ namespace Tools.UI
//清除所有对该模板的引用 //清除所有对该模板的引用
if (isTemplate) 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) 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(); drv.EndEdit();
} }
} }
......
...@@ -117,6 +117,36 @@ ...@@ -117,6 +117,36 @@
<resheader name="writer"> <resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader> </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"> <metadata name="Column10.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value> <value>True</value>
</metadata> </metadata>
...@@ -141,12 +171,12 @@ ...@@ -141,12 +171,12 @@
<metadata name="Column9.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> <metadata name="Column9.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value> <value>True</value>
</metadata> </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"> <metadata name="toolStrip3.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>237, 17</value> <value>237, 17</value>
</metadata> </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"> <metadata name="Column11.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value> <value>True</value>
</metadata> </metadata>
...@@ -168,9 +198,6 @@ ...@@ -168,9 +198,6 @@
<metadata name="Column13.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> <metadata name="Column13.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value> <value>True</value>
</metadata> </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"> <metadata name="toolStrip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>512, 17</value> <value>512, 17</value>
</metadata> </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