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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? untactreport.~pas

?? 飛思科技的書不錯
?? ~PAS
?? 第 1 頁 / 共 5 頁
字號:
unit UntActReport;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  ExtCtrls, StdCtrls, ComCtrls, QuickRpt, QRExtra, QRExport,
  Db, DBTables, Math, QRPrntr,
  Qrctrls, Grids, DBGrids, Printers;

const
  c_edt_str_width = 80;         // 串編輯-寬度
  c_edt_str_height = 20;        // 串編輯-高度
  c_edt_dat_width = 40;         // 數(shù)據(jù)編輯-寬度
  c_edt_dat_height = 20;        // 數(shù)據(jù)編輯-高度
  c_chk_width = 45;             // 檢查框-寬度
  c_chk_height = 17;            // 檢查框-高度
  c_cmb_width = 32;             // 組合框-寬度
  c_cmb_height = 20;            // 組合框-高度

  c_char_height = 12;           // 標(biāo)簽-高席
  c_width_per_char = 6;         // 標(biāo)簽-每個字符寬度
  c_grp_hdr = 8;                // 組合框的頭高
  c_margin = 4;                 // 元素內(nèi)列距和單元內(nèi)行距
  c_ele_gap = 8;                // 元素間列距
  c_unit_gap = 8;               // 單元間行距
  c_column_gap = 24;            // 欄間距

  c_band_width = 25;            // 報表項-寬度
  c_band_height = 5;            // 報表項-高度
  c_band_margin = 1.5;          // 報表內(nèi)線與數(shù)據(jù)的距離

  c_page_hor_margin = 10;       // 頁邊距-橫向
  c_page_vert_margin = 10;      // 頁邊距-縱向

  c_page_width = 210;           // 頁-寬度
  c_page_height = 297;          // 頁-高度
  c_pixel_per_mm = 23;          // 每毫米象素數(shù)
  c_segbar_width = 1;           // 分隔線粗細(xì)

  c_report_title = 'none';      // 報表標(biāo)題
  c_file_id = 'pjYan report';   // 文件標(biāo)志
  c_file_name = 'report0';      // 文件名
  c_file_ext = '.ypj';          // 文件后綴名

type
  TIndexList = array of Integer;
  TIntegerList = array of Integer;
  TCurrencyList = array of Currency;
  TBooleanList = array of Boolean;
  TAlign = (a_left, a_center, a_right);
  TAlignList = array of TAlign;

  TEditList = array of TEdit;
  TCheckBoxList = array of TCheckBox;
  TComboBoxList = array of TComboBox;

  TActReport = class(TForm)
    grpFieldParaList: TGroupBox;
    btnPreview: TButton;
    btnMake: TButton;
    grpGlobalParaList: TGroupBox;
    btnClose: TButton;
    chkFrameLine: TCheckBox;
    chkSummary: TCheckBox;
    grpTitleParaList: TGroupBox;
    Label2: TLabel;
    edtTitle: TEdit;
    dlgFont: TFontDialog;
    btnTitleFont: TButton;
    grpHeaderParaList: TGroupBox;
    btnHeaderFont: TButton;
    grpHeaderAlign: TRadioGroup;
    grpDetailParaList: TGroupBox;
    btnDetailFont: TButton;
    Label3: TLabel;
    edtHeaderHeight: TEdit;
    Label4: TLabel;
    edtTitleHeight: TEdit;
    Label5: TLabel;
    edtDetailHeight: TEdit;
    sclContainer: TScrollBar;
    Label1: TLabel;
    edtDetailMargin: TEdit;
    btnPrint: TButton;
    Label6: TLabel;
    Label7: TLabel;
    edtPageVertMargin: TEdit;
    edtPageHorMargin: TEdit;
    Label8: TLabel;
    cmbReportAlign: TComboBox;
    Label9: TLabel;
    edtPaperWidth: TEdit;
    Label10: TLabel;
    edtPaperHeight: TEdit;
    btnSetup: TButton;
    dlgOpen: TOpenDialog;
    dlgSave: TSaveDialog;
    btnLoad: TButton;
    btnSave: TButton;
    Label11: TLabel;
    cmbPageOrientation: TComboBox;
    procedure btnPreviewClick(Sender: TObject);
    procedure btnMakeClick(Sender: TObject);
    procedure btnCloseClick(Sender: TObject);
    procedure sclContainerChange(Sender: TObject);
    procedure OnSelectFont(Sender: TObject);
    procedure btnSetupClick(Sender: TObject);
    procedure btnPrintClick(Sender: TObject);
    procedure btnLoadClick(Sender: TObject);
    procedure btnSaveClick(Sender: TObject);
    procedure cmbPageOrientationChange(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);

  private
    // class states
    m_bInitialized: Boolean;
    m_bPrepared: Boolean;
    m_bReportReady: Boolean;

    // page/report sizes and positions
    m_nPageWidth, m_nPageHeight: Integer;
    m_oriPage: TPrinterOrientation;
    m_dPageHorMargin, m_dPageVertMargin: Currency;
    m_alnReport: TAlign;

    // report states
    m_bHasFrameLine: Boolean;
    m_bHasSummary: Boolean;

    // title parameters
    m_strTitle: string;
    m_dTitleHeight: Currency;
    m_fntTitle: TFont;

    // header parameters
    m_alnHeader: TAlign;
    m_dHeaderHeight: Currency;
    m_fntHeader: TFont;

    // detail parameters
    m_dDetailHeight: Currency;
    m_dDetailMargin: Currency;
    m_fntDetail: TFont;

    // fields parameters
    m_nFieldCount: Integer;
    m_blstDisplay: TBooleanList;
    m_strlstFieldNames: TStringList;
    m_dlstFieldWidths: TCurrencyList;
    m_strlstDispNames: TStringList;
    m_alnlstFields: TAlignList;
    m_blstSummary: TBooleanList;

    m_grpGlobalContainer: TGroupBox;
    m_grpFieldContainer: TGroupBox;

    // controls
    m_edtlstFieldNames: TEditList;
    m_edtlstDispNames: TEditList;
    m_chklstDisplay: TCheckBoxList;
    m_edtlstWidths: TEditList;
    m_cmblstAlign: TComboBoxList;
    m_chklstSummary: TCheckBoxList;

    // file/dataset/report
    m_strFileName: string;
    m_dstActive: TDBDataSet;
    m_rptActive: TCustomQuickRep;
    m_prvActive: TQRPreview;

  private
    // for all dynamically created width-edits to be
    //  auto-selected when clicked
    procedure OnEditClick(Sender: TObject);
    procedure OnPreview(Sender: TObject);

    procedure CreateRep;
    procedure ResetRep;
    procedure PrepareCtrls(nAryLen: Integer);

    function FillInCtrls : Boolean;
    procedure SetScrollBarParams(grp: TGroupBox; xTotal: Integer);
    procedure ShowCtrls(grp: TGroupBox; bMove: Boolean = True);

    // parameters default
    procedure GlobalParamsDefault;
    procedure FieldParamsDefault;
    procedure ParamsDefault;
    // parameters from report
    procedure GlobalParamsFromReport;
    procedure FieldParamsFromReport;
    procedure ParamsFromReport;
    // parameters from form
    procedure GlobalParamsFromForm;
    procedure FieldParamsFromForm;
    procedure ParamsFromForm;
    // parameters to form
    procedure GlobalParamsToForm;
    procedure FieldParamsToForm;
    procedure ParamsToForm;
    // parameters from file
    procedure GlobalParamsFromFile(stream: TFileStream);
    procedure FieldParamsFromFile(stream: TFileStream);
    procedure ParamsFromFile(strFileName: string);
    // parameters to file
    procedure GlobalParamsToFile(stream: TFileStream);
    procedure FieldParamsToFile(stream: TFileStream);
    procedure ParamsToFile(strFileName: string);

    function BuildRep(strTitle: String;
                      bHasFrameLine: Boolean;
                      bHasSummary: Boolean;
                      nPageWidth, nPageHeight: Integer;
                      oriPage: TPrinterOrientation;
                      alnHeader: TAlign;
                      dHeightTitle, dHeightHeader, dHeightDetail: Currency;
                      dDetailMargin: Currency;
                      nSegbarWidth: Integer;
                      dPageHorMargin, dPageVertMargin: Currency;
                      fntTitle, fntHeader, fntDetail: TFont;
                      dftPageWidth, dftPageHeight: Integer;
                      dftWidth, dftHeight, dftMargin: Currency;
                      dftPageHorMargin, dftPageVertMargin: Currency;
                      lstIdxs: TIndexList;
                      lstDispNames: TStringList;
                      lstWidths: TCurrencyList;
                      lstAlign: TAlignList;
                      lstSummary: TBooleanList;
                      alnReport: TAlign)
                      : Boolean; overload;

    procedure PrepareMemory(nAryLen: Integer);
    procedure ReleaseMemory;

    function Initialize : Boolean; overload;
    function BeginSession(dst: TDBDataSet;
                          strTitle: string = '';
                          strlstDispNames: TStringList = nil
                          ) : Boolean;
    function BuildRep : Boolean; overload;
    procedure TerminateSession;
    procedure Clear;
  public
    constructor Create(AOwner: TComponent); override;
    procedure Initialize(dst: TDBDataSet;
                         strTitle: string = '';
                         strlstDispNames: TStringList = nil
                         ); overload;
    function Make : Boolean;
    function PreviewRep : Boolean; overload;
    function PreviewRep(prv: TQRPreview) : Boolean; overload;
    function PrintRep(callback: TQRAfterPrintEvent = nil): Boolean;
    function LoadRep: Boolean;
    function SaveRep: Boolean;
    function GetFileName : string;
    procedure SetFileName(strFileName: string);
    function ShowModal : Integer; override;
    procedure Free; overload;
  end;

implementation

{$R *.DFM}

//===== local functions/procedures go from here =====

procedure StripFieldName(var str: string; bStrip: Boolean = True);
begin
  if bStrip and (Length(str) > 1) then
    str := Copy(str, 2, Length(str) - 2)
  else
    str := '[' + str + ']';
end;

procedure CurrToInt(const curr: Currency; var int: Integer);
var
  temp: Variant;
begin
  temp := curr;
  int := temp;
end;

procedure ReadString(stream: TFileStream; var str: string);
var
  len: Integer;
begin
  if not Assigned(stream) then
    Exit;
  try
    stream.Read(len, SizeOf(Integer));
    SetLength(str, len);
    stream.Read(PChar(str)^, len);
  except
    str := 'read error';
  end;
end;

procedure WriteString(stream: TFileStream; str: string);
var
  len: Integer;
begin
  if not Assigned(stream) then
    Exit;
  len := Length(str);
  try
    stream.Write(len, SizeOf(Integer));
    stream.Write(PChar(str)^, len);
  except
  end;
end;

procedure ReadFont(stream: TFileStream; var fnt: TFont);
var
  t_Charset: TFontCharset;
  t_Color: TColor;
  t_Height: Integer;
  t_Name: string;
  t_Pitch: TFontPitch;
  t_Size: Integer;
  t_Style: TFontStyles;
begin
  if not Assigned(stream) then
    Exit;
  with fnt do
    try
      stream.Read(t_Charset, SizeOf(t_CharSet));
      stream.Read(t_Color, SizeOf(t_Color));
      stream.Read(t_Height, SizeOf(t_Height));
      ReadString(stream, t_Name);
      stream.Read(t_Pitch, SizeOf(t_Pitch));
      stream.Read(t_Size, SizeOf(t_Size));
      { Warning : maybe errors here!!!!!
               caus t_Style is a SET }
      stream.Read(t_Style, SizeOf(t_Style));
      Charset := t_Charset;
      Color := t_Color;
      Height := t_Height;
      Name := t_Name;
      Pitch := t_Pitch;
      Size := t_Size;
      Style := t_Style;
    except
    end;
end;

procedure WriteFont(stream: TFileStream; fnt: TFont);
var
  t_Charset: TFontCharset;
  t_Color: TColor;
  t_Height: Integer;
  t_Name: string;
  t_Pitch: TFontPitch;
  t_Size: Integer;
  t_Style: TFontStyles;
begin
  if not Assigned(stream) then
    Exit;
  with fnt do
    try
      t_Charset := Charset;
      t_Color := Color;
      t_Height := Height;
      t_Name := Name;
      t_Pitch := Pitch;
      t_Size := Size;
      t_Style := Style;
      stream.Write(t_Charset, SizeOf(t_CharSet));
      stream.Write(t_Color, SizeOf(t_Color));
      stream.Write(t_Height, SizeOf(t_Height));
      WriteString(stream, t_Name);
      stream.Write(t_Pitch, SizeOf(t_Pitch));
      stream.Write(t_Size, SizeOf(t_Size));
      { Warning : maybe errors here!!!!!
               caus t_Style is a SET }
      stream.Write(t_Style, SizeOf(t_Style));
    except
    end;
