Foxtable(狐表)用户栏目专家坐堂 → 语法解法


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

主题:语法解法

帅哥哟,离线,有人找我吗?
wtfwsk05
  41楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:小狐 帖子:398 积分:2369 威望:0 精华:0 注册:2017/3/19 15:30:00
  发帖心情 Post By:2018/9/18 11:20:00 [显示全部帖子]

保存按钮的click事件
Dim cmd As New SQLCommand      'SQL命令cmd
cmd.C    '指定cmd的数据源
With e.form
    If .Controls("TextBox2").Value Is Nothing Then  '货品编码的值为空时
        MsgBox("货品编码不能为空!",64,"提示")       '弹出提示对话框
    Else  '货品编码的值不为空时
        DataTables ("库存").Load()  '加载"库存"表
        '------------------把记录写入表------------------------------------
        Dim kz As String = "TextBox2,TextBox3,ComboBox3,TextBox1,ComboBox2,ComboBox4,TextBox11,NumericComboBox1,NumericComboBox2,NumericComboBox3,NumericComboBox4"
        '向"库存商品"表各字段插入行
        Dim sql As String = "Insert Into [库存商品] (货品编码,货品类型,计量单位,货品名称,规格型号,生产厂商,备注,库存上限,库存下限,入库参考价,出库参考价) "
        '插入行各字段的值
        sql = sql & " Values ('@$10','@$11','@$12','@$13','@$14','@$15','@$16',@$17,@$18,@$19,@$20)"
        Dim i As Integer   '整数变量i 
        'kz数组中每一个元素都执行一次下述代码
        For Each k As String In kz.split(",")     'k表示kz(按钮名称)数组中的每一个元素
            If .Controls(k).Value Is Nothing And i > 6 Then   '指定控件的值不为空 且 i>6 时
                'Replace  查找给定的子字符串,并用另一个子字符替换掉找到的子字符串.
                '语法:   Replace(OldValue, NewValue)
                sql = sql.Replace("@$" & i+10,"0")
            Else
                sql = sql.Replace("@$" & i+10,.Controls(k).Value)
            End If
            i += 1
        Next
        cmd.CommandText = sql
        cmd.ExecuteNonQuery()
        '-------判断是否重新添加记录,设置控件为空------
        If .Controls("CheckBox1").Checked = False Then    '指定控件没被选中时
            .Close()    '关闭当前窗口
        Else       '指定控件被选中时
            For Each k As String In kz.split(",")
                .Controls(k).Value = ""
            Next
            '-----设置关联表为空表--------------------
            Dim tb As Table = Tables("查询表.库存")  '定义"库存"表为tb
            'Focus 将输入焦点移到table中  Focused判断输入信息是否在指定的table中
            tb.Focus    '将输入焦点移到table中  
            For i = 0 To tb.count-1
                tb.rows.Remove(0)
            Next
        End If
    End If
End With
'-------------------更新库存商品--------------------------
Dim tr As WinForm.TreeView    '目录树
tr = Forms("窗口1").Controls("TreeView1")
Dim Value As String = tr.SelectedNode.FullPath    '选定树标题(选定节点的路径)
Dim value2 As String = mid(Value,5,20)   '取树标题第二段
Select Case Value
    Case "按仓库","按类型","智能提醒"
        cmd.CommandText = "execute CKXP"
    Case "智能提醒\库存上限预警"
        cmd.CommandText = "execute CKXPC"
    Case "智能提醒\库存下限预警"
        cmd.CommandText = "execute CKXPD"
    Case "查找"
        cmd.CommandText = "execute CKXP"
    Case Else
        '当选定节点是1层,运行以下
        Select Case mid(Value,2,1)
            Case "仓"
                cmd.CommandText = "execute CKXPB '" & Value2 & "'"
            Case Else
                cmd.CommandText = "execute CKXPA '%" & Value2 & "%'"
        End Select
End Select
Dim dst1 As Table = Tables("窗口1_Table1")
dst1.DataSource  = cmd.ExecuteReader()

For i As Integer =1 To dst1.count
    Dim dr5 As Row = dst1.Rows(i-1)
    dr5("序号") = "" & i
Next
dst1.AutoSizeCols()

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


加好友 发短信
等级:小狐 帖子:398 积分:2369 威望:0 精华:0 注册:2017/3/19 15:30:00
  发帖心情 Post By:2018/9/20 16:20:00 [显示全部帖子]

(A语句)system.diagnostics.process.GetProcessesByName("foxtable")(0).kill
(B语句) Syscmd.Project.Exit() 正常退出Foxtable
(C语句)Syscmd.Project.Exit(True) 先保存数据,然后退出Foxtable
(D语句)Syscmd.Project.Exit(False) 不保存数据,强行退出Foxtable
退系统时,使用a语句、b语句、c语句、d语句有什么区别,同时什么时候出


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


加好友 发短信
等级:小狐 帖子:398 积分:2369 威望:0 精华:0 注册:2017/3/19 15:30:00
  发帖心情 Post By:2018/9/21 16:05:00 [显示全部帖子]

Dim cb1 As WinForm.CheckBox = e.Form.Controls("CheckBox1")
If cb1.Checked Then
    Tables("查询表.员工信息").Rows.AddNew()
Else
    '闪烁
    cb1.ForeColor = Color.Red
    Application.DoEvents()
    System.Threading.Thread.Sleep(300)
    cb1.ForeColor = Color.Black
    Application.DoEvents()
    System.Threading.Thread.Sleep(300)
    cb1.ForeColor = Color.Red
    Application.DoEvents()
    System.Threading.Thread.Sleep(300)
    cb1.ForeColor = Color.Black
