未找到

未发布 Fastreport.Net用户手册:打印Bands
by 鸟栖沙岩 keys 分享 1473234437960
FastReport在打印准备好的报表时会怎样进行排版呢?我们来看下面这个例子。"Report Title"band 会先被打印,随即会打印出"Page Header" band 。过后,在源文件中连接到band的行有多少"Data" band就会被打印多少次。等到所有 "Data" band 的行被打印完后 "Report Summary" band会被打印在页面的底部 - "Page Footer" band。打印出的效果类似如下显示:
未发布 最常用的DevExpress Winform 4个代码片段
by 鸟栖沙岩 keys 分享 1482213036220

一 、GridControl的删除操作

private void rILinkEditInfoDel_Click(object sender, EventArgs e)
{
     if (XtraMessageBox.Show("请确定是否删除当前记录?", "警告",MessageBoxButtons.YesNo, MessageBoxIcon.Warning) == DialogResult.Yes)
     {
         DataRow row =gvInfos.GetDataRow(gvInfos.FocusedRowHandle);
         delByCode(row["Code"].ToString());
         XtraMessageBox.Show("操作成功!");
     }
}

二、绑定非数据表中列

Hashtable ht = new Hashtable();

private void gridView6_CustomUnboundColumnData(object sender, DevExpress.XtraGrid.Views.Base.CustomColumnDataEventArgse)
{
     GridView View = sender as GridView;
     if (e.RowHandle >= 0)
     {
         object needAlert =View.GetRowCellValue(e.RowHandle, View.Columns["needAlert"]);
         if (needAlert != null &needAlert != DBNull.Value && needAlert.ToString().Trim() !="0" & View.GetRowCellValue(e.RowHandle,View.Columns["Value"]) != DBNull.Value)
         {
            decimal AverValue = Convert.ToDecimal(View.GetRowCellValue(e.RowHandle,View.Columns["Value"]));
             objectMinValue = View.GetRowCellValue(e.RowHandle,View.Columns["MinValue"]);
             objectMaxVlaue = View.GetRowCellValue(e.RowHandle,View.Columns["MaxValue"]);
             if(MinValue != DBNull.Value & MinValue != null & MaxVlaue.ToString() !="" & MaxVlaue != DBNull.Value && MaxVlaue != null &MaxVlaue.ToString() != "")
             {
                decimal gridColumn2 = Convert.ToDecimal(View.GetRowCellValue(e.RowHandle,View.Columns["MinValue"]));
                decimal gridColumn1 = Convert.ToDecimal(View.GetRowCellValue(e.RowHandle,View.Columns["MaxValue"]));
                if (gridColumn2 > AverValue || AverValue > gridColumn1)
                {
                    if (!ht.ContainsKey("pic"))
                        ht.Add("pic", GetImage(1));
                    e.Value = ht["pic"];
                }
             }
         }
     }
}

/// <summary>
/// 由资源文件获取图片
/// </summary>
/// <param name="key"></param>
/// <returns></returns>
byte[] GetImage(int key)
{
     Image img =DevExpress.Utils.Controls.ImageHelper.CreateImageFromResources(string.Format("RiverSys.Resources.{0}.gif",key.ToString()), typeof(RiverInfos).Assembly);
     returnDevExpress.XtraEditors.Controls.ByteImageConverter.ToByteArray(img,ImageFormat.Gif);
}

