سلام شباب محتاج مساعدة إذا أمكن - aloush - 03-07-18
سلام شباب كيفكن في عندي سورس كود برنامج محاسبة تقريبا كامل حاولت انو حولو للغة السي شارب ولكن في ايرور بيطلعلي بس افتح الفاتورة و الايرور عبارة عن فونكشن معمول بالسيكوال سيرفر عن تفقيت الأرقام الى احرف
public DataTable show_bill1(int id_, string PARENT_)
{
CON = new CLS_CON();
DT = new DataTable();
DT.Clear();
// 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
DT = CON.SELECT_TXT("SELECT dbo.BILL1.GUID, dbo.BILL1.PARENT_GUID, dbo.BILL1.NUMBER, dbo.BILL1.DELETE_NUM, dbo.BILL1.CUST, dbo.BILL1.Date_Delete, dbo.BILL1.NOTE, dbo.BILL1.STORE_GUID, dbo.STORE.NAME AS Expr2, dbo.BILL1.DATE, dbo.BILL1.disc, dbo.BILL1.type_pay, dbo.BILL1.GUID_CURRENCY, dbo.CURRENCY.NAME AS Expr3, dbo.BILL1.CURRENCY_VAL, dbo.BILL1.EXTEA, dbo.BILL1.type_dis, dbo.BILL1.disc_rate, dbo.BILL1.CUSTOMER_NAME, dbo.BILL1.CUSTOMER_MOBILE1, dbo.BILL1.CUSTOMER_MOBILE2, dbo.BILL1.CUSTOMER_COMPANY, dbo.BILL1.CUSTOMER_STREET, dbo.BILL1.CUSTOMER_PHON, dbo.BILL1.CUSTOMER_EMAIL, dbo.BILL1.PAY_1_PAY, dbo.BILL1.PAY_1_GUID, dbo.BILL1.TRAN_POS_GUID, dbo.BILL1.TRAN_POS_PAY, dbo.BILL1.VAT, (select [dbo].FNTafkeet(BILL1.total,BILL1.GUID_CURRENCY)) FROM dbo.BILL1 INNER JOIN dbo.STORE ON dbo.BILL1.STORE_GUID = dbo.STORE.GUID INNER JOIN dbo.CURRENCY ON dbo.BILL1.GUID_CURRENCY = dbo.CURRENCY.GUID WHERE (dbo.BILL1.DELETE_NUM = 0)and(BILL1.PARENT_GUID='" + PARENT_ + "')and(BILL1.NUMBER=" + id_ + ")");
return DT;
}
RE: سلام شباب محتاج مساعدة إذا أمكن - elgokr - 03-07-18
الخطاء بالرسالة اتى من هذا الجزء
كود :
(select [dbo].FNTafkeet(BILL1.total,BILL1.GUID_CURRENCY))
ما يوضح من الكود ان
FNTafkeet
اسم جدول بقاعدة البيانات
ولكن ما تتحدث عنه انه function
جرب ازالة هذا الجزء
والله اعلم اذا كان سيعمل معك تمام
لان السورس غير مرفق كما ان المسميات تخمين
بحيث ان FNTafkeet فى هذا المكان كما انت تقوم به
لان من وجهة نظرة على ما استوعبه من الكود انه يجب ان يكون بهذا الشكل
كود :
FNTafkeet(dbo.BILL1.total) AS Expr4,
FNTafkeet(dbo.BILL1.GUID_CURRENCY) AS Expr5
والله اعلم لان بسبب لا اعلم الى ماذا تشير هذا المسمى
وما اقترحته هو مجرد تخمين
ويفضل ازالة هذه الجملة
حيث وجودها كما عدمه
وانت تستخدمها فى بعض الاعمدة والبعض الاخر لا
جرب كده وباذن الله الامور هتكون تمام معاك
تحياتى لك
وتمنياتى لك التوفيق
RE: سلام شباب محتاج مساعدة إذا أمكن - aloush - 03-07-18
(03-07-18, 06:00 PM)elgokr كتب : الخطاء بالرسالة اتى من هذا الجزء
كود :
(select [dbo].FNTafkeet(BILL1.total,BILL1.GUID_CURRENCY))
ما يوضح من الكود ان
FNTafkeet
اسم جدول بقاعدة البيانات
ولكن ما تتحدث عنه انه function
جرب ازالة هذا الجزء
والله اعلم اذا كان سيعمل معك تمام
لان السورس غير مرفق كما ان المسميات تخمين
بحيث ان FNTafkeet فى هذا المكان كما انت تقوم به
لان من وجهة نظرة على ما استوعبه من الكود انه يجب ان يكون بهذا الشكل
كود :
FNTafkeet(dbo.BILL1.total) AS Expr4,
FNTafkeet(dbo.BILL1.GUID_CURRENCY) AS Expr5
والله اعلم لان بسبب لا اعلم الى ماذا تشير هذا المسمى
وما اقترحته هو مجرد تخمين
ويفضل ازالة هذه الجملة
حيث وجودها كما عدمه
وانت تستخدمها فى بعض الاعمدة والبعض الاخر لا
جرب كده وباذن الله الامور هتكون تمام معاك
تحياتى لك
وتمنياتى لك التوفيق
شكرا اخي بس ما مشي الحال بس بالنسبة للاستعلام لما حطه داخل السيكوال يعمل
RE: سلام شباب محتاج مساعدة إذا أمكن - sendbad100 - 03-07-18
السلام عليكم
انتبه اخي الكرم
للحروف السي شارب يختلف فيها الحرف الكبير عن الصغير
A يختلف عن a.
حبيت اذكرك ربما تساعد
RE: سلام شباب محتاج مساعدة إذا أمكن - elgokr - 03-07-18
(03-07-18, 09:08 PM)aloush كتب : شكرا اخي بس ما مشي الحال بس بالنسبة للاستعلام لما حطه داخل السيكوال يعمل
الشكر لله اخى الحبيب
يعمل مع كود الاستعلام عند التطبيق فى قاعدة البيانات
لانك تستخدم الكود بدون اى تمويهات للقيم
كما سبق ووضحت ان يجب عليك حذف
لاحظ هنا اخى فى الصورة لكل جزء مشار عليه بالاحمر
يفضل ارفاق المشروع حتى يتم التعديل على الكود
ومن ثم توضيح لك اين كان اسباب الاخطاء
تحياتى لك
RE: سلام شباب محتاج مساعدة إذا أمكن - Done - 03-07-18
الخطأ هنا
PHP كود :
(select [dbo].FNTafkeet(BILL1.total,BILL1.GUID_CURRENCY))
حيث تم اعتبار [dbo] على أنه إسم جدول
RE: سلام شباب محتاج مساعدة إذا أمكن - aloush - 03-07-18
(03-07-18, 09:42 PM)elgokr كتب : (03-07-18, 09:08 PM)aloush كتب : شكرا اخي بس ما مشي الحال بس بالنسبة للاستعلام لما حطه داخل السيكوال يعمل
الشكر لله اخى الحبيب
يعمل مع كود الاستعلام عند التطبيق فى قاعدة البيانات
لانك تستخدم الكود بدون اى تمويهات للقيم
كما سبق ووضحت ان يجب عليك حذف
لاحظ هنا اخى فى الصورة لكل جزء مشار عليه بالاحمر
يفضل ارفاق المشروع حتى يتم التعديل على الكود
ومن ثم توضيح لك اين كان اسباب الاخطاء
تحياتى لك
أخي هذا المشروع رفعته لك https://drive.google.com/open?id=1xljuUdoeCL8py4fGb8J0l49I84Ye5FKN
اخي في فيديو يوضح كيفية استخدام هذه الفكرة و بالاضافة انو الفونكشن داخل السيكوال بيطلب 2 براميتر و بالكود بلغة الفيجوال بيسك كان شغال و حتى بالسيكوال لما حط الاستعلام هذا بيطلعلي النتيجة
أخي ElGoKR هذا فونكشن الذي استعمل في السيكوال :
كود :
ALTER FUNCTION [dbo].[FNTafkeet] (@TheNo numeric(18,2),@guidcurrency uniqueidentifier )
returns varchar(1000) as
begin
declare @name_CURRENCY nvarchar(MAX)
set @name_CURRENCY=(select NAME from CURRENCY where guid= @guidcurrency)
declare @PARENT_CURRENCY nvarchar(MAX)
set @PARENT_CURRENCY=(select PART_NAME from CURRENCY where guid= @guidcurrency)
if @TheNo <= 0 return 'zero'
declare @TheNoAfterReplicate varchar(15)
set @TheNoAfterReplicate = right(replicate('0',15)+cast(floor(@TheNo) as varchar(15)),15)
declare @ComWithWord varchar(1000),@TheNoWithDecimal as varchar(400),@ThreeWords as int
set @ThreeWords=0
set @ComWithWord = ' فقط '
declare @Tafket TABLE (num int, NoName varchar(100))
INSERT INTO @Tafket VALUES (0,'')
INSERT INTO @Tafket VALUES (1,'واحد')
INSERT INTO @Tafket VALUES (2,'اثنان')
INSERT INTO @Tafket VALUES (3,'ثلاثة')
INSERT INTO @Tafket VALUES (4,'اربعة')
INSERT INTO @Tafket VALUES (5,'خمسة')
INSERT INTO @Tafket VALUES (6,'ستة')
INSERT INTO @Tafket VALUES (7,'سبعة')
INSERT INTO @Tafket VALUES (8,'ثمانية')
INSERT INTO @Tafket VALUES (9,'تسعة')
INSERT INTO @Tafket VALUES (10,'عشرة')
INSERT INTO @Tafket VALUES (11,'احدى عشر')
INSERT INTO @Tafket VALUES (12,'اثنى عشر')
INSERT INTO @Tafket VALUES (13,'ثلاثة عشر')
INSERT INTO @Tafket VALUES (14,'اربعة عشر')
INSERT INTO @Tafket VALUES (15,'خمسة عشر')
INSERT INTO @Tafket VALUES (16,'ستة عشر')
INSERT INTO @Tafket VALUES (17,'سبعة عشر')
INSERT INTO @Tafket VALUES (18,'ثمانية عشر')
INSERT INTO @Tafket VALUES (19,'تسعة عشر')
INSERT INTO @Tafket VALUES (20,'عشرون')
INSERT INTO @Tafket VALUES (30,'ثلاثون')
INSERT INTO @Tafket VALUES (40,'اربعون')
INSERT INTO @Tafket VALUES (50,'خمسون')
INSERT INTO @Tafket VALUES (60,'ستون')
INSERT INTO @Tafket VALUES (70,'سبعون')
INSERT INTO @Tafket VALUES (80,'ثمانون')
INSERT INTO @Tafket VALUES (90,'تسعون')
INSERT INTO @Tafket VALUES (100,'مائة')
INSERT INTO @Tafket VALUES (200,'مائتان')
INSERT INTO @Tafket VALUES (300,'ثلاثمائة')
INSERT INTO @Tafket VALUES (400,'أربعمائة')
INSERT INTO @Tafket VALUES (500,'خمسمائة')
INSERT INTO @Tafket VALUES (600,'ستمائة')
INSERT INTO @Tafket VALUES (700,'سبعمائة')
INSERT INTO @Tafket VALUES (800,'ثمانمائة')
INSERT INTO @Tafket VALUES (900,'تسعمائة')
INSERT INTO @Tafket SELECT FirstN.num+LasteN.num,LasteN.NoName+' و '+FirstN.NoName
FROM (SELECT * FROM @Tafket WHERE num BETWEEN 20 AND 90) FirstN CROSS JOIN (SELECT * FROM @Tafket WHERE num BETWEEN 1 AND 9) LasteN
INSERT INTO @Tafket SELECT FirstN.num+LasteN.num,FirstN.NoName+' و '+LasteN.NoName
FROM (SELECT * FROM @Tafket WHERE num BETWEEN 100 AND 900) FirstN CROSS JOIN (SELECT * FROM @Tafket WHERE num BETWEEN 1 AND 99) LasteN
if left(@TheNoAfterReplicate,3) > 0
set @ComWithWord = @ComWithWord + ISNULL((select NoName from @Tafket where num=left(@TheNoAfterReplicate,3)),'')+ ' ترليون'
if left(right(@TheNoAfterReplicate,12),3) > 0 and left(@TheNoAfterReplicate,3) > 0
set @ComWithWord=@ComWithWord+ ' و '
if left(right(@TheNoAfterReplicate,12),3) > 0
set @ComWithWord = @ComWithWord +ISNULL((select NoName from @Tafket where num=left(right(@TheNoAfterReplicate,12),3)),'') + ' بليون'
if left(right(@TheNoAfterReplicate,9),3) > 0
begin
set @ComWithWord=@ComWithWord + case when @TheNo>999000000 then ' و' else '' end
set @ThreeWords=left(right(@TheNoAfterReplicate,9),3)
set @ComWithWord = @ComWithWord + ISNULL((select case when @ThreeWords>2 then NoName end from @Tafket where num=left(right(@TheNoAfterReplicate,9),3)),'') + case when @ThreeWords=2 then ' مليونان' when @ThreeWords between 3 and 10 then ' ملايين' else ' مليون' end
end
if left(right(@TheNoAfterReplicate,6),3) > 0
begin
set @ComWithWord=@ComWithWord + case when @TheNo>999000 then ' و' else '' end
set @ThreeWords=left(right(@TheNoAfterReplicate,6),3)
set @ComWithWord = @ComWithWord + ISNULL((select case when @ThreeWords>2 then NoName end from @Tafket where num=left(right(@TheNoAfterReplicate,6),3)),'')+ case when @ThreeWords=2 then ' الفان' when @ThreeWords between 3 and 10 then ' الاف' else ' الف' end
end
if right(@TheNoAfterReplicate,3) > 0
begin
if round(@TheNo,0)>999
begin
set @ComWithWord=@ComWithWord + ' و'
end
end
set @ThreeWords=right(@TheNoAfterReplicate,2)
set @ComWithWord = @ComWithWord + ISNULL((select NoName from @Tafket where num=right(@TheNoAfterReplicate,3)),'')
-- set @ComWithWord = @ComWithWord + ISNULL((select NoName from @Tafket where @ThreeWords>2 AND num=right(@TheNoAfterReplicate,3)),'')
--set @ComWithWord = @ComWithWord +' '+ case when @ThreeWords=2 then ' جنيهان' when @ThreeWords between 3 and 10 then ' جنيهات' else ' جنيه' end
set @ComWithWord = @ComWithWord +' '+ case when @ThreeWords=2 then '' when @ThreeWords between 3 and 10 then '' else '' end
if right(rtrim(@ComWithWord),1)=',' set @ComWithWord = substring(@ComWithWord,1,len(@ComWithWord)-1)
if right(@TheNo,len(@TheNo)-charindex('.',@TheNo)) >0 and charindex('.',@TheNo)<>0
begin
set @ThreeWords=left(right(round(@TheNo,2),2),2)
SELECT @TheNoWithDecimal= ' و' + ISNULL((SELECT NoName from @Tafket where num=left(right(round(@TheNo,2),2),2) AND @ThreeWords >2),'')
--set @TheNoWithDecimal = @TheNoWithDecimal+ case when @ThreeWords=2 then ' قرشان' when @ThreeWords between 3 and 10 then ' قروش' else ' قرش' end
set @TheNoWithDecimal = @TheNoWithDecimal+ case when @ThreeWords=2 then ' '+@PARENT_CURRENCY when @ThreeWords between 3 and 10 then ' '+@PARENT_CURRENCY else ' '+@PARENT_CURRENCY end
set @ComWithWord = @ComWithWord +' '+ @TheNoWithDecimal
END
set @ComWithWord = @ComWithWord + ' لا غير'+ ' (' +@name_CURRENCY+')'
return rtrim(@ComWithWord)
end
RE: سلام شباب محتاج مساعدة إذا أمكن - elgokr - 03-07-18
اين قاعدة البيانات
واين الملف خاص بالاتصال (conn.txt)
وما اسم الفورم الذى به هذا الكود ؟؟
RE: سلام شباب محتاج مساعدة إذا أمكن - aloush - 03-07-18
lملف الاتصال بمجلد البين اسمه AccountSystem قم بنقله الى ال D:\ و الفورم هي فاتورة البيع اسمها : FrmBill موجودة بمجلد ال PL.ITEMS
RE: سلام شباب محتاج مساعدة إذا أمكن - elgokr - 04-07-18
بعد مراجعة الملف اتضح ان الخلل فى
يجب مراجعة هذا الجملة
حيث ان المشروع باكمله لا يوجد به اى ما يدل
على هذا الاسم الا فى ملف CLS_BILL.cs
فى السطر الخاص بالاستعلام
كما ان الكود الذى قمت بوضعه بالرد السابق
خاص استخدام FUNCTION
فالكود غير صحيح ويعطي خلل فى Sql Server
جرب ان تحذف هذا من كود الاستعلام
كود :
(select FNTafkeet(BILL1.total),(BILL1.GUID_CURRENCY))
وجرب ما يسعرضه من نتائج
ومن ثم عاود معالجة نقصان الـ FNTafkeet
ملحوظة: الجدول الخاص بـ BILL1 لا يحتوى على اى بيانات
عكس جدول BILL2 يحتوى على بيانات
لان فى كود الاستعلام ينتهى بـ
كود :
and(BILL1.PARENT_GUID='" + PARENT_ + "')and(BILL1.NUMBER=" + id_ + ")
حتى تقوم بالانتباه لذلك
راجع ذلك
وابشر بما تم معاك
تحياتى لك
وتمنياتى لك التوفيق
|