This commit is contained in:
2026-06-14 17:16:23 +08:00
parent b4c91d1f40
commit f42c58e6b5
2 changed files with 19 additions and 86 deletions
@@ -115,6 +115,9 @@
EnableTextSelection="True" AllowColumnLocking="true">
<Columns>
<f:RowNumberField EnablePagingNumber="true" HeaderText="序号" Width="60px" HeaderTextAlign="Center" TextAlign="Center"/>
<f:RenderField Width="100px" HeaderText="管线号" ColumnID="pipe_no" DataField="pipe_no"
FieldType="String" HeaderTextAlign="Center" TextAlign="Center">
</f:RenderField>
<f:RenderField Width="100px" HeaderText="图号" ColumnID="drawing_number" DataField="drawing_number"
FieldType="String" HeaderTextAlign="Center" TextAlign="Center">
</f:RenderField>
@@ -131,6 +134,9 @@
FieldType="String" HeaderTextAlign="Center" TextAlign="Center">
</f:RenderField>
</Columns>
<Listeners>
<f:Listener Event="dataload" Handler="onGrid2DataLoad" />
</Listeners>
</f:Grid>
</Items>
</f:Region>
@@ -177,6 +183,9 @@
FieldType="String" HeaderTextAlign="Center" TextAlign="Center">
</f:RenderField>
</Columns>
<Listeners>
<f:Listener Event="dataload" Handler="onGrid3DataLoad" />
</Listeners>
</f:Grid>
</Items>
</f:Region>
@@ -203,5 +212,13 @@
</form>
<script type="text/javascript">
function onGrid2DataLoad(event) {
this.mergeColumns(['drawing_number']);
}
function onGrid3DataLoad(event) {
this.mergeColumns(['pipe_no']);
}
</script>
</body>
</html>
@@ -426,94 +426,10 @@ namespace FineUIPro.Web.HJGL.DataIn
Grid1.DataSource = dt;
Grid1.DataBind();
// Grid2: 按图号合并 — 图号、类型、规格、描述相同的,数量累加
if (dt != null && dt.Rows.Count > 0)
{
DataTable dtGroupByDrawing = new DataTable();
dtGroupByDrawing.Columns.Add("id");
dtGroupByDrawing.Columns.Add("drawing_number");
dtGroupByDrawing.Columns.Add("category");
dtGroupByDrawing.Columns.Add("spec");
dtGroupByDrawing.Columns.Add("qty");
dtGroupByDrawing.Columns.Add("description");
var groups2 = dt.AsEnumerable()
.GroupBy(r => new
{
drawing_number = r.Field<string>("drawing_number") ?? "",
category = r.Field<string>("category") ?? "",
spec = r.Field<string>("spec") ?? "",
description = r.Field<string>("description") ?? ""
})
.Select(g => new
{
g.Key.drawing_number,
g.Key.category,
g.Key.spec,
g.Key.description,
qty = g.Sum(r => Funs.GetNewDecimalOrZero(r.Field<string>("qty")))
});
foreach (var g in groups2)
{
DataRow newRow = dtGroupByDrawing.NewRow();
newRow["id"] = Guid.NewGuid().ToString();
newRow["drawing_number"] = g.drawing_number;
newRow["category"] = g.category;
newRow["spec"] = g.spec;
newRow["qty"] = g.qty;
newRow["description"] = g.description;
dtGroupByDrawing.Rows.Add(newRow);
}
Grid2.DataSource = dtGroupByDrawing;
}
else
{
Grid2.DataSource = null;
}
Grid2.DataSource = dt;
Grid2.DataBind();
// Grid3: 按管线号合并 — 类型、规格、描述相同的,数量累加(不展示图号)
if (dt != null && dt.Rows.Count > 0)
{
DataTable dtGroupByPipe = new DataTable();
dtGroupByPipe.Columns.Add("id");
dtGroupByPipe.Columns.Add("pipe_no");
dtGroupByPipe.Columns.Add("category");
dtGroupByPipe.Columns.Add("spec");
dtGroupByPipe.Columns.Add("qty");
dtGroupByPipe.Columns.Add("description");
var groups3 = dt.AsEnumerable()
.GroupBy(r => new
{
pipe_no = r.Field<string>("pipe_no") ?? "",
category = r.Field<string>("category") ?? "",
spec = r.Field<string>("spec") ?? "",
description = r.Field<string>("description") ?? ""
})
.Select(g => new
{
g.Key.pipe_no,
g.Key.category,
g.Key.spec,
g.Key.description,
qty = g.Sum(r => Funs.GetNewDecimalOrZero(r.Field<string>("qty")))
});
foreach (var g in groups3)
{
DataRow newRow = dtGroupByPipe.NewRow();
newRow["id"] = Guid.NewGuid().ToString();
newRow["pipe_no"] = g.pipe_no;
newRow["category"] = g.category;
newRow["spec"] = g.spec;
newRow["qty"] = g.qty;
newRow["description"] = g.description;
dtGroupByPipe.Rows.Add(newRow);
}
Grid3.DataSource = dtGroupByPipe;
}
else
{
Grid3.DataSource = null;
}
Grid3.DataSource = dt;
Grid3.DataBind();
}
#region