/// <summary>
/// 动态根据条件设置行样式
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void gridView6_RowStyle(object sender,DevExpress.XtraGrid.Views.Grid.RowStyleEventArgs e)
{
     GridView View = sender as GridView;
     if (e.RowHandle >= 0)
     {
         object needAlert =View.GetRowCellValue(e.RowHandle, View.Columns["needAlert"]);
         if (needAlert != null &needAlert != DBNull.Value && needAlert.ToString().Trim() !="0" & View.GetRowCellValue(e.RowHandle,View.Columns["Value"]) != DBNull.Value)
         {
            decimal AverValue = Convert.ToDecimal(View.GetRowCellValue(e.RowHandle, View.Columns["Value"]));
             objectMinValue = View.GetRowCellValue(e.RowHandle,View.Columns["MinValue"]);
             objectMaxVlaue = View.GetRowCellValue(e.RowHandle,View.Columns["MaxValue"]);
             if(MinValue != DBNull.Value & MinValue != null & MaxVlaue.ToString() !="" & MaxVlaue != DBNull.Value && MaxVlaue != null &MaxVlaue.ToString() != "")
             {
                decimal gridColumn2 = Convert.ToDecimal(MinValue);
                decimal gridColumn1 = Convert.ToDecimal(MaxVlaue);
                if (gridColumn2 > AverValue || AverValue > gridColumn1)
                {
                    e.Appearance.ForeColor = Color.Red;
                    e.Appearance.BackColor = Color.LightGray;
                }
             }
         }
     }
}

三、GridControl 中颜色选择控件

private void gvMapColor_CustomUnboundColumnData(object sender,DevExpress.XtraGrid.Views.Base.CustomColumnDataEventArgs e)
{
     GridView view = sender as GridView;
     DataView dv = view.DataSource as DataView;
     if (e.IsGetData)
     {
         string strVal =dv[e.ListSourceRowIndex]["Color"].ToString();
         if (strVal != "")
         {
            //e.Value = DevExpress.Utils.StyleLayout.ColorFromString(strVal);
            e.Value = Common.HexToColor(strVal);
         }
     }
     else
     {
         //Color colorVal =DevExpress.Utils.StyleLayout.ColorFromString(e.Value.ToString());
         Color colorVal =(Color)e.Value;
        dv[e.ListSourceRowIndex]["Color"] =Common.RGB_HEX(colorVal.ToArgb());
     }
}

四、关于 GridControl 验证示例

private void gvMapColor_CustomUnboundColumnData(object sender,DevExpress.XtraGrid.Views.Base.CustomColumnDataEventArgs e)
{
     GridView view = sender as GridView;
     DataView dv = view.DataSource as DataView;
     if (e.IsGetData)
     {
         string strVal =dv[e.ListSourceRowIndex]["Color"].ToString();
         if (strVal != "")
         {
            //e.Value = DevExpress.Utils.StyleLayout.ColorFromString(strVal);
            e.Value = Common.HexToColor(strVal);
         }
     }
     else
     {
         //Color colorVal =DevExpress.Utils.StyleLayout.ColorFromString(e.Value.ToString());
         Color colorVal =(Color)e.Value;
        dv[e.ListSourceRowIndex]["Color"] =Common.RGB_HEX(colorVal.ToArgb());
     }
}

四、关于 GridControl 验证示例

