ร/ง 541 (แสดง รหัสลูกค้า)

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

Moderator: Sutas, CO-Admin, Global Moderator

Re: ร/ง 541 (แสดง รหัสลูกค้า)

โพสต์โดย ppitaksu » พุธ ต.ค. 07, 2020 8:37 pm

ITTI เขียน:ตัวแปรเดิม
~VDATE: 0, "", "J->VOUDAT", "", 0, 1

เปลี่ยเป็น
~VDATE: 0, "", "J->VOUDAT", ""


รบกวน อยากขอคำอธิบาย
~VDATE: 0, "", "J->VOUDAT", "", 0, 1
พารามิเตอร์ ตัวต่อท้าย "", 0, 1 ว่ามีความหมายอย่างไร คือถ้าผม อยากให้แสดง วันที่ ทุกบรรทัดใน Ib: ที่จริงก็แค่ ลบ ,0 ,1 ออกไป
แต่มีบางกรณี ถ้าผม ต้องการให้แสดง วันที่เพียงครั้งเดียว เราใช้ , 0, 1 ได้ผลลัพธ์ตามที่กล่าว
แต่ว่า ถ้าหากว่า ผมต้องการให้แสดง วันที่ เพียงครั้งเดียว แต่ต้องการให้แสดงที่ Itemสุดท้ายของวัน แทนที่จะเป็น Item แรกของวัน เราสามารถ ปรับตั้งค่า พารามิเตอร์ คู่นี้ ได้หรือไม่ครับ ขอบคุณครับ
ppitaksu
Sr. Member
Sr. Member
 
โพสต์: 424
ลงทะเบียนเมื่อ: พฤหัสฯ. ม.ค. 15, 2004 11:28 pm

Re: ร/ง 541 (แสดง รหัสลูกค้า)

โพสต์โดย ITTI » พฤหัสฯ. ต.ค. 08, 2020 11:38 am

,0,1
ผมเข้าใจบ้านๆว่าให้ตัวแปรนี้แสดงผลครั้งเดียว หรือเรียกว่า "ซ่อนเมื่อซ้ำ"


วิธีการแก้ไขให้ออกรายการซ้ำตัวสุดท้าย ที่ลองทำไม่มีฟังก์ชั่นรองรับครับ ต้องทำเอง
เพิ่มชุด Relate file 1 ชุดครับ

File=GLJNLITB
CLONE FROM=GLJNLIT
Alias=BB
KEY=DTOS(VOUDAT)+ACCNUM
INDEX=C:\VDAT.TMP
FILTER=.NOT.DELETED()
System=DATA_PATH
Master file=GLJNLIT
Master-Related Field=DTOS(VOUDAT)+ACCNUM
Descending=Y


~VDATE: 0, "", "VDATE", "VDATE=IIF(GLJNLB->VOUCHER=J->VOUCHER,J->VOUDAT,CTOD(' ') ) "
ภาพประจำตัวสมาชิก
ITTI
CO-Admin
CO-Admin
 
โพสต์: 1356
ลงทะเบียนเมื่อ: อังคาร ธ.ค. 09, 2008 2:25 pm

Re: ร/ง 541 (แสดง รหัสลูกค้า)

โพสต์โดย ppitaksu » พฤหัสฯ. ต.ค. 08, 2020 7:00 pm

ขอบคุณครับ
ผมลองทดสอบใช้ดูแล้ว
มีส่วนต้องแก้ไขให้ถูกต้องนิดหน่อยครับ

~VDATE: 0, "", "VDATE", "VDATE=IIF(GLJNLITB->VOUCHER=J->VOUCHER,J->VOUDAT,CTOD(' ') ) "

1. เพิ่ม IT ตรง GLJNLB เป็น GLJNLITB
2. สำหรับฟังก์ชั่น CTOD(' ') ผมไม่แน่ใจ ว่าที่จริง ควรเป็น STOD(' ') หรือเปล่าครับ คือ convert String To Date format หรือว่าใช้ได้เหมือนกัน

อย่างไรก็ตาม เมื่อทดสอบใช้แล้ว ผลที่แสดง ยังคงไม่ลง วันที่ ที่ item สุดท้ายของวัน มีข้อสังเกตุคือ ถ้าในวันหนึ่งๆ มีเอกสารมากกว่า1 ประเภทขึ้นไป มันจะลงวันที่ใน item แรกของเอกสารประเภทรองสุดท้าย (n-1)
อาจต้องปรับการจัดเรียงแบบไหนอีกนิดหน่อยให้ได้ผลลัพธ์ที่ต้องการหรือเปล่าครับ ขอบคุณครับ
อาจจะต้องปรับเปลี่ยนเงื่อนไขการจัดเรียงหรือเปล่าครับ
ppitaksu
Sr. Member
Sr. Member
 
