亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? untactreport.~pas

?? 飛思科技的書不錯
?? ~PAS
?? 第 1 頁 / 共 5 頁
字號:
        AutoSize := False;
        // fit the width to the maximum value
        Size.Width := lstWidths[i] - dDetailMargin*2;
        tmpSize := Size;
        SetPosition(tmpSize, posx, lstWidths[i], dHeightDetail,
                    lstAlign[i], dDetailMargin);
        Size := tmpSize;
        Top := Top + nSegbarWidth;
        Alignment := CustomToStandardAlign(lstAlign[i]);
        Inc(idxSummary);
      end;
    posx := posx + lstWidths[i];
  end;

  // create the vertical frame lines here
  // if 'not bHasFrameLine' then the lines are disabled
  for i := -1 to upFields do begin
    if i = -1 then
      posx := 0
    else
      posx := posx + lstWidths[i];
    with TQRShape.Create(bandHeader) do begin
      Parent := bandHeader;
      Enabled := bHasFrameLine;
      Shape := qrsVertLine;
      Size.Left := posx;
      Top := 0;
      Width := 1;
      Height := bandHeader.Height;
    end;
    with TQRShape.Create(bandDetail) do begin
      Parent := bandDetail;
      Enabled := bHasFrameLine;
      Shape := qrsVertLine;
      Size.Left := posx;
      Top := 0;
      Width := 1;
      Height := bandDetail.Height;
    end;
    if bHasSummary then
      with TQRShape.Create(bandSummary) do begin
        Parent := bandSummary;
        Enabled := bHasFrameLine;
        Shape := qrsVertLine;
        Size.Left := posx;
        Top := 0;
        Width := 1;
        Height := bandSummary.Height;
      end;
  end;

  // create the horizental frame lines here
  // if 'not bHasFrameLine' then the lines are disabled
  with TQRShape.Create(bandHeader) do begin
    Parent := bandHeader;
    Enabled := bHasFrameLine;
    Shape := qrsHorLine;
    Left := 0;
    Top := 0;
    Size.Width := posx;
    Height := 1;
  end;
  with TQRShape.Create(bandHeader) do begin
    Parent := bandHeader;
    Enabled := bHasFrameLine;
    Shape := qrsRectangle;
    Left := 0;
    Top := bandHeader.Height - nSegbarWidth;
    Size.Width := posx;
    Height := nSegbarWidth;
    Brush.Color := clBlack;
  end;
  with TQRShape.Create(bandDetail) do begin
    Parent := bandDetail;
    Enabled := bHasFrameLine;
    Shape := qrsHorLine;
    Left := 0;
    Top := 0;
    Size.Width := posx;
    Height := 1;
  end;
  with TQRShape.Create(bandDetail) do begin
    Parent := bandDetail;
    Enabled := bHasFrameLine;
    Shape := qrsHorLine;
    Left := 0;
    Top := bandDetail.Height;
    Size.Width := posx;
    Height := 1;
  end;
  if bHasSummary then begin
    with TQRShape.Create(bandSummary) do begin
      Parent := bandSummary;
      Enabled := bHasFrameLine;
      Shape := qrsRectangle;
      Left := 0;
      Top := 0;
      Size.Width := posx;
      Height := nSegbarWidth;
      Brush.Color := clBlack;
    end;
    with TQRShape.Create(bandSummary) do begin
      Parent := bandSummary;
      Enabled := bHasFrameLine;
      Shape := qrsHorLine;
      Left := 0;
      Top := bandSummary.Height;
      Size.Width := posx;
      Height := 1;
    end;
  end;

  // adjust the position of the title
  with TQRLabel(bandTitle.Controls[0]) do begin
    AutoSize := False;
    tmpSize := Size;
    SetPosition(tmpSize, 0, posX, dHeightTitle,
                a_center, dDetailMargin);
    Size := tmpSize;
  end;

  // adjust the position of the report
  with m_rptActive.Page do begin
    case alnReport of
      a_left: begin
                LeftMargin := dPageHorMargin;
                RightMargin := Max(0, Width - LeftMargin - posx);
              end;
      a_center: begin
                  LeftMargin := (Width - posx) / 2;
                  RightMargin := LeftMargin;
                end;
      a_right: begin
                 RightMargin := dPageHorMargin;
                 LeftMargin := Max(0, Width - RightMargin - posx);
               end;
    end;
    TopMargin := dPageVertMargin;
    BottomMargin := dPageVertMargin;
  end;

  Result := True;
end;

procedure TActReport.PrepareMemory(nAryLen: Integer);
begin
  SetLength(m_blstDisplay, nAryLen);
  m_strlstFieldNames := TStringList.Create;
  SetLength(m_dlstFieldWidths, nAryLen);
  m_strlstDispNames := TStringList.Create;
  SetLength(m_alnlstFields, nAryLen);
  SetLength(m_blstSummary, nAryLen);