/**//// <summary>
/// 初始化GridView,绑定数据
/// </summary>
/// <param name="parentId"></param>
private void GridViewBindData(string parentId)
{
this.gridView1.Columns.Clear();
this.FDs= areaSetupActionHelper.getDsRegionByParentId(parentId);
this.gridCArea.DataSource =this.FDs.Tables[0].DefaultView;

    this.gridView1.Columns["id"].VisibleIndex =-1;
    this.gridView1.Columns["childCounts"].VisibleIndex= -1;

    this.gridView1.Columns["reg_id"].Caption ="区划编号";
    this.gridView1.Columns["reg_name"].Caption ="区划名称";
    this.gridView1.Columns["parent_id"].Caption ="父区划编号";
    this.gridView1.Columns["reg_desc"].Caption ="区划描述";
    this.gridView1.Columns["parent_id"].ImageIndex =1;
    this.gridView1.Columns["reg_desc"].ImageIndex = 0;

    RepositoryItemTextEdit textEditReg_Id = newRepositoryItemTextEdit();
    textEditReg_Id.Mask.EditMask =parentId+"\\d{2,3}";
    textEditReg_Id.Mask.MaskType =DevExpress.XtraEditors.Mask.MaskType.Regular;

    this.gridView1.Columns["reg_id"].ColumnEdit =textEditReg_Id;

    this.gridView1.Columns["reg_desc"].ColumnEdit= new RepositoryItemMemoExEdit();

    TreeListNode node =this.treelArea.FocusedNode.ParentNode;
    string fid =node==null?"0":node.GetValue("RegID").ToString().Trim();
    DataSet ds =areaSetupActionHelper.getDsRegionByParentId(fid);
    RepositoryItemLookUpEdit lookUEParent_Id = newRepositoryItemLookUpEdit();
    lookUEParent_Id.Columns.Add(newLookUpColumnInfo("reg_id", 40, "区划编号"));
    lookUEParent_Id.Columns.Add(newLookUpColumnInfo("reg_name", 40, "区划名称"));
    lookUEParent_Id.DataSource = ds.Tables[0].DefaultView;
    lookUEParent_Id.ValueMember = "reg_id";
    lookUEParent_Id.DisplayMember = "reg_id";
    this.gridView1.Columns["parent_id"].ColumnEdit =lookUEParent_Id;
}
/**//// <summary>
/// gridView单元格验证的相关处理程序
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void gridView1_ValidatingEditor(objectsender, DevExpress.XtraEditors.Controls.BaseContainerValidateEditorEventArgs e)
{
if (e.Valid == false&this.gridView1.FocusedColumn.FieldName =="reg_id")
{
      e.ErrorText = "区划编号不合法!\n应为父区划编号加2~3位数据组成!";   
    }
    if (this.gridView1.FocusedColumn.FieldName =="reg_name")
    {     
     Regex reg=new Regex(@"[\u4e00-\u9fa5]{1,20}");
     Match m=reg.Match(e.Value.ToString().Trim());
     if (m.Length != e.Value.ToString().Trim().Length)
     {
      e.Valid = false;
      e.ErrorText = "区划名称应为汉字\n长度为1至20";
     }
    }
}

private void gridView1_InvalidValueException(objectsender, InvalidValueExceptionEventArgs e)
{
    if (MyDialog.Alert(" 您所填写的内容不符合规则\n 要放弃您刚才对此项所做的更改吗?", "您所编辑的内容不符合规则", MessageBoxButtons.YesNo, MessageBoxIcon.Warning) ==DialogResult.Yes)
    {
     e.ExceptionMode = ExceptionMode.Ignore;
    }
}

/**//// <summary>
/// gridView行验证的相关处理程序
/// </summary>
private void gridView1_ValidateRow(objectsender, DevExpress.XtraGrid.Views.Base.ValidateRowEventArgs e)
{
string regid = this.gridView1.GetRowCellValue(e.RowHandle,"reg_id").ToString().Trim();
string regName = this.gridView1.GetRowCellValue(e.RowHandle,"reg_name").ToString().Trim();
if ( regid.Length < 1)
{
     e.Valid = false;
    this.gridView1.SetColumnError(this.gridView1.Columns["reg_id"],"请填写区划编号!",DevExpress.XtraEditors.DXErrorProvider.ErrorType.Default);
      // e.ErrorText = "区划名称不能为空!";
    }
    if (regName.Length < 1)
    {
     e.Valid = false;
    this.gridView1.SetColumnError(this.gridView1.Columns["reg_name"],"区划名称不能为空!",DevExpress.XtraEditors.DXErrorProvider.ErrorType.Default);
    }
}