โพสต์: 424
ลงทะเบียนเมื่อ: พฤหัสฯ. ม.ค. 15, 2004 11:28 pm

Re: ร/ง 541 (แสดง รหัสลูกค้า)

โพสต์โดย ITTI » พฤหัสฯ. ต.ค. 08, 2020 7:31 pm

อ่อครับ ขอโทษครับ ผมพิมพ์ตกไป ไม่ได้ copy จากหน้าแก้ไขมาวางครับ

ผมทดสอบกับข้อมูลผมออกถูกในขั้นต้นครับ (ข้อมูลทดสอบอาจจะน้อย)
เนื่องจากมีการสั่งให้สร้าง Tag ใหม่ผมรบกวนลองจัดเรียงข้อมูลสักรอบนึงแล้วทดสอบพิมพ์รายงานอีกครั้งครับ
พรุ่งนี้ผมลองกับข้อมูลที่มีการเคลื่อนไหวเยอะๆดูครับ แล้วมาอัพเดทให้อีกทีครับ

จากโจทย์นี้ผมว่าใช้ได้ทั้งคู่ครับ ทั้ง CTOD,STOD เพราะผมต้องการแค่ให้เป็นรูปแบบวันที่ เพื่อให้ได้ลักษณะที่ตรงกันกับที่จะเช็คเงื่อนไขครับ
ภาพประจำตัวสมาชิก
ITTI
CO-Admin
CO-Admin
 
โพสต์: 1356
ลงทะเบียนเมื่อ: อังคาร ธ.ค. 09, 2008 2:25 pm

Re: ร/ง 541 (แสดง รหัสลูกค้า)

โพสต์โดย ppitaksu » พฤหัสฯ. ต.ค. 08, 2020 9:08 pm

ผมทดลอง reindex ดูแล้วทำรายงานใหม่ ผลยังเหมือนเดิมครับ

ความจริงแล้ว ประเด็นนี้ ก็ไม่ได้สำคัญอะไรมาก ทีแรกนึกว่ามีวิธีกำหนดพารามิเตอร์ง่ายๆให้ได้ผลลัพธ์

แต่ในเมื่อต้องยุ่งยาก คงใช้ทางออกอื่นซึ่งง่ายกว่า เพราะปกติ เหตุผลที่ต้องการ วันที่ ที่ยอดสุดท้ายของวัน ก็เพื่อสร้างกราฟ ความเคลื่อนไหวของบัญชีแยกประเภท จึงต้องนำออก รายงานไปยัง spreadsheet เมื่อข้อมูลถูกนำออกไปอยู่ใน workbook แล้ว เรื่องที่ต้องการทำมันกลายเป็นเรื่องง่ายไปเลยครับ โดยการเพิ่มคอลัมภ์ แล้วใส่ สูตรแบบ รีเลทีฟเรฟเฟอเรนส์ ActiveCell.FormulaR1C1 = "=IF(R[1]C[-1]=RC[-1], """",RC[-1])" จากนั้นก็ออโต้ฟิลด์คอลัมภ์ แล้วก๊อปปี้ คอลัมภ์ แล้วแปะด้วยค่าตัวเลข(paste: values) คอลัมภ์ผลลัพธ์นี้ กรองเฉพาะที่มีค่าแสดง ก็จะสามารถนำไปใช้ได้ตรงตามต้องการแล้วครับ โดยที่ผมดัดแปลง ค่าแสดง VDATE นิดหน่อย ตอนทำรายงาน ให้เป็นค่าที่ spreadsheet ยอมรับ คือ เป็นปี ค.ศ.(AD) ก็เลยสร้างตัวแปรสำรอง ~VDATAD: 0, "", "vdatad", "x=DTOS(J->VOUDAT); yyyy=SUBSTR(x,1,4); mm=SUBSTR(x,5,2); dd=SUBSTR(x,7,2); vdatad=yyyy + '-' + mm + '-' + dd" แล้วใช้แสดงค่าแทนตัวแปร~VDATEปกติ
เอาเป็นว่าวิธีนี้ก็ใช้แก้ปัญหาไปได้ ไม่ต้องลำบากหา workaround ที่ยุ่งยากกว่าครับ
ขอบคุณครับ
ppitaksu
Sr. Member
Sr. Member
 
โพสต์: 424
ลงทะเบียนเมื่อ: พฤหัสฯ. ม.ค. 15, 2004 11:28 pm

ย้อนกลับ

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

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

กำลังดูบอร์ดนี้: Google [Bot] และ บุคคลทั่วไป 40 ท่าน

cron