以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- [求助]测试周历,提示索引超出范围 (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=106822) |
||||
-- 作者:jyh7081 -- 发布时间:2017/9/16 8:38:00 -- [求助]测试周历,提示索引超出范围 测试李小胖分享的周历时,当运行到“_my日历.日期 = MyDate1”,遇到下图提示,如何处理?全部代码是: \'首先计算出今天是本月第几周(这个第几周是表的第一周,并非真正意义上的第几周) Dim 月首 As Date = Date.Today 月首 = Format(月首,"yyyy-MM-" & "01") Dim 月首星期 As Integer = 月首.DayOfWeek Dim 表首日期 As Date = 月首.AddDays(-月首星期 + 1) output.Show(表首日期) Dim jt As Date = Date.Today Dim Ts As TimeSpan = jt - 表首日期 Dim 第几周 As Integer = Ts.days 第几周 = Math.Floor(第几周 /7) \' Dim 周历选项 As WinForm.RadioButton = e.Form.Controls("RBtWeek") If 周历选项.Checked = False Then 周历选项.Checked = True 周历开个 = 1 周 = 第几周 Dim MyDate1 As Date = _my日历.日期 Dim Date2 As Date = Date.Today Dim 月差 As Integer = Date2.Month - MyDate1.Month MyDate1 = MyDate1.AddMonths(月差) \'加上月差, e.Form.Controls("L_当前年月").text = MyDate1.Year & "年" & MyDate1.Month & "月" _my日历.日期 = MyDate1 _my日历.刷新 |
||||
-- 作者:有点蓝 -- 发布时间:2017/9/16 9:30:00 -- 别人的例子我测试没有问题。上传你的实例说明 |
||||
-- 作者:jyh7081 -- 发布时间:2017/9/16 10:19:00 -- 是开发板的外部数据实例,请蓝版主指教:
(打开日历窗口,上边有个简易查询按钮,点击进入,有个切换周历的单选框)
[此贴子已经被作者于2017/9/16 10:34:11编辑过]
|
||||
-- 作者:有点蓝 -- 发布时间:2017/9/16 17:34:00 -- 没有看透他的用法,全局代码-》事务日程这个地方改改: Public Sub 事务标签布局() …… Dim n_行数 As Integer Dim Left, Top, Width, Height As Integer \' \'循环字典 \' Dim a As 事务标签 For Each str In dc.Keys d = (CDate(str) - _表首).Days \'和表首的日期差 r = (d \\ 8) * 2 + 3 \'取整数(行),跨行 c = (d Mod 7) + 1 \'取列位置 If dc(str).Count > 4 Then n_行数 = 4 Else n_行数 = dc(str).Count End If …… [此贴子已经被作者于2017/9/16 17:34:29编辑过]
|
||||
-- 作者:jyh7081 -- 发布时间:2017/9/16 17:42:00 -- 谢谢蓝版主! 不报错了,我再看看其他的会不会受影响。
|
||||
-- 作者:李小胖 -- 发布时间:2017/9/18 15:45:00 -- 呵呵 ,今天我自己也碰到这问题了,论坛一收就解决啦 谢谢蓝版主, |
||||
-- 作者:李小胖 -- 发布时间:2017/9/18 15:49:00 -- 以下是引用有点蓝在2017/9/16 17:34:00的发言:
没有看透他的用法,全局代码-》事务日程这个地方改改: Public Sub 事务标签布局() …… Dim n_行数 As Integer Dim Left, Top, Width, Height As Integer \' \'循环字典 \' Dim a As 事务标签 For Each str In dc.Keys d = (CDate(str) - _表首).Days \'和表首的日期差 r = (d \\ 8) * 2 + 3 \'取整数(行),跨行 c = (d Mod 7) + 1 \'取列位置 If dc(str).Count > 4 Then n_行数 = 4 Else n_行数 = dc(str).Count End If …… 请问蓝版主, 这样修改的原因是什么能告诉下么?
[此贴子已经被作者于2017/9/16 17:34:29编辑过]
[此贴子已经被作者于2017/9/18 15:52:41编辑过]
|
||||
-- 作者:zhy400137 -- 发布时间:2017/9/18 16:16:00 -- mark |
||||
-- 作者:有点甜 -- 发布时间:2017/9/18 17:15:00 -- 4楼的代码有问题,改成下面的。
d = (CDate(str) - _表首).Days \'和表首的日期差 c = (d Mod 7) + 1 \'取列位置 |
||||
-- 作者:李小胖 -- 发布时间:2017/9/19 10:19:00 -- 以下是引用有点甜在2017/9/18 17:15:00的发言:
4楼的代码有问题,改成下面的。
d = (CDate(str) - _表首).Days \'和表首的日期差 c = (d Mod 7) + 1 \'取列位置 谢谢有点甜版主的热心查看代码(要看懂这些代码是需要花很多时间的) 其实我当初设置全局变量的时候 周历开个(周历开关)其实是这个意思, 另外我把蓝版主的代码修改后,测试了每个月份的每个周, 都没出错, 我感觉还是甜版主的代码好,还是用您的吧 [此贴子已经被作者于2017/9/19 10:56:27编辑过]
|