بتاريخ: 4 يناير 201115 سنة comment_206729 هل يمكن تعديل هذا الكود بشكل أكثر ديناميكيه ومرونه لتقليل الكود وامكانيه اضافه متغيرات مستقبليه هل يمكن كتابه كود حساب التكلفه بشكل ديناميكي ومرن اكثرلدينا جدولينالجدول الاولROOMS DESC ROOMS :ROOM_ID --PK NO_OF_BEDS DEGREE COST_BED COST_DAY PUSSY_B PUSSY_R الجدول الثانيSC_RO -- SCHEDUL_ROOMSDESC SC_ROROOM_ID --FK NO_OF_BEDS START_DATE END_DATE ST_OF_PAT P_ID اذاتحوي الفورمMASTER-DETAIL FORMوهناك زر يضغط عليه ليتم حساب التكلفه في TEXT_ITEMاسمهCOST DECLARE COB VARCHAR2(30); COD VARCHAR2(30); COST NUMBER(6); BEGIN COB := :ROOMS.COST_BED ; COD := :ROOMS.COST_DAY ; COST := :DB_NO.COST ; --التكلفه المطلوبه من العميل ل 1 يوم IF :SC_RO.END_DATE - :SC_RO.START_DATE = 1 THEN IF :SC_RO.NO_OF_BEDS = 1 THEN COST := COST+ COB; ELSE IF :SC_RO.NO_OF_BEDS = 2 THEN COST := COST+ COB*2; ELSE IF :SC_RO.NO_OF_BEDS = 3 THEN COST := COST+ COB*3; ELSE IF :SC_RO.NO_OF_BEDS = 4 THEN COST := COST+ COB*4; ELSE IF :SC_RO.NO_OF_BEDS = 5 THEN COST := COST+ COB*5; ELSE MESSAGE( 'THERE ARE NO MORE BEDS THAN 5' ); MESSAGE( 'THERE ARE NO MORE BEDS THAN 5' ); END IF; END IF; --================================= --التكلفه المطلوبه من العميل ل 2 يوم IF :SC_RO.END_DATE - :SC_RO.START_DATE = 2 THEN COB := COB*2 IF :SC_RO.NO_OF_BEDS = 1 THEN COST := COST+ COB; ELSE IF :SC_RO.NO_OF_BEDS = 2 THEN COST := COST+ COB*2; ELSE IF :SC_RO.NO_OF_BEDS = 3 THEN COST := COST+ COB*3; ELSE IF :SC_RO.NO_OF_BEDS = 4 THEN COST := COST+ COB*4; ELSE IF :SC_RO.NO_OF_BEDS = 5 THEN COST := COST+ COB*5; ELSE MESSAGE( 'THERE ARE NO MORE BEDS THAN 5' ); MESSAGE( 'THERE ARE NO MORE BEDS THAN 5' ); END IF; END IF; --================================= --التكلفه المطلوبه من العميل ل 3 يوم IF :SC_RO.END_DATE - :SC_RO.START_DATE = 3 THEN COB := COB*3 IF :SC_RO.NO_OF_BEDS = 1 THEN COST := COST+ COB; ELSE IF :SC_RO.NO_OF_BEDS = 2 THEN COST := COST+ COB*2; ELSE IF :SC_RO.NO_OF_BEDS = 3 THEN COST := COST+ COB*3; ELSE IF :SC_RO.NO_OF_BEDS = 4 THEN COST := COST+ COB*4; ELSE IF :SC_RO.NO_OF_BEDS = 5 THEN COST := COST+ COB*5; ELSE MESSAGE( 'THERE ARE NO MORE BEDS THAN 5' ); MESSAGE( 'THERE ARE NO MORE BEDS THAN 5' ); END IF; END IF; --================================= --التكلفه المطلوبه من العميل ل 4 يوم IF :SC_RO.END_DATE - :SC_RO.START_DATE = 4 THEN COB := COB*4 IF :SC_RO.NO_OF_BEDS = 1 THEN COST := COST+ COB; ELSE IF :SC_RO.NO_OF_BEDS = 2 THEN COST := COST+ COB*2; ELSE IF :SC_RO.NO_OF_BEDS = 3 THEN COST := COST+ COB*3; ELSE IF :SC_RO.NO_OF_BEDS = 4 THEN COST := COST+ COB*4; ELSE IF :SC_RO.NO_OF_BEDS = 5 THEN COST := COST+ COB*5; ELSE MESSAGE( 'THERE ARE NO MORE BEDS THAN 5' ); MESSAGE( 'THERE ARE NO MORE BEDS THAN 5' ); END IF; END IF; --================================= ----التكلفه المطلوبه من العميل ل 5 يوم IF :SC_RO.END_DATE - :SC_RO.START_DATE = 5 THEN COB := COB*5 IF :SC_RO.NO_OF_BEDS = 1 THEN COST := COST+ COB; ELSE IF :SC_RO.NO_OF_BEDS = 2 THEN COST := COST+ COB*2; ELSE IF :SC_RO.NO_OF_BEDS = 3 THEN COST := COST+ COB*3; ELSE IF :SC_RO.NO_OF_BEDS = 4 THEN COST := COST+ COB*4; ELSE IF :SC_RO.NO_OF_BEDS = 5 THEN COST := COST+ COB*5; ELSE MESSAGE( 'THERE ARE NO MORE BEDS THAN 5' ); MESSAGE( 'THERE ARE NO MORE BEDS THAN 5' ); END IF; END IF; --================================= END; وماهو سبب ظهور errorعندما اعمل للفورمrunيمكن تكميل الفورم من هناhttp://www.2shared.c...OM_BOOKING.html تقديم بلاغ
بتاريخ: 5 يناير 201115 سنة comment_206744 السلام عليكمطبعا يمكن تقليل هذا الكود بطريقة تانيةبس انا معرفتش افتح الفورم لانها على 10 و انا شغال 6عشان كدا مش عارف اشوف سبب المشكلةان شاء الله هقولك وابعتلك الكود الجديد فى ملف نصىيفضل ارسال ايميلك عشان ابعتلك عليه الملفمعكم ولكم نتواصلم احمد تقديم بلاغ
بتاريخ: 5 يناير 201115 سنة comment_206749 السلام عليكم --------اخى اذا اردت ان يكون الكود اكثر ديناميكية انصحك تعمل function بتاخد رقم العميل وتاريخ البداية وتاريخ النهاية وترجع التكلفة . تقديم بلاغ
بتاريخ: 5 يناير 201115 سنة comment_206752 ممكن ترفع الفورمة على سيرفر تانى .. او على المنتدى تقديم بلاغ
بتاريخ: 5 يناير 201115 سنة comment_206782 جرب يا اخى كود ال booking بعد التعديل يارب اكون افدتكاختك شيرين DECLARE COB VARCHAR2(30); COD VARCHAR2(30); COST NUMBER(6); BEGIN COB := :ROOMS.COST_BED ; COD := :ROOMS.COST_DAY ; COST := :DB_NO.COST ; COB:=COB*(:SC_RO.END_DATE - :SC_RO.START_DATE ); IF :SC_RO.NO_OF_BEDS<=5 THEN COST:=COST+COB*:SC_RO.NO_OF_BEDS; ELSE MESSAGE( 'THERE ARE NO MORE BEDS THAN 5' ); MESSAGE( 'THERE ARE NO MORE BEDS THAN 5' ); END IF; END; ضع الكود فى زر ال booking تقديم بلاغ
انضم إلى المناقشة
يمكنك المشاركة الآن والتسجيل لاحقاً. إذا كان لديك حساب, سجل دخولك الآن لتقوم بالمشاركة من خلال حسابك.