หน้า 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=&quot;Kamol1809&quot;]
ถ้ารายงานภาษีซื้อ  มีหลายเงื่อนไข   ไม่ทราบว่าข้างล่างผิดจุดไหนครับ  แสดง นิพจน์ผิด


~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))))"