الانتقال إلى المحتوى
View in the app

A better way to browse. Learn more.

مجموعة مستخدمي أوراكل العربية

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

كيف يمكن منع البيانات من الظهور في حالة ان الكنترول الايتم يظهر قيمة

Featured Replies

بتاريخ:

كيف يمكن منع البيانات من الظهور في حالة ان الكنترول الايتم يظهر قيمة

 

لسهولة توضيح الموضوع أجريت مثال مصغر على 

SCOTT.EMP

CREATE TABLE SCOTT.EMP
(
  EMPNO     NUMBER(4),
  ENAME     VARCHAR2(10 BYTE),
  JOB       VARCHAR2(9 BYTE),
  MGR       NUMBER(4),
  HIREDATE  DATE,
  SAL       NUMBER(7,2),
  COMM      NUMBER(7,2),
  DEPTNO    NUMBER(2)
) 

بإختصار لدي كنترول ايتم X على الفورم 

 

ويتم ملأه في البوست كويري من خلال فانكشن في الداتا بيز 

CREATE OR REPLACE FUNCTION SCOTT.xmax (X2 NUMBER)
RETURN NUMBER AS
DD NUMBER ;
BEGIN
IF X2 >=20 THEN
DD := X2 ;
RETURN(DD);
ELSIF X2 <20 THEN
RETURN NULL;
END IF;
END ;

ويتم ملا الايتم اكس على الفورم من هذه الفانكش


POST-QUERY
:X:= XMAX(:DEPTNO);

والمطلوب هو 

 

 

 

 IF ITEM X NULL THEN FETCH DATA
 
IF ITEM X NOT NULL THEN DO NOT FETCH DATA
 
 

----------------------------------------------------------

 

حلول اجريتها لم تنجح 

اضافه عمود للجدول

FLAG      CHAR(1 BYTE)                        DEFAULT 0

وجعل القيمه الافتراضيه له 0

وملأه 1 في حالة ان الا يتم يرجع بقيمه

قبل رن الداتا في البلوك

KEY-EXEQRY

IF :X IS NULL  THEN 
UPDATE EMP SET FLAG =1
WHERE EMPNO=:EMPNO;
END IF;
SYNCHRONIZE;

GO_BLOCK('EMP');
EXECUTE_QUERY;
SYNCHRONIZE;

ومن خصائص البلوك

 

WHERE CLAUSE :  FLAG=1

 

حتى يتم عرض بيانات البلوك فقط في حاله ان الايتم خالى 

 

----------------------------------------------------------

لم تنجح التجربه 
يمكنكم تحميل المثال وبإنتظار مقترحاتكم 
 

 

 

أرفقت مثال مصغر فقط

لتوضيح

 

 

 

RESTRICT.rar

تم تعديل بواسطة omogun

بتاريخ:

 

in post query 


if :x is not null then 
null;
else
:X:= XMAX(:DEPTNO);
end if;

 

تم تعديل بواسطة Darwiesh.fci

بتاريخ:
  • كاتب الموضوع

اخي ابراهيم شاكر لإهتمامك 

لكن المشكله كما هي 

ليس هناك جديد

مازالت الريكوردات التي تحوي قيمه في العنصر X

تظهر مع البلوك يفترض ان يتم منع ظهورها

بتاريخ:

السلام عليكم ورحمة الله

لعدم إظهار سجل البيانات استخدم امر ال raise
داخل تريجير post query على مستوى البلوك
بعد وضع الشرط المناسب

بتاريخ:
  • كاتب الموضوع

كلام المهندس أمجد منطقي وصحيح ,, 

 

طبعا الفورم في المشروع الحقيقي بتأخذ وقت أكبر في الرن تايم

لانها بتعدي على كل ريكورد وتنفذ العمليه الشرطيه

 

لكن المقصود قد تم تحقيقه 

والحمد لله

 

شاكر ومقدر لحضرك مهندس أمجد

بتاريخ:

 

ooh seems that i miss understanding Case 

you can user Default where block property with this  like that 


:blockName.ItemName is null

thanks 

 

بتاريخ:

هل تم الحل ..

 

هل مهندس امجد .. جل المشكله

بتاريخ:
  • كاتب الموضوع

بالتأكيد المهندس امجد حل المشكلة كما يلي

DECLARE
Z VARCHAR(50);
BEGIN
Z := XMAX(:DEPTNO);
IF Z IS NULL THEN
:X := XMAX(:DEPTNO);
ELSIF Z IS NOT NULL THEN 
RAISE FORM_TRIGGER_FAILURE;
END IF;
END;


اخي ابراهيم شاكر لك اجتهادك لكن يلاحظ ان الفورم في الرن تايم سوف تظهر مباشرتا الخطأ المعروف

frm 40505 unable to perform query oracle forms

لان الايتم 

NON DATA BASE

 

على العموم شاكر لكم جميعا 

والحمد لله المهندس امجد حل المشكلة

 

تحياتي ,,

بتاريخ:

بارك الله فيكم

انضم إلى المناقشة

يمكنك المشاركة الآن والتسجيل لاحقاً. إذا كان لديك حساب, سجل دخولك الآن لتقوم بالمشاركة من خلال حسابك.

زائر
أضف رد على هذا الموضوع...

برجاء الإنتباه

بإستخدامك للموقع فأنت تتعهد بالموافقة على هذه البنود: سياسة الخصوصية

Account

Navigation

البحث

إعداد إشعارات المتصفح الفورية

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.