تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
كيف يمكننى تفقيط الأرقام فى تقرير كريستال ريبورت ؟
#1
السلام عليكم ورحمة الله وبركاته

هل من شرح او مثال للتفقيط بالجنيه المصرى فى تقارير كريستال ريبورت ؟
الرد }}}}
تم الشكر بواسطة:
#2
[COLOR="#800000"]السلام عليكم

تفضل انظر هذا الموضوع للخ mero5000 مشكورا http://vb4arb.com/vb/showthread.php?979-...1%DE%C7%E3

بالتوفق ان شاءالله[/COLOR]
الرد }}}}
تم الشكر بواسطة:
#3
sajad كتب :[COLOR="#800000"]السلام عليكم

تفضل انظر هذا الموضوع للخ mero5000 مشكورا http://vb4arb.com/vb/showthread.php?979-...1%DE%C7%E3

بالتوفق ان شاءالله[/COLOR]

السلام عليكم

جزيل شكرى لك اخى الفاضل

ولكن من فضلك استحملنى لأننى مبتدىء كنت قد قراءت موضوع mero5000 من قبل ولكن المشكلة فى

التقرير يتم تعبئته عن طريق بارمتر يحتوى اسم الفرع ويظهر التقرير بعملاء هذا الفرع فقط وهناك 2 تكست فى التقرير واحد به الرقم والأخر هو ما اريد تفقيط الرقم فيه ؟

فكيف يمككنى تفقيط الرقم عن طريق الملف السابق داخل تكست بوكس معين بالتقرير وان امكن مثال صغير للتوضيح ؟ او هل من طريقة أخرى لفعل ذلك من داخل الكريستال ريبورت نفسه ؟
الرد }}}}
تم الشكر بواسطة:
#4
[COLOR="#800000"]السلام عليكم اخي

ماذا تقصد بالملف السابق؟ لم افهم ذك

[/COLOR]
الرد }}}}
تم الشكر بواسطة:
#5
sajad كتب :[COLOR="#800000"]السلام عليكم اخي

ماذا تقصد بالملف السابق؟ لم افهم ذك

[/COLOR]

اقصد اننى لا اعرف كيفك يمكننى استخدام ملف dll داخل التقرير
الرد }}}}
تم الشكر بواسطة:
#6
[COLOR="#800000"]
اخي العزيز لا يمكن اضافة ملف dll الى التقرير بل يمكن اضافته الى المشروع هكذا: اضف الملفات الى مجلد الDebug ومن ثم

افتح مشروع جديد
من قائمة project >>> add reference


ستظهر لك نافذة .. من التبويب Browse


اختار ملف dll الى وضعناه فى مسار المشروع بمجلد Debug
ثم اضغط ok

ولتبع الشرح الموجود في موضوع الاخ mero5000 حتى تعرف كيفية استخدام دوال التفقيط الموجودة في ملف الdll

بالتوفيق ان شاءالله[/COLOR]
الرد }}}}
تم الشكر بواسطة:
#7
sajad كتب :[b][COLOR="#800000"]
اخي العزيز لا يمكن اضافة ملف dll الى التقرير بل يمكن اضافته الى المشروع هكذا: اضف الملفات الى مجلد الDebug ومن ثم

افتح مشروع جديد
من قائمة project >>> add reference


ستظهر لك نافذة .. من التبويب Browse


اختار ملف dll الى وضعناه فى مسار المشروع بمجلد Debug
ثم اضغط ok

ولتبع الشرح الموجود في موضوع الاخ mero5000 حتى تعرف كيفية استخدام دوال التفقيط الموجودة في ملف الdll

بالتوفيق ان شاءالله[/COLOR]

جزيل الشكر لك اخى الفاضل ولكن طريقة الأخ mero5000 لن تفى بالغرض المطلوب لى وان كان يمكن الإستفادة منها فى مواضع أخرى

وجدت دالة SQL تقوم بالتفقيط وهى تعمل 100% ولكن مشكلة هى عدم معرفتى كيفية إستدعائها داخل التقرير ؟؟

