แชร์ผ่าน


การอ้างอิงข้อมูลเกี่ยวกับเทมเพลตหน้าจอปฏิทินสำหรับแอปพื้นที่ทำงาน

สำหรับแอปพื้นที่ทำงานใน Power Apps ทำความเข้าใจว่าแต่ละการควบคุมที่สำคัญในเทมเพลตหน้าจอปฏิทินมีส่วนช่วยอย่างไรต่อฟังก์ชันการทำงานเริ่มต้นโดยรวม การดำน้ำลึกนี้นำเสนอสูตรพฤติกรรมและค่าของคุณสมบัติอื่นๆ ที่กำหนดวิธีการควบคุมที่ตอบสนองต่อการป้อนข้อมูลของผู้ใช้ สำหรับการสนทนาระดับสูงของฟังก์ชันเริ่มต้นของหน้าจอนี้ ให้ดูที่ ภาพรวมหน้าจอปฏิทิน

หัวข้อนี้เน้นการควบคุมที่สำคัญบางอย่างและอธิบายนิพจน์หรือสูตรที่คุณสมบัติต่างๆ (เช่น รายการ และ OnSelect) ที่การควบคุมเหล่านี้ถูกตั้งค่า:

ข้อกำหนดเบื้องต้น

ทำความคุ้นเคยกับวิธีเพิ่มและกำหนดค่าหน้าจอและตัวควบคุมอื่นๆ ในขณะที่คุณ สร้างแอปใน Power Apps

ปฏิทินแบบหล่นลง

การควบคุม dropdownCalendarSelection

  • คุณสมบัติ: รายการ
    ค่า: Office365.CalendarGetTables().value

    ค่านี้เป็นการดำเนินการตัวเชื่อมต่อที่เรียกข้อมูลปฏิทิน Outlook ของผู้ใช้แอป คุณสามารถเห็น มูลค่า ที่การดำเนินการนี้เรียกใช้

  • คุณสมบัติ: เมื่อมีการเปลี่ยนแปลง
    ค่า: Select(dropdownCalendarSelection)

    เมื่อผู้ใช้เลือกตัวเลือกในรายการ ฟังก์ชันในคุณสมบัติ OnSelect ของตัวควบคุมจะเรียกใช้

  • คุณสมบัติ: OnSelect
    ค่า: ฟังก์ชัน ถ้า ซึ่งจะปรากฏในบล็อกรหัสต่อไปนี้และฟังก์ชั่นเพิ่มเติมหลายอย่างซึ่งจะปรากฏในบล็อกโค้ดหลังจากนั้น

    ส่วนนี้ของสูตรจะเรียกใช้เฉพาะครั้งแรกที่ผู้ใช้เลือกตัวเลือกในรายการแบบหล่นลงหลังจากเปิดแอป:

    If( IsBlank( _userDomain ),
        UpdateContext( {_showLoading: true} );
        Set( _userDomain, Right( User().Email, Len( User().Email ) - Find( "@", User().Email ) ) );
        Set( _dateSelected, Today() );
        Set( _firstDayOfMonth, DateAdd( Today(), 1 - Day( Today() ), Days ) );  
        Set( _firstDayInView, DateAdd( _firstDayOfMonth, -(Weekday(_firstDayOfMonth) - 1), Days ) );
        Set( _lastDayOfMonth, DateAdd( DateAdd( _firstDayOfMonth, 1, Months ), -1, Days ) )  
    );
    

    รหัสก่อนหน้านี้กำหนดตัวแปรต่อไปนี้:

    • _userDomain: โดเมนบริษัทของผู้ใช้แอปดังที่แสดงในที่อยู่อีเมลของผู้ใช้
    • _dateSelected: วันที่ของวันนี้ (ตามค่าเริ่มต้น) แกลเลอรีปฏิทินเน้นวันที่นี้และแกลเลอรีเหตุการณ์จะแสดงเหตุการณ์ที่กำหนดไว้สำหรับวันที่นั้น
    • _firstDayOfMonth: วันแรกของเดือนปัจจุบัน เพราะ (Today + (1 - Today)) = Today - Today + 1 = 1 ฟังก์ชัน DateAdd นี้จะส่งคืนวันแรกของเดือนเสมอ
    • _firstDayInView: วันแรกที่แกลเลอรีปฏิทินสามารถแสดงได้ ค่านี้ไม่เหมือนกับวันแรกของเดือน ยกเว้นเดือนจะเริ่มในวันอาทิตย์ เพื่อไม่ให้แสดงทั้งสัปดาห์ของเดือนก่อนหน้า ค่าของ _firstDayInView คือ _firstDayOfMonth - Weekday(_firstDayOfMonth) + 1
    • _lastDayOfMonth: วันสุดท้ายของเดือนปัจจุบัน ซึ่งเหมือนกับวันแรกของเดือนถัดไปลบหนึ่งวัน

    ฟังก์ชันหลังจากฟังก์ชัน ถ้า ทำงานเมื่อใดก็ตามที่ผู้ใช้เลือกตัวเลือกในรายการปฏิทินแบบหล่นลง (ไม่ใช่เฉพาะครั้งแรกที่ผู้ใช้เปิดแอป):

    Set( _calendarVisible, false );
    UpdateContext( {_showLoading: true} );
    Set( _myCalendar, dropdownCalendarSelection2.Selected );
    Set( _minDate, 
        DateAdd( _firstDayOfMonth, -(Weekday( _firstDayOfMonth ) - 2 + 1), Days )
    );
    Set(_maxDate, 
        DateAdd(
            DateAdd( _firstDayOfMonth, -(Weekday( _firstDayOfMonth ) - 2 + 1), Days ), 
            40, 
            Days
        )
    );
    ClearCollect( MyCalendarEvents, 
        Office365Outlook.GetEventsCalendarViewV2( _myCalendar.Name, 
            Text( _minDate, UTC ), 
            Text( _maxDate, UTC )
        ).value
    );
    UpdateContext( {_showLoading: false} );
    Set( _calendarVisible, true )
    

    โค้ดก่อนหน้านี้กำหนดตัวแปรเหล่านี้และหนึ่งคอลเลกชัน:

    • _calendarVisible: ตั้งค่าให้เป็น เท็จ เพื่อไม่ให้ปฏิทินปรากฏในขณะที่โหลดตัวเลือกใหม่
    • _showLoading: ตั้งค่าให้เป็น จริง เพื่อให้ตัวบ่งชี้การโหลดปรากฏขึ้นในขณะที่โหลดตัวเลือกใหม่
    • _MyCalendar: ตั้งเป็นค่าปัจจุบันของตัวควบคุม ปฏิทินแบบเลื่อนลง เพื่อให้ดึงข้อมูลเหตุการณ์จากปฏิทินที่ถูกต้อง
    • _minDate: ตั้งเป็นค่าเดียวกับ _firstDayInView ตัวแปรนี้พิจารณาว่าเหตุการณ์ใดที่ถูกดึงมาจาก Outlook และแคชไว้ในแอป
    • _maxDate: ตั้งเป็นวันสุดท้ายที่สามารถดูได้ในปฏิทิน สูตรคือ _firstDayInView + 40 ปฏิทินแสดงสูงสุด 41 วัน ดังนั้นตัวแปร _maxDate สะท้อนถึงวันที่ดูได้ครั้งสุดท้ายเสมอ และกำหนดว่าเหตุการณ์ใดที่ได้รับการดึงมาจาก Outlook และแคชไว้ในแอป
    • MyCalendarEvents: ตั้งค่าเป็นชุดของเหตุการณ์ของผู้ใช้จากปฏิทินที่เลือกตั้งแต่ _minDate ถึง _maxDate
    • _showLoading: ตั้งค่าให้เป็น เท็จ; _calendarVisible ถูกตั้งค่าเป็น จริง หลังจากโหลดทุกอย่างแล้ว

คุณสมบัติสี

สำหรับคุณสมบัติสีทั่วไป ดูที่ คุณสมบัติสีและเส้นขอบใน Power Apps

คุณสมบัติสีที่เป็นเอกลักษณ์สำหรับการควบคุมของปฏิทินแบบหล่นลง:

  • ChevronBackground - สีพื้นหลังสำหรับปฏิทินแบบหล่นลง
  • ChevronDisabledBackground - สีพื้นหลังสำหรับปฏิทินแบบหล่นลงที่ปิดใช้งาน
  • ChevronFill - เติมสีสำหรับปฏิทินแบบหล่นลง
  • ChevronDisabledFill - เติมสีสำหรับปฏิทินแบบหล่นลงที่ปิดใช้งาน
  • ChevronHoverBackground - สีพื้นหลังของปฏิทินแบบหล่นลงเมื่อผู้ใช้วางตัวชี้เมาส์ไว้
  • ChevronHoverFill - เติมสีของปฏิทินแบบหล่นลงเมื่อผู้ใช้วางตัวชี้เมาส์ไว้

ไอคอนปฏิทิน

การควบคุม iconCalendar

  • คุณสมบัติ: OnSelect
    ค่า: ฟังก์ชันสี่ ชุด ที่รีเซ็ตแกลเลอรีปฏิทินเป็นวันที่วันนี้:

    Set( _dateSelected, Today() );
    Set( _firstDayOfMonth, DateAdd( Today(), 1 - Day( Today() ), Days) );
    Set( _firstDayInView, DateAdd(_firstDayOfMonth, -(Weekday( _firstDayOfMonth ) - 2 + 1), Days));
    Set( _lastDayOfMonth, DateAdd( DateAdd( _firstDayOfMonth, 1, Months ), -1, Days ) )
    

    รหัสก่อนหน้าจะรีเซ็ตตัวแปรวันที่ทั้งหมดที่จำเป็นสำหรับการแสดงมุมมองปฏิทินที่เหมาะสม:

    • _dateSelected ถูกรีเซ็ตเป็นวันนี้
    • _firstDayOfMonth ถูกรีเซ็ตเป็นวันแรกของเดือนวันนี้
    • _firstDayInView ถูกรีเซ็ตเป็นวันแรกที่สามารถดูได้เมื่อเลือกเดือนของวันนี้
    • _lastDayOfMonth ถูกรีเซ็ตเป็นวันสุดท้ายของเดือนของวันนี้

    ส่วน ปฏิทินแบบเลื่อนลง ของหัวข้ออธิบายตัวแปรเหล่านี้ในรายละเอียดเพิ่มเติม

เครื่องหมายเดือนก่อนหน้า

การควบคุม iconPrevMonth

  • คุณสมบัติ: OnSelect
    ค่า: ฟังก์ชันสี่ ชุด และฟังก์ชัน ถ้า ที่แสดงเดือนก่อนหน้าในแกลเลอรีปฏิทิน:

    Set( _firstDayOfMonth, DateAdd( _firstDayOfMonth, -1, Months ) );
    Set( _firstDayInView, 
        DateAdd( _firstDayOfMonth, -(Weekday( _firstDayOfMonth ) - 2 + 1), Days )
    );
    Set( _lastDayOfMonth, DateAdd(DateAdd( _firstDayOfMonth, 1, Months ), -1, Days ) );
    If( _minDate > _firstDayOfMonth,
        Collect( MyCalendarEvents,
            Office365Outlook.GetEventsCalendarViewV2( _myCalendar.Name,
                Text( _firstDayInView, UTC ), 
                Text( DateAdd( _minDate, -1, Days ), UTC )
            ).value
        );
        Set( _minDate, _firstDayInView )
    )
    

    หมายเหตุ

    คำจำกัดความของ _firstDayOfMonth, _firstDayInView และ _lastDayOfMonth เกือบจะเหมือนกันกับในส่วน ปฏิทินแบบหล่นลง ของ หัวข้อนี้

    สามบรรทัดแรกของรหัสก่อนหน้านี้ทำงานเมื่อใดก็ตามที่ผู้ใช้เลือกเครื่องหมายเดือนก่อนหน้า รหัสตั้งค่าตัวแปรที่จำเป็นในการแสดงมุมมองปฏิทินที่เหมาะสม รหัสที่เหลือจะทำงานต่อเมื่อก่อนหน้านี้ผู้ใช้ไม่ได้เลือกเดือนนี้สำหรับปฏิทินที่เลือก

    หากเป็นกรณีนี้ _minDate เป็นวันแรกที่ปรากฏขึ้นเมื่อเดือนก่อนหน้าแสดงขึ้น ก่อนที่ผู้ใช้จะเลือกไอคอน _minDate มีค่าต่ำสุดที่เป็นไปได้ของวันที่ 23 ของเดือนปัจจุบัน (เมื่อวันที่ 1 มีนาคมตรงกับวันเสาร์ _firstDayInView สำหรับเดือนมีนาคมคือ 23 กุมภาพันธ์) ซึ่งหมายความว่าหากผู้ใช้ยังไม่ได้เลือกเดือนนี้ _minDate จะดีกว่า _firstDayOfMonth ใหม่ และฟังก์ชัน ถ้า ส่งคืนว่า เป็นจริง รหัสจะทำงานและมีการอัปเดตคอลเลกชันและตัวแปร:

    • MyCalendarEvents ดึงเหตุการณ์จากปฏิทินที่เลือกด้วยการดำเนินการ Office365Outlook.GetEventsCalendarViewV2 ช่วงวันที่อยู่ระหว่างวันที่ _firstDayInView และ _minDate - 1 เพราะ MyCalendarEvents มีเหตุการณ์ในวันที่ _minDate 1 จะถูกลบออกจากวันที่สำหรับค่าสูงสุดในช่วงวันที่ใหม่นี้

    • _minDate ถูกตั้งค่าเป็น _firstDayInView ปัจจุบัน เพราะนี่เป็นวันแรกที่มีการดึงข้อมูลเหตุการณ์ หากผู้ใช้กลับสู่วันที่นี้โดยเลือกเครื่องหมายเดือนก่อนหน้า ฟังก์ชัน ถ้า ส่งคืนว่า เป็นเท็จ รหัสไม่ทำงานเนื่องจากเหตุการณ์สำหรับมุมมองนี้ถูกแคชไว้แล้วใน MyCalendarEvents

เครื่องหมายเดือนถัดไป

การควบคุม iconNextMonth

  • คุณสมบัติ: OnSelect
    ค่า: ฟังก์ชันสี่ ชุด และฟังก์ชัน ถ้า ที่แสดงเดือนถัดไปในแกลเลอรีปฏิทิน:

    Set( _firstDayOfMonth, DateAdd( _firstDayOfMonth, 1, Months ) );
    Set( _firstDayInView, 
        DateAdd( _firstDayOfMonth, -(Weekday( _firstDayOfMonth ) - 2 + 1), Days ) );
    Set( _lastDayOfMonth, DateAdd( DateAdd( _firstDayOfMonth, 1, Months ), -1, Days ) );
    If(_maxDate < _lastDayOfMonth, 
    Collect(MyCalendarEvents,
            Office365Outlook.GetEventsCalendarViewV2(_myCalendar.Name,
                Text(DateAdd(_maxDate, 1, Days), UTC),
                Text(DateAdd(_firstDayInView, 40, Days))
            ).value
    );
    Set(_maxDate, DateAdd(_firstDayInView, 40, Days))
    )
    

    หมายเหตุ

    คำจำกัดความของ _firstDayOfMonth, _firstDayInView และ _lastDayOfMonth เกือบจะเหมือนกันกับในส่วน ปฏิทินแบบหล่นลง ของ หัวข้อนี้

    สามบรรทัดแรกของรหัสก่อนหน้า ซึ่งทำงานเมื่อผู้ใช้เลือกเครื่องหมายเดือนถัดไป ตั้งค่าตัวแปรที่จำเป็นในการแสดงมุมมองปฏิทินที่เหมาะสม รหัสที่เหลือจะทำงานต่อเมื่อก่อนหน้านี้ผู้ใช้ไม่ได้เลือกเดือนนี้สำหรับปฏิทินที่เลือก

    ในกรณีนั้น _minDate เป็นวันสุดท้ายที่ปรากฏขึ้นเมื่อเดือนก่อนหน้าแสดงขึ้น ก่อนที่ผู้ใช้จะเลือกเครื่องหมายเดือนถัดไป _maxDate มีค่าสูงสุดที่เป็นไปได้ของวันที่ 13 ของเดือนถัดไป (เมื่อวันที่ 1 กุมภาพันธ์ตรงกับวันอาทิตย์ของปีอธิกสุรทิน _maxDate คือวันที่ 13 เดือนมีนาคม ซึ่งคือ _firstDayInView + 40 วัน) หมายความว่าหากผู้ใช้ยังไม่ได้เลือกเดือนนี้ _maxDate จะมากกว่า _lastDayOfMonth ใหม่ และฟังก์ชัน ถ้า ส่งคืนว่า เป็นจริง รหัสจะทำงานและมีการอัปเดตคอลเลกชันและตัวแปร:

    • MyCalendarEvents ดึงเหตุการณ์จากปฏิทินที่เลือกด้วยการดำเนินการ Office365Outlook.GetEventsCalendarViewV2 ช่วงวันที่อยู่ระหว่างวันที่ _firstDayInView + 1 วัน และ _minDate + 40 วัน เพราะ MyCalendarEvents มีเหตุการณ์ในวันที่ _minDate 1 จะถูกเพิ่มไปยังวันที่สำหรับค่าต่ำสุดในช่วงวันที่ใหม่นี้ _firstDayInView + 40 เป็นสูตรสำหรับ _maxDate ดังนั้นวันที่สองในช่วงจึงเป็น _maxDate ใหม่

    • _maxDate ถูกตั้งค่าเป็น _firstDayInView + 40 วัน เพราะนี่เป็นวันสุดท้ายที่มีการดึงข้อมูลเหตุการณ์ หากผู้ใช้กลับสู่วันที่นี้โดยเลือกเครื่องหมายเดือนถัดไป ฟังก์ชัน ถ้า ส่งคืนว่า เป็นเท็จ รหัสไม่ทำงานเนื่องจากเหตุการณ์สำหรับมุมมองนี้ถูกแคชไว้แล้วใน MyCalendarEvents

แกลเลอรีปฏิทิน

การควบคุม MonthDayGallery

  • คุณสมบัติ: รายการ
    ค่า: [0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19, 20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41]

    ชุด 0 ถึง 41 ใช้สำหรับรายการในแกลเลอรีปฏิทินเนื่องจากในสถานการณ์ที่เลวร้ายที่สุด มุมมองปฏิทินจะต้องแสดง 42 วันเต็ม สิ่งนี้เกิดขึ้นเมื่อวันแรกของเดือนเกิดขึ้นในวันเสาร์ และวันสุดท้ายของเดือนเกิดขึ้นในวันอาทิตย์ ในกรณีนี้ ปฏิทินจะแสดงหกวันจากเดือนก่อนหน้าในแถวที่มีวันแรกของเดือน และหกวันจากเดือนถัดไปในแถวที่มีวันสุดท้ายของเดือน นี่คือค่า 42 ค่าที่ไม่ซ้ำกัน โดย 30 ค่าเป็นค่าสำหรับเดือนที่เลือก

  • คุณสมบัติ: WrapCount
    ค่า: 7

    ค่านี้สะท้อนถึงสัปดาห์ที่มีเจ็ดวัน

การควบคุมชื่อเรื่องในแกลเลอรีปฏิทิน

การควบคุม MonthDayGallery Title

  • คุณสมบัติ: ข้อความ
    ค่า: Day( DateAdd( _firstDayInView, ThisItem.Value, Days ) )

    จำได้ว่า _firstDayInView หมายถึง (_firstDayOfMonth - ค่าของวันทำงาน) + 1 สิ่งนี้บอกคุณว่า _firstDayInView เป็นวันอาทิตย์เสมอ และ _firstDayOfMonth อยู่ในแถวแรกของ MonthDayGallery เสมอ เพราะข้อเท็จจริงทั้งสองนี้ _firstDayInView อยู่ในเซลล์แรกของ MonthDayGallery เสมอ ThisItem.Value คือตัวเลขสำหรับเซลล์นั้นในคุณสมบัติรายการ MonthDayGallery ดังนั้นการให้ _firstDayInView เป็นจุดเริ่มต้น แต่ละเซลล์จะแสดงการเพิ่มขึ้นของ _firstDayInView + ค่าเซลล์ตามลำดับ

  • คุณสมบัติ: เติม
    ค่า: หนึ่งฟังก์ชัน ถ้า:

    If( DateAdd( _firstDayInView, ThisItem.Value ) = Today() && 
                DateAdd( _firstDayInView, ThisItem.Value ) = _dateSelected, 
            RGBA( 0, 0, 0, 0 ),
        DateAdd( _firstDayInView, ThisItem.Value) = Today(), 
            ColorFade( Subcircle.Fill, 0.67 ),
        Abs( Title.Text - ThisItem.Value) > 10,
            RGBA( 200, 200, 200, 0.3 ),
        RGBA( 0, 0, 0, 0 )
    )
    

    ตามที่กล่าวไว้ในคำอธิบายของคุณสมบัติ ข้อความ DateAdd(_firstDayInView, ThisItem.Value) แสดงวันในเซลล์ที่มองเห็นได้ เมื่อพิจารณาถึงสิ่งนี้ รหัสก่อนหน้าจะทำการเปรียบเทียบเหล่านี้:

    1. หากค่าของเซลล์คือวันที่วันนี้และเซลล์นี้เทียบเท่า _dateSelected อย่าระบุค่าการเติม

    2. หากค่าของเซลล์คือวันที่วันนี้ แต่ไม่เทียบเท่า _dateSelected ให้ระบุการเติม ColorFade

    3. การเปรียบเทียบล่าสุดยังไม่ชัดเจน เป็นการเปรียบเทียบระหว่างค่าข้อความจริงในเซลล์และมูลค่าของรายการเซลล์ (ตัวเลขบนจอแสดงผลและหมายเลขรายการ)

      เพื่อให้เข้าใจสิ่งนี้ดีขึ้น โปรดพิจารณาเดือนกันยายน 2018 ซึ่งเป็นเดือนที่เริ่มในวันเสาร์และสิ้นสุดในวันอาทิตย์ ในกรณีนี้ ปฏิทินจะแสดงวันที่ 26 ถึง 31 สิงหาคมและวันที่ 1 กันยายนในแถวแรก และ Abs(Title.Text - ThisItem.Value) = 26 ถึงวันที่ 1 กันยายน จากนั้น Abs(Title.Text - ThisItem.Value) = 5 มันจะอยู่ที่ 5 จนกระทั่งแถวสุดท้ายในปฏิทิน ซึ่งแสดงวันที่ 30 กันยายนและ 1 ถึง 6 ตุลาคม ใน Abs(Title.Text - ThisItem.Value) นั้น จะยังคงเป็น 5 สำหรับวันที่ 30 กันยายน แต่จะเป็น 35 สำหรับวันที่ของเดือนตุลาคม

      นี่คือรูปแบบ: สำหรับวันที่ที่แสดงจากเดือนก่อนหน้า Abs(Title.Text - ThisItem.Value) จะเท่ากับค่า Title.Text ของวันแรกที่แสดง สำหรับวันที่ที่แสดงในเดือนถัดไป Abs(Title.Text - ThisItem.Value) จะเท่ากับค่ารายการ MonthDayGallery ของเซลล์แรกของเดือนนั้น (ในกรณีนี้วันที่ 1 ตุลาคม) ลบ 1 และที่สำคัญที่สุดคือสำหรับวันที่ที่แสดงในเดือนที่เลือกในปัจจุบัน Abs(Title.Text - ThisItem.Value) จะเท่ากับค่าของรายการแรกของเดือนนั้นลบ 1 และจะไม่เกิน 5 ตามตัวอย่างก่อนหน้านี้ที่แสดง ดังนั้นจึงสมบูรณ์แบบที่จะเขียนสูตรเป็น Abs(Title.Text - ThisItem.Value) > 5

      คำสั่งนี้ตรวจสอบว่าค่าวันที่อยู่นอกเดือนที่เลือกในปัจจุบัน ถ้าเป็นเช่นนั้น เติม เป็นสีเทาทึบแสงบางส่วน

    หมายเหตุ

    คุณสามารถตรวจสอบความถูกต้องของการเปรียบเทียบล่าสุดนี้ได้ด้วยตัวเองโดยการใส่การควบคุม ป้ายชื่อ ลงในแกลเลอรีและการตั้งค่าคุณสมบัติ ข้อความ ของค่านี้:
    Abs(Title.Text - ThisItem.Value)

  • คุณสมบัติ: ที่มองเห็นได้
    ค่า:

    !(
        DateAdd( _firstDayInView, ThisItem.Value, Days ) - 
            Weekday( DateAdd( _firstDayInView, ThisItem.Value,Days ) ) + 1 
        > _lastDayOfMonth
    )
    

    คำสั่งก่อนหน้านี้ตรวจสอบว่าเซลล์อยู่ในแถวที่ไม่มีวันของเดือนที่เลือกในปัจจุบันเกิดขึ้น จำได้ว่าการลบค่าวันทำงานของวันใดๆ จากค่าวันที่และการเพิ่ม 1 จะส่งคืนรายการแรกในแถวที่มีวันอยู่เสมอ ดังนั้นคำสั่งนี้จะตรวจสอบว่าวันแรกในแถวอยู่หลังวันสุดท้ายของเดือนที่ดูได้หรือไม่ หากเป็นเช่นนั้นจะไม่ปรากฏ เนื่องจากทั้งแถวมีวันในเดือนต่อไปนี้

  • คุณสมบัติ: OnSelect
    ค่า: ฟังก์ชัน ชุด ที่ตั้งค่าตัวแปร _dateSelected ไปยังวันที่ของเซลล์ที่เลือก:

    Set( _dateSelected, DateAdd( _firstDayInView, ThisItem.Value, Days ) )
    

การควบคุมวงกลมในแกลเลอรีปฏิทิน

การควบคุม MonthDayGallery Circle

  • คุณสมบัติ: ที่มองเห็นได้
    ค่า: สูตรที่กำหนดว่าจะมีการจัดกำหนดการเหตุการณ์ใดๆ สำหรับวันที่เลือก และการควบคุม Subcircle และ ชื่อเรื่อง สามารถมองเห็นได้หรือไม่:

    CountRows(
        Filter( MyCalendarEvents, 
            DateValue( Text( Start ) ) = DateAdd( _firstDayInView, ThisItem.Value, Days )
        )
    ) > 0 && !Subcircle.Visible && Title.Visible
    

    การควบคุม วงกลม จะมองเห็นได้หากฟิลด์ เริ่มต้น สำหรับเหตุการณ์ใดๆ เทียบเท่ากับวันที่ของเซลล์นั้น ถ้าการควบคุม ชื่อเรื่อง สามารถมองเห็นได้ และถ้าการควบคุม วงกลมย่อย ไม่สามารถมองเห็นได้ กล่าวอีกนัยหนึ่ง การควบคุมนี้จะปรากฏเมื่อมีเหตุการณ์อย่างน้อยหนึ่งเหตุการณ์เกิดขึ้นในวันนี้และไม่ได้เลือกวันนี้ หากมีการเลือก เหตุการณ์ในวันนั้นจะปรากฏในการควบคุม CalendarEventsGallery

การควบคุมวงกลมย่อยในแกลเลอรีปฏิทิน

การควบคุม MonthDayGallery Subcircle

  • คุณสมบัติ: ที่มองเห็นได้
    ค่า:

    DateAdd( _firstDayInView, ThisItem.Value ) = _dateSelected && Title.Visible
    

    การควบคุม วงกลมย่อย จะปรากฏเมื่อ _dateSelected เทียบเท่ากับวันที่ของเซลล์ และการควบคุม ชื่อเรื่อง สามารถมองเห็นได้ กล่าวอีกนัยหนึ่ง การควบคุมนี้จะปรากฏขึ้นเมื่อเซลล์เป็นวันที่เลือกในปัจจุบัน

แกลเลอรี่เหตุการณ์

การควบคุม CalendarEventsGallery

  • คุณสมบัติ: รายการ
    ค่า: สูตรที่เรียงลำดับและกรองแกลเลอรีเหตุการณ์:

    SortByColumns(
        Filter( MyCalendarEvents,
            Text( Start, DateTimeFormat.ShortDate ) = Text( _dateSelected, DateTimeFormat.ShortDate )
        ),
        "Start"
    )
    

    คอลเลกชัน MyCalendarEvents มีเหตุการณ์ทั้งหมดระหว่าง _minDate และ _maxDate เพื่อแสดงเหตุการณ์เฉพาะวันที่ที่เลือก ระบบจะใช้ตัวกรอง MyCalendarEvents เพื่อแสดงเหตุการณ์ที่มีวันที่เริ่มต้นเทียบเท่า _dateSelected รายการจะถูกจัดเรียงตามวันที่เริ่มต้นเพื่อจัดเรียงตามลำดับ

ขั้นตอนถัดไป

หมายเหตุ

บอกให้เราทราบเกี่ยวกับภาษาที่คุณต้องการในคู่มือ ทำแบบสำรวจสั้นๆ (โปรดทราบว่าแบบสำรวจนี้เป็นภาษาอังกฤษ)

แบบสำรวจนี้ใช้เวลาทำประมาณเจ็ดนาที ไม่มีการเก็บข้อมูลส่วนบุคคล (คำชี้แจงสิทธิ์ส่วนบุคคล)