بسم الله الرحمن الرحيم
ممكن تشرحو لي كيف عمل هذي الطريقه تفصلي
ولكم جزيل الشكر
الأخ الكريم/الأخت الكريمة
السلام عليكم ورحمة الله وبركاته
مرحباً بكم في منتدى الفريق العربي للبرمجة
نود تنبيهك أن العنوان غير مناسب.
الرجاء اختيار عنوان مناسب أكثر في مواضيعك القادمة، وهذا بمثابة إشعار للأهمية.
وفي حال التكرار سيتعرض موضوعك للإغلاق والحذف!!!
قواعد المشاركة
شاكرين لكم حُسن تعاونكم
اخي العزيز
المشروع المرفق جميل جداً بالفكرة التي عمل بها
سوالي هو ماذا تريد ان تعرف بهَ
مع العلم اللغة لم اعرفها
الاسبانيه
alaaqasem كتب:الاسبانيه
تحياتي لك استاذنا
ممكن تشرح لي هذ الكود
o = Thisform.oleTreeView
WITH THISFORM.oleTreeView
SCAN FOR LEN(ALLTRIM(atrib.cCodigo)) = 3
lcCodigoAtual = atrib.cCodigo
lnN?vel = 1
pkey = ALLTRIM(atrib.cCodigo)+"_"
oNode = o.Nodes.Add(,1,ALLTRIM(atrib.cCodigo)+"_",atrib.atr_desc,1,)
DO WHILE atrib.cCodigo = lcCodigoAtual AND NOT EOF()
Skip
lnN?velAtual = lnN?vel
lnN?vel = LEN(ALLTRIM(atrib.cCodigo)) / 3
IF lnN?vel > lnN?velAtual
oNode = o.Nodes.Add(m.pkey,4,ALLTRIM(atrib.cCodigo)+'_',atrib.atr_desc,IIF(EMPTY(atr_val),1,3),)
pkey = ALLTRIM(atrib.cCodigo)+"_"
ELSE
Local Porç?oC?digo
Porç?oC?digo = (lnN?vel - 1) * 3
If Porç?oC?digo > 0
pKey = SUBST(pKey,1,Porç?oC?digo)+"_"
oNode = o.Nodes.Add(pkey,4,ALLTRIM(atrib.cCodigo)+'_',atrib.atr_desc,IIF(EMPTY(atr_val),1,3),)
pkey = ALLTRIM(atrib.cCodigo)+"_"
Else
oNode = o.Nodes.Add(,1,ALLTRIM(atrib.cCodigo)+'_',atrib.atr_desc,1,)
pkey = ALLTRIM(atrib.cCodigo)+"_"
ENDIF
ENDIF
lcCodigoAtual = atrib.cCodigo
ENDDO
ENDSCAN
.Nodes.Remove(o.Nodes.Count)
ENDWITH
If lcOldExact
Set EXACT On
Else
Set EXACT Off
EndIf
o = Thisform.oleTreeView
WITH THISFORM.oleTreeView
SCAN FOR LEN(ALLTRIM(atrib.cCodigo)) = 3
lcCodigoAtual = atrib.cCodigo
lnN?vel = 1
pkey = ALLTRIM(atrib.cCodigo)+"_"
oNode = o.Nodes.Add(,1,ALLTRIM(atrib.cCodigo)+"_",atrib.atr_desc,1,)
DO WHILE atrib.cCodigo = lcCodigoAtual AND NOT EOF()
Skip
lnN?velAtual = lnN?vel
lnN?vel = LEN(ALLTRIM(atrib.cCodigo)) / 3
IF lnN?vel > lnN?velAtual
oNode = o.Nodes.Add(m.pkey,4,ALLTRIM(atrib.cCodigo)+'_',atrib.atr_desc,IIF(EMPTY(atr_val),1,3),)
pkey = ALLTRIM(atrib.cCodigo)+"_"
ELSE
Local Porç?oC?digo
Porç?oC?digo = (lnN?vel - 1) * 3
If Porç?oC?digo > 0
pKey = SUBST(pKey,1,Porç?oC?digo)+"_"
oNode = o.Nodes.Add(pkey,4,ALLTRIM(atrib.cCodigo)+'_',atrib.atr_desc,IIF(EMPTY(atr_val),1,3),)
pkey = ALLTRIM(atrib.cCodigo)+"_"
Else
oNode = o.Nodes.Add(,1,ALLTRIM(atrib.cCodigo)+'_',atrib.atr_desc,1,)
pkey = ALLTRIM(atrib.cCodigo)+"_"
ENDIF
ENDIF
lcCodigoAtual = atrib.cCodigo
ENDDO
ENDSCAN
.Nodes.Remove(o.Nodes.Count)
ENDWITH
If lcOldExact
Set EXACT On
Else
Set EXACT Off
EndIf
بغض النظر عن الكود الذي قمت بعرضه وعن الهدف منه ....المختصر المفيد للشجرة
تحتاج لجدول ( أو مصفوفة أو أي مرجع ) مؤلف من ثلاثة حقول
الحقل الأول يكون رقم غير متكرر يدل على السجل يسمى عادة Key
الحقل الثاني يكون كمرجع ( ذو علاقة مباشرة مع الحقل الأول ) يسمى عادة Parent ( تكون قيمته اما صفر للدلالة على أن هذا السجل هو سجل رئيسي، أو أكبر من صفر للدلالة على علاقته بالحقل الأول )
الحقل الثالث هو الحقل الذي سيظهر بالشجرة
كل ما يتبقى هم عملية Scan بسيطة لبناء الشجرة وما الى ذلك من عمليات اضافة - حذف - تعديل...
ستجد الأمور بشكل أوضح في هذه الأمثلة
أستغفر الله العظيم و أتوب إليه
تحياتي لك اخي عبدالله
اما الاخ عبد الرحمن اعتقد ان الموضوع واضح ان شاء الله
الفكرة هي انهُ عمل جدول يحتوي على اسماء النماذج والعناوين لها بعنصر التحكم الموجود
فقام بعمل بحث عن الرقم الذي لايتجاوز 3 مراتب وجعله كعنوان
ومن ثم تخصيص الصورة والخصائص للعمل من خلال خصائص العنصر
واذا لم تصلك المعلومة سوف اقوم بعمل شرح لكل كود لم تعرف عملهً
تحياتي للجميع وللاخ شادو
المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية
جارٍ التحقق من المتواجدين…