Foxtable(狐表)用户栏目专家坐堂 → 命令窗口能不能添加一个功能?


  共有7241人关注过本帖树形打印复制链接

主题:命令窗口能不能添加一个功能?

帅哥哟,离线,有人找我吗?
程兴刚
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章
等级:超级版主 帖子:7258 积分:40773 威望:0 精华:16 注册:2008/8/31 23:23:00
  发帖心情 Post By:2013/4/24 10:21:00 [显示全部帖子]

否定:基本上没有多大作用,细细分析就知道:

 

加入我在前面很多位置定义了各种变量:比如第一行:dim dr as datarow

 

那么,我在后面选中局部代码,肯定要报错,当然也很可能在此之前的过程中的其他地方同时还定义了别的变量!

同样,以定义的变量在前面间隔N行引用了某些值,在您不可能跳着选中的情况下执行某段代码,依然会带来一系列的报错,您的调试执行根本就无法进行。

 

除非贺老师增加对变量的追溯功能,自动去判断是否定义变量,前面是否正确引用了值,估计不那么容易实现!


 回到顶部
帅哥哟,离线,有人找我吗?
程兴刚
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章
等级:超级版主 帖子:7258 积分:40773 威望:0 精华:16 注册:2008/8/31 23:23:00
  发帖心情 Post By:2013/4/26 9:51:00 [显示全部帖子]

我说的可不是特例,是每一个用户100%存在的,不用多了,您只需写三、五十行代码,分段测试就知道了!

 回到顶部
帅哥哟,离线,有人找我吗?
程兴刚
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章
等级:超级版主 帖子:7258 积分:40773 威望:0 精华:16 注册:2008/8/31 23:23:00
  发帖心情 Post By:2013/4/26 11:45:00 [显示全部帖子]

事实胜于雄辨:请问楼主及楼主的支持者们,如下代码,哪些可以独立测试?(这仅是最常见的个例)请将不测试的部位行首加单引号,并将结果贴出来,示例文件看下一楼,我等您的好消息:

 

