⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 frxdesgneditors.pas

📁 报表源码 FastReport 3 is new generation of the report generators components. It consists of report engin
💻 PAS
📖 第 1 页 / 共 3 页
字号:
    AddItem(frxResources.Get('mvStretch'), 10, b.Stretched);
    if not (b.BandNumber in [0,2,3,15,16]) then
      AddItem(frxResources.Get('bvSplit'), 11, b.AllowSplit);
    if not (b.BandNumber in [2,15]) then
      AddItem(frxResources.Get('bvKeepChild'), 12, b.KeepChild);
  end;
  AddItem(frxResources.Get('bvPrintChild'), 13, b.PrintChildIfInvisible);
  if not (b.BandNumber in [2,3,5,13,15,16]) then
    AddItem(frxResources.Get('bvStartPage'), 14, b.StartNewPage);
end;

{ TfrxDataBandEditor }

function TfrxDataBandEditor.Edit:Boolean;
begin
  with TfrxDataBandEditorForm.Create(Designer) do
  begin
    DataBand:= TfrxDataBand(Component);
    Result:= ShowModal = mrOk;
    Free;
  end;
end;

function TfrxDataBandEditor.HasEditor:Boolean;
begin
  Result:= True;
end;

function TfrxDataBandEditor.Execute(Tag:Integer; Checked:Boolean):Boolean;
var
  b:TfrxDataBand;
begin
  Result:= inherited Execute(Tag, Checked);

  b:= Designer.SelectedObjects[0];
  if not (rfDontModify in b.Restrictions) then
  begin
    case Tag of
      0:b.PrintIfDetailEmpty:= Checked;
      1:b.FooterAfterEach:= Checked;
      2:b.KeepTogether:= Checked;
      3:b.KeepFooter:= Checked;
      4:b.KeepHeader:= Checked;
    end;
    Result:= True;
  end;
end;

procedure TfrxDataBandEditor.GetMenuItems;
var
  b:TfrxDataBand;
begin
  inherited;
  if Designer.SelectedObjects.Count > 1 then Exit;
  b:= TfrxDataBand(Component);

  AddItem(frxResources.Get('bvPrintIfEmpty'), 0, b.PrintIfDetailEmpty);
  AddItem(frxResources.Get('bvFooterAfterEach'), 1, b.FooterAfterEach);
  if not b.Vertical then
  begin
    AddItem(frxResources.Get('bvKeepDetail'), 2, b.KeepTogether);
    AddItem(frxResources.Get('bvKeepFooter'), 3, b.KeepFooter);
    AddItem(frxResources.Get('bvKeepHeader'), 4, b.KeepHeader);
  end;
end;

{ TfrxHeaderEditor }

function TfrxHeaderEditor.Execute(Tag:Integer; Checked:Boolean):Boolean;
var
  b:TfrxHeader;
begin
  Result:= inherited Execute(Tag, Checked);

  b:= Designer.SelectedObjects[0];
  if not (rfDontModify in b.Restrictions) then
  begin
    if Tag = 0 then
      b.ReprintOnNewPage:= Checked;
    Result:= True;
  end;
end;

procedure TfrxHeaderEditor.GetMenuItems;
var
  b:TfrxHeader;
begin
  inherited;
  if Designer.SelectedObjects.Count > 1 then Exit;
  b:= TfrxHeader(Component);

  AddItem(frxResources.Get('bvReprint'), 0, b.ReprintOnNewPage);
end;

{ TfrxPageHeaderEditor }

function TfrxPageHeaderEditor.Execute(Tag:Integer; Checked:Boolean):Boolean;
var
  b:TfrxPageHeader;
begin
  Result:= inherited Execute(Tag, Checked);

  b:= Designer.SelectedObjects[0];
  if not (rfDontModify in b.Restrictions) then
  begin
    if Tag = 0 then
      b.PrintOnFirstPage:= Checked;
    Result:= True;
  end;
end;

procedure TfrxPageHeaderEditor.GetMenuItems;
var
  b:TfrxPageHeader;
begin
  inherited;
  if Designer.SelectedObjects.Count > 1 then Exit;
  b:= TfrxPageHeader(Component);

  AddItem(frxResources.Get('bvOnFirst'), 0, b.PrintOnFirstPage);
end;

{ TfrxPageFooterEditor }

function TfrxPageFooterEditor.Execute(Tag:Integer; Checked:Boolean):Boolean;
var
  b:TfrxPageFooter;
