You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

VB6表单跳转后自动执行函数及PSA34表单逻辑疑问咨询

VB6 ListView双击事件相关问题解决

问题1:跳转至PSA33表单后自动执行fnDataFind函数

你原来的代码直接用Call PSA33.fnDataFind无法生效,核心原因是必须通过表单实例调用成员函数,而非直接引用表单类名。另外要确保fnDataFind在PSA33表单中被声明为Public(默认是Private,外部无法访问)。

修改后的ListView双击事件代码:

Private Sub ListView1_DblClick()
      
    Dim MyForm As Form
    If ListView1.SelectedItem.ListSubItems(8) > 0 Then
        Set MyForm = New PSA33
        '传递数据
        MyForm.txtChul_No.Text = ListView1.SelectedItem.ListSubItems(1).Text
        MyForm.datChul_Date = ListView1.SelectedItem.ListSubItems(11)
        MyForm.cmbSaup_Gubn.Text = cmbSaup_Gubn.Text
        
        '调用实例的fnDataFind函数
        MyForm.fnDataFind
        '显示表单
        MyForm.Show
    Else
        'PSA34逻辑处理见问题2
    End If
End Sub

同时在PSA33表单中修改函数声明:

Public Sub fnDataFind()
    '原函数逻辑保持不变
End Sub

问题2:PSA34表单不存在的替代处理逻辑

先解释你找到的PSA33中代码的逻辑

这段Select Case是根据表单的gPGM_ID变量区分业务场景:

  • 当gPGM_ID = "PSA33"时,直接显示计算出的合计数量、金额、税额等正向数值
  • 当gPGM_ID = "PSA34"时,将数量、金额(不含税额)取绝对值后乘以-1,实现反向数值显示(通常用于退货、冲销类业务,和PSA33的正向业务做区分)

替代原PSA34表单的实现方案

因为没有PSA34表单,直接复用PSA33实例,只需设置它的gPGM_ID为"PSA34",再传递数据并执行查询即可。完整双击事件代码如下:

Private Sub ListView1_DblClick()
      
    Dim MyForm As Form
    If ListView1.SelectedItem.ListSubItems(8) > 0 Then
        Set MyForm = New PSA33
        MyForm.gPGM_ID = "PSA33" '显式设置场景标识
        '传递数据
        MyForm.txtChul_No.Text = ListView1.SelectedItem.ListSubItems(1).Text
        MyForm.datChul_Date = ListView1.SelectedItem.ListSubItems(11)
        MyForm.cmbSaup_Gubn.Text = cmbSaup_Gubn.Text
        
        MyForm.fnDataFind
        MyForm.Show
    Else
        '复用PSA33实现PSA34逻辑
        Set MyForm = New PSA33
        MyForm.gPGM_ID = "PSA34" '关键:切换为PSA34场景
        '传递数据
        MyForm.txtChul_No.Text = ListView1.SelectedItem.ListSubItems(1).Text
        MyForm.datChul_Date = ListView1.SelectedItem.ListSubItems(11)
        MyForm.cmbSaup_Gubn.Text = cmbSaup_Gubn.Text
        
        MyForm.fnDataFind
        MyForm.Show
    End If
End Sub

注意:需要确保PSA33表单中的gPGM_ID是Public变量,否则外部无法赋值:

Public gPGM_ID As String '在PSA33表单的通用声明段添加

内容的提问来源于stack exchange,提问作者chris

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.12 19:11:31