private void gridView1_InvalidRowException(object sender,DevExpress.XtraGrid.Views.Base.InvalidRowExceptionEventArgs e)
{

    if (e.RowHandle >= 0)
    {
     if (this.gridView1.GetRowCellValue(e.RowHandle,this.gridView1.Columns["reg_id"]).ToString().Trim() == ""|| this.gridView1.GetRowCellValue(e.RowHandle,this.gridView1.Columns["reg_name"]).ToString().Trim() =="")
     {
      if (MyDialog.Alert("  您所填写的内容不符合规则\n 要放弃您刚才对此项所做的更改吗?","您所编辑的内容不符合规则", MessageBoxButtons.YesNo,MessageBoxIcon.Warning) == DialogResult.Yes)
      {
       e.ExceptionMode = ExceptionMode.Ignore;
      }
      else
      {
       e.ExceptionMode = ExceptionMode.NoAction;
      }
     }
    }
    else
    {
     e.ExceptionMode = ExceptionMode.Ignore;
    }
}
未发布 DevExpress Report Server官方视频教程
by 鸟栖沙岩 keys 分享 1489050564366

DevExpress Report Server是一个非常完整的报表解决方案,具有易于安装、管理方便的特点,内置报表设计器、报表版本控制和一站式报表分发。

1)安装

2)用户管理与安全

3)数据模型

4)报表管理

5)调度与任务

慧都学院—帮助企业培养专业技术人才,海量技术视频教程,最前沿IT技术公开课,尽在training.evget.com

更多行业资讯,更新鲜的技术动态,尽在慧都学院


未发布 FastReport.Net v2016.6发布,添加打印对话框等新功能
by 鸟栖沙岩 keys 分享 1466490190746
未发布 图表控件套包MindFusion Pack for WinForms 2016.R2版本发布
by 鸟栖沙岩 keys 分享 1467100036001
专业的多功能Winforms图表控件套包MindFusion Pack for WinForms 2016.R2版本目前已经发布,添加了新的数据模型与渲染模式。
未发布 PhpStorm入门视频教程
by 鸟栖沙岩 keys 分享 1488877297512

PhpStorm是一个轻量级且便捷的PHP IDE,其旨在提高用户效率,可深刻理解用户的编码,提供智能代码补全,快速导航以及即时错误检查。可随时帮助用户对其编码进行调整,运行单元测试或者提供可视化debug功能。

1)PhpStorm简介

2)IDE概念

3)IDE接口

4)PhpStorm IDE的基本概念

5)PhpStorm基本编程行为与导航

6)进阶编程行为

7)创建项目

慧都学院—帮助企业培养专业技术人才,海量技术视频教程,最前沿IT技术公开课,尽在training.evget.com

更多行业资讯,更新鲜的技术动态,尽在慧都学院

未发布 Fastreport.Net用户手册:"Line"对象
by 鸟栖沙岩 keys 分享 1476685926175

"Line"对象用于显示水平线、垂直线和斜线。

此对象如下图所示:


如果可以的话,尽量用对象边框替代"Line"对象。这样做可以简化报表并且避免输出不同格式可能造成的问题。

FastReport设计器拥有非常方便的画线工具。为了在报表中插入线条,需要点击 "Objects"工具栏上的按钮并选择菜单中的"Line"对象或者"Diagonal Line"。将鼠标指针放在线条的起点位置,按住左键不放即可绘制线条。

当所有线条都绘制完成后,点击"Objects"工具栏上的按钮。

普通线条区别于斜线的地方在于普通线条只能是垂直或水平的。

不要为"Line"对象选择 "Double"样式。此样式只能应用于对象的边框。

"Line"对象有以下属性:

Diagonal

  • 此属性决定线条是否为斜线。普通的线条开启此属性后可以转变为斜线。

StartCap, EndCap

  • 此属性用于设置线的端点。你可以使用以下端点样式:
    • 椭圆
    • 矩形
    • 菱形
    • 箭头

端点的尺寸可以通过宽度和高度的端点属性进行设置,你可以配置每一条线的末端点。


相关链接:

未发布 Stimulsoft Reports.Net基础教程(七):创建列式报表
by 鸟栖沙岩 keys 分享 1470273327880
StimulReport.Net是一个基于.NET框架的报表生成器,能够帮助你创建结构、功能丰富的报表。以下步骤将向您展示如何用Stimulsoft Reports.Net创建一个列式报表。
未发布 IBM商业智能解决方案”公开课报名正式开启!
by 鸟栖沙岩 keys 分享 1480927969440

