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

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

Moderator: Sutas, CO-Admin, Global Moderator

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

โพสต์โดย Webstory » พุธ มี.ค. 07, 2012 3:16 pm

เช่นในตัวรายงาน 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

ขอบคุณครับ
Webstory
Newbie
Newbie
 
โพสต์: 15
ลงทะเบียนเมื่อ: อังคาร ก.พ. 14, 2012 11:03 am

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

โพสต์โดย webmaster » พุธ มี.ค. 07, 2012 4:09 pm

การใช้ if then else ในการแก้ไขรายงาน/แบบฟอร์มของ Express อาจจะใช้ในลักษณะ IF ซ้อน IF แทนได้นะครับ :)

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

หากแก้ไขแล้ว ติดตรงไหน ลองโพสท์คำสั่งที่ทำเอาไว้ลงในกระทู้นี้อีกทีนะครับ เดี๋ยวผมช่วยตรวจสอบให้อีกทีครับผม :)
ภาพประจำตัวสมาชิก
webmaster
Administrator
Administrator
 
โพสต์: 218
ลงทะเบียนเมื่อ: อังคาร ก.ค. 01, 2003 10:53 am

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

โพสต์โดย Webstory » พุธ มี.ค. 07, 2012 4:46 pm

ผมลองเขียนแบบนี้ครับ ขึ้น 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"
Webstory
Newbie
Newbie
 
โพสต์: 15
ลงทะเบียนเมื่อ: อังคาร ก.พ. 14, 2012 11:03 am

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

โพสต์โดย ASAN » พุธ มี.ค. 07, 2012 5:13 pm

[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','ราคารวมภาษี  ','ราคาแยกภาษี  '))"
ภาพประจำตัวสมาชิก
ASAN
Hero Member
Hero Member
 
โพสต์: 3477
ลงทะเบียนเมื่อ: อังคาร ก.ค. 15, 2003 9:50 am

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

โพสต์โดย ASAN » พุธ มี.ค. 07, 2012 5:19 pm

จะอ้างถึง 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",       ""
ภาพประจำตัวสมาชิก
ASAN
Hero Member
Hero Member
 
โพสต์: 3477
ลงทะเบียนเมื่อ: อังคาร ก.ค. 15, 2003 9:50 am

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

โพสต์โดย Webstory » พุธ มี.ค. 07, 2012 6:09 pm

ขอบคุณ ท่าน 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 เลยครับ
Webstory
Newbie
Newbie
 
โพสต์: 15
ลงทะเบียนเมื่อ: อังคาร ก.พ. 14, 2012 11:03 am

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

โพสต์โดย ASAN » พุธ มี.ค. 07, 2012 6:35 pm

ลองดูที่หน้าแสดงผลว่า COST2 มีตัวหนอนนำหน้าหรือเปล่า  ~COST2
ภาพประจำตัวสมาชิก
ASAN
Hero Member
Hero Member
 
โพสต์: 3477
ลงทะเบียนเมื่อ: อังคาร ก.ค. 15, 2003 9:50 am

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

โพสต์โดย Webstory » พฤหัสฯ. มี.ค. 08, 2012 8:37 am

[quote="ASAN"]
ลองดูที่หน้าแสดงผลว่า COST2 มีตัวหนอนนำหน้าหรือเปล่า  ~COST2
[/quote]

ที่หน้าแสดงผล COST2 ไม่มีตัวหนอนนำหน้าครับ แสดงผลออกมาเป็น COST2 เลยครับ
Webstory
Newbie
Newbie
 
โพสต์: 15
ลงทะเบียนเมื่อ: อังคาร ก.พ. 14, 2012 11:03 am

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

โพสต์โดย webmaster » พฤหัสฯ. มี.ค. 08, 2012 8:51 am

ที่คุณ Asan หมายถึง จะเป็นในส่วนของ [report frame] ด้านบนนะครับ คือ ทุกตัวแปรที่เราต้องการแสดงขึ้นมาในแบบฟอร์มหรือรายงาน จะต้องมีเครื่องหมาย ~ นำหน้าตัวแปรนั้นๆ นะครับ :)

แต่หากตรวจสอบแล้วว่า COST2 ที่เราใส่ไว้ในส่วนของ [report frame] ได้กำหนดเป็น ~COST2 แล้ว อีกจุดหนึ่งที่อยากให้ตรวจสอบเพิ่มเติมคือ ตัวแปร ~VATX มีแสดงอยู่ในส่วนของ [report frame] ด้วยหรือไม่นะครับ

เพราะหลักการทำงานของการเขียนรายงาน จะใช้วิธีอ่านค่าจากบนลงล่าง และจากซ้ายไปขวา ในกรณีนี้เราได้กำหนดค่าของ COST2 เอาไว้ในบรรทัด VATX

