求代码例子,生成上下班记录

tigerandufo 2010-02-01 12:30:48
目的=判断的时间不重复...上下员工之间上下时间不重复.每天上下时间不重复

条件1有一堆员工,一个时间段,可填写标准时间(用作标准来生成时间)

效果.1生成当月的每位员工上下班记录
2生成当天每位员工上下班记录


...全文
213 25 打赏 收藏 转发到动态 举报
写回复
用AI写文章
25 条回复
切换为时间正序
请发表友善的回复…
发表回复
sohosxl2008 2010-02-24
  • 打赏
  • 举报
回复
我也写过类似的考勤记录生成,根据实际薪资,设定多样话上下班及加班时间,然后生成对应的考勤上下班时间,完事后直接把考勤记录导入到考勤软件中生成员工考勤汇总记录。当然条件可以多样化设置,让其看不出是生成的。应付人员验厂用的。
gukuang78 2010-02-24
  • 打赏
  • 举报
回复
生成一个考勤时间表,在程序中控制输入的有效性。数据库中设置一个字段为生成报表项的数据,然后控制这个报表项,可能要简化一些。
wgx8057 2010-02-24
  • 打赏
  • 举报
回复
引用 10 楼 tigerandufo 的回复:
If m = 0 Then                '对比上一位员工
                For k = 0 To 1000
                    If tsde1 = tsde1c Then
                    k = k + 1
                        X = Round(Rnd * 100, 0)
                        tsde1 = DateAdd("n", RndX(X) * -1, dtStart1)
                    Else
                    Exit For
                    End If
                Next k
                     
                        'Randomize  ''2005-09-29
                For k = 0 To 1000
                      If tsde2 = tsde2c Then
                      k = k + 1
                        X = Round(Rnd * 100, 0)
                        tsde2 = DateAdd("n", RndX(X) * -1, dtStart2)
                          Else
                          Exit For
                          End If
                Next k
                '        Randomize  ''2005-09-29
                For k = 0 To 1000
                        If tsde3 = tsde3c Then
                        k = k + 1
                        X = Round(Rnd * 100, 0)
                        If dtStart3 <> "_:_" And IsDate(dtStart3) Then
                          tsde3 = DateAdd("n", RndX(X) * -1, dtStart3)
                        End If
                        Else
                        Exit For
                        End If
                Next k
                '        Randomize  ''2005-09-29
                For k = 0 To 1000
                        If tede1 = tede1c Then
                        k = k + 1
                        X = Round(Rnd * 100, 0)
                          tede1 = DateAdd("n", RndX(X), dtEnd1)
                     
                        Else
                        Exit For
                        End If
                Next k
                       
                For k = 0 To 1000
                        If tede2 = tede2c Then
                          k = k + 1
                '        Randomize  ''2005-09-29
                        X = Round(Rnd * 100, 0)
                        tede2 = DateAdd("n", RndX(X), dtEnd2)
                        Else
                        Exit For
                        End If
                Next k
               
                For k = 0 To 1000
                        If tede3 = tede3c Then
                        k = k + 1
                '        Randomize  ''2005-09-29
                        X = Round(Rnd * 100, 0)
                        If dtEnd3 <> "_:_" And IsDate(dtEnd3) Then
                        tede3 = DateAdd("n", RndX(X), dtEnd3)
                        End If
                        Else
                        Exit For
                        End If
                Next k

Else                '对比上次时间
                    For k = 0 To 1000
                            If tsd1 = tsde1 Then
                            k = k + 1
                            X = Round(Rnd * 100, 0)
                            tsde1 = DateAdd("n", RndX(X) * -1, dtStart1)
                            Else
                            Exit For
                            End If
                    Next k
                            'Randomize  ''2005-09-29
                    For k = 0 To 1000
                          If tsd2 = tsde2 Then
                          k = k + 1
                            X = Round(Rnd * 100, 0)
                            tsde2 = DateAdd("n", RndX(X) * -1, dtStart2)
                            Else
                            Exit For
                            End If
                    Next k
                    '        Randomize  ''2005-09-29
                    For k = 0 To 1000
                            If tsd3 = tsde3 Then
                            k = k + 1
                            X = Round(Rnd * 100, 0)
                            If dtStart3 <> "_:_" And IsDate(dtStart3) Then
                            tsde3 = DateAdd("n", RndX(X) * -1, dtStart3)
                            End If
                            Else
                            Exit For
                            End If
                    Next k
                    '        Randomize  ''2005-09-29
                    For k = 0 To 1000
                            If ted1 = tede1 Then
                            k = k + 1
                            X = Round(Rnd * 100, 0)
                              tede1 = DateAdd("n", RndX(X), dtEnd1)
                            Else
                            Exit For
                            End If
                    Next k
                    For k = 0 To 1000
                            If ted2 = tede2 Then
                            k = k + 1
                    '        Randomize  ''2005-09-29
                            X = Round(Rnd * 100, 0)
                            tede2 = DateAdd("n", RndX(X), dtEnd2)
                            Else
                            Exit For
                            End If
                    Next k
                    For k = 0 To 1000
                            If ted3 = tede3 Then
                            k = k + 1
                    '        Randomize  ''2005-09-29
                            X = Round(Rnd * 100, 0)
                            If dtEnd3 <> "_:_" And IsDate(dtEnd3) Then
                            tede3 = DateAdd("n", RndX(X), dtEnd3)
                            End If
                            Else
                            Exit For
                            End If
                    Next k
End If

  rdTmp![TS1] = tsde1
  rdTmp![TS2] = tsde2
  rdTmp![TS3] = tsde3
  rdTmp![TE1] = tede1
  rdTmp![TE2] = tede2
  rdTmp![TE3] = tede3

                        rdTmp![LateTimes] = IIf(txtLate = "", 0, txtLate)
                        rdTmp![OTHour] = IIf(txtOT = "", 0, txtOT)
                                If Weekday(currDt) = 1 Or Weekday(currDt) = 7 Then  '当为星期六和星期日时
                                      If rdTmp.Fields("TS1") <> "" And rdTmp.Fields("TE1") <> "" Then  '写入工时
                                          rdTmp.Fields("SunHour") = 4  '08-07-03 yu |rdTmp.Fields("SunHour") = 3.5
                                      End If
                                      If rdTmp.Fields("TS2") <> "" And rdTmp.Fields("TE2") <> "" Then  '写入工时
                                          rdTmp.Fields("SunHour") = rdTmp.Fields("SunHour") + 4 '08-07-03 yu | rdTmp.Fields("SunHour") = rdTmp.Fields("SunHour") + 4.5
                                      End If
                                      If rdTmp.Fields("OThour") <> "" Then
                                          rdTmp.Fields("SunHour") = rdTmp.Fields("SunHour") + rdTmp.Fields("OThour")
                                      End If
                                    Else
                                      If rdTmp.Fields("TS1") <> "" And rdTmp.Fields("TE1") <> "" Then  '写入工时
                                          rdTmp.Fields("apHour") = 4  '08-07-03 yu | rdTmp.Fields("apHour") = 3.5
                                      End If
                                      If rdTmp.Fields("TS2") <> "" And rdTmp.Fields("TE2") <> "" Then  '写入工时
                                          rdTmp.Fields("apHour") = rdTmp.Fields("apHour") + 4 '08-07-03 yu |  rdTmp.Fields("apHour") = rdTmp.Fields("apHour") + 4.5
                                      End If
                                      If rdTmp.Fields("OThour") <> "" Then
                                          rdTmp.Fields("EveHour") = rdTmp.Fields("OThour")
                                      End If
                                End If


        rdTmp.Update
         
              tsd1 = tsde1 '取第1个,时间
              tsd2 = tsde2
              tsd3 = tsde3
              ted1 = tede1
              ted2 = tede2
              ted3 = tede3
If m = 0 Then
              tsde1c = tsde1 '取第2个,员工
              tsde2c = tsde2
              tsde3c = tsde3
              tede1c = tede1
              tede2c = tede2
              tede3c = tede3