end;

procedure DefaultIfZero(var owner: Integer; dft: Integer); overload;
begin
  if owner =  0 then
    owner := dft;
end;

procedure DefaultIfZero(var owner: Currency; dft: Currency); overload;
begin
  if owner = 0 then
    owner := dft;
end;

function CustomToStandardAlign(aln: TAlign) : TAlignment;
begin
  case aln of
    a_left: Result := taLeftJustify;
    a_center: Result := taCenter;
    a_right: Result := taRightJustify;
    else
      Result := taCenter;
  end;
end;

{ Warning : must set autosize to false before calling me! }
procedure SetPosition(var pos: TQRPrintableSize;
                      bleft, bwidth, bheight: Currency;
                      aln: TAlign; margin: Currency);
begin
  with pos do begin
    Width := Max(0, Min(Width, bWidth - margin*2));
    case aln of
      a_left: Left := bleft + margin;
      a_center: Left := bleft + (bwidth - Width) / 2;
      a_right: Left := bleft + bwidth - Width - margin;
    end;
    Top := (bheight - Height) / 2;
  end;
end;

procedure FindIndex(strlst: TStringList; str: string; var idx: Integer);
var
  i: Integer;
begin
  for i := idx + 1 to strlst.Count - 1 do
    if strlst.Strings[i] = str then begin
      idx := i;
      Exit;
    end;
  idx := -1;
end;

