 |
|
ขอวิธีการเขียน หรือ ตัวอย่าง เกี่ยวกับการ Sum Column ของ ***Datagrid (VB.NET) |
|
 |
|
|
 |
 |
|
สวัสดีครับ พี่ๆทุกคน อยากทรายว่ามีวิธีการ SUM Datagrid มั้ยครับ ผมหาข้อมูลส่วนมากจะเจอที่เป็น Gridview ซะมากกว่า พอจะมีตัวอย่างหรือ Guideline ให้ผมดูหน่อยมั้ยครับ ขอบคุณล่วงหน้าครับ อันนี้เป็น Code ของผมครับ
Code (VB.NET)
SqlStatement = SqlStatement & SqlWhere
MyDta.SelectCommand = New SqlCommand(SqlStatement, MyCnn)
dtsSlag.Clear()
MyDta.Fill(dtsSlag)
MyCnn.Close()
If dtsSlag.Tables(0).Rows.Count < 1 Then
DataGrid1.Columns(0).Visible = False
DataGrid1.DataBind()
Exit Sub
Else
ส่วนนี้เป็นส่วนบรรทัดที่ผมต้องการ Sum ครับ\\ dtsSlag.Tables(0).Rows.Add("", "", "", "", "Total", a1, "123", "123", "123", "123", "123", "123", "123", "123", "123")
DataGrid1.Columns(0).Visible = False
DataGrid1.HeaderStyle.Height = New Unit(20)
DataGrid1.DataSource = dtsSlag
DataGrid1.DataBind()
Tag : .NET, VB.NET
|
|
 |
 |
 |
 |
Date :
2019-08-01 16:08:47 |
By :
champ_boyzz |
View :
1104 |
Reply :
7 |
|
 |
 |
 |
 |
|
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ข้อสงสัยของคุณมันเป็นสิ่งที่ดี คุณลองเกลาคำถามใหม่ เผื่อคุณจะได้คำตอบที่ดีที่สุด
ผมเขียน VB/C++ ในเวลาเดียวกัน ผมมั่นใจว่าในเมืองไทยนี้ไม่มีใครเขียน VB/VB.NET สู้ผมได้แม้แต่คนเดียว
คุณควรให้โอกาสกับตัวเอง ผมก็เช่นกัน
|
 |
 |
 |
 |
Date :
2019-08-02 20:00:15 |
By :
หน้าฮี |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ผมเป็นคนที่ช่างสังเกตุ ผมชอบมากมากมากฯฯฯ
หน้าของผมกลายเป็นหมาน่ารักน่ารัก ไอ้ Admin เข้าใจทำ
--- ขอบคุณครับ ท่าน Admin ที่ทำให้กระผมมีความสุข +55555
|
 |
 |
 |
 |
Date :
2019-08-02 20:05:49 |
By :
หน้าฮี |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ถูกใจผมมากมากมาก
+5555555555555555555555555555555555555555555555555555555555555555555555555555
|
 |
 |
 |
 |
Date :
2019-08-02 20:07:09 |
By :
หน้าฮี |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ขอบคุณสำหรับ คำตอบครับ ผมจะพยายามต่อไปครับ
|
 |
 |
 |
 |
Date :
2019-08-03 15:17:26 |
By :
champ_boyzz |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
คือผมไม่เคยเจอ function สำเร็จน่ะครับ อาจจะมีก็ได้แต่ไม่เคยค้นจนเจอ
มีแต่ใช้ loop บวกเอา หรือ ใช้คิวรี่ เอาจาก dataset
แต่ทีนี้มันอยู่ที่ว่าคุณจะซัมตอนไหน จะใช้ event อะไรเพื่อที่จะรวมยอดและแสดงผล ถ้าหากมีการเปลี่ยนแปลงค่าภายใน
|
 |
 |
 |
 |
