ברוך הבא, אורח
שם משתמש: סיסמא: זכור אותי

דיון: Always one selected value

Always one selected value 9 years 10 months ago #6301

  • davidvir
  • davidvir's Avatar
  • Offline
  • Expert Boarder
  • הודעות: 91
  • קרמה: 0
היי אנשים,
צריך את עזרתכם כאן.
בכל ליסט בוקס יש את האופציה של בחירת ערך אחד (ורק אחד)
מהרשימה.
הבעיה היא שבחירה כזו משפיעה על כל המודל ויש לשונית מסוימת שבא ניתן יהיה לבחור לא רק רשומה אחת אלא את כולן או חלקן ,מה שיבחר המשתמש.
מצאתי דוגמא למאקרו שאמור לעשות זאת,אשמח אם אנשי VB יוכלו לתת יד כי אני הסתבכתי עם המאקרו והוא לא עובד.
(בעת הפעלתו אמור לסמן וי [או למחוק וי] מה-צ'ק בוקס של
always one selected value)

אגב,פתרונות אחרים ומתוחכמים יתקבלו בברכה.

תודה,
דויד


sub Always
'' call SetFieldPropAlwaysSetOne("ddd", true)
call SetFieldPropAlwaysSetOne("ddd", false)
end sub


sub SetFieldPropAlwaysSetOne(FieldName, OnlyOne)
set fld=ActiveDocument.GetField(FieldName)
if fld.GetValueCount(1) = 0 then
set val=fld.GetPossibleValues
if val.Count=1 then
fld.SelectValues val
end if
end if

if fld.GetValueCount(1) = 1 then
set fprop = fld.GetProperties
fprop.ShowAlternatives = false
fprop.OneAndOnlyOne = OnlyOne
fld.SetProperties fprop
if not OnlyOne then
fld.Clear
end if
end if
end sub
עריכה אחרונה: 9 years 10 months ago  ע''י davidvir.
הנהלת האתר ביטלה גישת כתיבה ציבורית.

תגובה:Always one selected value 9 years 10 months ago #6302

  • avishayl
  • avishayl's Avatar
  • Offline
  • Moderator
  • הודעות: 84
  • קרמה: 1
אני אישית לא אוהב להתשמש במקרו לבצע דברים כאלו רק אם אני חייב.
כמה אובייקטים יש לך בגיליונות הנ"ל?
האם לא כדאי להגדיר ב SET ANALYSIS להתעלם מבחירה בשדה זה?
או הפוך - בשאר הגיליונות להגדיר באובייקטים תנאי חישוב לאובייקט רק אם בוחרים ערך אחד בשדה הנ"ל.
הנהלת האתר ביטלה גישת כתיבה ציבורית.

תגובה:Always one selected value 9 years 10 months ago #6304

  • davidvir
  • davidvir's Avatar
  • Offline
  • Expert Boarder
  • הודעות: 91
  • קרמה: 0
היי אבישי,
נראה לי שאתה צודק לגבי ה-set analysis מכיוון שכפי שנראה כרגע
מדובר על שלושה-ארבעה אוביקטים ועדיף לבצע
הגדרות ספציפיות עבורם מאשר להיכנס למאקרו.

תודה
הנהלת האתר ביטלה גישת כתיבה ציבורית.

תגובה:Always one selected value 9 years 10 months ago #6311

הפתרון של אבישי נכון יותר גם לטעמי, אבל מתוך סקרנות
מה בדיוק לא עבד לך במקרו?
אם הבדיקה שלך לגבי הצלחת המקרו היתה להסתכל בליסטבוקס ולחפש את הסימן שהמקרו סימן, אז אולי פיספסת את כוונת המקרו.
המקרו בעצם עובד ברמת השדה!! כלומר הוא משנה את רמת השדה כך שתמיד יהיה רק ערך אחד "בחור" ולא משנה באיזה אובייקט (או נוסחה) השדה מופיע. אבל.... מעבר לזאת אין כל השפעה ויזואלית למקרו (הוא לא מסמן בליסטבוקס את האופציה).

הבעיה שהמקרו ניצב מולה היא אותה בעיה שיש למשתמש: מה לעשות כשיש כבר בבחירה יותר מערך אחד בשדה (possible or selected). במקרה של המשתמש קליקוויו פשוט "מאפיר" את האופציה לסמן זאת בליסטבוקס, אך המקרו מטפל בזה בצורה שונה: במידה ויש ערך אחד אך הוא possible ולא selected אז הוא יהפוך אותו לselected ורק אז ימשיך ויסמן את השדה. בכל מקרה אחר הוא יגש לביצוע סימון השדה רק אם יש ערך אחד selected בשדה.

בכל מקרה כל זה רק ניחוש מכיוון שנראה לי שבמקרו ששלחת יש מספר בעיות וכנראה חסרות שורות.
יש אי תאימות מבחינת שורות ה-IF וה-ENDIF
לקראת הסוף נעשה שימוש במשתנה הנקרא:OnlyOne
אולם באף מקום הוא לא מוגדר ולא מקבל ערך לפני זה

האם יש ברשותך את הקוד המלא? או שזה מה שקיבלת.


לסיום טיפ קטן
במקרו נעשה שימוש בmethod הנקרא:GetValueCount
פונקציה זו מחזירה את מספר הערכים בשדה מסוים, אך ניתן לסננן אותה באמצעות פרמטר 5 סינונים שונים.

1=selected
2=optional
3=deselected
4=alternative
5=excluded
הנהלת האתר ביטלה גישת כתיבה ציבורית.

תגובה:Always one selected value 9 years 10 months ago #6312

  • davidvir
  • davidvir's Avatar
  • Offline
  • Expert Boarder
  • הודעות: 91
  • קרמה: 0
היי דניאל,
כאשר הרצתי את המאקרו ולא קרה דבר הנחתי שמשהו לא עובד בו
באופן תקין.
ניסיתי 'לחפור' בו עוד קצת אבל אני ו-VB לא חברים טובים...
אכן הנחתי שיסומן ה-V באופצייה "בחירת ערך אחד" בליסטבוקס ולמעשה ייבחר אחד הערכים.
תודה שהארת את עיני שהמאקרו כלל לא מבצע זאת. (לפחות לא מבחינה ויזואלית שזה בדיוק מה שחיפשתי)
הנהלת האתר ביטלה גישת כתיבה ציבורית.
זמן יצירת העמוד: 0.187 שניות

הדף שלנו בפייסבוק

מעניין? שתפו דף זה באמצעות הטלפון הנייד

אירועים קרובים

מאמרים

מגמות של ביג דאטה בעולם הביטוח
CA Technologies
SSIS - Buffer Size Optimization
קטגוריה ראשית
בדיקות BI ו-DWH לעומת הבדיקות בתחומים אחרים
קטגוריה ראשית
איסוף דרישות לפרויקטי BI
קטגוריה ראשית
כח המידע במיקוד
קטגוריה ראשית
0

Microsoft

Oracle

IBM

Informatica

Sap

SAS

Qlikview

Cloudera

Machine Learning