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

📄 hrps016_1q.pas

📁 超级好用的韩国数据表控件一共5个 Korea, a data table control
💻 PAS
📖 第 1 页 / 共 2 页
字号:
                                     , 5+(AVH*(LV+1) )
                                     , AVW
                                     , AVH
                                     , Query.FieldByName('Item_Name').AsString
                                     , FONTSIZE ,0);
      CreateQRDBLabel(  1+(AVW * LC),
                        1+(AVH*LV),
                        AVW ,
                        AVH,
                        'Pay_AMT'+IntToStr(II),
                        FONTSIZE,0,2);
//      twDBColumn(Columns[ Columns.Count - 1 ]).FieldName  := 'Pay_Amt'+inttostr(Ii);
      Query.Next;
      Inc( LC );
      Inc(II);
    End;

    for i := LC To Type1_Count - 1 - ALREADY_COUNT1 do
    Begin
      CreateQRLabel(ColumnHeaderBand1, 1+( AVW * i )
                                     , 5+(AVH*3 )
                                     , AVW
                                     , AVH
                                     , ' '
                                     , FONTSIZE ,0);
      CreateQRDBLabel(  1+(AVW * i),
                        1+(AVH*2),
                        AVW ,
                        AVH,
                        ' ',
                        FONTSIZE,0,2);
    End;
    CreateQRLabel(ColumnHeaderBand1, 1+( AVW * i )
                                   , 5+(AVH*3 )
                                   , AVW
                                   , AVH
                                   , '惑咯陛 '
                                   , FONTSIZE ,0);
      CreateQRDBLabel(  1+(AVW * I),
                        1+(AVH*2),
                        AVW ,
                        AVH,
                        'Bonus_Pay',
                        FONTSIZE,0,2);
    CreateQRLabel(ColumnHeaderBand1, 1+( AVW * (i+1) )
                                   , 5+(AVH*3 )
                                   , AVW
                                   , AVH
                                   , '醚瘤鞭咀'
                                   , FONTSIZE ,1);
      CreateQRDBLabel(  1+(AVW * (I+1)),
                        1+(AVH*2),
                        AVW ,
                        AVH,
                        'Tot_Pay',
                        FONTSIZE,0,2);


    Close;
    ParamByName( 'Pay_Ded_Type').AsString := '2';
    Open;
    Lv := 0;
    LC := 0;
    FrameWidth := 4;
    StartPosition := AW + AVW * Type1_Count;
    CreateQRLabel(ColumnHeaderBand1, 1
                                   , 1
                                   , AVW * Type2_Count
                                   , AVH + 4
                                   , '力 傍力 棺 瞒牢 瘤鞭咀'
                                   , FONTSIZE ,1);
    FrameWidth := 2;
    While not Query.Eof Do
    Begin
      If (Type2_Count) <= LC Then
      begin
        StartPosition := AW + AVW * Type1_Count;
        LC := 0;
        Inc( LV );
      End;
      CreateQRLabel(ColumnHeaderBand1, 1+( AVW * LC )
                                     , 5+(AVH*(LV+1) )
                                     , AVW
                                     , AVH
                                     , Query.FieldByName('Item_Name').AsString
                                     , FONTSIZE ,0);
      CreateQRDBLabel(  1+(AVW * LC),
                        1+(AVH*LV),
                        AVW ,
                        AVH,
                        'Pay_AMT'+INttoStr(II),
                        FONTSIZE,0,2);

//      twDBColumn(Columns[ Columns.Count - 1 ]).FieldName  := 'Pay_Amt'+inttostr(Ii);
      Query.Next;
      Inc( LC );
      inc( II );
    End;

    for i := LC To Type2_Count - 1 - ALREADY_COUNT2 do
    Begin
      CreateQRLabel(ColumnHeaderBand1, 1+( AVW * i )
                                     , 5+(AVH*3 )
                                     , AVW
                                     , AVH
                                     , ' '
                                     , FONTSIZE ,0);
      CreateQRDBLabel(  1+(AVW * i),
                        1+(AVH*2),
                        AVW ,
                        AVH,
                        ' ',
                        FONTSIZE,0,2);
    End;
    CreateQRLabel(ColumnHeaderBand1, 1+( AVW * i )
                                   , 5+(AVH*3 )
                                   , AVW
                                   , AVH
                                   , '傍力 钦拌'
                                   , FONTSIZE ,0);
      CreateQRDBLabel(  1+(AVW * i),
                        1+(AVH*2),
                        AVW ,
                        AVH,
                        'tot_ded_AMT',
                        FONTSIZE,0,2);

    CreateQRLabel(ColumnHeaderBand1, 1+( AVW * (i+1) )
                                   , 5+(AVH*3 )
                                   , AVW
                                   , AVH
                                   , '瞒牢 瘤鞭咀'
                                   , FONTSIZE ,1);
    CreateQRDBLabel(  1+(AVW * (i+1)),
                        1+(AVH*2),
                        AVW ,
                        AVH,
                        'Real_Pay_AMT',
                        FONTSIZE,0,2);

    CreateNameLabel(  DetailBand1, 1, 1, 116, DetailBand1.Height,
                      10, 1 );

  End;    // <----- With

end;



procedure TfHRPS016_1Q.FormClose(Sender: TObject;
  var Action: TCloseAction);
begin

  FieldNames.Clear;
  FreeAndNil( FieldNames );

end;

procedure TfHRPS016_1Q.QuickRep1NeedData(Sender: TObject;
  var MoreData: Boolean);
Var
  I : Integer;
  Don : Currency;
  
  procedure TotalSumPrint;
  Var
    I :integer;
  begin
    SumFlag := false;
    SumPrnFlag := True;
    ViewNameLable('傈眉 钦拌', True );

    for i := 0 to FieldNames.Count - 1 do
    Begin

      If Trim(FieldNames[i]) <> '' Then
      TQRLabel( QuickRep1.FindComponent( FieldNames[i] ) ).Caption :=
              formatFloat(',#',SumRec[i].TotSum );
      SumRec[i].TotSum := 0;
    End;      // <---- for..
  End;
  procedure groupSumPrint;
  Var
    I : Integer;
  Begin
    GroupFlag := false;
    groupPrnFlag := True;
    ViewNameLable('何辑拌('+OldGroupName+')', True );

    for i := 0 to FieldNames.Count - 1 do
    Begin

      If Trim(FieldNames[i]) <> '' Then
      TQRLabel( QuickRep1.FindComponent( FieldNames[i] ) ).Caption :=
              formatFloat(',#',SumRec[i].GroupSum );
      SumRec[i].GroupSum := 0;
    End;      // <---- for..
  End;


begin

  If Query.Eof and not SumFlag and not GroupFlag Then
  Begin
    MoreData := False;
    exit;
  End;

  If GroupPrnFlag Then
  Begin
    GroupPrnFlag := false;
    ViewNameLable('', false );
  End;

  If SumPrnFlag Then
  Begin
    SumPrnFlag := false;
    ViewNameLable('', false );
  End;

  If GroupName <> Query.FieldByName('Dept_name').AsString Then
  Begin

    OldGroupName := GroupName;

    if GroupCount > 0 Then
      GroupFlag := True
    Else
      OldGroupName := Query.FieldByName('Dept_name').AsString;

    GroupName := Query.FieldByName('Dept_name').AsString;
     inc(GroupCount);
  End;

  for i := 0 to FieldNames.Count - 1 do
    If Trim(FieldNames[i]) <> '' Then
      TQRLabel( QuickRep1.FindComponent( FieldNames[i] ) ).Caption := '';

  MoreData := true;

  If Query.EOF and not GroupFlag and not sumFlag Then
  Begin
    GroupFlag := True;
    SumFlag := True;
  End;

  If GroupFlag and SumFlag Then
  Begin
    If printLine >= ( PRNCOUNT - 3 ) Then
    Begin
      GroupSumPrint;
    End;
  End
  Else If GroupFlag Then
  Begin
    If printLine >= ( PRNCOUNT - 2 ) Then
    Begin
      GroupSumPrint;
    End;
  End
  Else If SumFlag Then
  Begin
    If printLine >= ( PRNCOUNT - 2 ) Then
    Begin
      TotalSumPrint;
    End;
  End
  else
  Begin
    for i := 0 to FieldNames.Count - 1 do
    Begin
      If FieldNames[i] = ' ' Then Continue;

      TQRLabel( QuickRep1.FindComponent( FieldNames[i] ) ).Caption :=
                      trim( Query.FieldByName( FieldNames[i] ).AsString );

      If i > 5 Then
      Begin

        Try
          If Trim( Query.FieldByName( FieldNames[i] ).AsString ) = '' Then
            Don := 0
          Else
            Don := StrToFloat( StringReplace( Trim( Query.FieldByName( FieldNames[i] ).AsString ),
                                 ',','', [rfReplaceAll, rfIgnoreCase] ) );
        Except
          Don := 0;
        End;
        SumRec[i].GroupSum := SumRec[i].GroupSum + Don;
        SumRec[i].TotSum := SumRec[i].TotSum + Don;
      End;
    End;      // <---- for..

    Query.Next;

    If Query.Eof Then
      If groupCount = 1 Then
        GroupFlag := True
      Else
      Begin
        GroupFlag := True;
        SumFlag := True;
      End;

  End;    // <-- if

  Inc( PrintLine );

end;

procedure TfHRPS016_1Q.QuickRep1BeforePrint(Sender: TCustomQuickRep;
  var PrintReport: Boolean);
Var
   i : Integer;
begin
  Query.First;
  GroupFlag := false;
  SumFlag := false;

  PrintLine := 0;

  GroupCount := 0;
  OldGroupName := '';
  GroupName := '';

  ViewNameLable('',false);

  for i := 0 to High( SumRec ) do
  Begin
    Sumrec[ i ].GroupSum := 0;
    Sumrec[ i ].TotSum := 0;
  End;

end;



procedure TfHRPS016_1Q.PageHeaderBeforePrint(Sender: TQRCustomBand;
  var PrintBand: Boolean);
begin
  Condition1.Caption := '何 辑 疙 : ' + Query.FieldByName('Dept_name').AsString;
  Page1.Caption := 'Page : '+Format('%3d',[QuickRep1.PageNumber] )+' / '+Format('%3d',[TotPageNum]);
  PrintLine := 0;

end;


end.

⌨️ 快捷键说明

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