Jump to content

Recommended Posts

Posted

Как в DBGreed Summary  организовать выборочное суммирование при группировке.

К примеру нужно просуммировать только записи с с значением поле PgDS.DataSet.FieldByName('coment').AsString='plus'  а остальные игнорировать.

В примерах не нашел ((

За ранее благодарен!

 

Posted
7 hours ago, dbf_usr said:

Как в DBGreed Summary  организовать выборочное суммирование при группировке.

Здравствуйте,

Попробуйте например такой код:

procedure TMainForm.UniDBGrid1ColumnSummary(Column: TUniDBGridColumn;
  GroupFieldValue: Variant);
begin
  if SameText(Column.FieldName, 'quantity') then
  begin
    if Column.AuxValue=NULL then Column.AuxValue:=0;
    if Column.Field.DataSet.FieldByName('quantity').AsInteger > 500 then
      Column.AuxValue:=Column.AuxValue + Column.Field.AsInteger
  end
  else if SameText(Column.FieldName, 'unitprice') then
  begin
    if Column.AuxValue=NULL then Column.AuxValue:=0.0;
    if Column.Field.DataSet.FieldByName('quantity').AsInteger > 500 then
      Column.AuxValue:=Column.AuxValue + (Column.Field.AsFloat * ClientDataSet1Quantity.AsInteger)
  end;
end;

 

  • Like 1
Posted
procedure TUniOperations.UniDBGrid1ColumnSummary(Column: TUniDBGridColumn; GroupFieldValue: Variant);
  var F : Real;
begin
   if SameText(Column.FieldName, 'sum_oper') then
  begin
    if Column.AuxValue=NULL then Column.AuxValue:=0;
    if Column.Field.DataSet.FieldByName('id_sens_operation').AsInteger=95 then
      begin
        if  Column.Field.DataSet.FieldByName('typ_operation_id').AsString='111' then
          Column.AuxValue:=Column.AuxValue + Column.Field.AsInteger;
        if  Column.Field.DataSet.FieldByName('typ_operation_id').AsString='112' then
          Column.AuxValue:=Column.AuxValue - Column.Field.AsInteger;
      end;
  end
 end;

Работает с накоплением итого сквозь все группы. Надо что бы в каждой группе отдельно считалось. Как это сделать? За ранее благодарен!

Posted
35 minutes ago, dbf_usr said:

Работает с накоплением итого сквозь все группы.

Я не смог воспроизвести этот случай...

Posted
10 minutes ago, Sherzod said:

Я не смог воспроизвести этот случай...

Вот  так это работает.

 

йфяяфй.PNG

Posted
2 minutes ago, Sherzod said:

Приведите код: OnColumnSummaryResult

procedure TUniOperations.UniDBGrid1ColumnSummaryResult(Column: TUniDBGridColumn;
  GroupFieldValue: Variant; Attribs: TUniCellAttribs; var Result: string);
var
  I : Integer;
begin
  if SameText(Column.FieldName, 'sum_oper') then
  begin
    I:=Column.AuxValue;
    Result:='Σ: '+FormatCurr('0,0.00 ', I);
    Attribs.Font.Style:=[fsBold];
    Attribs.Font.Color:=clWebDarkOliveGreen;
  end ;
End;

 

Posted

Попробуйте так:

procedure TUniOperations.UniDBGrid1ColumnSummaryResult(Column: TUniDBGridColumn;
  GroupFieldValue: Variant; Attribs: TUniCellAttribs; var Result: string);
var
  I : Integer;
begin
  if SameText(Column.FieldName, 'sum_oper') then
  begin
    I:=Column.AuxValue;
    Result:='Σ: '+FormatCurr('0,0.00 ', I);
    Attribs.Font.Style:=[fsBold];
    Attribs.Font.Color:=clWebDarkOliveGreen;
  end ;
  Column.AuxValue:=NULL; //<-----
End;
\FMSoft\Framework\uniGUI\Demos\Desktop\GridGroupingSummary

 

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...