begin
  Result:= False;

  b:= Designer.SelectedObjects[0];
  if not (rfDontModify in b.Restrictions) then
  begin
    case Tag of
      0:b.PrintOnFirstPage:= Checked;
      1:b.PrintOnLastPage:= Checked;
    end;
    Result:= True;
  end;
end;

procedure TfrxPageFooterEditor.GetMenuItems;
var
  b:TfrxPageFooter;
begin
  if Designer.SelectedObjects.Count > 1 then Exit;
  b:= TfrxPageFooter(Component);

  AddItem(frxResources.Get('bvOnFirst'), 0, b.PrintOnFirstPage);
  AddItem(frxResources.Get('bvOnLast'), 1, b.PrintOnLastPage);
end;

{ TfrxGroupHeaderEditor }

function TfrxGroupHeaderEditor.Edit:Boolean;
begin
  with TfrxGroupEditorForm.Create(Designer) do
  begin
    GroupHeader:= TfrxGroupHeader(Component);
    Result:= ShowModal = mrOk;
    Free;
  end;
end;

function TfrxGroupHeaderEditor.HasEditor:Boolean;
begin
  Result:= True;
end;

function TfrxGroupHeaderEditor.Execute(Tag:Integer; Checked:Boolean):Boolean;
var
  b:TfrxGroupHeader;
begin
  Result:= inherited Execute(Tag, Checked);

  b:= Designer.SelectedObjects[0];
  if not (rfDontModify in b.Restrictions) then
  begin
    if Tag = 0 then
      b.KeepTogether:= Checked
    else if Tag = 1 then
      b.ReprintOnNewPage:= Checked;
    Result:= True;
  end;
end;

procedure TfrxGroupHeaderEditor.GetMenuItems;
var
  b:TfrxGroupHeader;
begin
  inherited;
  if Designer.SelectedObjects.Count > 1 then Exit;
  b:= TfrxGroupHeader(Component);

  AddItem(frxResources.Get('bvKeepGroup'), 0, b.KeepTogether);
  AddItem(frxResources.Get('bvReprint'), 1, b.ReprintOnNewPage);
end;

{ TfrxDialogControlEditor }

function TfrxDialogControlEditor.Edit:Boolean;
var
  i:Integer;
  c:TfrxDialogControl;
  s:String;
begin
  c:= TfrxDialogControl(Component);
  if c.OnClick = '' then
  begin
    s:= c.Name+'OnClick';
    c.OnClick:= s;
    i:= frxLocateEventHandler(Designer.Code, Designer.Report.ScriptLanguage, s);
    if i =-1 then
      i:= frxAddEvent(Designer.Code, Designer.Report.ScriptLanguage,
        TypeInfo(TfrxNotifyEvent), s) else
      Inc(i, 3);

    TfrxDesignerForm(Designer).SwitchToCodeWindow;
    TfrxDesignerForm(Designer).CodeWindow.UpdateView;
    TfrxDesignerForm(Designer).CodeWindow.SetPos(3, i);
    Result:= True;
  end
  else
  begin
    i:= frxLocateEventHandler(Designer.Code, Designer.Report.ScriptLanguage,
      c.OnClick);

    TfrxDesignerForm(Designer).SwitchToCodeWindow;
    TfrxDesignerForm(Designer).CodeWindow.SetPos(1, i+3);
    Result:= False;
  end;
end;

function TfrxDialogControlEditor.HasEditor:Boolean;
begin
  Result:= True;
end;

{ TfrxSubreportEditor }

function TfrxSubreportEditor.Edit:Boolean;
var
  s:TfrxSubReport;
begin
  Result:= False;
  s:= TfrxSubReport(Component);
  if s.Page<>nil then
    Designer.Page:= s.Page;
end;

function TfrxSubreportEditor.Execute(Tag:Integer; Checked:Boolean):Boolean;
var
  s:TfrxSubReport;
begin
  Result:= inherited Execute(Tag, Checked);

  s:= TfrxSubReport(Component);
  if not (rfDontModify in s.Restrictions) then
  begin
    if Tag = 0 then
      s.PrintOnParent:= Checked;
    Result:= True;
  end;
end;

procedure TfrxSubreportEditor.GetMenuItems;
begin
  inherited;
  AddItem(frxResources.Get('srParent'), 0, TfrxSubReport(Component).PrintOnParent);
end;

function TfrxSubreportEditor.HasEditor:Boolean;
begin
  Result:= True;
end;

{ TfrxMemoProperty }

function TfrxMemoProperty.Edit:Boolean;
begin
  with TfrxMemoEditorForm.Create(Designer) do
  begin
    MemoView:= TfrxMemoView(Component);
    Result:= ShowModal = mrOk;
    if Result then
      TfrxMemoView(Component).Memo:= Memo.Lines;
    Free;
  end;
end;

function TfrxMemoProperty.GetAttributes:TfrxPropertyAttributes;
begin
  Result:= [paDialog, paReadOnly];
end;

{ TfrxFrameProperty }

function TfrxFrameProperty.Edit:Boolean;
begin
  with TfrxFrameEditorForm.Create(Designer) do
  begin
    Frame.Assign(TfrxFrame(GetOrdValue));
    Result:= ShowModal = mrOk;
    if Result then
      TfrxFrame(GetOrdValue).Assign(Frame);
    Free;
  end;
end;

function TfrxFrameProperty.GetAttributes:TfrxPropertyAttributes;
begin
  Result:= [paDialog, paReadOnly];
end;

{ TfrxPictureProperty }

function TfrxPictureProperty.GetAttributes:TfrxPropertyAttributes;
begin
  Result:= [paDialog, paReadOnly];
end;

function TfrxPictureProperty.Edit:Boolean;
var
  Pict:TPicture;
begin
  with TfrxPictureEditorForm.Create(Designer) do
  begin
    Pict:= TPicture(GetOrdValue);
    Image.Picture.Assign(Pict);
    Result:= ShowModal = mrOk;
    if Result then
      Pict.Assign(Image.Picture);
    Free;
  end;
end;

function TfrxPictureProperty.GetValue:String;
var
  Pict:TPicture;
begin
  Pict:= TPicture(GetOrdValue);
  if Pict.Graphic = nil then
    Result:= frxResources.Get('prNotAssigned') else
    Result:= frxResources.Get('prPict');
end;

{ TfrxBitmapProperty }

function TfrxBitmapProperty.GetAttributes:TfrxPropertyAttributes;
begin
  Result:= [paDialog, paReadOnly];
end;

function TfrxBitmapProperty.Edit:Boolean;
var
  Bmp:TBitmap;
begin
  with TfrxPictureEditorForm.Create(Designer) do
  begin
    Bmp:= TBitmap(GetOrdValue);
    Image.Picture.Assign(Bmp);
    Result:= ShowModal = mrOk;
    if Result then
      Bmp.Assign(Image.Picture.Bitmap);
    Free;
  end;
end;

function TfrxBitmapProperty.GetValue:String;
begin
  Result:= frxResources.Get('prPict');
end;

{ TfrxDataSetProperty }

function TfrxDataSetProperty.GetAttributes:TfrxPropertyAttributes;
begin
  Result:= [paMultiSelect, paValueList];
end;

function TfrxDataSetProperty.GetValue:String;
var
  ds:TfrxDataSet;
begin
  ds:= TfrxDataSet(GetOrdValue);
  if (ds<>nil) and (frComponent.Report<>nil) then
    Result:= frComponent.Report.GetAlias(ds) else
    Result:= frxResources.Get('prNotAssigned');
end;

procedure TfrxDataSetProperty.GetValues;
begin
  frComponent.Report.GetDataSetList(Values);
  if Component is TfrxDataSet then
    Values.Delete(Values.IndexOf(TfrxDataSet(Component).UserName));
end;

procedure TfrxDataSetProperty.SetValue(const Value:String);
var
  ds:TfrxDataSet;
begin
  if Value = '' then
    SetOrdValue(0)
  else
  begin
    ds:= frComponent.Report.GetDataSet(Value);
    if ds<>nil then
      SetOrdValue(Integer(ds)) else
      raise Exception.Create(frxResources.Get('prInvProp'));

    if Component is TfrxCustomMemoView then
      with TfrxCustomMemoView(Component) do
        if IsDataField then
          Text:= '['+DataSet.UserName+'."'+DataField+'"]';
  end;
end;

{ TfrxDataFieldProperty }

function TfrxDataFieldProperty.GetAttributes:TfrxPropertyAttributes;
begin
  Result:= [paMultiSelect, paValueList];
end;

function TfrxDataFieldProperty.GetValue:String;
begin
  Result:= GetStrValue;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -