สอบถามความหมายของการแก้ไขฟอร์มค่ะ

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

Moderator: Sutas, CO-Admin, Global Moderator

สอบถามความหมายของการแก้ไขฟอร์มค่ะ

โพสต์โดย newer_ll » พุธ ม.ค. 16, 2019 2:22 pm

รายงาน 134 จะให้แสดงชื่อกลุ่มสินค้าค่ะ
เจ้าหน้าที่ทาง Express ได้ส่งมาให้เรียบร้อยค่ะ แต่สงสัยความหมายต่อไปนี้ค่ะ

File=ISACC
Alias=IS
*Tag=ISACC1
Key=ACCCOD
Index=d:\xx
Filter=.NOT.DELETED()
System=DATA_PATH
Master file=STMAS
Master-Related Field=ACCCOD

1. ถ้าเราไม่ใช้ Tag ต้องใส่ Key ลงไปแทนใช่หรือเปล่าคะ
2. Index=d:\xx คือ ไม่ใส่ Index หรือเปล่าคะ
3. Filter=.NOT.DELTED() มีความหมายอย่างไร

รบกวนกูรูด้วยค่ะ
newer_ll
Full Member
Full Member
 
โพสต์: 129
ลงทะเบียนเมื่อ: อังคาร ม.ค. 07, 2014 2:39 pm

Re: สอบถามความหมายของการแก้ไขฟอร์มค่ะ

โพสต์โดย ITTI » พุธ ม.ค. 16, 2019 10:02 pm

ปกติแต่ละไฟล์จะมี Tag Number กำกับอยู่แฝงไว้ด้วยฟิวด์ข้อมูลที่ใช้ในการเรียงลำดับการค้นหา

จากโจทย์นี้ ผลลัพธ์ที่ต้องการนำมาแสดงผลอยู่ในไฟล์ ISACC
พอค้นเข้าไปดูในไฟล์ ISACC มี TagNumber อยู่Tag เดียวคือ Tag1 ACCTYP+ACCCOD
ถ้าใช้ Tag1 นี้ในการเชื่อมไปหาไฟล์ STMAS ผลลัพธ์จะไม่แสดง เพราะหากันไม่เจอ เพราะ
ไฟล์ STMAS ไม่มีฟิวด์ ACCTYP

ทางเจ้าหน้าที่ก็เลยต้องสร้าง Tag ขึ้นมาแบบเจาะจงไปที่ฟิวด์ที่เหมือนกันทั้งสองไฟล์ คือ ACCCOD

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

Filter=.NOT.DELETED() (จริงๆไม่มีก็ได้) แต่แนะนำให้มีคู่กันไว้เช่นกัน เพราะถ้าไม่มีผลลัพธ์รายงานอาจจะไม่ถูกต้อง
เพิ่มเติมคือ ในการทำงานปกติการคีย์ข้อมูลเข้าไปในระหว่างวันอาจจะมีข้อมูลที่คีย์ผิด และก็มีการกดลบออกเรียบร้อย แต่ในไฟล์
ที่เก็บข้อมูลเหล่านั้นจะยังมีข้อมูลจำพวกนั้นเก็บอยู่ ถ้าไม่มีคำสั่ง Filter=.not.deleted()นั้นก็อาจจะเป็นไปได้ที่โปรแกรม
จะไปจับผลลัพธ์มาแสดงผลจากข้อมูลที่ถูกลบค้างไว้ ที่ว่าไม่มีคำสั่งนี้ก็ได้แต่ก็ควรจะต้องจัดเรียงข้อมูล+แพ็คข้อมูลก่อนดูรายงาน

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

Re: สอบถามความหมายของการแก้ไขฟอร์มค่ะ

โพสต์โดย newer_ll » พุธ ม.ค. 16, 2019 11:19 pm

ขอบคุณค่ะ ตอบได้ละเอียดและเข้าใจค่ะ
newer_ll
Full Member
Full Member
 
โพสต์: 129
ลงทะเบียนเมื่อ: อังคาร ม.ค. 07, 2014 2:39 pm

Re: สอบถามความหมายของการแก้ไขฟอร์มค่ะ

โพสต์โดย suchai » พฤหัสฯ. ม.ค. 17, 2019 11:43 pm

ไฟล์ที่เก็บข้อมูลต่างๆ ในแบบ DBF หรือเรียกว่าไฟล์ตาราง เป็นที่เก็บข้อมูลจริงที่ไม่ได้ถูกเรียงลำดับอะไร การทำงานไม่ว่าจะอ่าน เขียน ค้นหา แสดงลำดับ ในรายการแบบฟอร์ม ในรายงานต่างๆ ล้วนอาศัยเครื่องมือที่เรียกว่า ดัชนี คือไฟล์ CDX ในไฟล์ CDX มันถูกออกแบบมาให้เก่งและเร็วมาก มันสามารถเก็บลำดับของการค้นหาในหลากหลายแบบที่โปรแกรม Express จำเป็นต้องใช้อยู่ในไฟล์ DBINF.DBF จะยกตัวอย่างไฟล์ที่จัดเก็บเกี่ยวกับงานขาย ARTRN.DBF จะมีดัชนีทั้งหมด 16 ดัชนีหรือเรียกว่า 16 Tag โดย Tag1 จะกำหนดการเรียง (หรือที่เราเรียกว่า Key) เป็น DOCNUM อันนี้โปรแกรมจะค้นหาด้วยเลขที่เอกสาร และจะมี Filter= .NOT.DELETED() แทบๆ ทุกดัชนีส่วนใหญ่ Filter คือการกรองสิ่งที่ไม่แสดง .NOT.DELETED() คือข้อมูลที่ถูกลบไปแล้ว หากไม่ระบุ ก็จะประมาณ ไฟแดงกลางแยกเสีย รถชนกันเละเทะ Tag5 จะเป็น DTOS(DOCDAT)+DOCNUM คือเรียงด้วยวันที่ก่อนและค่อยเรียงด้วยเลขเอกสาร โดยที่ Filter=.NOT.DELETED()

ตัวการเรียง DOCNUM เรียงตามเอกสาร หรือ DTOS(DOCDAT)+DOCNUM เรียงตามวันที่และตามด้วยเรียงตามเอกสาร พวกนี้แหละคือ KEY ส่วนที่เก็บของไฟล์ดัชนี CDX ก็คือชื่อเดียวกับชื่อไฟล์ จากที่นำเสนอ ARTRN.DBF มีดัชนีตามชื่อคือ ARTRN.CDX ในที่เก็บข้อมูลจะเห็นอยู่กันเป็นคู่ๆ เพราะตัวที่เก็บข้อมูลจริง ไม่มีรู้เรื่องอะไร มันอาศัยดัชนีที่เรียงในเรื่องต่างๆ ทำงานแทน เวลาเปิดโปรแกรม Express มันจะอาศัย ดัชนี CDX ทำงานและเขียนเรื่องราวต่างๆ กลับไปในที่เก็บข้อมูลจริง โดยมีดัชนีมากมายเก็บอยู่ชั้นในของไฟล์ เช่น ARTRN.CDX มีดัชนีย่อยอยู่ 16 หรือ 16 Tag

ทุกๆ เครื่องลูกจะโหลดดัชนีมาอ่านและเขียนกลับไปที่ตัวแม่ หากเครื่องใดเครื่องหนึ่ง ไฟตกไฟกระชาก ก็จะทำให้ดัชนีมันติงต๊องหรือเสียสภาพ และส่งข้อมูลกลับไปแบบผิดๆ ทำให้โปรแกรม Express แสดงข้อมูลไม่ถูกต้อง หรือคีย์ไปแล้วไม่แสดงข้อมูล ต้องให้ทุกคนออกจากระบบ แล้วจัดเรียงข้อมูลทันที ถ้าคุณเข้าใจกลไกนี้ คุณจะให้ความสำคัญกับเครื่องคอมที่ใช้และระบบ Lan ตัวสำรองไฟ และกระแสไฟฟ้า เพราะผมเข้าใจ ข้อมูลจึงนิ่งและเสถียร นานๆ ไฟตกที ก็ให้ทุกคนออก และจัดเรียงข้อมูลทันที ไม่ปล่อยให้คีย์อะไรผิดๆ เข้าไปเยอะๆ เพราะเข้าไปแล้วแบบไม่ถูก ก็ต้องมาไล่ลบทีหลัง ทำงานซ้ำซ้อน เหมือนจะรีบทำ แต่ทำไปก็ใช้ไม่ได้

-------------------------------------------------------------------------------------------------------------------------------

File=ISACC
Alias=IS
*Tag=ISACC1
Key=ACCCOD
Index=d:\xx
Filter=.NOT.DELETED()
System=DATA_PATH
Master file=STMAS
Master-Related Field=ACCCOD

เมื่อสิ่งที่โปรแกรมสร้างมาแบบมาตรฐาน มันไม่มี โปรแกรมอนุญาตเราให้สร้างดัชนีเฉพาะกิจหรือเฉพาะอย่างใจที่อยากได้เอง
โดยการปิดคำสั่งบรรทัด Tag ด้วยเครื่องหมายดอกจัน * ไม่ให้ทำงาน
และเริ่มสร้างคีย์ที่เราจะใช้ประโยชน์ KEY=ACCCOD จึงเกิดขึ้น ต้องการให้เรียงด้วย กลุ่มบัญชี
และต้องสร้างไฟล์ดัชนีขึ้นมาใหม่ Index=C:\XX หรือ Index=D:\XX XX คือชื่อดัชนีที่โปรแกรมจะสร้างให้ใหม่ ถามต้องมีมั้ย ผมบอกได้เลยว่า ต้องมี เพราะถ้าไม่ใส่ ชีวิตคุณจะมีแค่ 75% มันเป็นการเจาะจงให้สร้างดัชนีเข้ามาที่เครื่องเรา หากไม่ระบุ โปรแกรมจะไปสร้างดัชนีกลางในที่ไหนสักแห่ง ถ้ามี Set Temp=Temp ถ้าพื้นที่ตรงนั้น Windows ไม่ให้เขียน ก็อดดูรายงาน โปรแกรม Express จะช่วยสร้างด้วยชื่อรายงานเข้าไปในที่เก็บกลาง ถ้าไม่แจ๊กพอต กดรายงานพร้อมกัน ซึ่งมันเคยเกิดขึ้น มันจะเขียนไฟล์ชนกัน และเครื่องจะค้างไปทั้งหมด ผมเจอมาหมดแล้ว ใครอยากจะใช้ชีวิตแบบ 75% ก็ไม่ต้องมี Index=C:\XX

ส่วน Filter=.NOT.DELETED() ผมบอกเลยว่า ต้องมี เพื่อไม่ให้ ข้อมูลที่ถูกลบไปแล้ว โผล่ขึ้นมาเกะกะสายตา ปนกับข้อมูลที่เราต้องการจะเห็น เหมือนบิล 1 ใบ เราคีย์ขายปากกาไป 1 บรรทัด แล้วลบ คีย์ครั้งที่ 2 แล้วลบ และคีย์ครั้งที่ 3 ที่หน้าจอบิลโปรแกรม ป้องกัน .NOT.DELETED() คุณจึงเห็นข้อมูลที่ไม่ได้ถูกลบ รายการเดียว แต่ถ้าคุณไม่ใส่ รายงานก็จะเอาขยะที่ลบไปแล้วขึ้นมาแสดง ทั้ง 3 รายการ

อะไรที่ผมว่า ต้องมี ผมไม่ได้ให้เชื่อ อยากให้ลองแบบที่รู้ว่าผิดแน่ๆ ถ้าเมื่อไหร่ที่คุณรู้ว่าผิด สิ่งที่ถูกจะปรากฏตรงนั้นเช่นกัน ดังนั้น ผมแนะนำว่าให้ไปลองแบบ ไม่มี Index=C:\XXX และไม่มี Filter=.NOT.DELETED() แล้วสังเกตุว่าเกิดอะไรขึ้น

สุดท้าย Index=C:\XXX ให้ระวัง XXX ให้ดี ไม่ว่าจะเขียนกี่รายงาน อย่าสร้างชื่อเหมือนกัน เพราะเวลาใช้หลายๆ รายงานพร้อมกัน จากหลายๆ คน ในจังหวะเดียวกัน จะคล้ายๆ รถ 4 คัน วิ่งมาด้วยความเร็วสูงใน 4 ทิศ เข้ากลางแยกไฟแดง พร้อมๆ กันครับ
ภาพประจำตัวสมาชิก
suchai
Hero Member
Hero Member
 
โพสต์: 2332
ลงทะเบียนเมื่อ: ศุกร์ มิ.ย. 24, 2005 9:35 pm
ที่อยู่: suchai9@yahoo.co.th จังหวัดระยอง


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

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

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