ซ่อนบรรทัดเมื่อไม่มีข้อมูล & Objectแสดงผลแค่ตัวอักษรตัวเดียว

หากท่านใดมีข้อสงสัยหรือคำถามเกี่ยวกับการใช้งานโปรแกรม Express สามารถเข้ามาสอบถามได้ที่นี่ครับ

Moderator: Sutas, CO-Admin, Global Moderator

ซ่อนบรรทัดเมื่อไม่มีข้อมูล & Objectแสดงผลแค่ตัวอักษรตัวเดียว

โพสต์โดย ิbwip » พุธ ก.ค. 07, 2021 6:02 pm

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

คำถามที่ 1
ถ้าต้องการให้แถบ Bo หรือ Su ไม่ใช้พื้นที่หน้ากระดาษ เมื่อ Field นั้นไม่มีข้อมูล ต้องเลือก Setting ‘ลดขนาดได้’ เป็น Yes ใช่หรือไม่คะ ต้องแก้ไขอะไรอย่างอื่นอีกหรือไม่

คำถามที่ 2
ได้สร้าง Object โดยใช้สูตรข้างล่างนี้ เพื่อให้ Return ข้อมูลเป็น ‘ ‘ เวลาไม่มีข้อมูลตามสูตรข้างล่างนี้

proj_name=p_hrem(A->DOCNUM,1,A->SONUM)
proj_name_str=iif(proj_name=' ',' ',proj_name)

ผลลัพธ์เมื่อลองพิมพ์ จะออกมาแค่ตัวอักษรเดียว คือ “H” แต่คำเต็มคือ “Heading Project Test” ซึ่งสามารถพิมพ์ออกมาถูกถ้าใช้แค่ p_hrem(A->DOCNUM,1,A->SONUM)

มีอีกสูตรหนึ่งที่ผลออกมาคล้ายๆ กัน
hasDiscount=iif(ARTRN->DISCAMT=0,' ','Discount')

ผลลัพธ์ออกมาแค่ “D” แทนที่จะออกคำเต็มมาว่า "Discount"

ต้องแก้ไขยังไงคะ

คำถามที่ 3
ไม่ทราบว่าสามารถทำลักษณะคล้ายกันกับ DISCAMT และ ADVAMT ที่เป็นตัวเลข เพื่อให้ย่อบรรทัดได้หรือไม่ ปรกติจะพิมพ์ข้อมูลเหล่านี้หลังข้อมูลสินค้าชิ้นสุดท้าย ก่อนสรุปข้อมูล ถ้าไม่มีก็ไม่ต้องพิมพ์

ขอบคุณล่วงหน้าด้วยค่ะ
ิbwip
Newbie
Newbie
 
โพสต์: 5
ลงทะเบียนเมื่อ: พุธ ก.ค. 07, 2021 5:52 pm

Re: ซ่อนบรรทัดเมื่อไม่มีข้อมูล & Objectแสดงผลแค่ตัวอักษรตัวเ

โพสต์โดย savek » พฤหัสฯ. ก.ค. 08, 2021 9:39 am

1.
ถ้าไม่ต้องการให้แสดงบรรทัด ใช้วิธีคลิกที่เซ็คชั่นด้านหน้าครับ เช่น เซ็คชั่น Bo จากนั้นในแท็บการคำนวณ ใส่คำสั่งลักษณะนี้

.visible=IIF(STCRD->STKCOD='03-HITC' .OR. STCRD->STKCOD='04-SEAG',.F.,.T.)

ซึ่งจะหมายถึงถ้าบรรทัดดังกล่าว มีรายการสินค้าที่มีรหัส 03-HITC หรือ 04-SEAG จะไม่แสดงบรรทัดนี้ออกมา

2.
proj_name_str=iif(proj_name=' ',' ',proj_name) ในส่วนของ ' ' คู่ที่ 2 ต้องกำหนดความยาวให้เท่ากับความกว้างที่มากที่สุดของคำว่า proj_name ครับ เพราะเงื่อนไขที่เป็นจริงกับเท็จ ความยาวหรือความกว้างของข้อมูลจะต้องเท่ากัน
ภาพประจำตัวสมาชิก
savek
Administrator
Administrator
 