慧都学院-IBM大数据公开课第三波:数据建模、分析、挖掘、预测及展现12月震撼来袭!

IBM资深专家全面讲解:全面覆盖数据ETL、建模、分析算法、最后到预测和展现全过程,丰富行业案例,不讲空洞概念,全部是结合讲师实践来讲解,为你在未来工作中指明方向,不再反复走弯路!

前30名报名免费参与,详情查看原文。

未发布 Fastreport.Net用户手册:"Rich Text"对象
by 鸟栖沙岩 keys 分享 1476252389257
"Rich Text"对象显示格式化文本(RTF格式)。如下所示:



尝试用"Text"对象来显示一段文本。当你以文档格式输出报表时,"Rich Text"对象将以图片形式被输出。 此对象仅支持固体填充类型。 编辑报表时,双击此对象,你将会看到如下编辑窗口:



你也能够使用Microsoft 字体来创建文本。完成后,保存文本为.RTF格式。接下来,你需要打开 "Rich Text"编辑器并点击 按钮加载.RTF文件。 "Rich Text"对象不支持所有的 Microsoft 字体特征。 你可以用以下方法在对象中显示数据:

  • 你可以在对象的文本中插入表达式,就如同你在"Text"对象中做的一样。插入重要的数据列到文本中。
  • 使用"DataColumn"属性以将对象绑定到列中。
此对象带有以下属性:

  • AllowExpressions:此属性允许开启或关闭表达式控制。默认为开启。
  • Brackets:此属性包含指定表达式的符号。
  • DataColumn:对象绑定的数据列
  • Text:此属性包含RTF文本
  • Padding:内边距,单位为像素

 近期热门 - 点击最多
  1. python基于asyncio实现 Redis 的异步操作哈希数据写入 / 读取、发布订阅消息中间件
  2. Node.js 打印vite react+go项目目录树
  3. Angular入门:用Signals状态管理和Bootstrap基础样式实现的用户登录注册实例教程
  4. 用Gitea搭建免费Git服务器自定义Actions配置CI/CD自动化部署和测试流水线
  5. FastAPI+SQLModel+PostgreSQL+React+Vite全栈项目文件结构说明环境搭建与初始化指南
  6. React结合vite使用vue3,在纯typescript的react hooks中使用vue
  7. valtio基于Proxy代理比redux\zustand更简洁的react状态管理库
  8. React Native为http网络请求添加timeout超时异常处理: 用XMLHttpRequest替换fetch发送的区别
  9. React Native使用fetch发送http登陆验证请求失败:无法读取set-cookie并显示network request failed
  10. 克服Redux的缺点在React/Native中使用消息队列,pubsub-js更加简洁的组件间通信和状态传递方法

  全端社区 - 最新回复
  1. python基于asyncio实现 Redis 的异步操作哈希数据写入 / 读取、发布订阅消息中间件
  2. Angular入门:用Signals状态管理和Bootstrap基础样式实现的用户登录注册实例教程
  3. 用Gitea搭建免费Git服务器自定义Actions配置CI/CD自动化部署和测试流水线
  4. FastAPI+SQLModel+PostgreSQL+React+Vite全栈项目文件结构说明环境搭建与初始化指南
  5. Node.js 打印vite react+go项目目录树
  6. valtio基于Proxy代理比redux\zustand更简洁的react状态管理库
  7. Windows与Mac通过git ssh和rsync实现文件共享互传
  8. Windows与Mac通过git ssh和scp实现文件共享互传
  9. React结合vite使用vue3,在纯typescript的react hooks中使用vue
  10. 使用PubSub-JS时ReactNative在后台运行一段时间唤醒后,组件无法scribe到publish的事件,typescript实现一个事件订阅发布组件

  开源的 OurJS
OurJS开源博客已经迁移到 OnceOA 平台。

  关注我们
扫一扫即可关注我们:
OnceJS

OnceOA