ฉันยังใหม่กับ as400 dds ใครช่วยบอกฉันถึงฟังก์ชันเพื่อรับค่าที่กำหนดที่แน่นอน เช่น รหัสไปรษณีย์ประกอบด้วยตัวเลข 6 หลัก หากผู้ใช้ไม่ป้อนค่าน้อยกว่า 6 จะต้องแสดงข้อผิดพลาด ขอบคุณล่วงหน้า
ฟังก์ชัน as400 dds เพื่อจำกัดค่าที่กำหนดที่แน่นอน
คำตอบ (3)
คุณต้องมีคีย์เวิร์ด DSPATR(MDT) ด้วย จากคู่มือ DDS สำหรับตัวเลือก ME ของคำสำคัญ CHECK:
รหัสนี้ระบุว่าต้องพิมพ์ข้อมูลอย่างน้อย 1 ตัวอักษร (ช่องว่างที่ถูกต้อง) ลงในฟิลด์ โปรดทราบว่าเมื่อไม่มีการเปลี่ยนแปลงฟิลด์บนจอแสดงผล สถานีแสดงผลจะไม่บังคับใช้การป้อนข้อมูลที่บังคับ หากต้องการบังคับให้ป้อน ให้ระบุ DSPATR(MDT) สำหรับอย่างน้อยหนึ่งฟิลด์ในแต่ละเรคคอร์ดบนจอแสดงผล สำหรับฟิลด์อื่นๆ ทั้งหมดในเรกคอร์ด CHECK(ME) จะถูกบังคับใช้ อย่างไรก็ตาม เนื่องจากอุปกรณ์ไม่สามารถระบุได้ว่าผู้ใช้ได้พิมพ์ข้อมูลลงในฟิลด์ที่มีทั้ง DSPATR(MDT) และ CHECK(ME) หรือไม่ คุณควรระบุ DSPATR(ND) เพื่อไม่ให้ฟิลด์นี้ปรากฏขึ้น
ลองสิ่งนี้:
A ZIP 6Y 0I 17 4CHECK( ME MF )
หากไม่ใช่สิ่งที่คุณต้องการ ให้แก้ไขคำถามและเพิ่มรายละเอียด
คำนิยามฟิลด์ตัวอย่างสองตัวอย่างต่อไปนี้อาจช่วยให้เกิดผลกับสิ่งที่พยายามจะแสดง ไม่ว่าในกรณีใด สามารถป้อนค่าได้\ปรากฏบนหน้าจอให้มีตัวเลขน้อยกว่าหกหลัก แต่ผลลัพธ์ของโปรแกรมจะเป็นหกหลักเสมอ [จัดชิดขวา, เติมศูนย์ไปทางซ้าย]:
A ZIPD 6D00B 9 9CHECK( ME MF FE )
A ZIPDRZ 6D00B 13 9CHECK( ME RZ FE )
แม้ว่าข้อกำหนดการตรวจสอบการเติมศูนย์ (RZ) ที่ปรับค่าเป็นศูนย์ปรับขวาจะเป็นทางเลือก แต่ข้อกำหนดดังกล่าวทำให้มั่นใจได้ว่าการจัดรูปแบบตัวเลขจะมองเห็นได้จากการเติมศูนย์เมื่อใช้ Field Exit [แต่แน่นอนว่าข้อกำหนดการตรวจสอบการออกจากสนาม (FE) เป็นทางเลือกเช่นกัน แต่การสนับสนุนให้ใช้ทำให้ผลของสิทธิ\ศูนย์ชัดเจนยิ่งขึ้น] FWiW ข้อกำหนดการตรวจสอบที่ต้องกรอก (MF) ดูเหมือนว่าจะไม่มีผลกระทบ [สำหรับฟิลด์อินพุตตัวเลข; ไม่มีสิ่งใดที่ชัดเจนในการทดสอบของฉัน]