起步软件技术论坛-X3

 找回密码
 立即注册
搜索
查看: 431|回复: 23

【结帖】TFECalendar控件问题**

[复制链接]
发表于 2009-7-3 15:37:11 | 显示全部楼层 |阅读模式
怎么把TFECalendar控件的第一行设置为“星期一,星期二,星期三,……”,现在的情况是:“m,t,w,t ……”,也就是英文星期几的首字母。
回复

使用道具 举报

发表于 2009-7-3 15:38:57 | 显示全部楼层
设置CustomDayList属性
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-7-6 09:37:55 | 显示全部楼层
我设置了此属性,
如下图所示:

qq.png

7.76 KB, 下载次数: 131

回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-7-6 09:39:21 | 显示全部楼层
可是我的FECalendar1的第一行却没有字了:
如下图,还有什么需要设置的吗?

qq1.png

2.45 KB, 下载次数: 131

回复 支持 反对

使用道具 举报

发表于 2009-7-6 10:17:12 | 显示全部楼层
调整一下displaystyle试试
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-7-6 10:35:21 | 显示全部楼层
修改为dseasyprint 之后,第一行的字出现了。
回复 支持 反对

使用道具 举报

发表于 2009-7-6 13:37:46 | 显示全部楼层
什么意思?是正常显示了吗?
回复 支持 反对

使用道具 举报

发表于 2009-7-6 13:54:17 | 显示全部楼层
dsEasyPrint
我用这个可以正常显示
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-7-7 13:45:36 | 显示全部楼层
又出现了一个问题。
我的FECalendar1执行几次单击事件之后,就出现了如下图所示的奇怪情况。
部分代码如下:
procedure TMainForm.FECalendar1DrawCellProperties(Sender: TObject; ADate: Double; AState: TFECalCellStates; var ALabel: string; CellProperties: TFECellProperties);
begin
if (not (TFECalCellState.csCaption in AState)) and (not (TFECalCellState.csNotInMonth in AState)) then
  begin
   ALabel := GetDateStr(ADate);
   CellProperties.CaptionStyle := TFECapStyle.csNone;
    CellProperties.Color := Graphics.clInfoBk;
    CellProperties.Font.Color := Graphics.clGreen;
    CellProperties.Layout := TTextLayout.tlTop;

  end;
end;

function TMAINFORM.GetDateStr(ADate: TDateTime): String;
begin
  Result := SysUtils.IntToStr(DateUtils.DayOf(ADate))+'日';
  DataSetPB.SQLFilter := 'ZBAPB_ZBRQ=to_date('''+SysUtils.DateToStr(ADate)+''',''yyyy-mm-dd'') and ZBAPB_DD='''+ComboBox3.Text+'''';
  DataSetPB.SQLFiltered := True;
  while not DataSetPB.Eof do
  begin
    if ((DataSetPB.FieldByName('ZBAPB_ZBRY').AsString<>nil) and (DataSetPB.FieldByName('ZBAPB_ZBRY').AsString<>'')) then
     Result := Result+#13#10+OrgSys.OrgSystem.GetPerson(DataSetPB.FieldByName('ZBAPB_ZBRY').AsString).DisplayName;
   if ((DataSetPB.FieldByName('ZBAPB_ZBRY').AsString=nil) or (DataSetPB.FieldByName('ZBAPB_ZBRY').AsString='')) then
     Result := Result+#13#10+DataSetPB.FieldByName('ZBAPB_ZBRY').AsString;
    DataSetPB.Next;
  end;
end;

qq2.png

3.7 KB, 下载次数: 120

回复 支持 反对

使用道具 举报

 楼主| 发表于 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;
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Justep Inc.

GMT+8, 2025-7-19 05:07 , Processed in 0.040015 second(s), 18 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表