|

楼主 |
发表于 2009-7-7 13:46:58
|
显示全部楼层
procedure TMainForm.FECalendar1Click(Sender: TObject);
var
i, j: Integer;
p: TPoint;
f: TPBCT;
s: String;
begin
Borland.Delphi.Windows.GetCursorPos(p);
p := FECalendar1.ScreenToClient(p);
i := FECalendar1.GetXCol(p.X);
j := FECalendar1.GetYRow(p.Y);
f := TPBCT.Create(Context);
try
//DataSetPB.Open;
f.Date := FECalendar1.GetCellDate(i, j);
//Dialogs.showmessage(SysUtils.DateToStr(f.Date));
if f.ShowModal=Business.Forms.Controls.mrOk then
begin
f.DataSetPBSJJ.First;
while not f.DataSetPBSJJ.Eof do
begin
s:=f.DataSetPBSJJ.FieldByName('ZBRY').AsString;
if ((s<>nil)and (s<>'')) then
begin
DataSetPB.SQLFilter :='ZBAPB_ZBRY='''+f.DataSetPBSJJ.FieldByName('ZBRY').AsString + ''' and ZBAPB_ZBRQ=to_date('''+SysUtils.DateToStr(f.Date)+''',''yyyy-mm-dd'')';
DataSetPB.SQLFiltered := True;
if DataSetPB.RecordCount<>0 then
begin
raise Exception.Create('今天已经安排'+OrgSys.OrgSystem.GetPerson(f.DataSetPBSJJ.FieldByName('ZBRY').AsString).DisplayName+'值班');
end;
while not f.DataSetPBSJJ.Eof do
begin
if f.DataSetPBSJJ.FieldByName('ZBRY').AsString<>'' then
begin
DataSetPB.Append;
DataSetPB.FieldByName('ZBAPB_ZBRQ').AsDateTime := f.Date;
DataSetPB.FieldByName('ZBAPB_ZBBM').AsString := f.DataSetPBSJJ.FieldByName('BM').AsString;
DataSetPB.FieldByName('ZBAPB_ZBRY').AsString := f.DataSetPBSJJ.FieldByName('ZBRY').AsString;
DataSetPB.FieldByName('ZBAPB_KSSJ').AsDateTime := f.Date+DateUtils.TimeOf(f.DataSetPBSJJ.FieldByName('KSSJ').AsDateTime);
DataSetPB.FieldByName('ZBAPB_JSSJ').AsDateTime := f.Date+DateUtils.TimeOf(f.DataSetPBSJJ.FieldByName('JSSJ').AsDateTime);
DataSetPB.FieldByName('ZBAPB_DBLD').AsString := f.DataSetPBSJJ.FieldByName('DBLD').AsString;
DataSetPB.FieldByName('ZBAPB_DD').AsString := ComboBox3.text;
DataSetPB.Post;
end;
f.DataSetPBSJJ.Next;
end;
end;
f.DataSetPBSJJ.Next;
end;
DataSetPB.ApplyUpdates;
end;
finally
f.Free;
end;
//Dialogs.Showmessage(SysUtils.FormatDateTime('yyyymmdd', FECalendar1.GetCellDate(i, j)));
DataSetPB.Refresh;
FECalendar1.Repaint;
end; |
|