delphi – TListView中的Sum子项
发布时间:2020-12-15 09:25:26 所属栏目:大数据 来源:网络整理
导读:我们如何在TListView中总结一些SubItem?如果你看下面的图片, 拳头,我们将第1组至第4组填入第1组和第2组.问题是,我们如何将SubItems Col 2相加并将结果放入Col 3.我在上面发布的图片很清楚,但是如果我想解释如何求和,那么你有点将ListView的当前SubItem与上
我们如何在TListView中总结一些SubItem?如果你看下面的图片,
拳头,我们将第1组至第4组填入第1组和第2组.问题是,我们如何将SubItems Col 2相加并将结果放入Col 3.我在上面发布的图片很清楚,但是如果我想解释如何求和,那么你有点将ListView的当前SubItem与上面相加分项.并且,对于每个组中的第一个SubItem,我们将相同的数字放在Col 2中. 解决方法
像这样的东西可能会做你想要的:
procedure TForm1.Button1Click(Sender: TObject); var I: Integer; Value: Integer; GroupID: Integer; GroupSum: Integer; begin GroupID := 0; GroupSum := 0; for I := 0 to ListView1.Items.Count - 1 do begin if Assigned(ListView1.Items[I].SubItems) and (ListView1.Items[I].SubItems.Count > 0) and TryStrToInt(ListView1.Items[I].SubItems[0],Value) then begin if GroupID <> ListView1.Items[I].GroupID then begin GroupSum := 0; GroupID := ListView1.Items[I].GroupID; end; GroupSum := GroupSum + Value; if ListView1.Items[I].SubItems.Count < 2 then ListView1.Items[I].SubItems.Add(IntToStr(GroupSum)) else ListView1.Items[I].SubItems[1] := IntToStr(GroupSum); end; end; end; 那么,对于那些想要模拟OP情况的人来说,这里是一个代码(只需在表单上放置一个列表视图组件并编写事件处理程序): procedure TForm1.FormCreate(Sender: TObject); var ListItem: TListItem; ListGroup: TListGroup; ListColumn: TListColumn; begin ListView1.Clear; ListView1.GroupView := True; ListView1.ViewStyle := vsReport; ListColumn := ListView1.Columns.Add; ListColumn.Caption := 'Column 1'; ListColumn.Width := 90; ListColumn := ListView1.Columns.Add; ListColumn.Caption := 'Column 2'; ListColumn.Width := 90; ListColumn := ListView1.Columns.Add; ListColumn.Caption := 'Column 3'; ListColumn.Width := 90; ListGroup := ListView1.Groups.Add; ListGroup.GroupID := 0; ListGroup.Header := 'Group 1'; ListGroup := ListView1.Groups.Add; ListGroup.GroupID := 1; ListGroup.Header := 'Group 2'; ListItem := ListView1.Items.Add; ListItem.GroupID := 0; ListItem.Caption := 'Item 1'; ListItem.SubItems.Add('22'); ListItem := ListView1.Items.Add; ListItem.GroupID := 0; ListItem.Caption := 'Item 2'; ListItem.SubItems.Add('11'); ListItem := ListView1.Items.Add; ListItem.GroupID := 1; ListItem.Caption := 'Item 3'; ListItem.SubItems.Add('94'); ListItem := ListView1.Items.Add; ListItem.GroupID := 1; ListItem.Caption := 'Item 4'; ListItem.SubItems.Add('42'); ListItem := ListView1.Items.Add; ListItem.GroupID := 1; ListItem.Caption := 'Item 5'; ListItem.SubItems.Add('21'); end; (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |