หน้า 1 จากทั้งหมด 1
แก้แบบฟอร์มบิลซื้อRR

โพสต์แล้ว:
พฤหัสฯ. ต.ค. 24, 2013 6:11 pm
โดย Kamol1809
ในแบบฟอร์มบิลซื้อ
1.. ถ้าหมายเหตุ APMAS->REMARK พิมพ์ ข้อความ เป็นตัวอักษร หรือตัวเลขอื่นที่ไม่ใช่ข้อ2 หรือว่าง ให้~REM พิมพ์คำว่า สำนักงานใหญ่
2. ถ้าหมายเหตุ APMAS->REMARK พิมพ์ 01 หรือ 02 หรือ 03 จนถึง 99 ตำแหน่งที่ 1 ถึง 2 ให้พิมพ์คำว่า สาขาที่
ปัญหา ~REM ด้านล่างเขียนผิด ไม่รู้ที่ถูกเขียนอย่างไร ครับ
~REM: 0, "", "rem", "rem=IIF(SUBSTR(APMAS->REMARK)>'00 ','สาขาที่ ','สำนักงานใหญ่ ').
Re: แก้แบบฟอร์มบิลซื้อRR

โพสต์แล้ว:
พฤหัสฯ. ต.ค. 24, 2013 7:15 pm
โดย savek
ลองทดสอบดูก่อนนะครับ ลองใช้หลายๆ เงื่อนไขว่ามันจะแสดงผลให้ถูกต้องทุกเงื่อนไขหรือเปล่านะครับ
~REM: 0, "", "rem", "rem=IIF(((val(SUBSTR(APMAS->REMARK,1,2))>=0.AND.val(SUBSTR(APMAS->REMARK,1,2))<=99).AND.APMAS->REMARK#' '),'สาขาที่ ','สำนักงานใหญ่ ')"
Re: แก้แบบฟอร์มบิลซื้อRR

โพสต์แล้ว:
ศุกร์ ต.ค. 25, 2013 5:26 pm
โดย Kamol1809
ถ้ารายงานภาษีซื้อ มีหลายเงื่อนไข ไม่ทราบว่าข้างล่างผิดจุดไหนครับ แสดง นิพจน์ผิด
~REM_X2: 0, "", "remx2", "TT=ISVAT->REMARK ;remx2=IIF(((val(SUBSTR(APMASC->REMARK,1,2))>=0.AND.val(SUBSTR(APMASC->REMARK,1,2))<=99).AND.APMASC->REMARK#' '),'สาขาที่ ',IIF(((val(SUBSTR(APMAS->REMARK,1,2))>=0.AND.val(SUBSTR(APMAS->REMARK,1,2))<=99).AND.APMAS->REMARK#' '),'สาขาที่ ',IIF(((val(SUBSTR(ISVAT->REMARK,29,30))>=0.AND.val(SUBSTR(ISVAT->REMARK,29,30))<=99).AND.ISVAT->REMARK,29,30))#' ') ,'สาขาที่ ','สำนักงานใหญ่ ')"
Re: แก้แบบฟอร์มบิลซื้อRR

โพสต์แล้ว:
ศุกร์ ต.ค. 25, 2013 6:04 pm
โดย Kamol1809
[quote="Kamol1809"]
ถ้ารายงานภาษีซื้อ มีหลายเงื่อนไข ไม่ทราบว่าข้างล่างผิดจุดไหนครับ แสดง นิพจน์ผิด
~REM_X2: 0, "", "remx2", "TT=ISVAT->REMARK ;remx2=IIF(((val(SUBSTR(APMASC->REMARK,1,2))>=0.AND.val(SUBSTR(APMASC->REMARK,1,2))<=99).AND.APMASC->REMARK#' '),'สาขาที่ ',IIF(((val(SUBSTR(APMAS->REMARK,1,2))>=0.AND.val(SUBSTR(APMAS->REMARK,1,2))<=99).AND.APMAS->REMARK#' '),'สาขาที่ ',IIF(((val(SUBSTR(ISVAT->REMARK,29,30))>=0.AND.val(SUBSTR(ISVAT->REMARK,29,30))<=99).AND.ISVAT->REMARK,29,30))#' ') ,'สาขาที่ ','สำนักงานใหญ่ ')"
หริอ วิธีที่2 ไม่รู้ผิดตรงไหน
~REM_X2: 0, "", "remx2", "TT=ISVAT->REMARK ;remx2=IIF(VAL(SUBSTR(APMASC->REMARK,1,2)>'00','ÊÒ¢Ò·Õè ',IIF(VAL(SUBSTR(ISVAT->REMARK,29,30)>'00','ÊÒ¢Ò·Õè ',IIF((VAL(SUBSTR(APMAS->REMARK,1,2)>'00','สาขาที่ ','สำนักงานใหญ่ ')"
[/quote]
Re: แก้แบบฟอร์มบิลซื้อRR

โพสต์แล้ว:
ศุกร์ ต.ค. 25, 2013 7:13 pm
โดย savek
ประโยคนี้ผิดครับ
IIF(VAL(SUBSTR(APMASC->REMARK,1,2)>'00'
เพราะเรามีการเปลี่ยนค่า REMARK ซึ่งปกติเป็นข้อความ ถูกเปลี่ยนด้วยฟังก์ชั่น VAL ให้เป็นตัวเลขไปแล้ว ดังนั้นจึงไม่สามารถเปรียบเทียบกับข้อความที่เป็น '00' ได้ ต้องใช้เป็น > 0 ลักษณะนี้ครับ
IIF(VAL(SUBSTR(APMASC->REMARK,1,2) > 0
Re: แก้แบบฟอร์มบิลซื้อRR

โพสต์แล้ว:
ศุกร์ ต.ค. 25, 2013 7:27 pm
โดย Kamol1809
ที่ตุณเสวกเขียนมาให้ยังออกมาไม่ถูกต้อง ถ้า APMAS->REMARK เป็นข้อความหรือมีตัวอักษร หรือ 00 ต้องการออกมาเป็น สำนักงานใหญ่ แต่มันออกมาเป็นสาขาที่ ไม่รู้ยังผิดตรงไหน ครับ เหมือนกับว่าไม่ได้เช็ค เรื่องVAL
~REM: 0, "", "rem", "rem=IIF(((val(SUBSTR(APMAS->REMARK,1,2))>=0.AND.val(SUBSTR(APMAS->REMARK,1,2))<=99).AND.APMAS->REMARK#' '),'สาขาที่ ','สำนักงานใหญ่ ')"
Re: แก้แบบฟอร์มบิลซื้อRR

โพสต์แล้ว:
ศุกร์ ต.ค. 25, 2013 9:04 pm
โดย savek
ถ้าเงื่อนไขเป็นแบบที่ว่า ใช้สูตรนี้แทนครับ
~REM: 0, "", "rem", "rem=IIF(((val(SUBSTR(APMAS->REMARK,1,2))>0.AND.val(SUBSTR(APMAS->REMARK,1,2))<=99).OR.APMAS->REMARK=' '),'สาขาที่ ','สำนักงานใหญ่ ')"
Re: แก้แบบฟอร์มบิลซื้อRR

โพสต์แล้ว:
ศุกร์ ต.ค. 25, 2013 9:50 pm
โดย Kamol1809
ขอบคุณคุณเสวกมากครับ ที่สละเวลาช่วยตอบมาหลายครั้ง น่าจะหาคำตอบที่ถูกต้องแล้วครับ ดังนี้ >0 และ APMAS->REMARK#' ')
~REM: 0, "", "rem", "rem=IIF(((val(SUBSTR(APMAS->REMARK,1,2))>0.AND.val(SUBSTR(APMAS->REMARK,1,2))<=99).OR.APMAS->REMARK#' '),'สาขาที่ ','สำนักงานใหญ่ ')"
Re: แก้แบบฟอร์มบิลซื้อRR

โพสต์แล้ว:
เสาร์ ต.ค. 26, 2013 10:03 am
โดย Kamol1809
ตัวแปรข้างล่างนี้ พิมพ์ 4 ตำแหน่ง ไม่ว่าจะเป็นตัวเลข อักษร หรือว่าง
ถ้าให้พิมพ์ 4 ตำแหน่งที่เป็นตัวเลขเท่านั้น ไม่ทราบว่าจะเขียนอย่างไร ครับ
~REM_X1: 0, "", "remx1", "TT=ISVAT->REMARK ;remx1=IIF(SUBSTR(TT,1,1)='8',SUBSTR(APMASC->REMARK,1,4),IIF(SUBSTR(TT,1,1)='9',SUBSTR(ISVAT->REMARK,27,30),SUBSTR(APMAS->REMARK,1,4)))"
Re: แก้แบบฟอร์มบิลซื้อRR

โพสต์แล้ว:
เสาร์ ต.ค. 26, 2013 5:38 pm
โดย savek
ผมไม่เข้าใจคำถามครับ รบกวนขอตัวอย่างนิดนึงได้ไหมครับว่า 4 ตำแหน่งที่ว่าเป็นตัวเลขเท่านั้นหมายถึงยังไง
เพราะดูจากสูตร เป็นการเช็คว่าถ้าตำแหน่งแรกของ REMARK เป็น 8 ให้พิมพ์หมายเหตุจาก APMASC->REMARK ตัวที่ 1-4 แต่ถ้าเป็น 9 ให้พิมพ์ตัวที่ 27 และพิมพ์ยาวไป 30 ตัว (ซึ่งแบบนี้จะผิดนะครับ เพราะกลายเป็นว่าความยาวของผลลัพธ์ไม่เท่ากัน บางตัวพิมพ์แค่ 4 ตัวอักษร บางตัวกลับพิมพ์ถึง 30 ตัวอักษร)
Re: แก้แบบฟอร์มบิลซื้อRR

โพสต์แล้ว:
อาทิตย์ ต.ค. 27, 2013 6:18 am
โดย Kamol1809
~REM_X1: 0, "", "remx1", "TT=ISVAT->REMARK ;remx1=IIF(SUBSTR(TT,1,1)='8',SUBSTR(APMASC->REMARK,1,4),IIF(SUBSTR(TT,1,1)='9',SUBSTR(ISVAT->REMARK,27,30),SUBSTR(APMAS->REMARK,1,4)))"
หมายถึง 4 ตำแหน่งของเงื่อนไขที่3 ครับ. ที่เป็นตัวเลขสาขาเลขที่ 0001 ถึง 9999 จึงจะพิมพ์ออกมา ถ้าตำแหน่งที่1-4 เป็นตัวเลขอื่น(ไม่ใช่0001 -9999 ) และเป็นตัวอักษรหรือเครื่องหมาย หรือว่าง ไม่ต้องพิมพ์ออกมา และไม่เข้าเงื่ิอนไขข้อ 1และ2 ไม่ต้องพิมพ์ออกมา
( คือ~REM_X1 เป็นเลขที่สาขา เท่านั้น ถ้าไม่บันทึกเลขที่สาขา ไม่ต้องพิมพ์ออกมาทุกกรณี )
1 IIF(SUBSTR(TT,1,1)='8',SUBSTR(APMASC->REMARK,1,4)
2 .IIF(SUBSTR(TT,1,1)='9',SUBSTR(ISVAT->REMARK,27,30)
3. SUBSTR(APMAS->REMARK,1,4
Re: แก้แบบฟอร์มบิลซื้อRR

โพสต์แล้ว:
อาทิตย์ ต.ค. 27, 2013 9:51 am
โดย savek
ถ้าจะเช็คว่าเป็นตัวเลขหรือเปล่า คงต้องใช้เป็นสูตรเดิม เช่น IIF(VAL(SUBSTR(APMAS->REMARK,1,4))>0 เพื่อเช็คว่าสิ่งที่ป้อนเข้าไป มีค่ามากกว่า 0 (หรือก็คือการเช็คว่าเป็นตัวเลขหรือไม่)
Re: แก้แบบฟอร์มบิลซื้อRR

โพสต์แล้ว:
อาทิตย์ ต.ค. 27, 2013 4:26 pm
โดย Kamol1809
ผมใช้อีกวิธี "ZZZZ" ก้พอใช้ได้ สาขา 0001 จะพิมพ์เป็น 1 ก็ถือว่าใช้ได้ แต่ไม่มี 000
~REM_X1: 0, "ZZZZ", "remx1", "TT=ISVAT->REMARK ;remx1=IIF(SUBSTR(TT,1,1)='8',VAL(SUBSTR(APMASC->REMARK,1,4)),IIF(SUBSTR(TT,1,1)='9',VAL(SUBSTR(ISVAT->REMARK,27,30)),VAL(SUBSTR(APMAS->REMARK,1,4))))"