Forum: สอบถามปัญหา Notes ทางด้านพัฒนาโปรแกรม (Note Client) |
Tags1: | Created on Jun 11, 2008, 5:25 PM by 9notes/9Notes|Topic Responses: 9 |
&action=openDocument&documentId=19C2 |
1. แปลงค่า Date เป็นปีแล้วเอาเฉพาะ 2 digit ด้านหลังมาครับ เช่น 2008 จะได้ 08 มา
year := @Right(@Text((@Year(Date)));2);
2. @DBLookup อันนี้เอาไว้สำหรับเอาค่าปี หรือ 08 ที่ได้จากบรรทัดแรกมาไปค้นหาใน view "ByRunNo" ให้ได้ Column ที่ 2 มา ซึ่งน่าจะเป็นค่าของ Last No
DocNoList := @Text(@DbLookup("":"Nocache";"":"";"ByRunNo";year;2));
3.จากนั้นบวกค่าของ last no ไป 1 จะได้เลขถัดไป
run := @TextToNumber(@Subset(DocNoList;-1)) + 1;
4.ตรวจสอบก่อนว่าเป็นการสร้างเอกสารครั้งแรกหรือไม่ ถ้าไม่เคยมีรายการอยู่จะ Error กลับมาให้ running มีค่าเป็น 1
nextrun := @If(@IsError(run);1;run);
5.อันนี้ก็กำหนด digit ของ runing no
T_No := @Right(@Text(10000+(nextrun));4);
6.เช็คก่อนว่าฟิลด์ในหน้าจอ DocNo ไม่มีค่าหรือเปล่า ถ้าไม่มีค่าก็ให้ set ค่าของ runno ลงไปครับ
@If(@Trim(DocNo) = "";@SetField("DocNo"; year +"-" +T_No);"");
:yellow_cool.gif:
[quote]REM {Set Running no.};
year := @Right(@Text((@Year(Date)));2);
DocNoList := @Text(@DbLookup("":"Nocache";"":"";"ByRunNo";year;2));
run := @TextToNumber(@Subset(DocNoList;-1)) + 1;
nextrun := @If(@IsError(run);1;run);
T_No := @Right(@Text(10000+(nextrun));4);
@If(@Trim(DocNo) = "";@SetField("DocNo"; year +"-" +T_No);"");
@Command([ViewRefreshFields]);
@SetField("DateSign";@Today);
มันหมายความว่าอย่างไรอะค่ะ อยากเข้าใจกระบวนการอะค่ะ ไม่อยากท่องจำอะค่ะ ช่วย
หน่อนนะค่ะ[/quote] |
|