以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  当前窗口判断问题。  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=91194)

--  作者:yancheng
--  发布时间:2016/10/2 18:40:00
--  当前窗口判断问题。
Dim strs() As String = {"采购订单","销售订单","盘点单","预算计划","需用计划","采购退货记录","清单指引","合同清单","采购入库","销售出库","材料选型"}
Dim strs1() As String ={"采购订单.采购进货","销售订单.销售明细","盘点单.盘点明细","预算计划.预算计划明细","需用计划.需用计划明细","采购退货","清单指引.材料指引","合同清单.清单子目","采购入库.入库明细","销售出库.出库明细","材料选型.材料选型明细"}
For i As Integer = 0 To strs.Length-1
    If Forms(strs(i)).opened AndAlso  Forms(strs(i)). Then
MessageBox.show(0)
        Dim tbl As Table = Tables("进货材料_Table1")
        If tbl.Current IsNot Nothing  Then
MessageBox.show(1)
            Dim n As Integer = Tables(strs1(i)).FindRow("定额编码 = \'" & tbl.Current("定额编码") & "\'")
            If  n < 0 Then
                Tables(strs1(i)).AddNew()("定额编码") = tbl.Current("定额编码")
                e.Form.Close()
            Else
                If MessageBox.Show("[" & tbl.Current("材料名称") &  "]  已经添加了,是否重复添加此材料?","提示!",MessageBoxButtons.YesNo,MessageBoxIcon.Question)=DialogResult.Yes
                    Tables(strs1(i)).AddNew()("定额编码") = tbl.Current("定额编码")
                    e.Form.Close()
                Else
                    e.Form.Close()
                End If
            End If
        End If
    End If
Next


如果“ 采购订单","销售订单”  都打开。上面的代码。
就会出问题。

我试过,用:Forms.ActiveForm.Name   或  MainTable.Name 来判断,好像也不对。

请老师指点一下。因为我的情况是:主窗口:“ 采购订单","销售订单” 可能 都打开了。在其中一表,点了一按钮,弹出一个  "进货材料“窗口来添加 材料号,到主窗口中。

--  作者:yancheng
--  发布时间:2016/10/2 18:42:00
--  
有没有一个窗口,属性,来判断 ,当前显示的主窗口?
--  作者:狐狸爸爸
--  发布时间:2016/10/3 9:18:00
--  
一个表只能打开一个主窗口,所以判断当前主表的名称,就能直到当前显示的是那个主窗口。
--  作者:yancheng
--  发布时间:2016/10/3 10:04:00
--  
是这种情况,请问老师,怎么判断呢?下面几个都 是并列窗口。




图片点击可在新窗口打开查看此主题相关图片如下:uc截图20161003100234.jpg
图片点击可在新窗口打开查看


--  作者:yancheng
--  发布时间:2016/10/3 10:05:00
--  

图片点击可在新窗口打开查看此主题相关图片如下:uc截图20161003100426.jpg
图片点击可在新窗口打开查看

如图所示。我要判断出,当前是:导入材料,这个主窗口。。。进货材料,是一个模式或独立窗口。

上面的代码是:双击--进货材料,窗口的table1的行,插入一条材料,到:导入材料。而不是插入到:采购入库,材料选型中。
[此贴子已经被作者于2016/10/3 10:12:26编辑过]

--  作者:yancheng
--  发布时间:2016/10/3 10:24:00
--  
当前表名,我昨天判断过,是:功能导航。
--  作者:狐狸爸爸
--  发布时间:2016/10/3 10:40:00
--  
并列窗口是没办法判断当前窗口的,去想想别的设计思路吧。
例如在任何一个并列窗口,单击按钮或通过其他方式打开一个模式或独立窗口,你都可以在打开窗口的事件代码中,将e.form.name保存在一个全局变量中。
[此贴子已经被作者于2016/10/3 10:44:00编辑过]

--  作者:yancheng
--  发布时间:2016/10/3 22:17:00
--  
Vars("e.form.name")=e.form.name


我在每一个能打开:进货材料,窗口的地方,加了上面的代码。

正常了。只是比较麻烦一点。显得 有点笨方法的感觉。

太感动了,狐爸,国庆放假还给我们回答问题。

狐表一定能做大。

希望狐爸能再出永久版,我今年要买。
[此贴子已经被作者于2016/10/3 22:17:54编辑过]