End If
m = m + 1


这个是对的!试验一下吧!
tigerandufo 2010-02-03
  • 打赏
  • 举报
回复
跟了很久也跟不出原因.真悲剧啊我

不知道是不是写的方法有误区还是思想有误区

真不明白
Tiger_Zhao 2010-02-02
  • 打赏
  • 举报
回复
假定你的原始数据为进出门的刷卡记录。
生成上下班记录只要将进出门记录进行配对即可。
循环所有员工,以员工、整个统计时间段为条件,按时间排序进行查询。

这样每个员工按照时间序循环分析进出门记录:
需要变量:上班标记,上班时间,下班时间
1)对进门记录
  IF 上班标记 = 下班 THEN
上班时间 = 打卡时间
上班标记 = 上班
'ELSE
'忽略重复打卡
END IF

2)对出门记录
  IF 上班标记 = 上班 THEN
下班时间 = 打卡时间
用 上班时间、下班时间 生成一条上下班记录
上班标记 = 下班
'ELSE
'忽略重复打卡
END IF
孤独剑_LPZ 2010-02-02
  • 打赏
  • 举报
回复
先看数据结构,如时间字段是什么类型:短日期、带分秒的长日期或字符串
lz判断的精度是否到分秒。 给个抓图好分析
tigerandufo 2010-02-02
  • 打赏
  • 举报
回复
结构就只是利用一个临时表(空)
这个临时表包含了全部的字段了
生成后的数据插入出报表~
已上是我那里的代码

这个是循环全部员工的所有天数的6个时间的生成上下班记录(上午.下午.夜晚)
夜晚是有些不用填的

要求1:就是同一个人的第1天和第2天的上/下班时间不同
2:连续两位员工之间不能同一时间上下班(员工ID不连续)
toyer1 2010-02-02
  • 打赏
  • 举报
回复
学习中,帮顶!
Tiger_Zhao 2010-02-02
  • 打赏
  • 举报
回复
上班 2010-2-1 20:00
下班 2010-2-2 02:00
能够正确排序,一次上班对一次下班,没有任何问题。
tigerandufo 2010-02-02
  • 打赏
  • 举报
回复
不好意思大家
这个没有班次的

是自定义一个时间做标准来生成上下班时间

比如填入8点上班.那我就会计算出他生成800+随机数来生成那个上班时间

现在的问题是.得出来的那个数会是A和B员工双同
(我加了判断但上面的判断有走.但是还是有相同)
xredhat 2010-02-02
  • 打赏
  • 举报
回复
tigerandufo
你这个代码似乎比较糟糕哦,
我现在也在在这个考勤的问题,但是我这没你那复杂,我只要考虑一个班次就可以,不知道你是怎么考虑跨天考勤这个问题的。比如上班时间20:00,下班时间第二天02:00。
Tiger_Zhao 2010-02-02
  • 打赏
  • 举报
回复
你的两个问题根本不存在。
1.是按照一次进门和一次出门来判断的,根本与哪个班次无关
2.原始数据用 员工、时间 排序两个员工没有关系;生成记录肯定有 员工ID 做区分,也没有关系。
tigerandufo 2010-02-02
  • 打赏
  • 举报
回复
我上面也是差不多那样写的
但是那客户刁难没办法

我的那些代码我跟过的.可以运行.判断也有走过.

但是结果只是有一点改进.但还是有重复

要求1:就是同一个人的第1天和第2天的上/下班时间不同
2:连续两位员工之间不能同一时间上下班(员工ID不连续)
pengangcs 2010-02-01
  • 打赏
  • 举报
回复
我怎么没看明白。。。
  • 打赏
  • 举报
回复
这么多代码?
我问你的要求,比如说哦,你的数据是怎么样的,你要得到的结果又是怎么样。
看你用了好多列的名字,数据库的结构也是要滴。
tigerandufo 2010-02-01
  • 打赏
  • 举报
