以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]能否在数据表的照片列中直接显示人员头像?  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=50062)

--  作者:智友软件工作室
--  发布时间:2014/4/28 19:54:00
--  [求助]能否在数据表的照片列中直接显示人员头像?
如题
--  作者:有点甜
--  发布时间:2014/4/28 19:57:00
--  

 直接在单元格显示?这个就需要编写drawcell事件了。

 

 参考 http://www.foxtable.com/help/topics/2387.htm

 


--  作者:jaegea
--  发布时间:2014/4/28 20:15:00
--  

Dim r As Row = CurrentTable.Current

Dim pic As Image = GetImage(相片路徑)

Dim rg As C1.Win.C1FlexGrid.CellRange = CurrentTable.Grid.GetCellRange(r.Index+1, CurrentTable.Cols(“相片顯示列”).Index+1, r.Index+1, CurrentTable.Cols(“相片顯示列”).Index+1)
rg.Image = pic

 

其中的+1為行標題層次及行號列,行標題2層就要+2,以此類推。

[此贴子已经被作者于2014-4-28 20:20:48编辑过]

--  作者:有点甜
--  发布时间:2014/4/28 20:26:00
--  

 3楼这样也可以,不过,这种不会重绘,如果你对表进行了筛选等操作之后,需要重新设置一遍。

 

Dim o As Objec = Tables("表A").grid.GetCellRange(2,3,2,3)
o.Image = getimage("d:\\001.ico")


--  作者:智友软件工作室
--  发布时间:2014/4/28 20:26:00
--  
二楼帮助例子看过  帮助的例子是同一个图片  不知如何去对应每一个人员的头像绘制
三楼  一是代码没看懂 二是不知放在哪个事件中

--  作者:有点甜
--  发布时间:2014/4/28 20:31:00
--  
以下是引用智友软件工作室在2014-4-28 20:26:00的发言:
二楼帮助例子看过  帮助的例子是同一个图片  不知如何去对应每一个人员的头像绘制
三楼  一是代码没看懂 二是不知放在哪个事件中

 

你一行里面不是有一个图片列么?直接这样写,就可以了的。

 

If e.Col.Name = "图片" Then

    e.Graphics.DrawImage(getImage(e.row("图片")), e.x + 3,e.y + 3) \'绘制第一个图标

End If

 

 


--  作者:jaegea
--  发布时间:2014/4/28 20:33:00
--  

代碼放在數據加載完之後,比如在加載按鈕裡加上以下代碼

With Tables("員工信息表")

    For Each r as row in .Rows

    Dim pic As Image = GetImage(r(“相片地址列”))     \'得本機地址局域網地址,如果是FTP網絡地址可以先下載至本機

    Dim rg As C1.Win.C1FlexGrid.CellRange = .Grid.GetCellRange(r.Index+1, .Cols(“相片顯示列”).Index+1,r.Index+1, .Cols(“相片顯示列”).Index+1)
    rg.Image = pic

    Next

End With

採用的是C1的單元格背景圖繪製

[此贴子已经被作者于2014-4-28 20:38:26编辑过]

--  作者:有点甜
--  发布时间:2014/4/28 20:34:00
--  

3楼的代码,是需要你循环一次,去设置的,可以放在一个按钮里,或者afterOpenProject事件,代码类似

 

For Each r As Row In Tables("xxx").Rows  

    Dim o As Objec = Tables("xxx").grid.GetCellRange(r.Index+1, 3, r.Index+1, 3)
    o.Image = getimage("d:\\001.ico")

Next

[此贴子已经被作者于2014-4-28 20:34:06编辑过]

--  作者:智友软件工作室
--  发布时间:2014/4/28 20:52:00
--  
显示的图片

图片点击可在新窗口打开查看此主题相关图片如下:qq截图20140428205015.png
图片点击可在新窗口打开查看
这些图片可能会大小不一,能不能修改图片的长和宽。或者固定图片显示大小。
[此贴子已经被作者于2014-4-28 20:57:06编辑过]

--  作者:智友软件工作室
--  发布时间:2014/4/28 20:55:00
--  
6楼比较好理解,现在可以了。 e.x + 3,e.y + 3  这个参数是什么意思呢?