Date :
2019-08-03 16:36:13 |
By :
Chaidhanan |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
Quote:คือผมไม่เคยเจอ function สำเร็จน่ะครับ อาจจะมีก็ได้แต่ไม่เคยค้นจนเจอ
มีแต่ใช้ loop บวกเอา หรือ ใช้คิวรี่ เอาจาก dataset
แต่ทีนี้มันอยู่ที่ว่าคุณจะซัมตอนไหน จะใช้ event อะไรเพื่อที่จะรวมยอดและแสดงผล ถ้าหากมีการเปลี่ยนแปลงค่าภายใน
ท่าน Chaidhanan เป็นคนที่มีตรรกะขั้นสูง ถ้าเป็นสมัยพุทธกาล ก็สำนักตักศิลา
--- ทุกฯปัญหาและแนวทางแก้ไข แอบแฝงเจือปนไปด้วย ความอบอุ่น/ความเป็นกัลยามิตร ผมรับรู้ได้แต่คนอื่นฯผมไม่รู้
ตัวอย่างข้างล่าง โปรแกรมเมอร์ชั้นสอง (จิตใจคับแคบคงมองไม่ออก)
--- มันคือการเขียน โครตของโครต Store Procedure นอกตำราเรียน
------ โครงสร้างตาราง มันมั่วมา ผมก็เขียนตามนั้น (ผมไม่ได้มั่วตาม เพียงแต่ทำตาม)
Code (VB.NET)
Imports System.Net
Imports System.Web.Http
Namespace Controllers
Public Class extDashboardController : Inherits ApiController
'สถานะใบสั่งซื้อ
<HttpGet>
<Route("api/extDashboard/GetPOStatus_dashBoard")>
Public Function GetPOStatus_dashBoard() As IHttpActionResult
Dim strSQL0 =
<Suparuck>
DECLARE @budgetYear VARCHAR(max);
SET @budgetYear = (
SELECT TOP (1) BUDGET.year
FROM BDG_TYPE
INNER JOIN BUDGET ON BDG_TYPE.BDGCODE = BUDGET.type
WHERE BUDGET.BudgetOpen = 'O'
);
--SELECT @budgetYear;
IF @budgetYear IS NOT NULL
BEGIN
SELECT TblPOStatus.StatusCode,
TblPOStatus.StatusName,
FORMAT(COUNT(MS_PO.PO_NO), 'N0') AS Items,
FORMAT(SUM(TOTAL_COST), 'N2') AS Total
FROM MS_PO
INNER JOIN TblPOStatus ON TblPOStatus.StatusCode = MS_PO.STATUS
GROUP BY TblPOStatus.StatusCode,
TblPOStatus.StatusName,
LEFT(PO_NO, 2)
HAVING LEFT(PO_NO, 2) = RIGHT(@budgetYear, 2)
ORDER BY TblPOStatus.StatusCode;
END
--ELSE
--BEGIN
-- SELECT TblPOStatus.StatusCode,
-- TblPOStatus.StatusName,
-- COUNT(MS_PO.PO_NO) AS Items,
-- LEFT(PO_NO, 2) AS BudgetYear,
-- SUM(TOTAL_COST) AS Total
-- FROM MS_PO
-- INNER JOIN TblPOStatus ON TblPOStatus.StatusCode = MS_PO.STATUS
-- GROUP BY TblPOStatus.StatusCode,
-- TblPOStatus.StatusName,
-- LEFT(PO_NO, 2)
-- HAVING LEFT(PO_NO, 2) = RIGHT(@budgetYear, 2)
-- ORDER BY TblPOStatus.StatusCode;
--END
</Suparuck>
Dim dt = Sexy_DatabaseVB.DbHelper.Query(strSQL0.Value)
If dt.Rows.Count = 0 Then 'ไม่ได้เปิดงบประมาณ BUDGET.BudgetOpen
'TODO
End If
Return Ok(dt.AsEnumerable().ToList())
End Function
' มูลค่ายาและเวชภัณฑ์คงคลัง ณ คลังยาย่อย
<HttpGet>
<Route("api/extDashboard/SubStockValue_dashBoard")>
Public Function GetSubStockValue_dashBoard() As IHttpActionResult
Dim strSQL0 =
<Suparuck>
SELECT DEPT_ID.DEPT_NAME, FORMAT(SUM(TOTAL_VALUE), 'N2') AS TotalAmount
FROM SUBSTOCK INNER JOIN DEPT_ID
ON DEPT_ID.DEPT_ID = SUBSTOCK.DEPT_ID AND TOTAL_VALUE IS NOT NULL
GROUP BY DEPT_NAME ORDER BY SUM(TOTAL_VALUE) DESC
</Suparuck>
Dim dt = Sexy_DatabaseVB.DbHelper.Query(strSQL0.Value)
'If dt.Rows.Count = 0 Then 'ไม่ได้เปิดงบประมาณ BUDGET.BudgetOpen
' 'TODO
'End If
Return Ok(dt.AsEnumerable().ToList())
End Function
End Class
End Namespace
ปล. ผมคิดแบบนี้ พ่อแม่ของคุณ ครูบาอาจารย์ของพวกคุณ อย่างน้อยฯฯ อายุน้อยกว่าผม
|
 |
 |
 |
 |
Date :
2019-08-06 10:47:48 |
By :
หน้าฮี |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ขอบคุณ คุณน้าด้านบนทั้งสองด้วยนะครับ ขอบคุณที่ช่วยแชร์ความรู้ ขอให้ความดีที่ท่านให้ความรู้แก่ผู้อื่น กลับไปยังตัวท่านนะครับ ตอนนี้ผมทำได้แล้วครับ ขอบคุณมากครับ
|
 |
 |
 |
 |
Date :
2019-08-08 09:23:00 |
By :
champ_boyzz |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
|
|