Excel 求助,如何做数据对比分析图

发布网友 发布时间:2022-04-23 06:04

我来回答

5个回答

懂视网 时间:2022-05-02 09:02

获取注释基本原理是调用数据库::fn_listextendedproperty函数,获取扩展属性MS_Description

technet 参考资料:sys.fn_listextendedproperty (Transact-SQL)

一、首先是 PetaPoco.Core.ttinclude

  1、106行原始:

public string SequenceName;
public bool Ignore;

  新建Description字段,这个是表的注释

public string SequenceName;
public bool Ignore;
public string Description;

  2、140行原始:

public string SequenceName;
public bool Ignore;

  新建Description字段,这个是列的注释

public string SequenceName;
public bool Ignore;
public string Description;

  3、517行原始:

foreach (var tbl in result)
{
 tbl.Columns=LoadColumns(tbl);
   
 // Mark the primary key
 string PrimaryKey=GetPK(tbl.Name);
 var pkColumn=tbl.Columns.SingleOrDefault(x=>x.Name.ToLower().Trim()==PrimaryKey.ToLower().Trim());
 if(pkColumn!=null)
 {
 pkColumn.IsPK=true;
 }
}

  修改后,调用函数获取表注释:

foreach (var tbl in result)
{
 using(var cmdDesc=_factory.CreateCommand())
 {
 cmdDesc.Connection = connection;
 cmdDesc.CommandText = TABLE_DESC_SQL;

 DbParameter p = null;

 p = cmdDesc.CreateParameter();
 p.ParameterName = "@schema";
 p.Value = tbl.Schema;
 cmdDesc.Parameters.Add(p);

 p = cmdDesc.CreateParameter();
 p.ParameterName = "@table";
 p.Value = tbl.Name;
 cmdDesc.Parameters.Add(p);

 using (var rdrDesc = cmdDesc.ExecuteReader())
 {
  if (rdrDesc.Read())
  tbl.Description = rdrDesc["value"].ToString();
 }
 }

 tbl.Columns=LoadColumns(tbl);
   
 // Mark the primary key
 string PrimaryKey=GetPK(tbl.Name);
 var pkColumn=tbl.Columns.SingleOrDefault(x=>x.Name.ToLower().Trim()==PrimaryKey.ToLower().Trim());
 if(pkColumn!=null)
 {
 pkColumn.IsPK=true;
 }
}

  4、572行原始,插入新代码,获取每一列的注释(return result 上面):

技术分享

foreach (var col in result)
{
 using (var cmdDesc = _factory.CreateCommand())
 {
 cmdDesc.Connection = _connection;
 cmdDesc.CommandText = COLUMN_DESC_SQL;

 DbParameter pDesc = null;

 pDesc = cmdDesc.CreateParameter();
 pDesc.ParameterName = "@schema";
 pDesc.Value = tbl.Schema;
 cmdDesc.Parameters.Add(pDesc);

 pDesc = cmdDesc.CreateParameter();
 pDesc.ParameterName = "@table";
 pDesc.Value = tbl.Name;
 cmdDesc.Parameters.Add(pDesc);

 pDesc = cmdDesc.CreateParameter();
 pDesc.ParameterName = "@column";
 pDesc.Value = col.Name;
 cmdDesc.Parameters.Add(pDesc);
 using (var rdrDesc = cmdDesc.ExecuteReader())
 {
  if (rdrDesc.Read())
  col.Description = rdrDesc["value"].ToString();
 }
 }
}

  5、672、688行原始,插入新的代码,存储调用函数的sql语句:

技术分享

const string TABLE_DESC_SQL = @"SELECT value FROM ::fn_listextendedproperty(‘MS_Description‘, ‘user‘, @schema, ‘table‘, @table, null, null)";
const string COLUMN_DESC_SQL = @"SELECT value FROM ::fn_listextendedproperty(‘MS_Description‘, ‘user‘, @schema, ‘table‘, @table, ‘column‘, @column)";

至此已经从数据库获取到了注释,下面需要将注释插入到T4模板中!

二、修改PetaPoco.Generator.ttinclude

  1、141行原始:

<#
foreach(Table tbl in from t in tables where !t.Ignore select t)
{
#> 
<# if (string.IsNullOrEmpty(tbl.Schema)) { #>
 [TableName("<#=tbl.Name#>")]
<# } else { #>

  添加表的 Description 注释:

技术分享

<#
foreach(Table tbl in from t in tables where !t.Ignore select t)
{
#>
 /// <summary>
 /// <#=tbl.Description??""#>
 /// </summary> 
<# if (string.IsNullOrEmpty(tbl.Schema)) { #>
 [TableName("<#=tbl.Name#>")]
<# } else { #>

  2、167行原始:

<#
foreach(Column col in from c in tbl.Columns where !c.Ignore select c)
{
 // Column bindings
#>
<# if (TrackModifiedColumns) { #>

  添加列的 Description 注释:

技术分享

<#
foreach(Column col in from c in tbl.Columns where !c.Ignore select c)
{
 // Column bindings
#>
 /// <summary>
 /// <#=col.Description??""#>
 /// </summary>
<# if (TrackModifiedColumns) { #>

这样就改完了,打开database.tt按ctrl+s就能更新获取到的注释了!

另外GetInstance居然不是单例方法,这简直没法忍,果断改掉:

PetaPoco.Generator.ttinclude,38行修改为:

public static <#=RepoName#> GetInstance()
{
 if (_instance!=null)
 return _instance;
  
 if (Factory!=null)
 return Factory.GetInstance();
 //else
 // return new <#=RepoName#>();
 return _instance = new <#=RepoName#>();
}

 

petapoco-SQLServer模型增加注释

标签:comm   需要   val   code   mil   .exe   添加   actor   target   

热心网友 时间:2022-05-02 06:10

1.首先把需要两组或者多组数据录入表格,把数据的字体,格式,大小都编辑为统一的格式。
2.然后点击菜单栏的插入-----图表。
3.然后选择 柱形图, 这是一种常用的图形,一眼就可以看出两组数据的差距。
点击下一步继续。
4.然后点击数据区域后面的箭头,
5.然后框选需要进行对比的数据。
接着进入下一步。
6.接着在图形选项里面做一些简单的编辑,这个按需选择,默认不添加也可以的。
7.最后确定,即可完成。

热心网友 时间:2022-05-02 07:28

选中d列-->点"格式"-->"条件格式:"-->"单元格数值"-->"等于
="√"
-->"格式“-->"数字“-->选绿色-->”确定“-->”添加“-->"单元格数值"-->"等于
="×"
-->"格式“-->"数字“-->选红色-->”确定“,如图:
-->"确定”--》将公式
=if(iserr(find(mid(a2,4,1),b2))+iserr(find(right(a2),c2)),"×","√")
粘贴至d2单元格,对准右下角,光标成“+”状时双击,效果如图:

热心网友 时间:2022-05-02 09:03

利用Rational Rose进行C++代码和数据库结构分析。分析已有的代码其主要的目的就是了解代码结构和数据结构,这些对应到模型图就是类图、数据模型图和组件图(对UML各种模型图的描述见注释③),也就是通过Rational Rose的逆向工程所得到的结果。利用Rational Rose可以进行关系数据库的数据模型设计并导出DDL语言脚本,相反还可以导入已有的DDL脚本生成数据模型以及连接SQLServer, DB2, Oracle等数据库并导入数据库的schema生成数据模型。首先,通过逆向工程,用户已经得到了UML模型或者数据模型的各个组件以及它们之间的关系。

热心网友 时间:2022-05-02 10:54

具体数据格式是怎样的?

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com