หน้า 1 จากทั้งหมด 1
ในรายงานกำหนดเงื่อนไขแบบ if ... then.. else ได้ไหมครับ

โพสต์แล้ว:
พุธ มี.ค. 07, 2012 3:16 pm
โดย Webstory
เช่นในตัวรายงาน 8 1 2 ครับ
ที่มีตัวแปร ~V ที่ส่งค่าออกมาเป็น 0,1,2 ครับ
อยากทำเงื่อนไขในรายงานประมาณนี้ครับ
สมมติกำหนดตัวแปรใหม่เป็น abc และ xyz
ถ้า ~V = 0 ให้ abc =1 และ xyz = ไม่มีภาษี
ถ้า ~V = 1 ให้ abc =1 และ xyz = ราคารวมภาษี
ถ้า ~V = 2 ให้ abc =1.07 และ xyz = ราคารวมภาษี
วัตถุประสงค์ต้องการราคาต้นทุนสุทธิต่อหน่วย แสดงราคารวมภาษี หรือ ถ้าไม่มีภาษีก็แจ้งเลย
ต่อจากกระทู้นี้ครับ
http://www.esg.co.th/smf/http://esg.co. ... ic.php?t=6ขอบคุณครับ
Re: ในรายงานกำหนดเงื่อนไขแบบ if ... then.. else ได้ไหมครับ

โพสต์แล้ว:
พุธ มี.ค. 07, 2012 4:09 pm
โดย webmaster
การใช้ if then else ในการแก้ไขรายงาน/แบบฟอร์มของ Express อาจจะใช้ในลักษณะ IF ซ้อน IF แทนได้นะครับ

เช่น IIF(ตรวจสอบเงื่อนไข,ผลลัพธ์กรณีเป็นจริง,ผลลัพธ์กรณีเป็นเท็จ ซึ่งตรงนี้เราสามารถใช้คำสั่ง IIF ตรวจสอบเงื่อนไขได้อีกครั้งหนึ่งครับ)
หากแก้ไขแล้ว ติดตรงไหน ลองโพสท์คำสั่งที่ทำเอาไว้ลงในกระทู้นี้อีกทีนะครับ เดี๋ยวผมช่วยตรวจสอบให้อีกทีครับผม

Re: ในรายงานกำหนดเงื่อนไขแบบ if ... then.. else ได้ไหมครับ

โพสต์แล้ว:
พุธ มี.ค. 07, 2012 4:46 pm
โดย Webstory
ผมลองเขียนแบบนี้ครับ ขึ้น error ไม่พบตัวแปร VATX
~VATX: 0, "", "VATX", "VATX= IIF(APTRN->FLGVAT='0','1',IIF(APTRN->FLGVAT='1','1',IIF(APTRN->FLGVAT='2','1.07')))"
~COST: 0, "", "COST", "COST= A->NETVAL/A->TRNQTY*VATX"
Re: ในรายงานกำหนดเงื่อนไขแบบ if ... then.. else ได้ไหมครับ

โพสต์แล้ว:
พุธ มี.ค. 07, 2012 5:13 pm
โดย ASAN
[quote="Webstory"]
ถ้า ~V = 0 ให้ abc =1 และ xyz = ไม่มีภาษี
ถ้า ~V = 1 ให้ abc =1 และ xyz = ราคารวมภาษี
ถ้า ~V = 2 ให้ abc =1.07 และ xyz = ราคารวมภาษี
[/quote]
ตัวนี้เขียนมาผิดหรือเปล่าครับ
ถ้า ~V = 0 ให้ abc =0 และ xyz = ไม่มีภาษี
เราต้องสร้างตัวแปรไว้ 2 ชุดก่อนครับ
~V: 0, "", "APTRN->FLGVAT", ""
~ABC: 0, "", "abc", "abc=IIF(APTRN->FLGVAT='2','1.07',IIF(APTRN->FLGVAT='1','1 ','0 '))"
~XYZ: 0, "", "xyz", "xyz=IIF(APTRN->FLGVAT='0','ไม่มีภาษี ',IIF(APTRN->FLGVAT='1','ราคารวมภาษี ','ราคาแยกภาษี '))"
Re: ในรายงานกำหนดเงื่อนไขแบบ if ... then.. else ได้ไหมครับ