end;

procedure TActReport.ReleaseMemory;
begin
  SetLength(m_blstDisplay, 0);
  m_strlstFieldNames.Free;
  m_strlstFieldNames := nil;
  SetLength(m_dlstFieldWidths, 0);
  m_strlstDispNames.Free;
  m_strlstDispNames := nil;
  SetLength(m_alnlstFields, 0);
  SetLength(m_blstSummary, 0);
end;

function TActReport.Initialize : Boolean;
begin
  m_bInitialized := False;
  m_bPrepared := False;
  m_bReportReady := False;

  Clear;
  m_grpGlobalContainer := grpGlobalParaList;
  m_grpFieldContainer := grpFieldParaList;
  CreateRep;
  m_bInitialized := True;
  Result := m_bInitialized;
end;

function TActReport.BeginSession(dst: TDBDataSet;
                                 strTitle: string = '';
                                 strlstDispNames: TStringList = nil
                                 ) : Boolean;
var
  i: Integer;
begin
  m_bPrepared := False;
  m_bReportReady := False;
  m_dstActive := dst;

  FillInCtrls;
  m_nFieldCount := m_dstActive.FieldCount;
  PrepareMemory(m_nFieldCount);
  ParamsDefault;
  if Length(strTitle) > 0 then
    m_strTitle := strTitle;
  if Assigned(strlstDispNames) then
    for i := 0 to Min(dst.FieldCount, strlstDispNames.Count) - 1 do
      m_strlstDispNames.Strings[i] := strlstDispNames.Strings[i];

  m_bPrepared := True;
  Result := True;
end;

function TActReport.BuildRep : Boolean;
var
  i: Integer;
  cntFields, idxFields: Integer;

  lstIdxs: TIndexList;
  lstDispNames: TStringList;
  lstWidths: TCurrencyList;
  lstAlign: TAlignList;
  lstSummary: TBooleanList;
begin
  m_bReportReady := False;
  Result := False;
  ResetRep;
  if not m_bPrepared then
    Exit;

  cntFields := 0;
  for i := 0 to High(m_blstDisplay) do
    if m_blstDisplay[i] then
      Inc(cntFields);
  SetLength(lstIdxs, cntFields);
  SetLength(lstWidths, cntFields);
  SetLength(lstAlign, cntFields);
  SetLength(lstSummary, cntFields);

  idxFields := 0;
  lstDispNames := TStringList.Create;
  for i := 0 to High(m_blstDisplay) do
    if m_blstDisplay[i] then begin
      lstIdxs[idxFields] := i;
      lstWidths[idxFields] := m_dlstFieldWidths[i];
      lstDispNames.Add(m_strlstDispNames.Strings[i]);
      lstAlign[idxFields] := m_alnlstFields[i];
      lstSummary[idxFields] := m_blstSummary[i];
      Inc(idxFields);
    end;

  BuildRep(m_strTitle, m_bHasFrameLine, m_bHasSummary,
           m_nPageWidth, m_nPageHeight, m_oriPage, m_alnHeader,
           m_dTitleHeight, m_dHeaderHeight, m_dDetailHeight,
           m_dDetailMargin, c_segbar_width,
           m_dPageHorMargin, m_dPageVertMargin,
           m_fntTitle, m_fntHeader, m_fntDetail,
           c_page_width, c_page_height,
           c_band_width, c_band_height,
           c_page_hor_margin, c_page_vert_margin,
           c_band_margin, lstIdxs, lstDispNames,
           lstWidths, lstAlign, lstSummary, m_alnReport);
  lstDispNames.Free;

  m_bReportReady := True;
  Result := True;
end;

procedure TActReport.TerminateSession;
var
  i: Integer;
begin
  if Assigned(m_grpFieldContainer) then
    for i := 0 to m_grpFieldContainer.ControlCount - 1 do begin
      m_grpFieldContainer.Controls[0].Free;
    end;
  PrepareCtrls(0);
  ReleaseMemory;
end;

procedure TActReport.Clear;
begin
  TerminateSession;
  ResetRep;
end;

//===== public functions/procedures go from here =====

//===== constructors/destructors =====

constructor TActReport.Create(AOwner: TComponent);
begin
  inherited Create(AOwner);
  m_bInitialized := False;
  m_bPrepared := False;
  m_bReportReady := False;

  m_rptActive := nil;

  m_fntTitle := TFont.Create;
  m_fntHeader := TFont.Create;
  m_fntDetail := TFont.Create;
end;

procedure TActReport.Free;
begin
  Clear;
  m_fntTitle.Free;
  m_fntHeader.Free;
  m_fntDetail.Free;
  inherited Free;