If Tables("员工").Current IsNot Nothing
    Dim dr As DataRow = Tables("员工").Current.DataRow
    Dim doc As New PrintDoc() '定义一个报表
    doc.AutoRotate = False '禁止自动旋转打印内容
    doc.PageSetting.Height = "175mm" ' 纸张高度为93毫米
    doc.PageSetting.Width = "120mm" ' '纸张宽度为248毫米
    doc.PageSetting.Landscape = True '横向打印
    Doc.PageSetting.LeftMargin = 15'设置左边距
    Doc.PageSetting.RightMargin = 15 '设置右边距
    Doc.PageSetting.TopMargin = 10 '设置上边距
    Doc.PageSetting.BottomMargin = 10 '设置下边距
    '-----------------------------------------------------------------
    Dim rt As New prt.RenderTable() '定义一个表格对象
    rt.Style.GridLines.All = New prt.LineDef '将网格线类型设为默认类型
    rt.Style.TextAlignHorz = prt.AlignHorzEnum.Center '文字默认水平居中
    rt.Style.TextAlignVert = prt.AlignVertEnum.Center '文字默认垂直居中
    rt.Style.Spacing.Top = 4 '表格和前面对象的垂直间隔为4毫米
    rt.Style.Spacing.Bottom = 3 '表和和后续对象的垂直间隔为3毫米
    rt.Style.Spacing.All = 1
    rt.CellStyle.Spacing.All = 0.5 '单元格内距设为0.5毫米
    rt.Style.GridLines.All = New Prt.LineDef(0.6,Color.Gray)
    rt.Width =150
    '-----------------------------------------------------------------
    rt.Rows.Count = 1 '设置行数
    rt.Cols.Count = 11 '设置列数
    rt.Cols(0).Width = "35mm"
    rt.Cols(1).Width = "50mm"
    rt.Cols(2).Width = "35mm"
    rt.Cols(3).Width = "55mm"
    rt.Cols(4).Width = "20mm"
    rt.Cols(5).Width = "20mm"
    rt.Cols(6).Width = "20mm"
    '-----------------------------------------------------------------
    rt.cells(rt.Rows.Count-1,0).Text = "员工资料卡"
    rt.Cells(rt.Rows.Count-1,0).SpanCols = 7 '向右合并列
    rt.Rows(rt.Rows.Count-1).Height = "8mm"
    rt.Rows(rt.Rows.Count-1).Style.GridLines.All = new Prt.LineDef(0,Color.Black)
    rt.rows(rt.Rows.Count-1).Style.Font = New Font("宋体", 16,FontStyle.Bold) '设置字体
    '-----------------------------------------------------------------
    rt.cells(rt.Rows.Count,4).Text = "编号:"
    rt.Cells(rt.Rows.Count-1,4).SpanCols = 2
    rt.Rows(rt.Rows.Count-1).Height = "6mm"
    rt.cells(rt.Rows.Count-1,4).Style.TextAlignHorz = prt.AlignHorzEnum.right '水平靠右
    rt.rows(rt.Rows.Count-1).Style.GridLines.All = new Prt.LineDef(0,Color.Black)
    rt.Cells(rt.Rows.Count-1,4).Style.Font = New Font("宋体", 11,FontStyle.Regular) '设置文本对象的字体
    '-----------------------------------------------------------------
    rt.cells(rt.Rows.Count-1,6).Text = right("000" & dr("编号"),3)
    rt.cells(rt.Rows.Count-1,6).Style.TextAlignHorz = prt.AlignHorzEnum.left '水平靠右
    rt.Cells(rt.Rows.Count-1,6).Style.Font = New Font("宋体", 11,FontStyle.Regular) '设置文本对象的字体
    '-----------------------------------------------------------------
    rt.cells(rt.Rows.Count,0).Text = "姓名"
    rt.Rows(rt.Rows.Count-1).Height = "8mm"
    rt.rows(rt.Rows.Count-1).Style.GridLines.top = new Prt.LineDef(0.6,Color.Black)
    rt.rows(rt.Rows.Count-1).Style.GridLines.left = new Prt.LineDef(0.6,Color.Black)
    rt.Cells(rt.Rows.Count-1,0).Style.Font = New Font("宋体", 11,FontStyle.Regular) '设置文本对象的字体
    '-----------------------------------------------------------------
    rt.cells(rt.Rows.Count-1,1).Text = dr("姓名")
    rt.Cells(rt.Rows.Count-1,1).Style.Font = New Font("宋体", 11,FontStyle.bold) '设置文本对象的字体
    '-----------------------------------------------------------------
    rt.cells(rt.Rows.Count-1,2).Text = "出生日期"
    rt.Cells(rt.Rows.Count-1,2).Style.Font = New Font("宋体", 11,FontStyle.Regular) '设置文本对象的字体
    '-----------------------------------------------------------------
    rt.cells(rt.Rows.Count-1,3).Text = format(dr("出生日期"),"yyyy年mm月dd日")
    rt.Cells(rt.Rows.Count-1,3).Style.Font = New Font("宋体", 11,FontStyle.bold) '设置文本对象的字体
    '-----------------------------------------------------------------
    '-----------------------------------------------------------------
    rt.cells(rt.Rows.Count,0).Text = "部门"
    rt.Rows(rt.Rows.Count-1).Height = "8mm"
    rt.rows(rt.Rows.Count-1).Style.GridLines.left = new Prt.LineDef(0.6,Color.Black)
    rt.Cells(rt.Rows.Count-1,0).Style.Font = New Font("宋体", 11,FontStyle.Regular) '设置文本对象的字体
    '-----------------------------------------------------------------
    rt.cells(rt.Rows.Count-1,1).Text = dr("部门")
    rt.Cells(rt.Rows.Count-1,1).Style.Font = New Font("宋体", 11,FontStyle.bold) '设置文本对象的字体
    '-----------------------------------------------------------------
    rt.cells(rt.Rows.Count-1,2).Text = "雇佣日期"
    rt.Cells(rt.Rows.Count-1,2).Style.Font = New Font("宋体", 11,FontStyle.Regular) '设置文本对象的字体
    '-----------------------------------------------------------------
    rt.cells(rt.Rows.Count-1,3).Text = format(dr("雇佣日期"),"yyyy年mm月dd日")
    rt.Cells(rt.Rows.Count-1,3).Style.Font = New Font("宋体", 11,FontStyle.bold) '设置文本对象的字体
    '-----------------------------------------------------------------
    rt.cells(rt.Rows.Count,0).Text = "性别"
    rt.Rows(rt.Rows.Count-1).Height = "8mm"
    rt.rows(rt.Rows.Count-1).Style.GridLines.left = new Prt.LineDef(0.6,Color.Black)
    rt.Cells(rt.Rows.Count-1,0).Style.Font = New Font("宋体", 11,FontStyle.Regular) '设置文本对象的字体
    '-----------------------------------------------------------------
    rt.cells(rt.Rows.Count-1,1).Text = dr("性别")
    rt.Cells(rt.Rows.Count-1,1).Style.Font = New Font("宋体", 11,FontStyle.bold) '设置文本对象的字体
    '-----------------------------------------------------------------
    rt.cells(rt.Rows.Count-1,2).Text = "职务"
    rt.Cells(rt.Rows.Count-1,2).Style.Font = New Font("宋体", 11,FontStyle.Regular) '设置文本对象的字体
    '-----------------------------------------------------------------
    rt.cells(rt.Rows.Count-1,3).Text = dr("职务")
    rt.Cells(rt.Rows.Count-1,3).Style.Font = New Font("宋体", 11,FontStyle.bold) '设置文本对象的字体
    '-----------------------------------------------------------------
    rt.cells(rt.Rows.Count,0).Text = "地址"
    rt.Rows(rt.Rows.Count-1).Height = "8mm"
    rt.rows(rt.Rows.Count-1).Style.GridLines.left = new Prt.LineDef(0.6,Color.Black)
    rt.Cells(rt.Rows.Count-1,0).Style.Font = New Font("宋体", 11,FontStyle.Regular) '设置文本对象的字体
    '-----------------------------------------------------------------
    rt.cells(rt.Rows.Count-1,1).Text = dr("地址")
    rt.Cells(rt.Rows.Count-1,1).SpanCols = 3
    rt.cells(rt.Rows.Count-1,1).Style.TextAlignHorz = prt.AlignHorzEnum.left
    rt.Cells(rt.Rows.Count-1,1).Style.Font = New Font("宋体", 11,FontStyle.bold) '设置文本对象的字体
    '-----------------------------------------------------------------
    rt.cells(rt.Rows.Count,0).Text = "家庭电话"
    rt.Rows(rt.Rows.Count-1).Height = "8mm"
    rt.rows(rt.Rows.Count-1).Style.GridLines.left = new Prt.LineDef(0.6,Color.Black)
    rt.Cells(rt.Rows.Count-1,0).Style.Font = New Font("宋体", 11,FontStyle.Regular) '设置文本对象的字体
    '-----------------------------------------------------------------
    rt.cells(rt.Rows.Count-1,1).Text = dr("家庭电话")
    rt.Cells(rt.Rows.Count-1,1).Style.Font = New Font("宋体", 11,FontStyle.bold) '设置文本对象的字体
    '-----------------------------------------------------------------
    rt.cells(rt.Rows.Count-1,2).Text = "办公电话"
    rt.Cells(rt.Rows.Count-1,2).Style.Font = New Font("宋体", 11,FontStyle.Regular) '设置文本对象的字体
    '-----------------------------------------------------------------
    rt.cells(rt.Rows.Count-1,3).Text = dr("办公电话")
    rt.Cells(rt.Rows.Count-1,3).Style.Font = New Font("宋体", 11,FontStyle.bold) '设置文本对象的字体
    '-----------------------------------------------------------------
    rt.Rows(rt.Rows.Count).Height = "30mm"
    rt.Cells(rt.Rows.Count-1,0).SpanCols = 7
    rt.cells(rt.Rows.Count-1,4).Style.TextAlignHorz = prt.AlignHorzEnum.left '水平靠右
    rt.rows(rt.Rows.Count-1).Style.GridLines.left = new Prt.LineDef(0.6,Color.Black)
    rt.rows(rt.Rows.Count-1).Style.GridLines.Bottom = new Prt.LineDef(0.6,Color.Black)
    rt.rows(rt.Rows.Count-1).Style.GridLines.right = new Prt.LineDef(0.6,Color.Black)
    '-----------------------------------------------------------------
    rt.Cells(rt.Rows.Count-6,4).SpanCols = 3
    rt.Cells(rt.Rows.Count-6,4).Spanrows = 5
    rt.Cells(rt.Rows.Count-6,4).CellStyle.Spacing.All = 0 '单元格内距设为0.5毫米
   
    rt.Cells(rt.Rows.Count-6,4).Style.GridLines.right = new Prt.LineDef(0.6,Color.Black)
    '!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
    Dim ra As prt.RenderArea
    Dim rm As New prt.RenderImage
    ra = rt.Cells(rt.Rows.Count-6,4).Area
    rm = New prt.RenderImage
    rm.Image =  GetImage(dr("照片"))
    rm.Height = 43
    ra.Children.Add(rm)
     doc.Body.Children.Add(rt) '将表格对象加入到报表中
    Doc.Preview() '预览报表
