![]() |
|
السلام عليكم - نسخة قابلة للطباعة +- منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب (http://vb4arb.com/vb) +-- قسم : قسم لغة الفيجوال بيسك VB.NET (http://vb4arb.com/vb/forumdisplay.php?fid=182) +--- قسم : قسم اسئلة VB.NET (http://vb4arb.com/vb/forumdisplay.php?fid=183) +--- الموضوع : السلام عليكم (/showthread.php?tid=47997) |
السلام عليكم - رشاد حبيب - 03-03-24 عندي مشكله في استخدام فيجوال بيسك 2017 عندي قاعدة بيانات SQLite واعمل علي برنامج جرد المخازن مشتريات ومبيعات ومرتجع مورد ومرتجع زبون وعندي هذا الكود بيظهر عدد المشتريات فقط ويتجاهل عدد المبيعات وعدد المرتجعات اريد من الاخواه الافاضل المساعدة في حل هذه المشكله ولكم جزيل الشكر هذا الكود يعرض نتيجه qty فقط وباقي الحقول لا يتم عرضاها مثل qtya,qtyb,qtyc المشكله في هذا الجزء اذا كانت FROM Invoice WHERE Qty IS NOT NULL AND ItmName IS NOT NULL AND ItmName <> '' GROUP BY ItmName, code ORDER BY ItmName" اذا كانت FROM Invoice WHERE Qty يعرض بيانات Qty واذا كانت FROM Invoice WHERE Qtya يعرض بيانات Qtya وهكذا اريد حل هذه المشكله مع جزيل الشكر Imports System.Data.SQLite Public Class ForGARD Private Sub ForGARD_Load(sender As Object, e As EventArgs) Handles MyBase.Load Using conn As SQLiteConnection = DatabaseConnection.GetConnection() conn.Open() Dim query As String = "SELECT ItmName AS أسم_الصنف, code AS كود_الصنف, SUM(Qty) AS مشتريات, SUM(Qtya) AS مبيعات, SUM(Qtyb) AS مرتجع_زبون, SUM(Qtyc) AS مرتجع_مورد, SUM(Qty) - SUM(Qtya) - SUM(Qtyc) + SUM(Qtyb) AS المخزن FROM Invoice WHERE Qty IS NOT NULL AND ItmName IS NOT NULL AND ItmName <> '' GROUP BY ItmName, code ORDER BY ItmName" Dim dt As New DataTable() Dim adapter As New SQLiteDataAdapter(query, conn) adapter.Fill(dt) For Each row As DataRow In dt.Rows Dim purchases As Integer = If(row("مشتريات") IsNot DBNull.Value, Convert.ToInt32(row("مشتريات")), 0) Dim sales As Integer = If(row("مبيعات") IsNot DBNull.Value, Convert.ToInt32(row("مبيعات")), 0) Dim customerReturns As Integer = If(row("مرتجع_زبون") IsNot DBNull.Value, Convert.ToInt32(row("مرتجع_زبون")), 0) Dim supplierReturns As Integer = If(row("مرتجع_مورد") IsNot DBNull.Value, Convert.ToInt32(row("مرتجع_مورد")), 0) row("مشتريات") = purchases row("مبيعات") = sales row("مرتجع_زبون") = customerReturns row("مرتجع_مورد") = supplierReturns row("المخزن") = purchases - sales - supplierReturns + customerReturns Next DataGridView1.DataSource = dt Dim columnWidths() As Integer = {200, 90, 90, 90, 90, 90, 90} For i As Integer = 0 To DataGridView1.Columns.Count - 1 DataGridView1.Columns(i).Width = columnWidths(i) Next End Using RE: السلام عليكم - salamandal - 11-03-24 متابع انا ايضا اتجه للعمل على Sqlite عوضا عن اكسس ولكن وجدت نفس المشكلة من حيث التعامل مع ترميز النظام 64 او 32 بت حيث يجب مراعاة هذا الجانب قبل نقل البرنامج الى اي حاسوب اخر.(لدي معالج 64 ولكن النظام 32 بت) على كل لو تكرمت بعمل مثال بسيط وطرحه هنا للاطلاع عليه والتجربة فورم واحد مع زر للاستعلام وداتاجريد للعرض وسكربت لقاعدة البيانات او قاعدة صغيرة كمثال دمت بود RE: السلام عليكم - رشاد حبيب - 12-03-24 حاضر قريبا جدا |