โพสต์แล้ว:
พุธ มี.ค. 07, 2012 5:19 pm
โดย ASAN
จะอ้างถึง VATX ต้องไปอยู่บรรทัดเดียวกับ VATX ครับ ไม่งั้นต้องเขียนที่มาของผลลัพท์ VATX มาใส่หลัง * แทนซ้ำอีกครั้ง
ที่มาของผลลัพท์ VATX ตัวสีน้ำเงินครับ
~VATX: 0, "", "VATX", "VATX= IIF(APTRN->FLGVAT='0','1',IIF(APTRN->FLGVAT='1','1',IIF(APTRN->FLGVAT='2','1.07'))) ;COST= A->NETVAL/A->TRNQTY*VATX"
~COST: 0, "", "COST", ""
Re: ในรายงานกำหนดเงื่อนไขแบบ if ... then.. else ได้ไหมครับ

โพสต์แล้ว:
พุธ มี.ค. 07, 2012 6:09 pm
โดย Webstory
ขอบคุณ ท่าน webmaster และคุณ ASAN นะครับ เิริ่มพอเข้าใจแล้วครับ แต่ยังมีที่ไม่แสดงผลครับ
~COST: 0, "", "COST", "COST= A->NETVAL/A->TRNQTY"
~XYZ: 0, "", "xyz", "xyz=IIF(APTRN->FLGVAT='0','ไม่มีภาษี ','ราคารวมภาษี ')"
~VATX: 0, "", "VATX", "VATX= IIF(APTRN->FLGVAT='0','1',IIF(APTRN->FLGVAT='1','1',IIF(APTRN->FLGVAT='2','1.07'))) ;COST2= A->NETVAL/A->TRNQTY*VATX"
~COST2: 0, "", "COST2", ""
ตอนนี้ผมลองใส่ค่าไปทั้งหมดแบบนี้ครับ
ตัวแปร COST กับ XYZ แสดงค่าถูกต้องครับ
แต่ตัวแปร COST2 แสดงในรายงานว่า COST2 เลยครับ
Re: ในรายงานกำหนดเงื่อนไขแบบ if ... then.. else ได้ไหมครับ

โพสต์แล้ว:
พุธ มี.ค. 07, 2012 6:35 pm
โดย ASAN
ลองดูที่หน้าแสดงผลว่า COST2 มีตัวหนอนนำหน้าหรือเปล่า ~COST2
Re: ในรายงานกำหนดเงื่อนไขแบบ if ... then.. else ได้ไหมครับ

โพสต์แล้ว:
พฤหัสฯ. มี.ค. 08, 2012 8:37 am
โดย Webstory
[quote="ASAN"]
ลองดูที่หน้าแสดงผลว่า COST2 มีตัวหนอนนำหน้าหรือเปล่า ~COST2
[/quote]
ที่หน้าแสดงผล COST2 ไม่มีตัวหนอนนำหน้าครับ แสดงผลออกมาเป็น COST2 เลยครับ
Re: ในรายงานกำหนดเงื่อนไขแบบ if ... then.. else ได้ไหมครับ

โพสต์แล้ว:
พฤหัสฯ. มี.ค. 08, 2012 8:51 am
โดย webmaster
ที่คุณ Asan หมายถึง จะเป็นในส่วนของ [report frame] ด้านบนนะครับ คือ ทุกตัวแปรที่เราต้องการแสดงขึ้นมาในแบบฟอร์มหรือรายงาน จะต้องมีเครื่องหมาย ~ นำหน้าตัวแปรนั้นๆ นะครับ

