以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  关于不同表定位图片的问题。  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=73222)

--  作者:lichinwing
--  发布时间:2015/8/14 15:03:00
--  关于不同表定位图片的问题。

各位大侠,我有表A和表B,A表里都是图片,B表里都是数据。两个表都有“款号”列。在不关联两个表的情况下,我需要在B表里点到某一行自动找出相应的“款号”数据定位到A表的窗口的PictureBox图片,我在A表窗口的"PictureBox图片"的BeforeGetImage属性里写了以下代码,但是并不能成功指定,请问要怎么办呀?

 

Dim dr As DataRow

dr = DataTables("B表").Find("[款号] = \'" & Tables("A表").current("款号") & "\'")

If dr IsNot Nothing Then

    Dim wz As Integer = Tables("A表").FindRow(dr)

    If wz >= 0 Then

        Tables("A表").Position = wz

    End If

End If

 

后来我又试了以下代码,还是不行,对于你们懂代码的高手就很简单, 我这个菜鸟,写了好多代码都不成功,好着急呀!

 

Dim bh As String = Tables("B表").Current("款号")

Tables("A表").DataTable.Load

Tables("A表").Position = Tables("A表").FindRow("款号 = \'" & bh & "\'")


--  作者:大红袍
--  发布时间:2015/8/14 16:11:00
--  

在表B点某一行,不是要去写CurrentChanged事件代码?

 

If e.Table.Current IsNot Nothing Then
    Dim idx As Integer = Tables("A表").FindRow("[款号] = \'" & e.Table.current("款号") & "\'")
    If idx >= 0 Then
       
        Tables("A表").Position = idx
       
    End If
End If

 


--  作者:lichinwing
--  发布时间:2015/8/14 17:27:00
--  
谢谢大红袍老师,问题解决了
--  作者:lichinwing
--  发布时间:2015/8/18 17:24:00
--  还是定位的问题

大红袍老师,我用你的代码写到表B里面倒是可以看到表A里的图片了,现在我又建立了一个表C,为什么同样的代码写到表B里又不行了呢?好伤脑细胞呀!

表A表B都有款号,表B表C都有PO号。

If e.Table.Current IsNot Nothing Then
    Dim idx As Integer = Tables("表A").FindRow("[款号] = \'" & e.Table.current("款号") & "\'")
    Dim ax As Integer = Tables("表C").FindRow("[PO] = \'" & e.Table.current("PO") & "\'")
    If idx >= 0 Then     
        Tables("表A").Position = idx 
    End If
    If ax >= 0 Then     
        Tables("表C").Position = ax 
    End If
End If

我现在是在表A里建立了一个窗口,这个窗口里的数据是三个表都有的。我把代码是写在表B的CurrentChanged里面的,按照你的方法,刚调出表B数据的时候,第一行并不会变。现在建立表C后,表C的数据不会跟着表B的数据变。哎,看来还要恶补下基础篇才行呀!


--  作者:大红袍
--  发布时间:2015/8/18 17:40:00
--  

如果是定位问题

 

http://www.foxtable.com/help/topics/2631.htm

 

具体,做个例子发上来。


--  作者:lichinwing
--  发布时间:2015/8/19 17:13:00
--  
谢谢大红袍老师指导,我大概搞明白定位的问题了,现在我想知道pictureviewer图片浏览器,可以添加很多图片,能否每张图片我一点下去,相应这张图片的说明文字和数据也可以调用出来呢?请多多指教,再次万分感谢。另外大红袍老师,您接项目吗?我公司需要做的版面可以给您去做吗?我可以和公司申请经费,就是不知道费用高不高?
--  作者:大红袍
--  发布时间:2015/8/19 17:45:00
--  

pictureViewer可以是可以,比较麻烦。

 

全局代码

 

Public Sub PictureView1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
    MessageBox.Show("点击了图片" & Forms("窗口1").Controls("PictureViewer1").SelectedItem)
End Sub

 

切换行的时候,或者值改变的时候,或者afterload的时候,绑定点击事件

 


Dim c  = forms("窗口1").Controls("PictureViewer1").basecontrol.Controls(0).panel1.controls("PictureSplitContainer").controls(0).Controls
For Each obj6 As Windows.Forms.Control In c(0).Controls
    removeHandler obj6.Click, AddressOf PictureView1_Click
    addHandler obj6.Click, AddressOf PictureView1_Click
Next

c = forms("窗口1").Controls("PictureViewer1").basecontrol.Controls(0).panel1.controls("PictureSplitContainer").controls
Dim obj5 As Windows.Forms.Control = c(1)
For Each obj6 As Windows.Forms.Control In c(1).Controls(0).Controls
    removeHandler obj6.Click, AddressOf PictureView1_Click
    addHandler obj6.Click, AddressOf PictureView1_Click
Next

 


--  作者:lichinwing
--  发布时间:2015/8/19 17:47:00
--  
大红袍老师,我上传了我的项目,我就是想每次点图片的时候能调用不同的数据,比如我点第一张图片,就只显示“数据1”和“数据2”,点第二张图片的时候就显示“数据3”和“数据4”,图片每一行可能会有很多张,每行可能有3张,或者5张,然后每张图片都想调用不同列的数据,请问要如何实现,谢谢!
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目5.table

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:attachments.rar


--  作者:大红袍
--  发布时间:2015/8/19 18:18:00
--  
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:downloads.zip


--  作者:lichinwing
--  发布时间:2015/8/20 10:17:00
--  点了图片还是跳不出数据

大红袍老师,我打开你帮我做的项目试了试,不行呀,现在点图片下去跳出一个窗口显示我点击了:......文件路径,不能正确跳出我需要的数据。我看到您写的代码里面有这么一行:MyTimers("计划1").Enabled = True 请问计划1是什么呀?

 

简单的说就是我要点“中国图标”的图片,在当前行跳出“数据1”和“数据2”的内容,其它数据和文本框都不显示。

如果我点了“哥伦比亚图标”的图片,在当前行跳出“数据3”和“数据4”的内容,其它数据和文本框都不显示。

 

请问能行吗?谢谢!