End If

[此贴子已经被作者于2013-4-26 12:41:54编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
程兴刚
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章
等级:超级版主 帖子:7258 积分:40773 威望:0 精华:16 注册:2008/8/31 23:23:00
  发帖心情 Post By:2013/4/26 11:50:00 [显示全部帖子]

手机回复代码不能换行,请看这里:26、27楼,有代码和示例文件:

 http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=8954&authorid=0&page=0&star=3

[此贴子已经被作者于2013-4-26 12:42:29编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
程兴刚
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章
等级:超级版主 帖子:7258 积分:40773 威望:0 精华:16 注册:2008/8/31 23:23:00
  发帖心情 Post By:2013/4/26 22:36:00 [显示全部帖子]

我帮您们顶第一次!

 回到顶部
帅哥哟,离线,有人找我吗?
程兴刚
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章
等级:超级版主 帖子:7258 积分:40773 威望:0 精华:16 注册:2008/8/31 23:23:00
  发帖心情 Post By:2013/4/27 20:35:00 [显示全部帖子]

那就等着,看看贺老师啥时候出这一功能!!

 回到顶部
帅哥哟,离线,有人找我吗?
程兴刚
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章
等级:超级版主 帖子:7258 积分:40773 威望:0 精华:16 注册:2008/8/31 23:23:00
  发帖心情 Post By:2013/4/27 22:01:00 [显示全部帖子]

以下是引用布莱克朱在2013-4-27 21:53:00的发言:
呵呵  每样有每样的作用 你认为没用的 人家却认为有用.

 

       对这个问题,我也确确实实和贺老师交流过了,这个很不好做,还不一定做得到,关键是只测试选中的,如果从第一行到当前行,现在就没问题,确定前会有错误提示,目前的确定按钮就相当于一个测试按钮,只是多了关闭代码编辑器的功能,执行不通过,自然确定不了,但要断开前面的单独测试,这就很不好说了,本来没有错误的也会报一系列错误,循环内、循环外都不一样,跳过某些值的引用依然出错,专业报表则更有不同,而代码编辑器适用于所有事件,这样的测试根本就得不到实际效果,用户写代码的习惯,就像我们徒手画一个复杂的表格,如果提前不制定指标规则,每个人独立思维,任何人画出来的表格也不一定一模一样,所以,对于这样的分段测试,对测试错误无法做到预判,楼主所提的本来就是一个不太可能完成的任务!

 

 

       如果能实现,我当然支持,多一个功能有什么不好?从头到尾,我分析的是否可能,每个人看问题逻辑思维不一样,首先考虑是否需要的同时,还有一个必要的因素就是看可否完成!

 

       当我第一次回答完楼主(我的主观逻辑是不可能实现),我也担心我的想法不一定站得住脚,为了稳妥起见,我又和贺老师沟通、探讨了这个问题,得到的答复是确实不好实现。

 

       (to 老朱:本条意见只针对我在群里遇到的一些现象):有时候我希望大家对一个问题需要的事多一份探讨,从不同的角度、高度来分析问题,更有利于狐表的发展,不要谁一提出反对意见,就好像谁的人品就真的很差似的,大家都是为了狐表的发展,类似的朋友的想法我在群里面也是多次遇到,有时候新来的人对狐表不了解就下结论,这个我们能理解,当我们为其耐心解释时,居然认为我是狐表的托儿,是官方的人,说急了,我们还得来证明自己的“清白”。

[此贴子已经被作者于2013-4-27 22:20:38编辑过]

 回到顶部