มีหลายคนสอบถามไว้ในบอร์ดต่างๆมากมาย รวมถึงที่ www.siamnotes.com ด้วย ว่า Autonumber มันทำกันอย่างไร บางส่วนมีคนตอบไว้แล้วแต่ยังไม่เข้าใจ ทำไม่ได้ ลองอ่านบทความนี้ดูนะครับ เผื่อจะมีไอเดียดีๆ
อันดับแรกก็ต้องมี Form และ Field ก่อนเลย คงจะพอสร้างกันได้แล้ว ผมรวบเลยแล้วกัน บทนี้ผมจะสร้าง Number รูปแบบนี้ครับ YY-XXX โดยที่ YY=Year และ XXX คือ Number เอกสารครับ มี 3 หลัก มาดูกันเลย
1.ให้สร้าง Filed ก่อนครับ ตามนี้เลย
Field Name "Runno" ---> Text ---> compute when composed --Formula =""
Field Name "Begin" ---> Text ---> compute when composed --Formula =@Right(@Text(@Year(@Created));2) 'เอาปีที่สร้างเอกสารมาเก็บไว้ครับ เช่น 07
Field Name "No" ---> Text ---> compute --Formula =@If(!@IsNewDoc;No;@If(
@Length(RunNo)=1;begin+"-00"+RunNo;
@Length(RunNo)=2;begin+"-0"+RunNo;
begin+"-"+RunNo)) 'หมายความว่า ถ้าเป็นเอกสารเก่าแล้ว ให้ No มีค่าเท่ากับ No แต่ถ้าเป็นเอกสารใหม่ ให้มันเอา Begin มาบวกกับ Runno แล้วเก็บค่าไว้ครับ ในที่นี้ผมใส่ - และ 00 เพิ่มไปให้ครบ 3 ตำแหน่งลองดูนะครับไม่ยาก
2. ต่อไปเราต้องสร้าง View ครับ ผมให้ชื่อว่า Runno เลย อย่าลืมใส่ชื่อเล่นด้วยนะครับ แล้วก็เลือก Form ที่ต้องการให้วิวนี้แสดงด้วยนะครับ จากนั้นสร้าง Column ดังนี้ครับ
Column แรก เป็น Catagory ให้ใส่ Formula ว่า Bigin 'เอาค่าจาก Begin มาแสดง
Column สอง เป็น standard ให้ใส่ Formula ว่า No 'เอาค่าจาก No มาแสดง และสำคัญ คือต้อง sort แบบ Descending นะครับ แล้ว Save ให้เรียบร้อยแล้วปิดไปเลย
3. กลับมาที่ Form ที่เราสร้างไว้ครับ Click ที่ว่างๆ แล้วเลือก Event จาก หน้าต่างด้านล่างเป็น Post open แล้วใส่สูตรนี้เข้าไปเลย
Dim db As notesdatabase
Dim s As New notessession
Set db = s.currentdatabase
Dim view As Notesview
Dim ws As New notesuiworkspace
Dim uidoc As notesuidocument
Set uidoc = ws.currentdocument
Dim doc1,doc As notesdocument
Set doc = uidoc.document
On Error Goto errordoc
Dim run1 As String
Set view = db.getview("RunNo")
Call view.Refresh
docno=doc.begin(0)
Set doc1 = view.getdocumentbykey(docno)
run1=Ccur(doc1.RunNo(0))
doc.RunNo=run1+1
Call uidoc.save
Exit Sub
errordoc:
doc.RunNo="1"
แนะนำให้ Copy ไปใส่เลยดีกว่าถ้าไม่เข้าใจ Scripts
4. จากนั้นก็ลองสร้างเอกสารใหม่ดูครับ ลองหลายๆฉบับเราก็จะได้ Autonumber แล้ว ใครไม่ได้ฝากคำถามไว้นะครับ เดี่ยวช่วยดูให้