End If

老师,请问下为什么执行上述代码时,提示“增加行失败,父表无有效行

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


加好友 发短信
等级:小狐 帖子:398 积分:2369 威望:0 精华:0 注册:2017/3/19 15:30:00
  发帖心情 Post By:2018/9/21 16:18:00 [显示全部帖子]

是随便输还是有什么要求


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


加好友 发短信
等级:小狐 帖子:398 积分:2369 威望:0 精华:0 注册:2017/3/19 15:30:00
  发帖心情 Post By:2018/9/21 20:40:00 [显示全部帖子]

 System.Threading.Thread.Sleep(300)    请问下代码中的300是表示300秒还是300毫秒

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


加好友 发短信
等级:小狐 帖子:398 积分:2369 威望:0 精华:0 注册:2017/3/19 15:30:00
  发帖心情 Post By:2018/9/21 21:49:00 [显示全部帖子]

Tables("查询表.员工信息").Appearance.ShowLockTableIcon = False

Tables("查询表.员工信息").Refresh()
请问老师上述代码应怎么修改,代码维护在那个事件中,才可以不批量显示锁定标志

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


加好友 发短信
等级:小狐 帖子:398 积分:2369 威望:0 精华:0 注册:2017/3/19 15:30:00
  发帖心情 Post By:2018/9/25 9:41:00 [显示全部帖子]

With e.form 
    '===========在【设置】表中列出单号规则为1的记录=================
    cmd.CommandText = "Select 单据前缀 F rom [设置] WHERE 名称 = '单号规则' And 方向 = '1'"
    .Controls("TextBox1").value = cmd.ExecuteScalar()  '指定控件的值为cmd返回的单个值
    cmd.CommandText = "Select 单据前缀 F rom [设置] WHERE 名称 = '单号规则' And 方向 = '2'"
    .Controls("TextBox2").value = cmd.ExecuteScalar()
    cmd.CommandText = "Select 单据前缀 F rom [设置] WHERE 名称 = '单号规则' And 方向 = '盘点'"
    .Controls("TextBox3").value  = cmd.ExecuteScalar()
    cmd.CommandText = "Select 单据前缀 F rom [设置] WHERE 名称 = '单号规则' And 方向 = '调拨'"
    .Controls("TextBox4").value = cmd.ExecuteScalar()
    cmd.CommandText = "Select 单据前缀 F rom [设置] WHERE 名称 = '全局参数' And 方向 = '上限预警'"
    .Controls("NumericComboBox1").value = Val(cmd.ExecuteScalar())    'Val 将【字符】转换为【数值】
    cmd.CommandText = "Select 单据前缀 F rom [设置] WHERE 名称 = '全局参数' And 方向 = '下限预警'"
    .Controls("NumericComboBox2").value = val(cmd.ExecuteScalar())
    cmd.CommandText = "Select 单据前缀 F rom [设置] WHERE 名称 = '全局参数' And 方向 = '生成单号'"
    .Controls("CheckBox1").Checked = cmd.ExecuteScalar() = "True" 
End With

请问下,上述代码中.Controls("CheckBox1").Checked = cmd.ExecuteScalar() = "True" 这条语句应怎么解读

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


加好友 发短信
等级:小狐 帖子:398 积分:2369 威望:0 精华:0 注册:2017/3/19 15:30:00
  发帖心情 Post By:2018/9/25 10:21:00 [显示全部帖子]

是不是可以这样理解:  cmd.ExecuteScalar() 执行cmd命令返回一个值   后  在用cmd.ExecuteScalar() = "True"  作逻辑判断  最后在将其值false或true赋值给复选框的选定状态

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


加好友 发短信
等级:小狐 帖子:398 积分:2369 威望:0 精华:0 注册:2017/3/19 15:30:00
  发帖心情 Post By:2018/9/27 17:21:00 [显示全部帖子]


图片点击可在新窗口打开查看此主题相关图片如下:控件.png
图片点击可在新窗口打开查看

请问下,加载窗口后,不显示  货品类型   后面的   按钮* ,当输入焦点位于  货品类型textbox1中时,显示  按钮*
代码如下:
Dim txtbox1 As WinForm.TextBox = e.Form.Controls("TextBox1")  '货品类型
Dim btn1 As WinForm.Button = e.Form.Controls("Button1")       '按钮 *
'Focused   为 true =输入焦点位于该控件上  false =输入焦点不位于该控件上
If txtbox1.Focused= True Then
    btn1.Visible = True
Else
    btn1.Visible= False
End If
老师,请问下上述代码有没有问题,如没有问题应在那个事件中维护

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


加好友 发短信
等级:小狐 帖子:398 积分:2369 威望:0 精华:0 注册:2017/3/19 15:30:00
  发帖心情 Post By:2018/9/27 17:38:00 [显示全部帖子]

"textbox1"的enter事件:
Dim btn1 As WinForm.Button = e.Form.Controls("Button1")       '按钮 *
 btn1.Visible = True
"textbox1"的leave事件:
Dim btn1 As WinForm.Button = e.Form.Controls("Button1")       '按钮 *
 btn1.Visible = false

为什么没有实现我所想要的上述功能


 回到顶部
总数 182 上一页 1 2 3 4 5 6 7 8 9 10 下一页 ..19