270 likes | 359 Views
FOMULA LOTUS NOTES. Người hướng dẫn : Phạm Ngoc Quang Người thực hiện: Dương Văn Hùng. FOMULA LANGUAGE.
E N D
FOMULA LOTUS NOTES Người hướng dẫn: Phạm Ngoc Quang Người thực hiện: Dương Văn Hùng
FOMULA LANGUAGE • Fomula là ngôn ngữ là một đơn giản, dễ sử dụng ngôn ngữ lập trình này có thể được tìm thấy trong nhiều sản phẩm Lotus - chẳng hạn như Lotus 1-2-3 và Lotus Notes. ngôn ngữ Fomula đã được tích hợp vào Lotus Notes kể từ khi thành lập vào năm 1989 và đã bao gồm cải tiến rất nhiều trong những năm qua.Sau đó, vào năm 2002, Lotus đã quyết định viết lại hoàn toàn các bộ xử lý cơ bản (hoặc engine) được sử dụng để giải thích các mã nguồn ngôn ngữ Fomula . Điều này cải thiện đáng kể hiệu quả của nó và mở rộng khả năng của mình. Sử dụng một ngôn ngữ lệnh đơn giản vài công thức và chức năng, bạn có thể xây dựng một ứng dụng cơ sở dữ liệu mạnh mẽ.
Ngữ pháp • Các hàm thường có @ ở đầu . • Khai báo biến : FIELD RegionalManager := AreaManager; FIELD AreaManager := @DeleteField; Chú ý : Nhưng nếu viết như vậy là sai vì cần có biến trả về. FIELD RegionalManager := AreaManager; RegionalManager FIELD AreaManager := @DeleteField; AreaManager
Các từ khóa • Các từ khóa DEFAULT khởi tạo mặc định vd DEFAULT Status := "New Request"; Status. • Environment tạo biến môi trường VD: ENVIRONMENT EmpNum := "123456"; . • FIELD khai báo giá trị cho 1 trường trong Form FIELD theDate := @Today; nếu có giá trị lấy giá trị không lấy giá trị được khai báo. • REM tạo gi chú trong các đoạn lệnh của Fomula REM "This is a comment."; REM {This is a comment}; • SELECT dùng để chọn ra các tài liệu liên quan đến một trường hay một giá tị nào đó : SELECT form = "ServiceRequest";
Operator • := khai báo giá trị cho biến cho trường • [] thành phần của list vd: danhsach[n]. • : nối hai chuỗi với nhau list1:list2 kết quả list1list2. • + là dương khi đứng trước một số là dấu cộng khi đứng giữa hai giá trị số còn là kết nối nếu đứng giũa hai giá trị là text. • - là âm khi đứng trước 1 số là dấu trừ nếu đứng giữa hai giá trị số. • <>; ><; !=; =! Đều giống nhau là dấu không bằng • => lớn hơn hoặc bằng ; <= nhỏ hơn hoặc bằng • Logic:| là or(hoặc); & là and(và); ! Là not(không)
Các function chính • Tương tác với người sử dụng • Convert dữ liệu • Nối so sánh sác định độ dài của string • Xác định và chiết xuất string • Xử lý thời gian • Môi trường User • Database • Truy cập dữ liệu trong tài liệu hiện có
Tương tác với người dùng • Massage box -Hộp thoại thông báo cho người dùng • Cú pháp @prompt([OK];“tiêu đề”; “nội dung tin nhắn”); • PistList : dùng dể chọn dữ liệu từ 1 view -@PickList( [CUSTOM] : [SINGLE] ; server : file ; view ; title ; prompt ; column ; categoryname ) • DialogBox là dùng một form làm hộp thoại để người sử dụng diền vào -@DialogBox(« FormName"; [AUTOHORZFIT] : [AUTOVERTFIT] ) FormName tên form cần làm dialog
Convert dữ liệu • @Char(number) chuyển ký tự thành mã code. • @IsNumber(value) xác định nếu là số trả về true(1) sai trả về 0. • @IsText(value) kiểm tra xem có phải text hay không nếu đúng trả về 1 không đúng trả về không. • @IsTime(value) kiểm trá giá trị nhập vào có phải là thời gian không nếu đúng trả về 1 không trả về 0. • @Text(value) chuyển giá trị nhập vào thành dạng text. • @Text(value; format)
Convert dữ liệu • @TextToNumber(string) chuyển đổi string(chuỗi văn bản) thành số. • @TextToTime(string) chuyển đổi chuỗi thành định dạng thời gian.
Sử lí chuỗi • @Length (string) đọc ra số ký tự của một chuỗi • @Length(stringlist) đọc ra số ký tự từng phần của 1 danh sách các chuỗi ký tự • @Matches( string ; pattern ) kiểm tra một chuỗi với một mẩu(chuỗi con hoặc ký tự) nếu có trả về 1 nếu không có trả về 0
Xác định và chiết xuất chuỗi • @Begins(string ; sub) kiểm tra chuỗi con (sub) có thuộc phần đầu của chuỗi mẹ (string) nếu thuộc trả về 1 không trả về 0; • @Contains(string ; sub) kiểm tra chuỗi con có trong chuỗi mẹ không nếu có trả về 1 không trả về không. • @Contains(list1; list2) kiểm tra list1 có chứa list2 • @Ends(string ; sub) kiểm tra xem chuỗi con có mằm trong phần cuối của chuỗi mẹ. • @FileDir(pathname) trả về tên đường dẫn của thư mục chứa file và tên của file.
Xác định và chiết xuất chuỗi • @Left(string ; n) lấy ra số ký tự(n) từ bên trái của chuỗi (string). • @Left(string ; sub) lấy ra những ký tự từ trái đến một chuỗi con thì dừng. • @LeftBack có hai dạng: @LeftBack( stringToSearch ; numToSkip ) lấy ra từ số ký tự đến hết bên trái. @LeftBack( stringToSearch ; startString ) lấy ra từ ký tự chỉ định (startString) đến hết bên trái. • @Middle(string ; sub ; n) lấy ra những số ký tự(n) từ ký tự(sub) nếu n dương từ trái qua phải nếu n âm từ phải qua trái. • @Middle(string ; off ; n) lấy ra số ký tự(n) từ vị trí(off).
Xác định và chiết xuất chuỗi • @Middle(string ; sub1 ; sub2) lấy ra những ký tự giữa hai chuỗi (sub1và sub2). • @Middle( string ; offset ; endstring ) lấy ra một chuỗi từ vị trí (offset) đến một chuỗi con (endstring). • @Right(string ; n) lấy ra số ký tự (n) từ bên phải • @Right(string ; sub) lấy ra số ký tự bắt đầu từ chuỗi con (sub) đến bên phải. • @RightBack(string ; n) lấy ra số ký tự từ vị trí (n) đến cuối bên phải. • @RightBack(string ; sub) lấy ra từ vị trí chuỗi con(sub) đến cuối bên phải.
Xác định và chiết xuất chuỗi • @Word( string ; separator ; number ) lấy ra đoạn ký tự được phân cách bởi một chuỗi ký tự(separator) và vị trí của chuỗi đó(number).
Thời gian • Khoảng cách giữa hai thời gian (Date2-date1)86400 date2 thời gian sau date1 thời gian đầu 86400 là số giây trong 1 ngày . • @Accessed cho ta biết thời gian cuối khi user truy cập document để đọc hoặc sửa. • @Adjust(time-date; y; m; d; h; m; s) tăng thời gian time-date thời gian, y số năm, m số tháng, d, số ngày, h số giờ, m số phút, s số giây mà ta cần tăng lên.
Thời gian • @BusinessDays( startDates ; endDates ; daysToExclude ; datesToExclude ). Tạo thời gian lam việc. • Created là hàm cho ta biết thời gian ban đầu khi document được tạo ra. • @Date( year ; month ; day ) • @Date( year ; month ; day ; hour ; minute ; second ) • @Date( time-date ) date là hàm chuyển đổi số thành ngày tháng . • @Day( timeDateValue ) trả về số thứ tự của thòi gian trong tháng ví dụ 25.
Thời gian • @HOUR(time-date) lấy ra giờ trong thời gian. • MINUTE(time-date) lấy ra phần chỉ phút trong thời gian. • @Modified trả về thời gian cập nhật. • @MONTH(time-date) trả về tháng trong năm (1 -12). • @Now trả về thời gian hiện thời. • @second(time_date) trả về giây. • @time chuyển đổi từ số về ngày tháng @Time(1951;04;11;23;50;30) kế quả 4/11/51 11:50:30 PM • @Time( hour ; minute ; second ). • @Time( year ; month ; day ; hour ; minute ; second ) • @Time( time-date ).
Thời gian • @Today trả về ngày hiện thời. • @Tomorrow trả về thòi gian là ngày hôm trước. • @Yesterday trả về thời gian ngày hôm sau. • @WEEKDAY(time-date) trả về thứ trong tuần. • @Year(time_date) trả về năm của thời gian. • @Zone trả về múi giờ của máy tính hiện tại. • @Now([ServerTime]) hiển thị thời gia trên server hiện thời. • @Now([ServerTime]; serverNames ) hiển thị thời gian trên server chỉ định.
Môi trường của User • @Domain trả về domain của hệ thống vd tanet.vn. • @MailDbName trả về tên máy chủ mail và tên người dùng vd mail/hungdv.nsf. • @Name([key]; name) Thay đổi Form của một tên người dùng. Các từ khóa bao gồm [CN] để trích xuất tên gọi chung một tên phân biệt. • @OptimizeMailAddress(address) nó bỏ bớt những nhưng domain không cần thiêt trong địa chỉ @OptimizeMailAddress ("username @firstdomain @secondomain @firstdomain @thirdomain") trả về “username @ firstdomain @ thirdomain”.
Môi trường của User • @Password(string) chuyển đổi ký tự password mà ta không nhìn được thành ký tự. • @Platform trả về môi trường mà ta đang dùng ví dụ window/32. • @StatusBar(“ghi chú”) tạo ghi chú ở thanh statusBar ở cuối notes. • @UserAccess trả về người đang truy cập. • @UserNamesList trả về tên người dùng thuộc nhóm nào… • @UserPrivileges Trả về một danh sách văn bản của các đặc quyền của người sử dụng.
Môi trường của User • @UserRoles trả về quyền người dùng. • @Version trả về phiên bản lotus notes
Database • @DbManager trả về user, nhóm manager , thuộc database đang dùng. • @DbName trả về tên database đang dùng. • @DbTitle trả về tiêu đề trên database hiện thời. • @ReplicaID trả về ReplicaID của database đang sử dụng. • @ServerName trả về tên server đang dùng. • @ViewTitle trả về tên của View hiện thời
Truy cập dữ liệu • @DbLookup trả về giá trị của dữ liệu trong 1 cột (hoặc 1 trường) thỏa mãn điều kiện nào đó. • @DbLookup( class : cache ; server : database ; view ; key ; fieldName ; keywords ) hoặc • @DbLookup( class : cache ; server : database ; view ; key ; columnNumber ; keywords). • @DbColumn lấy giá ra một cột trên view @DbColumn( class : cache ; server : database ; view ; columnNumber ). • @GetDocField(unid; fieldName) lấy ra giá trị một trường khi biết unid của document. • @SetDocField(unid; fieldName; value) đặt giá trị cho một trường khi biết unid.
Truy cập dữ liệu @InheritedDocumentUniqueID là thừa kế Document id cho document reponse. @GetProfileField @SetProfileField
Command Là các lệnh dùng để sử lý hệ thống • @Command([FileSave]) ghi dữ liệu trên form tào document. • @Command([FileCloseWindow]) đóng chương trình đang chạy. • @Command([Compose]; “FormName”) mở một form. • @Command([ToolsRefreshAllDocs]) refresh tất cả document. • @Command([FileExit)) đóng lotus.
Command • @Command([MailOpen]) mở mail của người truy cập (user). • @Command([Compose];“formName") mở một form để nhập liệu. • @Command( [MailSend] ) dùng gửi mail bởi document đang mở.
The end Thank you