end;

//===== public interfaces =====

procedure TActReport.Initialize(dst: TDBDataSet;
                                strTitle: string = '';
                                strlstDispNames: TStringList = nil
                                );
begin
  Initialize;
  BeginSession(dst, strTitle, strlstDispNames);
  ParamsToForm;

  m_strFileName := m_strTitle;
  if Length(m_strFileName) = 0 then
    if m_dstActive is TTable then
      m_strFileName := TTable(m_dstActive).TableName
    else
      m_strFileName := m_dstActive.Name;
  if Length(m_strFileName) = 0 then
    m_strFileName := c_file_name;
  m_strFileName := GetCurrentDir + '\' + m_strFileName + c_file_ext;
end;

function TActReport.Make : Boolean;
begin
  Result := False;
  if not m_bPrepared then
    Exit;
  ParamsFromForm;
  BuildRep;
  ParamsFromReport;
  Result := True;
end;

function TActReport.PreviewRep : Boolean;
begin
  Result := False;
  if not m_bReportReady then
    Exit;
  m_rptActive.OnPreview := nil;
  m_rptActive.Preview;
  Result := True;
end;

function TActReport.PreviewRep(prv: TQRPreview) : Boolean;
var
  bShowError: Boolean;
begin
  Result := False;
  if not m_bReportReady then
    Exit;
  if Assigned(prv) then begin
    m_prvActive := prv;
    m_rptActive.OnPreview := OnPreview;

    // QuickReport may cause error here,
    //  we have to keep previewing till succeed
    bShowError := True;
    while bShowError do begin
      try
        m_rptActive.PreviewModeless;
        bShowError := False;
      except
      end;
    end;
  end
  else
  begin
    m_rptActive.OnPreview := nil;
    m_rptActive.Preview;
  end;

  Result := True;
end;

function TActReport.PrintRep(callback: TQRAfterPrintEvent = nil) : Boolean;
begin
  Result := False;
  if not m_bReportReady then
    Exit;
  m_rptActive.AfterPrint := callback;  
  m_rptActive.Print;
  Result := True;
end;

function TActReport.LoadRep : Boolean;
begin
  Result := False;
  if not m_bInitialized then
    Exit;

  ParamsFromFile(m_strFileName);
  BuildRep;
  ParamsFromReport;
  ParamsToForm;
  Result := True;
end;

function TActReport.SaveRep : Boolean;
begin
  Result := False;
  if not m_bInitialized then
    Exit;

  ParamsToFile(m_strFileName);
  Result := True;
end;

function TActReport.GetFileName : string;
begin
  Result := m_strFileName;
end;

procedure TActReport.SetFileName(strFileName: string);
begin
  m_strFileName := strFileName;
end;

function TActReport.ShowModal : Integer;
begin
  Result := 0;
  if m_bPrepared then
    inherited ShowModal;
end;

