اذهب الي المحتوي
أوفيسنا

الردود الموصى بها

قام بنشر

السلام عليكم

الآن أدركت ماتود الوصول إليه ولكن ينبغي أن يكون عرض أحد الأعمدة صفر حتى لايظهر ويقتصر الظهور على عمودين فقط ، هذا ما فهمته ، آمل أن لا أكون مخطئا .

تحياتي .

قام بنشر

السلام عليكم

أخي الأستاذ أبو هادي

أشكرك أخي على التعليق

نعم أخي الدالة تشترط أمور ثلاثة وهي :

1- خاصية عدد الأعمدة في القائمة = 3

2- خاصية العمود المنضم في القائمة = 1

3- خاصية عرض الأعمدة = 0;2.5;0 - بمعنى أن يظهر العمود الخاص باللغة فقط - ، عرض العمود افتراضي ويمكن تغييره بأي قيمة .

سلبيات الدالة : لا تعطي نتيجة عندما تكون الأعمدة الظاهرة أكثر من عمود - مثل العمود الثاني والثالث

ويمكن معالجتها عن طريق مقارنة قيمة عرض العمود الثاني والثالث

فإذا كانت جميعها لا تساوي "0" عندها يتم تغيير قيمة العمود الثالث إلى صفر ، ثم تستكمل الدالة.

أو بالتكامل مع الدالة السابقة في حالة كون مصدر القائمة جملة SQL

سلبيات الدالة السابقة :

عندما يكون مصدر القائمة عبارة :

- عن قائمة القيم .

- أو اسم جدول أو استعلام .

فإن الدالة لا تجري عليها أي تعديل

معالجتها ربما يمكن ذلك بالتكامل مع دالة إظهار العمود ، بمعنى أنه عندما يكون مصدر القائمة ليست عبارة SQL فإنها تتعامل مع دالة إظهار العمود .

أو أن تجد لها حلاً مناسبًا من إبداعاتك أخي للتعامل مع جميع حالات .

أخوكم المحب

أبو سليمان

قام بنشر

السلام عليكم

أخي أبو سليمان .. لقد طورت فكرتك في الدالة السابقة كالتالي :

Sub NewWidths(Cntl As Control, Col1 As Byte, Col2 As Byte)
  Dim ColWidths() As Integer
  Dim OldWidths As String
  Dim ColCount As Byte
  Dim Col As Byte
  Dim Pos As Byte
      
  If Trim(Cntl.ColumnWidths) = "" Then Exit Sub
  If Col1 = 0 Or Col2 = 0 Then Exit Sub
  ColCount = Cntl.ColumnCount
  If Col1 > ColCount Or Col2 > ColCount Then Exit Sub
  
  ReDim ColWidths(ColCount)
  OldWidths = Cntl.ColumnWidths
  
  For Col = 1 To ColCount
    Pos = InStr(1, OldWidths, ";")
    If Pos <> 0 Then
      ColWidths(Col) = Left(OldWidths, Pos - 1)
      OldWidths = MID(OldWidths, Pos + 1, Len(OldWidths))
    Else
      ColWidths(Col) = OldWidths
    End If
  Next Col
  
  Call Swap(ColWidths(Col1), ColWidths(Col2))
  OldWidths = ""
  
  For Col = 1 To ColCount
    OldWidths = OldWidths & ColWidths(Col) & IIf(Col < ColCount, ";", "")
  Next Col
  
  Cntl.ColumnWidths = OldWidths
End Sub

ولكني أرى أنها ليست بديلة عن دالة تبديل المصدر حيث هنا يفترض أن يكون عرض أحد العمدين صفر مما يعني إخفاؤه مقابل ظهور الآخر . ولكن وظيفة الأولى هو التبديل بين موقع عمودين دون التصرف في إظهارهما أو إخفائهما فإذا كان عرض أحدهما صفر فسيختفي آليا .

لذا سأقوم بتطوير الدالة الأولى ولكن ليس الآن :d .

تحياتي .

قام بنشر

السلام عليكم

نعم أخي أبو هادي

الدالة الثانية ليست بديلة للأولى ، وهي مكملة لها في هذه المرحلة ، ولعلك تقوم كما وعدت بتطويرها حتى تكون كاملة في ذاتها .

وتقبل قائق تحياتي

  • 1 year later...
  • 13 years later...
قام بنشر

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

افيدوني 

اريد شرح بالفيدو ارجوكم لانى لا استطيع الفهم بالكتابة 

محتاجة هذا الامر ضروري

ولكم جزيل الشكر

قام بنشر

اخي walaaasim

انت تكتب في موضوع من سنة 2006 ، فلا تتوقع ان يرد عليك احد !!

رجاء اكتب موضوع جديد واشرح فيه اللي تريد ، واشر الى هذا الموضوع ، وان شاء الله تلقى الرد المطلوب 🙂

 

جعفر

 

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

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

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • تصفح هذا الموضوع مؤخراً   0 اعضاء متواجدين الان

    • لايوجد اعضاء مسجلون يتصفحون هذه الصفحه
×
×
  • اضف...

Important Information