โพสต์: 12463
ลงทะเบียนเมื่อ: พฤหัสฯ. พ.ย. 15, 2007 11:04 am

Re: ซ่อนบรรทัดเมื่อไม่มีข้อมูล & Objectแสดงผลแค่ตัวอักษรตัวเ

โพสต์โดย ิbwip » พุธ ก.ค. 14, 2021 1:12 pm

ขอบคุณสำหรับข้อมูลเรื่อง .visible ค่ะ

2.
proj_name_str=iif(proj_name=' ',' ',proj_name) ในส่วนของ ' ' คู่ที่ 2 ต้องกำหนดความยาวให้เท่ากับความกว้างที่มากที่สุดของคำว่า proj_name ครับ เพราะเงื่อนไขที่เป็นจริงกับเท็จ ความยาวหรือความกว้างของข้อมูลจะต้องเท่ากัน


ความยาวของ Object ยาวแล้วค่ะ แต่ผลลัพธ์ก็ไม่ขึ้น ตอนนี้แก้ปัญหาโดยการใช้ .visible แทน รบกวนขอวิธีแก้ไขด้วยค่ะ เพราะเจอแบบนี้หลายกรณีเวลาแก้ไข String ที่อยู่ใน IF ELSE case

ไม่ทราบว่าส่งภาพให้ดูทางไหนได้ เพราะว่าพยายามแนบไฟล์แล้ว ระบบแจ้งว่า "ไฟล์ที่อัพโหลดขึ้นมา มีขนาดใหญ่เกินไป" ไฟล์มีขนาด 219 kb

ยกตัวอย่างอีกเคสค่ะ

page2=iif(_TP>1,alltrim(str(_PAGE)) + ' / ' + alltrim(str(_TP)),' ')
invNo2=iif(_TP>1, substr(ARTRN->DOCNUM,3,7)+ ' - ' + page2, substr(ARTRN->DOCNUM,3,7))

ผลลัพธ์จะแสดงแค่เลข DOCNUM และไม่แสดงเลขหน้า (object page2) ทั้งๆที่มี 3 หน้า Object page2 เดี่ยวๆ ก็ไม่แสดงผลใดๆเลย

รบกวนขอคำแนะนำด้วยค่ะ
ขอบคุณค่ะ
ิbwip
Newbie
Newbie
 
โพสต์: 5
ลงทะเบียนเมื่อ: พุธ ก.ค. 07, 2021 5:52 pm

Re: ซ่อนบรรทัดเมื่อไม่มีข้อมูล & Objectแสดงผลแค่ตัวอักษรตัวเ

โพสต์โดย savek » พุธ ก.ค. 14, 2021 2:28 pm

ผมทดสอบตามคำสั่งที่ให้มาก็ออกให้ครับ ทั้งตัวแปร page2 และ invNo2
ตรงเงื่อนไขที่เป็นเท็จ เครื่องหมาย ' ' ให้วรรคห่างกันมากๆ ครับ
ภาพประจำตัวสมาชิก
savek
Administrator
Administrator
 
โพสต์: 12463
ลงทะเบียนเมื่อ: พฤหัสฯ. พ.ย. 15, 2007 11:04 am

Re: ซ่อนบรรทัดเมื่อไม่มีข้อมูล & Objectแสดงผลแค่ตัวอักษรตัวเ

โพสต์โดย ิbwip » พฤหัสฯ. ก.ค. 15, 2021 4:17 pm

ขอบคุณค่ะ ทำให้ InvNo2 แสดงผลได้แล้ว ต้องเพิ่มช่องว่างจำนวนเท่ากับจำนวนอักษรที่ต้องแสดงและสูตรที่ 2 ก็ต้องเพิ่ม + ' ' กว้างๆ เวลา False เข้าไปด้วยค่ะ
ิbwip
Newbie
Newbie
 
โพสต์: 5
ลงทะเบียนเมื่อ: พุธ ก.ค. 07, 2021 5:52 pm


ย้อนกลับไปยัง ถาม-ตอบปัญหาเกี่ยวกับโปรแกรม Express

ผู้ใช้งานขณะนี้

กำลังดูบอร์ดนี้: ไม่มีสมาชิกใหม่ และ บุคคลทั่วไป 29 ท่าน

cron