end.

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产一区二区视频在线| 亚洲成人7777| 成人av网址在线| 欧美极品另类videosde| 成人综合婷婷国产精品久久蜜臀 | 一区二区日韩电影| 9久草视频在线视频精品| 欧美精品一区在线观看| 国产一区二区三区日韩| 国产日韩欧美高清| www.在线欧美| 亚洲一区av在线| 正在播放亚洲一区| 欧美激情在线一区二区| 国产精品18久久久| 亚洲欧洲日韩在线| 亚洲另类在线一区| 制服丝袜日韩国产| 日韩高清不卡在线| 国产视频在线观看一区二区三区 | 日韩黄色免费电影| 精品国产自在久精品国产| 国产91在线观看丝袜| 国产精品国产三级国产三级人妇| 色悠悠久久综合| 蜜臀av性久久久久蜜臀aⅴ四虎| 日韩一区二区三区观看| 97成人超碰视| 久久精品国产一区二区三| 中文在线免费一区三区高中清不卡| 在线看国产一区| 一区二区成人在线观看| 日韩欧美的一区| 成人少妇影院yyyy| 日本伊人精品一区二区三区观看方式| 欧美一区二区视频观看视频| 99精品国产99久久久久久白柏| 日韩成人免费电影| 亚洲欧洲综合另类在线| 欧美成人猛片aaaaaaa| 97精品超碰一区二区三区| 久久成人免费网站| 亚洲在线视频一区| 亚洲国产高清aⅴ视频| 欧美人牲a欧美精品| 成人av午夜影院| 久久99久久99| 五月开心婷婷久久| 国产精品久久久久影院| 欧美成人免费网站| 欧美日韩视频在线一区二区| 成人美女在线视频| 欧美专区在线观看一区| 国产精品18久久久久久久久| 亚洲成人在线观看视频| 中文字幕在线免费不卡| 久久久久国产精品人| 69p69国产精品| 欧美自拍偷拍午夜视频| av资源站一区| 国产精品1区二区.| 国产在线视视频有精品| 九色porny丨国产精品| 午夜精品福利一区二区蜜股av| 亚洲色图视频网站| 国产精品久久免费看| 久久综合成人精品亚洲另类欧美| 91精品欧美福利在线观看| 精品视频在线视频| 欧美日精品一区视频| 欧洲生活片亚洲生活在线观看| 99视频一区二区三区| 成人久久视频在线观看| 国产成人久久精品77777最新版本 国产成人鲁色资源国产91色综 | 久久精品亚洲精品国产欧美| 欧美一卡二卡三卡| 日韩午夜电影在线观看| 日韩视频在线你懂得| 日韩欧美国产综合| 精品免费日韩av| 精品va天堂亚洲国产| 精品国产乱码久久久久久老虎 | 欧美日韩在线一区二区| 一本到不卡免费一区二区| 色婷婷久久久亚洲一区二区三区| 成人av高清在线| 99国产精品久久久久久久久久久 | 91精选在线观看| 91精品婷婷国产综合久久竹菊| 6080国产精品一区二区| 精品久久久久一区二区国产| 精品欧美乱码久久久久久1区2区| 久久久久久亚洲综合影院红桃| 国产日本亚洲高清| 国产精品初高中害羞小美女文| 综合欧美亚洲日本| 亚洲成人在线免费| 精品亚洲欧美一区| 成人一级片在线观看| 色综合久久久久久久久久久| 在线一区二区三区四区五区 | 国产mv日韩mv欧美| 99国产精品久久| 欧美日韩视频在线第一区| 欧美一二三在线| 欧美国产一区二区| 亚洲综合在线电影| 激情成人午夜视频| 色综合久久99| 欧美大片在线观看| 国产精品―色哟哟| 亚洲图片一区二区| 国产一区二区毛片| 99久久久久久| 欧美一级二级三级蜜桃| 久久亚区不卡日本| 国产精品高清亚洲| 一级做a爱片久久| 激情五月婷婷综合网| 色综合天天综合在线视频| 欧美一区二区在线播放| 国产精品理伦片| 日韩成人午夜精品| 国产精品99久久久| 欧美性猛交xxxx黑人交| 一本久久a久久免费精品不卡| 欧美色爱综合网| 精品国产三级电影在线观看| 亚洲美女屁股眼交3| 国产一区激情在线| 欧美性一级生活| 国产精品欧美极品| 蜜桃av噜噜一区| 色婷婷综合久久久中文字幕| 久久久亚洲午夜电影| 亚洲人成网站在线| 久久成人免费电影| 日本乱人伦一区| 亚洲国产精华液网站w| 日本三级亚洲精品| 欧美主播一区二区三区| 国产精品理论片| 狠狠色丁香婷婷综合久久片| 欧美丰满少妇xxxxx高潮对白 | 亚洲精品一二三四区| 韩国成人在线视频| 欧美一级理论性理论a| 亚洲福利一二三区| 色综合久久中文综合久久牛| 国产区在线观看成人精品| 美女mm1313爽爽久久久蜜臀| 在线国产亚洲欧美| 中文字幕欧美三区| 九一九一国产精品| 欧美二区在线观看| 日韩毛片一二三区| 高清av一区二区| 亚洲精品一线二线三线| 五月激情六月综合| 91天堂素人约啪| 欧美国产日韩在线观看| 国产一区二区三区精品欧美日韩一区二区三区 | 亚洲国产wwwccc36天堂| 成人av网址在线观看| 亚洲精品一区二区三区福利| 亚洲一区二区三区三| 91激情五月电影| 亚洲欧美一区二区三区孕妇| 99亚偷拍自图区亚洲| 中文字幕亚洲区| 91论坛在线播放| 亚洲美女屁股眼交3| 在线视频你懂得一区二区三区| 亚洲美女视频一区| 色网综合在线观看| 亚洲国产视频一区| 欧美日韩不卡在线| 美腿丝袜亚洲色图| 精品日韩一区二区三区| 国产一区二区精品在线观看| 久久嫩草精品久久久精品一| 高潮精品一区videoshd| 中文字幕一区二区在线播放| 一本大道久久a久久精品综合| 亚洲国产一区二区三区 | 国产麻豆午夜三级精品| 久久综合中文字幕| 成人av在线观| 国产精品精品国产色婷婷| 91丨九色丨蝌蚪富婆spa| 国产精品理伦片| 欧美日韩一区二区电影| 日韩av在线播放中文字幕| 久久影院午夜片一区| 国产一区视频在线看| 久久一夜天堂av一区二区三区| 成人网在线免费视频| 久久久久久**毛片大全| 色悠久久久久综合欧美99| 日本中文在线一区|