回复
If m = 0 Then '对比上一位员工
For k = 0 To 1000
If tsde1 = tsde1c Then
k = k + 1
X = Round(Rnd * 100, 0)
tsde1 = DateAdd("n", RndX(X) * -1, dtStart1)
Else
Exit For
End If
Next k

'Randomize ''2005-09-29
For k = 0 To 1000
If tsde2 = tsde2c Then
k = k + 1
X = Round(Rnd * 100, 0)
tsde2 = DateAdd("n", RndX(X) * -1, dtStart2)
Else
Exit For
End If
Next k
' Randomize ''2005-09-29
For k = 0 To 1000
If tsde3 = tsde3c Then
k = k + 1
X = Round(Rnd * 100, 0)
If dtStart3 <> "_:_" And IsDate(dtStart3) Then
tsde3 = DateAdd("n", RndX(X) * -1, dtStart3)
End If
Else
Exit For
End If
Next k
' Randomize ''2005-09-29
For k = 0 To 1000
If tede1 = tede1c Then
k = k + 1
X = Round(Rnd * 100, 0)
tede1 = DateAdd("n", RndX(X), dtEnd1)

Else
Exit For
End If
Next k

For k = 0 To 1000
If tede2 = tede2c Then
k = k + 1
' Randomize ''2005-09-29
X = Round(Rnd * 100, 0)
tede2 = DateAdd("n", RndX(X), dtEnd2)
Else
Exit For
End If
Next k

For k = 0 To 1000
If tede3 = tede3c Then
k = k + 1
' Randomize ''2005-09-29
X = Round(Rnd * 100, 0)
If dtEnd3 <> "_:_" And IsDate(dtEnd3) Then
tede3 = DateAdd("n", RndX(X), dtEnd3)
End If
Else
Exit For
End If
Next k

Else '对比上次时间
For k = 0 To 1000
If tsd1 = tsde1 Then
k = k + 1
X = Round(Rnd * 100, 0)
tsde1 = DateAdd("n", RndX(X) * -1, dtStart1)
Else
Exit For
End If
Next k
'Randomize ''2005-09-29
For k = 0 To 1000
If tsd2 = tsde2 Then
k = k + 1
X = Round(Rnd * 100, 0)
tsde2 = DateAdd("n", RndX(X) * -1, dtStart2)
Else
Exit For
End If
Next k
' Randomize ''2005-09-29
For k = 0 To 1000
If tsd3 = tsde3 Then
k = k + 1
X = Round(Rnd * 100, 0)
If dtStart3 <> "_:_" And IsDate(dtStart3) Then
tsde3 = DateAdd("n", RndX(X) * -1, dtStart3)
End If
Else
Exit For
End If
Next k
' Randomize ''2005-09-29
For k = 0 To 1000
If ted1 = tede1 Then
k = k + 1
X = Round(Rnd * 100, 0)
tede1 = DateAdd("n", RndX(X), dtEnd1)
Else
Exit For
End If
Next k
For k = 0 To 1000
If ted2 = tede2 Then
k = k + 1
' Randomize ''2005-09-29
X = Round(Rnd * 100, 0)
tede2 = DateAdd("n", RndX(X), dtEnd2)
Else
Exit For
End If
Next k
For k = 0 To 1000
If ted3 = tede3 Then
k = k + 1
' Randomize ''2005-09-29
X = Round(Rnd * 100, 0)
If dtEnd3 <> "_:_" And IsDate(dtEnd3) Then
tede3 = DateAdd("n", RndX(X), dtEnd3)
End If
Else
Exit For
End If
Next k
End If

rdTmp![TS1] = tsde1
rdTmp![TS2] = tsde2
rdTmp![TS3] = tsde3
rdTmp![TE1] = tede1
rdTmp![TE2] = tede2
rdTmp![TE3] = tede3

