DELPHI盒子
!实时搜索: 盒子论坛 | 注册用户 | 修改信息 | 退出
检举帖 | 全文检索 | 关闭广告 | 捐赠
技术论坛
 用户名
 密  码
自动登陆(30天有效)
忘了密码
≡技术区≡
DELPHI技术
lazarus/fpc/Free Pascal
移动应用开发
Web应用开发
数据库专区
报表专区
网络通讯
开源项目
论坛精华贴
≡发布区≡
发布代码
发布控件
文档资料
经典工具
≡事务区≡
网站意见
盒子之家
招聘应聘
信息交换
论坛信息
最新加入: cuiqingbo
今日帖子: 25
在线用户: 9
导航: 论坛 -> DELPHI技术 斑竹:liumazi,sephil  
作者:
男 smallmouse (小老鼠) ★☆☆☆☆ -
普通会员
2003/6/28 15:14:41
标题:
为什么会这样? 浏览:2049
加入我的收藏
楼主: 各位高手:
    你们好!
    小弟是一名Delphi的初学者,现有一个问题请教各位,望各位不吝赐教。
    我想编一个出勤管理程序,思路是这样的:当单击主窗体的“添加新记录”菜单时,打开“选择日期和班次窗体”,在这个窗体选择好需要添加的“日期”和“班次”时(如2003年6月25日早班)单击“确定”按钮后打开“添加新记录”窗口再进行“添加”操作。但在“选择日期和班次窗体”单击“确定”按钮后却出现了错误,该错误表现为:当数据库中当前为空时,在“选择日期和班次窗体”中选择好日期和班次(以2003年6月25日早班、二班、夜班为例)单击“确定”按钮后情况正常但当选择了第二天的日期即2003年6月26日早班后,26日的二班或夜班却无法再进行添加且出现错误信息“数据库中已有2003年-6-26日的二班了,请选择其它日期或班次!”而此时数据库中只有25日的早班、二班、夜班和26日的早班并没有26日的二班或夜班。
    “选择日期和班次窗体”中组件及“确定”按钮的单击事件代码如下:
    TSelectDateForm = class(TForm)
    GroupBox1: TGroupBox;
    BtnOK: TButton;
    Calendar1: TCalendar;
    RadioGroup1: TRadioGroup;
    procedure BtnOKClick(Sender: TObject);
    其中,Calendar1组件在GroupBox1中,RadioGroup1组件有三个单选按钮:早班、二班、三连四班(即夜班)

确定”按钮的单击事件代码:
procedure TSelectDateForm.BtnOKClick(Sender: TObject);
begin
if RadioGroup1.ItemIndex<0 then
 begin
  application.MessageBox('您没有选择班次','提示:',mb_ok+mb_iconinformation);
 end
else    //if RadioGroup1.ItemIndex<0 then语句条件为假时开始
 begin
  if not (WorkDataModForm.TabWork.Locate('日期','20'+datetimetostr(Calendar1.CalendarDate),[])) and (WorkDataModForm.TabWork.Locate('班次',RadioGroup1.Items.Strings[RadioGroup1.ItemIndex],[]))  then
   begin
    workform.Label1.Caption:=inttostr(Calendar1.Year);
    workform.Label3.Caption:=inttostr(Calendar1.Month);
    workform.Label5.Caption:=inttostr(Calendar1.Day);
    if RadioGroup1.ItemIndex=0 then
     begin
      workform.Label7.Caption:=RadioGroup1.Items.Strings[RadioGroup1.ItemIndex];
      workform.Label8.Left:=426;
     end;
    if RadioGroup1.ItemIndex=1 then
     begin
      workform.Label7.Caption:=RadioGroup1.Items.Strings[RadioGroup1.ItemIndex];
      workform.Label8.Left:=426;
     end;
    if RadioGroup1.ItemIndex=2 then
     begin
      workform.Label7.Caption:=RadioGroup1.Items.Strings[RadioGroup1.ItemIndex];
      workform.Label8.Left:=458;
     end;
    close;
    workform.ShowModal; 
   end
  else
   Messagedlg(('数据库中已有'+'20'+datetostr(Calendar1.CalendarDate)+'日的'+RadioGroup1.Items.Strings[RadioGroup1.ItemIndex]+'班了,请选择其它日期或班次!'),mtinformation,[mbok],0);
 end;     //if RadioGroup1.ItemIndex<0 then语句条件为假时结束(即此段代码全部结束)
end;
我实在无法理解这是为什么,特请教诸位望尽快给我答复。
我的E-Mail:ref7667@hotmail.com
                                             谢谢各位的帮助!!!
                          2003年6月25日
----------------------------------------------
-
信息
登陆以后才能回复
Copyright © 2CCC.Com 盒子论坛 v3.0.1 版权所有 页面执行62.5毫秒 RSS