procedure GetEditValue(edt: TEdit; var data: Integer); overload;
begin
  try
    data := StrToInt(edt.Text);
  except

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日本vs亚洲vs韩国一区三区| 成人av资源站| 99久久免费国产| 在线电影国产精品| 国产精品美女久久久久高潮| 天天综合色天天综合色h| 国产成人免费在线视频| 欧美丰满美乳xxx高潮www| 国产日本亚洲高清| 美女精品自拍一二三四| 在线亚洲欧美专区二区| 国产日韩欧美精品电影三级在线| 日韩和欧美一区二区| av午夜精品一区二区三区| 日韩精品一区二区三区老鸭窝 | 日日摸夜夜添夜夜添亚洲女人| 国产专区综合网| 欧美日韩电影一区| 亚洲国产日产av| thepron国产精品| 国产午夜精品福利| 国产高清不卡二三区| 日韩欧美亚洲国产另类| 亚洲高清不卡在线观看| 欧美性淫爽ww久久久久无| 国产精品国产三级国产普通话99 | 欧美疯狂性受xxxxx喷水图片| 中文字幕综合网| a级精品国产片在线观看| 久久免费电影网| 国产在线国偷精品免费看| 日韩美女视频一区二区在线观看| 日韩精品一级中文字幕精品视频免费观看| 色激情天天射综合网| 一区二区三区免费观看| 日本丶国产丶欧美色综合| 亚洲手机成人高清视频| 成人av网站在线观看免费| ...av二区三区久久精品| 99在线精品视频| 中文字幕综合网| 日本精品视频一区二区| 亚洲高清免费一级二级三级| 欧美日韩久久不卡| 免费高清视频精品| 国产日韩精品久久久| aa级大片欧美| 亚洲午夜在线电影| 91麻豆精品国产91久久久更新时间| 日韩国产欧美一区二区三区| 欧美v日韩v国产v| 丁香天五香天堂综合| 亚洲激情在线播放| 91精品国产色综合久久ai换脸| 久久成人免费网| 国产日本欧美一区二区| 91极品视觉盛宴| 免费精品视频最新在线| 国产欧美日韩中文久久| 91美女在线看| 日本色综合中文字幕| 国产欧美一区二区在线| 色嗨嗨av一区二区三区| 美女一区二区视频| 国产精品久久夜| 日韩欧美一区二区在线视频| 激情深爱一区二区| 亚洲色图都市小说| 日韩一卡二卡三卡四卡| 不卡视频免费播放| 日韩 欧美一区二区三区| 久久久精品免费网站| 欧美亚一区二区| 国产一区二区三区免费在线观看| 亚洲人吸女人奶水| 欧美一区二区女人| 99热精品一区二区| 青青草精品视频| 亚洲三级小视频| 久久综合九色综合97婷婷女人| 91在线小视频| 国产高清精品久久久久| 午夜精品久久久久久| 国产精品美女久久久久久| 3751色影院一区二区三区| 99久久精品免费看| 国产福利91精品| 热久久久久久久| 亚洲自拍偷拍欧美| 国产欧美日韩三级| 欧美挠脚心视频网站| 97国产一区二区| 国产成人免费在线观看| 日韩av一区二区在线影视| 亚洲色图19p| 国产亚洲一区字幕| 欧美精品一区二区在线播放| 在线视频你懂得一区| 狠狠色2019综合网| 美女任你摸久久 | 国产一区二区三区综合| 日本欧洲一区二区| 亚洲成av人片在线观看| 亚洲精品中文在线影院| 亚洲欧美怡红院| 国产精品色呦呦| 久久色.com| 亚洲精品一区二区三区香蕉| 91精品国产色综合久久| 欧美精品黑人性xxxx| 欧美日韩成人激情| 欧美日韩黄视频| 欧美高清精品3d| 欧美乱妇一区二区三区不卡视频| 在线精品观看国产| 在线视频中文字幕一区二区| 在线欧美小视频| 欧美性做爰猛烈叫床潮| 欧美日韩国产天堂| 日本福利一区二区| 欧美女孩性生活视频| 欧美日韩国产一级| 日韩三级视频中文字幕| 欧美一级国产精品| 久久香蕉国产线看观看99| 久久久久久久久蜜桃| 久久久亚洲精品一区二区三区| 久久久久久久电影| 国产精品色哟哟| 亚洲男人的天堂av| 亚洲成人先锋电影| 免费av成人在线| 国模娜娜一区二区三区| www.日韩在线| 欧美午夜精品一区| 日韩精品中文字幕在线不卡尤物 | 在线电影国产精品| 亚洲精品一区二区三区福利 | 亚洲影视资源网| 日本成人超碰在线观看| 国产乱子伦一区二区三区国色天香| 国产黄色成人av| 色av一区二区| 日韩丝袜情趣美女图片| 欧美精品一区视频| 亚洲欧美福利一区二区| 日韩激情视频在线观看| 久草热8精品视频在线观看| 成人久久视频在线观看| 欧美午夜精品久久久久久孕妇| 制服丝袜中文字幕一区| 欧美激情综合网| 性做久久久久久免费观看欧美| 国产在线视频一区二区| 一本高清dvd不卡在线观看| 欧美一区二区三区爱爱| 国产精品国产三级国产aⅴ无密码 国产精品国产三级国产aⅴ原创 | 蜜桃一区二区三区在线| av不卡在线播放| 久久伊人中文字幕| 亚洲一区在线视频观看| 国产风韵犹存在线视精品| 欧美理论电影在线| 国产精品素人一区二区| 日韩精品一级中文字幕精品视频免费观看 | 制服视频三区第一页精品| www国产亚洲精品久久麻豆| 亚洲午夜av在线| 国产精品自拍三区| 91精品国产综合久久福利软件 | 成人免费观看男女羞羞视频| 欧美综合久久久| 国产日韩欧美一区二区三区综合| 午夜av电影一区| 色国产综合视频| 国产精品久久看| 国产精品一二三四五| 日韩欧美专区在线| 婷婷久久综合九色综合伊人色| 不卡电影免费在线播放一区| 精品国产一区二区三区忘忧草| 亚洲成人一区在线| 在线亚洲一区二区| 亚洲视频一区二区免费在线观看| 国产一区二区毛片| 日韩一卡二卡三卡国产欧美| 亚洲电影一级黄| 欧美在线综合视频| 一区二区三区在线观看欧美| 成人白浆超碰人人人人| 亚洲国产高清aⅴ视频| 国产一区二区三区美女| 精品国产乱码久久久久久图片| 亚洲一区欧美一区| 在线观看日韩毛片| 亚洲午夜视频在线观看| 精品视频在线视频| 亚洲国产cao| 欧美夫妻性生活| 极品少妇xxxx精品少妇偷拍 |