แต่หากตรวจสอบแล้วว่า COST2 ที่เราใส่ไว้ในส่วนของ [report frame] ได้กำหนดเป็น ~COST2 แล้ว อีกจุดหนึ่งที่อยากให้ตรวจสอบเพิ่มเติมคือ ตัวแปร ~VATX มีแสดงอยู่ในส่วนของ [report frame] ด้วยหรือไม่นะครับ
เพราะหลักการทำงานของการเขียนรายงาน จะใช้วิธีอ่านค่าจากบนลงล่าง และจากซ้ายไปขวา ในกรณีนี้เราได้กำหนดค่าของ COST2 เอาไว้ในบรรทัด VATX
ดังนั้น VATX ต้องถูกอ่านค่าในส่วนของ [report frame] ด้านบนด้วยนะครับ โปรแกรมจึงจะแสดงค่า COST2 ออกมาได้ถูกต้อง
(คือต้องเอาตัวแปร ~VATX ไปวางไว้ในส่วนของ [report frame] ด้านบนด้วย เพื่อให้โปรแกรมอ่านค่าตัวแปรนี้ หรืออีกวิธีหนึ่ง คือ ต้องเอาค่าที่บอกว่า COST2= ไปฝากไว้กับตัวแปรอื่นๆ ที่มีการแสดงผลอยู่ในรายงานตัวนี้ครับ)
Re: ในรายงานกำหนดเงื่อนไขแบบ if ... then.. else ได้ไหมครับ

โพสต์แล้ว:
พฤหัสฯ. มี.ค. 08, 2012 9:30 am
โดย Webstory
ได้ความรู้เพิ่มอีกแล้วครับ ตอนนี้เริ่มเข้าใจเรื่อง [report frame] แล้วครับ
ผมเอาง่าย ๆ ก่อนก็เลยเอา VATX ไปวางใน [report frame]
แต่มี error อีกนิดครับ มี pop up แจ้งว่า
นิพจน์ผิด (STCRD->NETVAL/STCRD->TRNQTY*VATX)
Re: ในรายงานกำหนดเงื่อนไขแบบ if ... then.. else ได้ไหมครับ

โพสต์แล้ว:
พฤหัสฯ. มี.ค. 08, 2012 9:39 am
โดย webmaster
Error ตรงนี้เกิดจากค่าของ VATX ได้ออกมาเป็นประเภทตัวอักษรครับ (จากการที่เราใส่เครื่องหมาย ' คร่อมค่า 1 หรือ 1.07 เอาไว้)
แต่เราเอาไปคูณกับข้อมูลที่เป็นตัวเลข (STCRD->TRNQTY) โปรแกรมก็เลยแจ้งว่านิพจน์ผิดครับ

Re: ในรายงานกำหนดเงื่อนไขแบบ if ... then.. else ได้ไหมครับ

โพสต์แล้ว:
พฤหัสฯ. มี.ค. 08, 2012 9:44 am
โดย Webstory
[quote="webmaster"]
Error ตรงนี้เกิดจากค่าของ VATX ได้ออกมาเป็นประเภทตัวอักษรครับ (จากการที่เราใส่เครื่องหมาย ' คร่อมค่า 1 หรือ 1.07 เอาไว้)
แต่เราเอาไปคูณกับข้อมูลที่เป็นตัวเลข (STCRD->TRNQTY) โปรแกรมก็เลยแจ้งว่านิพจน์ผิดครับ

[/quote]
ได้แล้วครับ
ขอบคุณท่าน webmaster และ คุณ ASAN ครับ

Re: ในรายงานกำหนดเงื่อนไขแบบ if ... then.. else ได้ไหมครับ

โพสต์แล้ว:
พฤหัสฯ. มี.ค. 08, 2012 11:16 am
โดย ASAN
ครับ ดีใจที่ทำได้ครับ ค่อยๆปรับไปทีละน้อยครับ
ข้อมูลที่ผมแนะนำไป ผมไม่ได้ทดสอบตามที่คุณแจ้งไว้หรอกครับ เพราะไม่ค่อยมีเวลาเท่าไหร่ เพียงแต่เขียนตามคำสั่งของโปรแกรมที่ควรจะเป็น ดังนั้นผู้ที่สอบถาม ต้องนำไปทดสอบดูอีกครั้ง หากมีปัญหาแจ้งเป็นช่วงๆอย่างนี้ละครับดีแล้ว รวมทั้งเมื่อแก้ไขเีรียบร้อยแล้ว แจ้งกลับมาด้วยอย่างที่คุณ Webstory แจ้งมาอย่างนี้ จักขอบพระคุณยิ่งครับ ทั้งนี้เพื่อสรุปผลการแก้ไขที่ถูกต้องไว้สำหรับกรณีศึกษาต่อไปครับ