كود :
USE [Emplo]
GO
/****** Object:  UserDefinedFunction [dbo].[Tafkeet]    Script Date: 10/02/2013 01:05:33 ص ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

ALTER FUNCTION [dbo].[Tafkeet] (@TheNo  numeric(18,2))
returns varchar(1000) as
begin
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
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 @ComWithWord = @ComWithWord + @TheNoWithDecimal
END
set @ComWithWord = @ComWithWord + ' مصرى لا غير'
return  rtrim(@ComWithWord)
end

وعند بحثى عن احد الحلول الممكنة وجدت الحل التالى

إقتباس :أما بخصوص استخدامها داخل التقرير فستقوم بكتابة الجملة بالشكل التالي في سكريبت التقرير


Select dbo.Tafkeet(اسم الحقل)

وقمت بعمل الأتى من داتا اكسبرت قمت بإدراج الوظيفة الخاصة بالتفقيط فى التقرير ووجدتها فى ستورد بروسيدجر بالرغم من انها فى الSQL موجودة بالوظائف ووجدت ان الكريستال ريبورت قام بإدراج البارامتر خاص بها تلقائيا وهو @TheNo ثم قمت بالدخول إلى الفورميولا وكتبت السطر التالى:

كود :
{?@TheNo}=Select dbo.Tafkeet({Alex_Mid.tot_wt})

ولكن تظهر الرسالة التالية عند الحفظ ؟

[ATTACH=CONFIG]1676[/ATTACH]

عذرا لجهلى اخى الفاضل ولكن ارجوا منك مساعدتى ولك جزيل الشكر
[/b]


الملفات المرفقة صورة/صور
   
الرد }}}}
تم الشكر بواسطة:
#8
السلام عليكم

طيب اخي انظر هذا الموضوع لعلك تجد فيها ضالتك http://vb4arb.com/vb/showthread.php?2594...1%DE%C7%E3
للاخ محمد اسامة جندية
الرد }}}}
تم الشكر بواسطة:
#9
[COLOR="#800000"]السلام عليكم

هذه مكتبة جاهزة من Microsoft http://www.microsoft.com/en-us/download/...x?id=18970 لتفقيط الارقام

[/COLOR]


ثم انظر هذ الموضوع http://vb4arb.com/vb/showthread.php?2022...%DD%ED-Sql طريقة عمل تفقيط للأرقام في Sql

للاخ AhmedEssawy
الرد }}}}
تم الشكر بواسطة:
#10
ان كان ينفعك كودvb لهذا الغرض فهو سهل وبسيط
ويؤدى لك تفقيط أى رقم
الرد }}}}
تم الشكر بواسطة:


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  كيفية جمع اكثر من field في الكريستال ريبورت نسيم 9 161 03-12-16, 10:15 PM
آخر رد: محمود بكرى
  ماهي الطريقة لعرض بيانات مشفره في تقرير؟ قناص المدينة 0 53 12-11-16, 06:29 PM
آخر رد: قناص المدينة
  كيف يمكننى جعل مربع النص يحتوى الارقام الكبيرة فى الكريستال ريبورت محمود بكرى 1 58 06-11-16, 11:14 AM
آخر رد: محمود بكرى
  الطباعة بواسطة الكريستال ريبورت باستخدام الاجراء المخزن حماده السعيد 7 888 10-10-16, 10:34 AM
آخر رد: محمد فاوي
  مشكلة فى تسطيب كريستال ريبورت 2013 ل vb2010 abdelsalam 1 223 16-08-16, 06:14 PM
آخر رد: Kian Tech
  [سؤال] كيف يمكننى طباعة كل الفواتير مصممه بالكريستال ريبورت وvb.net? محمود بكرى 4 300 21-06-16, 11:46 PM
آخر رد: محمود بكرى
  هل الكريستال ريبورت متواجد بنسختي طالب 22 0 118 18-06-16, 08:41 AM
آخر رد: طالب 22
  [VB.NET] إنشاء تقرير Crystal Report من أكثر من جدول saad.abu 0 251 06-06-16, 11:43 PM
آخر رد: saad.abu
  عاجل ومهم - مشكلة في الكرستال ريبورت بسام عماد 1 205 06-06-16, 02:05 PM
آخر رد: Adrees
  [سؤال] كيفية وضع الباركود داخل الكريستال ريبورت احمد عبد الحكيم 8 884 01-06-16, 09:02 PM
آخر رد: علي كعبي

التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم