以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- 麻烦老师指点,动态控件不会自动刷新.(1月9日) (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=1573) |
||||
-- 作者:菜鸟foxtable -- 发布时间:2009/1/7 20:08:00 -- 麻烦老师指点,动态控件不会自动刷新.(1月9日)
做了个简单的实例,请老师指点....动态控件不会自动刷新....要关闭窗口再打开才有变化... 能否增加一个刷新或重新加载控件的函数? 另问:如何在标记红色SQL语句中再加个条件,[住院登记].出院结账 = False "select 类型,姓名 From [设置] LEFT JOIN [住院登记] ON [设置].类型 = [住院登记].床位 Where [设置].名称 = \'床位\'" 动态控件代码,设定在主窗口加载项,首次运行动态控件成功生成 如果住院登记表增加一行并录入数据,设定按钮B为同样的代码,点击按钮B,动态控件无变化....WHY? Dim cmd As New SQLCommand cmd.C dim x,y,i1,i2 as integer Dim dt As DataTable cmd.CommandText = "select 类型,姓名 From [设置] LEFT JOIN [住院登记] ON [设置].类型 = [住院登记].床位 Where [设置].名称 = \'床位\'" dt = cmd.ExecuteReader() i2 = dt.datarows.count Dim rad As WinForm.RadioButton for y = 0 to Math.Ceiling(i2/5)-1 for x = 0 to iif(y = Math.Ceiling(i2/5)-1 and (i2 mod 5)<>0,(i2 Mod 5)-1,4) rad = Forms("主窗口").CreateControl("rad" & i1,ControlTypeEnum.RadioButton) rad.Text = dt.datarows(i1)("类型") & dt.datarows(i1)("姓名") rad.Left = 2+x*80 rad.Top = y*70 rad.Width = 80 rad.Height = 70 rad.TextAlign = ContentAlignment.BottomCenter rad.ImageFile = ProjectPath & "Images\\ne.ico" rad.ImageAlign = ContentAlignment.TopCenter rad.TextImageRelation = System.Windows.Forms.TextImageRelation.ImageAboveText rad.Appearance = System.Windows.Forms.Appearance.Button Forms("主窗口").Controls("Panel1").AddControl(rad) i1 += 1 next next 此主题相关图片如下:001.jpg [此贴子已经被作者于2009-1-9 10:49:48编辑过]
|
||||
-- 作者:yuanbin -- 发布时间:2009/1/7 22:02:00 -- 以下是引用菜鸟foxtable在2009-1-7 20:08:00的发言:
动态控件代码,设定在主窗口加载项,首次运行动态控件成功生成 如果住院登记表增加一行并录入数据,设定按钮B为同样的代码,点击按钮B,动态控件无变化....WHY? 增加一行并录入数据,先保存到后台数据库,再读取试试。 |
||||
-- 作者:菜鸟foxtable -- 发布时间:2009/1/7 22:15:00 -- 以下是引用yuanbin在2009-1-7 22:02:00的发言:
增加一行并录入数据,先保存到后台数据库,再读取试试。 在执行按钮B代码之前已经执行下下面的代码 [此贴子已经被作者于2009-1-7 22:36:59编辑过]
|
||||
-- 作者:yuanbin -- 发布时间:2009/1/7 22:47:00 -- 通过foxtable录入编辑的表中数据,还是用 dt.Save()合适。用SQL语句的INSERT INTO或是UPDATE主要用于特定情况下直接对后台数据库的表进行批量增加或更新记录。 [此贴子已经被作者于2009-1-7 22:53:03编辑过]
|
||||
-- 作者:菜鸟foxtable -- 发布时间:2009/1/8 8:35:00 -- 以下是引用yuanbin在2009-1-7 22:47:00的发言:
通过foxtable录入编辑的表中数据,还是用 dt.Save()合适。用SQL语句的INSERT INTO或是UPDATE主要用于特定情况下直接对后台数据库的表进行批量增加或更新记录。 [此贴子已经被作者于2009-1-7 22:53:03编辑过] 我暂时只有这样子才行了,但好象有点怪怪的感觉.......一关一开......窗口没有重新加载函数吗?类似表的Load... |
||||
-- 作者:狐狸爸爸 -- 发布时间:2009/1/8 9:20:00 -- 最好做一个简单的例子上传测试。 |
||||
-- 作者:菜鸟foxtable -- 发布时间:2009/1/9 10:40:00 -- 以下是引用狐狸爸爸在2009-1-8 9:20:00的发言:
最好做一个简单的例子上传测试。 老爹,实例做好了.您看看? |
||||
-- 作者:狐狸爸爸 -- 发布时间:2009/1/9 11:23:00 -- 第一行加上: |
||||
-- 作者:菜鸟foxtable -- 发布时间:2009/1/9 12:50:00 -- 以下是引用狐狸爸爸在2009-1-9 11:23:00的发言:
第一行加上: 就这么简单?我倒...... |
||||
-- 作者:yuanbin -- 发布时间:2009/1/9 14:38:00 -- 或者这样:床位安排窗体的确定按钮中代码改为:(重新写.Text ) Dim cmd As New SQLCommand cmd.C Dim zyh,cw As string zyh = e.form.controls("ComboBox1").Value cw = e.form.controls("ComboBox2").Value cmd.CommandText = "UPDATE [住院登记] SET 床位 = \'" & cw & "\' Where 住院号 = \'" & zyh & "\' " cmd.ExecuteNonQuery() Syscmd.Table.Load() if Forms("床位").opened then Dim dt As DataTable cmd.CommandText = "select 类型,姓名 From [设置] LEFT JOIN [住院登记] ON [设置].类型 = [住院登记].床位 Where [设置].名称 = \'床位\'" dt = cmd.ExecuteReader() dim cwh,y as integer Dim rad As WinForm.RadioButton for y = 0 to dt.datarows.count-1 cwh=dt.datarows(y)("类型").trim("床")-1 Forms("床位").Controls("rad" & cwh).Text = dt.datarows(y)("类型") & dt.datarows(y)("姓名") next end if e.form.close ----------------- 再加条件,比如: "select 类型,姓名 From [设置] LEFT JOIN [住院登记] ON [设置].类型 = [住院登记].床位 Where [设置].名称 = \'床位\' and id >0 and [设置].类型 <> \'\' " |