rdTmp![LateTimes] = IIf(txtLate = "", 0, txtLate)
rdTmp![OTHour] = IIf(txtOT = "", 0, txtOT)
If Weekday(currDt) = 1 Or Weekday(currDt) = 7 Then '当为星期六和星期日时
If rdTmp.Fields("TS1") <> "" And rdTmp.Fields("TE1") <> "" Then '写入工时
rdTmp.Fields("SunHour") = 4 '08-07-03 yu |rdTmp.Fields("SunHour") = 3.5
End If
If rdTmp.Fields("TS2") <> "" And rdTmp.Fields("TE2") <> "" Then '写入工时
rdTmp.Fields("SunHour") = rdTmp.Fields("SunHour") + 4 '08-07-03 yu | rdTmp.Fields("SunHour") = rdTmp.Fields("SunHour") + 4.5
End If
If rdTmp.Fields("OThour") <> "" Then
rdTmp.Fields("SunHour") = rdTmp.Fields("SunHour") + rdTmp.Fields("OThour")
End If
Else
If rdTmp.Fields("TS1") <> "" And rdTmp.Fields("TE1") <> "" Then '写入工时
rdTmp.Fields("apHour") = 4 '08-07-03 yu | rdTmp.Fields("apHour") = 3.5
End If
If rdTmp.Fields("TS2") <> "" And rdTmp.Fields("TE2") <> "" Then '写入工时
rdTmp.Fields("apHour") = rdTmp.Fields("apHour") + 4 '08-07-03 yu | rdTmp.Fields("apHour") = rdTmp.Fields("apHour") + 4.5
End If
If rdTmp.Fields("OThour") <> "" Then
rdTmp.Fields("EveHour") = rdTmp.Fields("OThour")
End If
End If


rdTmp.Update

tsd1 = tsde1 '取第1个,时间
tsd2 = tsde2
tsd3 = tsde3
ted1 = tede1
ted2 = tede2
ted3 = tede3
If m = 0 Then
tsde1c = tsde1 '取第2个,员工
tsde2c = tsde2
tsde3c = tsde3
tede1c = tede1
tede2c = tede2
tede3c = tede3
End If
m = m + 1
tigerandufo 2010-02-01
  • 打赏
  • 举报
回复
' Randomize ''2005-09-29
' X = Round(Rnd * 10, 0) - 5 '取随机数*10,然后四舍五入,-5是上下浮动5分钟.
X = Round(Rnd * 100, 0)
tsde1 = DateAdd("n", RndX(X) * -1, dtStart1)
'Randomize ''2005-09-29
X = Round(Rnd * 100, 0)
tsde2 = DateAdd("n", RndX(X) * -1, dtStart2)
' Randomize ''2005-09-29
X = Round(Rnd * 100, 0)
If dtStart3 <> "_:_" And IsDate(dtStart3) Then
tsde3 = DateAdd("n", RndX(X) * -1, dtStart3)
End If
' Randomize ''2005-09-29
X = Round(Rnd * 100, 0)
tede1 = DateAdd("n", RndX(X), dtEnd1)
' Randomize ''2005-09-29
X = Round(Rnd * 100, 0)
tede2 = DateAdd("n", RndX(X), dtEnd2)
' Randomize ''2005-09-29
X = Round(Rnd * 100, 0)
If dtEnd3 <> "_:_" And IsDate(dtEnd3) Then
tede3 = DateAdd("n", RndX(X), dtEnd3)
End If
tigerandufo 2010-02-01
  • 打赏
  • 举报
回复
Dim m As Integer
For i = 0 To rdEmp.RecordCount - 1
m = 0
sEmp = rdEmp![EmpID]
sDate = IIf(isNull(rdEmp![dateHired]), sDt, rdEmp![dateHired])
eDate = IIf(isNull(rdEmp![LCdate]), Date, rdEmp![LCdate])

SQL = "delete from tmp_Trans where EmpID='" & sEmp & "' and Date>=#" & sDt & "# and Date<=#" & eDt & "#"
gLTClockDB.Execute SQL

If sDate > eDt Then '入厂日期大于处理日期的最后一天时,不处理
GoTo Next_Emp
End If
If eDate < sDt Then '辞职日期小于处理日期的第一天时,不处理
GoTo Next_Emp
End If