ดังนั้น VATX ต้องถูกอ่านค่าในส่วนของ [report frame] ด้านบนด้วยนะครับ โปรแกรมจึงจะแสดงค่า COST2 ออกมาได้ถูกต้อง

(คือต้องเอาตัวแปร ~VATX ไปวางไว้ในส่วนของ [report frame] ด้านบนด้วย เพื่อให้โปรแกรมอ่านค่าตัวแปรนี้ หรืออีกวิธีหนึ่ง คือ ต้องเอาค่าที่บอกว่า COST2= ไปฝากไว้กับตัวแปรอื่นๆ ที่มีการแสดงผลอยู่ในรายงานตัวนี้ครับ)
ภาพประจำตัวสมาชิก
webmaster
Administrator
Administrator
 
โพสต์: 218
ลงทะเบียนเมื่อ: อังคาร ก.ค. 01, 2003 10:53 am

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

โพสต์โดย Webstory » พฤหัสฯ. มี.ค. 08, 2012 9:30 am

ได้ความรู้เพิ่มอีกแล้วครับ ตอนนี้เริ่มเข้าใจเรื่อง [report frame] แล้วครับ
ผมเอาง่าย ๆ ก่อนก็เลยเอา VATX ไปวางใน [report frame]

แต่มี error อีกนิดครับ มี pop up แจ้งว่า

นิพจน์ผิด (STCRD->NETVAL/STCRD->TRNQTY*VATX)
Webstory
Newbie
Newbie
 
โพสต์: 15
ลงทะเบียนเมื่อ: อังคาร ก.พ. 14, 2012 11:03 am

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

โพสต์โดย webmaster » พฤหัสฯ. มี.ค. 08, 2012 9:39 am

Error ตรงนี้เกิดจากค่าของ VATX ได้ออกมาเป็นประเภทตัวอักษรครับ (จากการที่เราใส่เครื่องหมาย ' คร่อมค่า 1 หรือ 1.07 เอาไว้)

แต่เราเอาไปคูณกับข้อมูลที่เป็นตัวเลข (STCRD->TRNQTY) โปรแกรมก็เลยแจ้งว่านิพจน์ผิดครับ :)
ภาพประจำตัวสมาชิก
webmaster
Administrator
Administrator
 
โพสต์: 218
ลงทะเบียนเมื่อ: อังคาร ก.ค. 01, 2003 10:53 am

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

โพสต์โดย Webstory » พฤหัสฯ. มี.ค. 08, 2012 9:44 am

[quote="webmaster"]
Error ตรงนี้เกิดจากค่าของ VATX ได้ออกมาเป็นประเภทตัวอักษรครับ (จากการที่เราใส่เครื่องหมาย ' คร่อมค่า 1 หรือ 1.07 เอาไว้)

แต่เราเอาไปคูณกับข้อมูลที่เป็นตัวเลข (STCRD->TRNQTY) โปรแกรมก็เลยแจ้งว่านิพจน์ผิดครับ :)
[/quote]

ได้แล้วครับ
ขอบคุณท่าน webmaster และ คุณ ASAN ครับ  ;D ;D
Webstory
Newbie
Newbie
 
โพสต์: 15
ลงทะเบียนเมื่อ: อังคาร ก.พ. 14, 2012 11:03 am

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

โพสต์โดย ASAN » พฤหัสฯ. มี.ค. 08, 2012 11:16 am

ครับ ดีใจที่ทำได้ครับ ค่อยๆปรับไปทีละน้อยครับ 

ข้อมูลที่ผมแนะนำไป ผมไม่ได้ทดสอบตามที่คุณแจ้งไว้หรอกครับ เพราะไม่ค่อยมีเวลาเท่าไหร่ เพียงแต่เขียนตามคำสั่งของโปรแกรมที่ควรจะเป็น ดังนั้นผู้ที่สอบถาม ต้องนำไปทดสอบดูอีกครั้ง หากมีปัญหาแจ้งเป็นช่วงๆอย่างนี้ละครับดีแล้ว รวมทั้งเมื่อแก้ไขเีรียบร้อยแล้ว แจ้งกลับมาด้วยอย่างที่คุณ Webstory แจ้งมาอย่างนี้  จักขอบพระคุณยิ่งครับ ทั้งนี้เพื่อสรุปผลการแก้ไขที่ถูกต้องไว้สำหรับกรณีศึกษาต่อไปครับ
ภาพประจำตัวสมาชิก
ASAN
Hero Member
Hero Member
 
โพสต์: 3477
ลงทะเบียนเมื่อ: อังคาร ก.ค. 15, 2003 9:50 am


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

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

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