SQL = "select * from tmp_Trans"
Set rdTmp = gLTClockDB.OpenRecordset(SQL)
currDt = sDt
Do While currDt <= eDt
If currDt > eDate Then
Exit Do
End If
If currDt < sDate Then '入厂日期的问题 2002-06-05
GoTo Next_Date
'Exit Do
End If

rdTmp.AddNew
rdTmp![EmpID] = sEmp
rdTmp![Date] = currDt
  • 打赏
  • 举报
回复
把你的数据和要求的结果详细说说。
再吧你的sql的代码写写下,别的不要。
tigerandufo 2010-02-01
  • 打赏
  • 举报
回复
我已写过.不过有问题.程序太长贴不出来

我的难题在判断上下两个时间直接不重复

我采用的是重复+随机数*-1 的方法

判断可行已过...但是出来的效果总是有一点重复...(非常难跟)

如能帮忙看的话.我可以E-MAIL代码给大家...
加载更多回复(4)
这是2003年得一个作品,陆续做了基本得功能,当初做这个只是一时性起,帮朋友讲解树型得数据结构,并写了个简单得例子,但后来还是作成一个软件。该程序功能已经实现,并且可以正常使用,但是‘最爱’收藏夹还有一些问题,一直没有修改过;另外,ADO方式写二进制数据到表里,速度确实太慢了。当时得能力有限,很多代码未很好得设计,可以重构得地方很多,程序可以给初学者作为参考。//////////InfoBase 0.2 Beta Build 20031119开发日志这是我续 ASPDecoder(ASP反编码 delphi版) 之后很长时间的又一个作品;目前还在开发期间,完成度80%。如果你对程序的功能或者是程序的错误上有建议,请给作者发信。开发前: 作者学习delphi 过程中见过很多类型的资料管理软件,比如myBase 是非常典型的软件,myBase 的作者的编程功底很深,myBase做的非常实用;并且带上好几兆的Delphi 开发资料。所以我也想自己写一个这样的文档资料管理软件。一来可以锻炼自己的编程能力,因为很多软件看到功能自己能想出实现方法,但往往只是在想,而没去做,这样可不行。二个就是,这类软件做的好的基本上都需要收费。 但这些都不是促使我去编写InfoBase的目的。而是因为我的室友兄弟们也在学delphi,正学到树型,缺少一个树型的好算法;所以我写了个树型分类打算让他们参考一下,没想到结果还是做成了现在这个样子 :)未实现的功能: 2003.7.8 准备将部分功能模块移植到WEB 上,把一些常用数据信息存储在服务器上,这样无论今后在何地均可使用该软件访问资源。但目前作者缺少服务器资源,是个很头痛的问题,想法在写InfoBase 之前就已经策划妥善。 2003.11.19 准备着重实现“导入功能”,具体涉及所支持的导入类型还在策划中……软件名称: InfoBase 0.2中文名称:信息数据库软件版本: 0.1 Build 20031119 Beta软件作者: Chinasf (萧寒)(S.F.)作者邮箱: Chinasf@hotmail.com软件网站: http://chinasf.cnblogs.com软件语言: 中文应用平台: Win9x/Win2000/WinXP + IE5.0以上软件简介: 1、无限级分类(分类名作为文章头) 2、文档内容支持多种类型,如图片,URL地址,包括任意OLE对象 3、支持选定部分文档内容打印 4、支持自动给代码加颜色(语法加亮) 5、支持将文本内容直接转换为图形 6、支持快速索引定位文章(类似CHM文档索引) 7、支持书签记录(类似CHM文档书签) 8、‘最爱’网站链接收藏功能 9、支持多种打开URL方式 10、支持将URL送如系统收藏夹 11、支持导出到HTML 12、文档支持附件 13、内置浏览器,可浏览网站和浏览附件 14、执行附件文件自动监听 15、数据全程压缩 (new) 还有更多的细节……有问题的功能:..分类的拖动未实现..文本编辑环境功能选项有待加强,并等待bug 信息反馈..打印未实现预览..预计加入代码格式化排版功能..文档内容保存到图象高度计算有误差..其他细节的设计…最爱模块发现小错误更新历史: 2003.7.3 树型分类算法 开始和朋友讨论树型算法,一时兴起,写了个树型结构并做了个示例。2003.7.4 主程序和数据库设计 见自己完成了树型分类和节点的管理代码,感觉不能浪费,便有做InfoBase的想法;开始使用PowerDesigner 建立数据库模型(有点杀鸡用牛刀的味道),并生成数据库文件 (1.0 ?)。 开发环境采用delphi 7.0 Enterprise,使用ADO 连接Access数据库,软件名字也定了,叫做infoBase 。 最后将程序的主框架搭好,并实现了richEdit 的文本读取和保存。2003.7.5 “OLE嵌入、URL捕获、UI、附件监听”(代码的实现) 搞定了richEdit 读取保存后开发增加高级功能,其后写完了插入OLE对象,URL文本捕获,插入图形……最后感觉差不多象个样子了,把主界面的图标,工具条统统更新了一遍,变成了现在这个样子。 吃了晚饭就开始写文件附件功能;搞定了附件存储,又写到凌晨一直在实现文件附件监听……(因为明天是星期天)2003.7.6 “代码着色、索引、书签”(星期天) 加入代码加色的功能和另外一些细节功能。 继续休整代码,和修正遗留的bug。 主要的模块差不多后,准备罢手(我的坏习惯),见室友在看CHM版的水木清华的帖子,感觉索引功能和书签功能很重要,至少自己用的时候方便。赶紧加上。 再看了myBase 一些功能后,模仿它加上了一些典型的功能,增加了一个内置的浏览器,用于浏览N格式的附件。2003.7.7 增加“数据库维护”功能(星期一上班) 上午很早就起床了,结果又去睡……!·##¥%%……差点迟到了。 下班后,在家玩魔兽冰峰王座,过全关一个种族(打了3天),开始写InfoBase的MainMenu (主菜单我一直都没有整理功能,呵呵),Access数据库在删除数据后并不会减少文件尺寸,所以加了几个数据库的维护功能。2003.7.8 新增“开发日志”和“最爱收藏夹”(迟到了) 星期一弄的太晚,结果早上迟到了……罚款:¥20RMB 上午去腾讯社区见个朋友发表了自己写了很长时间的代码; 我想,先把我的这个烂东西也发出去吧,结果公司网络掉线了,只好作罢,把网友的帖子内容和代码都保存了下来放在InfoBase中。 从上个星期修正了NC接口的“最后一个BUG”后,工作上有点闲了(其实还有一大堆工作上的事情我还没解决) 想起见到一个网友写的‘梦幻浏览器’的一个功能模块是类似IE的收藏夹,感觉挺好,在网友的浏览器里叫做“最爱”,我觉得也挺好听,干脆也叫这个,做一个这个功能; 然后一直到写完这个模块后,就开始写这个文档。 目前并未让“最爱”与系统收藏夹互动,功能等到过了今天再实现吧……毕竟源代码.PAS加起来就有199KB 了。2003.11.19 增加“全程压缩”功能(星期三,工作任务下来了,‘重’) 上午,客户递交上来了满满一页的新需和需的修正列表,哎!相当痛苦,是整整做了一年的东西啊,什么时候才是尽头…… Infobase自己使用了一段时间,总有些不足的地方,最明显的就是,数据文件的大小。我习惯把代码参考和相关的Code文件都保存下来,结果,数据库越来越大,已经差不多60多兆了,如果某篇文章保存的内容多的话,加载的速度非常慢,并不是程序的问题,而是字段内容太大了,Access数据库必须先读入到内存里,才能把字段的值给我。考虑之后决定采用压缩的方式保存文件数据,并且文本内容也压缩,因为文本格式是富文本格式的,它支持OLE,而OLE的信息格式是相当大的,而压缩算法对文本字符串的压缩比率是相当高的,压缩它是化得来得,但是丢失了一个功能,因为压缩后得数据必须是二进制模式,所以,“全文搜索”功能只能简化到“标题搜索”了。下次再想办法解决“全文搜索”得功能。

7,789

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