Sau khi đăng ký tên và mật khẩu đúng thì ngời sử dụng có quyền sử dụng ch- ơng trình.
Sau đó là giao diện chính của chơng trình sau khi đánh mặt khẩu và tên đúng, nếu mật khẩu và tên sai chơng trình sẽ hiện thông báo yêu cầu ngời dùng nhập lại.
Ch
ơng trình đ ợc thiết kế bao gồm những menu chính sau:
68
Menu Hệ thống bao gồm những mục: - Sao lưu (dùng để sao lưu các báo cáo )
- Phục hồi dữ liệu (dùng để phục hồi dữ liệu
đã xoá mất)
- Dọn dẹp dữ liệu (dùng để tạo các tệp chỉ mục sao cho chương trình chay nhanh hơn và xoá những dữ liệu không dùng đến)
- Quản lý người sử dụng (cho phép người sử dụng có thể thay đổi mật khẩu của mình thường xuyên để bảo mật, tránh người không có nhiệm vụ dùng đến)
69
Menu Tổng hợp bao gồm các Danh
Mục của toàn bộ chương trình, nó được sử dụng khi người dùng cần để
tra cứu, bao gồm:
- Danh mục xã (gồm toàn bộ các xã có trong một huyện: số hiệu xã, tên xã).
- Danh mục báo cáo (tên tất cả các báo cáo mà huyện phải làm để gửi cho các phòng ban).
- Danh mục tài khoản (số hiệu các tài khoản, tên các tài khoản được dùng trong khi hạch toán kế toán ngân sách xã ).
- Số dư đầu kỳ (gồm các dữ liệu về số dư của các tài khoản đầu kỳ).
- DM chỉ tiêu thu NSX/ DM chỉ tiêu chi NSX (nêu tên, mã số của các chỉ tiêu thu /chi ngân sách xã ).
- DM chương / loại / khoản (nêu tên hệ thống mục lục ngân sách xã mà Nhà nước áp dụng cho ngân sách cấp xã).
Menu Cập nhật dữ liệu bao gồm: - Cập nhật số dư TK (dùng để cập nhật số dư các tài khoản của từng xã và từng tháng) - Cập nhật dự toán năm - Số thu từng tháng/ Số chi từng tháng - Kết chuyển số dư (dùng để kết chuyển tự động số dư cuối kỳ sang đầu kỳ sau)
Menu Báo cáo tài chính bao gồm
các báo cáo sau:
- Bảng cân đối tài khoản (bảng cân đối tài khoản của từng tháng của từng xã, dùng để xem số dư nợ và số dư có cân đối nhau không)
- Báo cáo TH thu /chi NSX (sau khi xem xong ta có thể in báo cáo)
- Thuyết minh báo cáo tài chính
(của từng xã dùng để đọc vào cuối năm tổng hợp tình hình thu chi NSX)
- Báo cáo XDCB (báo cáo tổng
hợp về tình hình XDCB trong một xã, số dân đóng góp và số công trình đã hoàn thành hay đang còn dở dang)
Menu Báo cáo quyết toán bao
gồm các báo cáo sau:
- Bảng cân đối quyết toán ngân sách xã
- Báo cáo quyết toán thu ngân sách xã
- Báo cáo quyết toán chi ngân sách xã
- Báo cáo tổng hợp quyết toán thu ngân sách xã
- Báo cáo tổng hợp quyết toán chi ngân sách xã
Sau đây là một số Form của chơng trình:
Danh mục Xã
Với một số chức năng: Thêm, Xoá, Sửa,... dữ liệu và Lu dữ liệu sau khi đã cập nhật hay sửa.
Cập nhật số d tài khoản
71
Menu Trợ giúp bao gồm: - Bản quyền của chương trình
- Hỏi đáp (trợ giúp sử dụng các Form, cách đưa ra các báo cáo và chương trình)
Cập nhật số thu hàng tháng
Kết chuyển số d
Để ngời sử dụng có thể không cần nhập số d đầu kỳ của tháng sau khi biết số d đầu kỳ của tháng trớc và số d cuối kỳ của tháng trớc. Sau khi chọn tháng và ấn nút kết chuyển số d sẽ đợc tự động kết chuyển sang năm sau.
Lựa chọn loại báo cáo
Form này có chức năng lựa chọn loại báo cáo, tên xã, tháng, năm báo cáo. Sau khi ngời sử dụng lựa chọn tên loại báo cáo: Báo cáo tài chính hay Báo cáo quyết
toán sau đó ở trang lựa chọn xã sẽ hiện lên kiểu để lựa chọn: nếu là loại báo cáo
tài chính thì báo cáo theo tháng, còn loại báo cáo quyết toán thì báo cáo theo năm. Ngời sử dụng sau khi đã lựa chon xong thì kích vào nút Lựa chọn, còn nếu không muốn xem thì có thể thoát ra khỏi Form báo cáo bằng cách kích hoạt vào nút
Thoát.
Một số báo cáo
Ngời sử dụng trớc khi thoát ra khỏi chơng trình thì có thể thay đổi mật khẩu của mình nếu muốn để bảo mật dữ liệu.
Chơng IV
Đánh giá và cài đặt chơng trình I. Cài đặt chơng trình
1. Yêu cầu chung
Chơng trình tổng hợp các báo cáo Tài chính - kế toán ngân sách Xã, Phờng đ- ợc cài đặt và sử dụng trong các huyện để tổng hợp các báo cáo tài chính ngân sách của các xã.
Vì sau khi tổng hợp các báo cáo thì gửi lên các phòng Tài chính của quận, huyện và gửi bằng tệp dữ liệu để phòng kế toán ở cấp trên lu trữ và sử dụng ở trên máy luôn. Nh vậy đòi hỏi các phòng ban có liên quan đến việc nhận các tệp này phải có máy vi tính hoặc có thể đợc nối mạng Internet.
Yêu cầu về phần cứng: - Có ít nhất một máy vi tính.
- Cấu hình: - Mainboard, Chip tốc độ xử lý tối thiểu 366 MHz. - ổ cứng dung lợng tối thiểu 1 Gigabytes.
- Ram tối thiểu 32 Mbytes. Yêu cầu về phần mềm:
- Phần mềm hệ thống: - Hệ điều hành Win9X trở lên - VisualFoxpro 6.0 hay 7.0
- Phần mềm ứng dụng: - Phần mềm tổng hợp các báo cáo Tài chính - Kế toán ngân sách của xã, phờng.
- Phần mềm Winsock hỗ trợ chuyển File trên mạng.
2. Cài đặt chơng trình
- Copy file font Vserie.fnt trong th mục Font vào th mục Font của hệ thống máy tính.
- Tiến hành cài đặt chơng trình:
- Trên màn hình Desktop kích chuột phải
- Tạo Shortcut, dùng Browse để chỉ đờng dẫn đến file vfp7.exe và thêm “-t main_nsx“ nh chỉ dẫn dới đây.
II. Đánh giá chơng trình 1. Đánh giá về mặt kỹ thuật 1. Đánh giá về mặt kỹ thuật
Nói chung, về mặt kỹ thuật chơng trình đáp ứng đầy đủ các chức năng của quản lý nguồn vốn ngân sách xã. Chơng trình có chế độ bảo mật để ngời sử dụng có thể thay đổi mật khẩu tuỳ ý tránh mất dữ liệu. Sau khi tổng hợp để đa ra báo cáo thì có thể chuyển file dữ liệu qua mạng hoặc sao chép ra đĩa mềm để gửi đi nơi khác bằng phần mềm Winsock. Ngoài ra chơng trình còn có thể kết chuyển số d tự động giúp tiết kiệm thời gian. So với hệ thống thông tin cũ thì hệ thống thông tin này đã đợc hoàn thiện hơn.
Chơng trình đợc thực hiện trong 4 tháng liên tục với chi phí không đáng kể trong việc đi thu thập thông tin vì mọi dữ liệu của ngân sách xã đều ở trong phòng kế toán xã.
3. Đánh giá về mặt pháp lý
Tất cả các dữ liệu liên quan đến quản lý nguồn vốn ngân sách xã sau khi chuyển vào máy vi tính đều đợc bảo mật và chính xác tránh việc sao chép và thay đổi sai dữ liệu. Các báo cáo sau khi đợc tổng hợp đều đợc kiểm tra đối chiếu với các sổ kế toán. Kế toán trởng có nhiệm vụ xem xét và trình lên các phòng ban có liên quan (phòng Tài chính huyện) để cấp trên xem xét và huyện có nhiệm vụ tổng hợp các báo cáo Tài chính và quyết toán của các xã để gửi lên Sở Tài chính.
Kết luận
Hệ thống ngân sách Nhà nớc đợc phân chia theo từng cấp để quản lý. Ngân sách xã, phờng là một phần quan trọng trong hệ thống ngân sách của Nhà nớc đợc cấp huyện quản lý. Việc phản ánh trung thực tình hình Tài chính của xã là rất quan trọng vì nó là một bộ phận trong công tác quản lý nền Tài chính của Quốc gia. Do đó, việc tổng hợp các báo cáo Tài chính của các xã có ý nghĩa giúp thực hiện tốt mục tiêu đó.
Khi Công nghệ thông tin phát triển thì mọi việc đều phải đợc vi tính hoá và nó đã trở nên đơn giản hơn nhiều so với khi tiến hành bằng công tác thủ công mà hiệu quả lại không cao và thiếu độ chính xác. Tuy nhiên, máy vi tính chỉ là một công cụ cần phải có các phần mềm chính là bộ điều khiển để thực hiện công việc quản lý và lu trữ thông tin đó. Để xây dựng một phần mềm hoàn chỉnh thì yêu cầu là có một hệ thống thông tin tơng ứng giúp phân chia các nhiệm vụ quan trọng thành các Module thực hiện.
Ngân sách xã cũng nh vậy, nó cần một hệ thống thông tin giúp việc tổng hợp các báo cáo Tài chính và báo cáo quyết toán một cách chính xác và kịp thời để trình lên các cơ quan ban ngành có liên quan giúp việc xử lý và ra quyết định. Đó là yêu cầu của Bộ Tài chính và cũng là mối quan tâm của các phòng Tài chính Kế toán ở huyện, Sở Tài chính và nhiều nơi khác.
Tài liệu tham khảo
1. TS Hàn Viết Thuận
Giáo trình Cấu trúc dữ liệu, Trờng Đại học Kinh Tế Quốc Dân, NXB Thống
kê -1999.
2. TS Trơng Văn Tú - TS Trần Thị Song Minh
Giáo trình Hệ thống thông tin quản lý, Trờng Đại học Kinh Tế Quốc Dân, Hà
Nội - 2000.
3. ThS Trần Công Uẩn
Giáo trình Cơ sở dữ liệu, Trờng Đại học Kinh tế Quốc Dân, NXB Thống kê-
2000.
4. VN - Guide
Những bài thực hành Visual Foxpro, NXB Thống kê
5. Nguyễn Đình Tê - Hoàng Đức Hải
Giáo trình Lý thuyết và Bài tập Foxpro, NXB Giáo dục -1999
6. Bộ đĩa MSDN Library 2001. 7. Website Bộ Tài chính
http://www.mof.gov.vn.
8. Luật Ngân sách Nhà nớc 20/03/1996.
9. Luật sửa đổi Ngân sách Nhà nớc 20/05/1998. 10. Một số luận văn khác.
Phụ lục Main_nsx.prg
**************************************************************** **************************************************************** * DISSERTATION * * Theme : Building Information System for administration of * * ability of Parish Budget * * Intent: Financial Report Summary of Parish Budget * * * **************************************************************** * Student: Le Ngoc Chau * * Class : Tin B - K41, National Economics University * * Practising place: Ministry of Finance * * Address: 8 Phan Huy Chu - Ha Noi * **************************************************************** SET TALK off
set safety off set status off set date FRENCH set century on SET CLOCK status SET CURSOR ON SET AUTOSAVE ON SET MESSAGE WINDOW SET NOTIFY ON
SET STATUS BAR ON SET DELETED ON
SET EXCLUSIVE OFF && De nhieu nguoi dung cung mo duoc csdl chay tren Net set delete on set color to G+/GB+ With _screen .closable=.f. .controlbox=.t. .maxbutton=.t. .minbutton=.t. .height=600 .width=800 &&.icon='icomain.ico'
.caption='Xây dựng HTTT quản lý nguồn vốn Ngân sách của Xã, Ph- ờng'
.windowstate=2 endwith
Public m_forms, m_backup, m_code, m_reports, m_tables, m_pictures, m_menu, m_query,m_class,m_prg
Store space(1) to m_forms, m_backup, m_code, m_reports, m_tables, m_pictures, m_menu, m_query,m_class,m_prg
prog=sys(16)
vt=AT('\',prog,occu('\',prog)) m = SUBSTR(prog,1,vt)
set default to &m
m_forms=m + [form\] m_backup=m + [backup\] m_code=m + [code\] m_reports=m + [report\] m_tables=m + [table\] m_pictures=m + [pictures\] m_menu=m + [menu\] m_prg=m + [prg\] m_query=m + [query\] m_class=m + [class\]
SET CLASSLIB TO '&m_class\button.vcx'
&&SET DATABASE TO '&m_tables\ngansachxa.dbc' _screen.Icon='&m\icomain.ico' _screen.Picture='&m_pictures\giaodien.bmp' DO reletoolbar DO FORM '&m_forms\matkhau.scx' &&DO '&m_menu\nsx.mpr' READ event SET SYSMENU TO default
&&M_ten_xa1=".." PROCEDURE reletoolbar
SET SYSMENU TO
IF WEXIST([Report Control])
HIDE WINDOW[report control] ENDIF
HIDE WINDOW[report designer] ENDIF
IF WEXIST([Database designer])
HIDE WINDOW[database designer] ENDIF
IF WEXIST([Form designer])
HIDE WINDOW[form designer] ENDIF
IF WEXIST([form Control])
HIDE WINDOW[form control] ENDIF IF WEXIST([standard]) HIDE WINDOW[standard] ENDIF RETURN Nsd.prg FUNCTION mahoa PARAMETERS matma PRIVATE i,k k=0
FOR i=1 TO LEN(matma)
k=k+ASC(SUBSTR(matma,i,1))*(i+1) ENDFOR matma=ALLTRIM(STR(k,LEN(matma)+3,0)) RETURN matma *************** FUNCTION kiemtra 87
PARAMETERS ten,pasw PRIVATE mk
SELECT 0
USE '&m_backup\nsd.dbf' SHARED SET ORDER TO tag username
SEEK ten IF FOUND() quyen=right uname=ten pword=ALLTRIM(password) mk=pword USE RETURN IIF(ALLTRIM(mahoa(pasw))=mk,.t.,.f.) ELSE USE RETURN .f. ENDIF RETURN Duck.prg FUNCTION dunock PARAMETERS dk,ps
SELECT phat_sinh,du_dk FROM "&m_tables\taikhoan.dbf" dk=du_dk
ps=phat_sinh
IF dk>0 AND ps>0 THEN RETURN dk+ps ENDIF
IF dk>0 AND ps<0 THEN RETURN dk ENDIF IF dk<0 AND ps>0 THEN RETURN ps ENDIF IF dk<0 AND ps<0 THEN RETURN '' ENDIF ********************* FUNCTION ducock PARAMETERS dk,ps
SELECT phat_sinh,du_dk FROM "&m_tables\taikhoan.dbf" dk=du_dk ps=phat_sinh IF dk<0 AND ps<0 THEN RETURN dk+ps ENDIF IF dk<0 AND ps>0 THEN RETURN dk ENDIF IF dk>0 AND ps>0 THEN RETURN '' ENDIF IF dk>0 AND ps<0 THEN RETURN ps ENDIF 89
Lcbcqt.Click IF thisform.pageframelcbc.pagebaocao.opt_luachon.lcbcqt.Value=1 THEN thisform.pageframelcbc.pagebaocao.lblbctc.Enabled= .F. thisform.pageframelcbc.pagebaocao.lblbcqt.Enabled= .T. thisform.pageframelcbc.pagebaocao.opt_taichinh.bcdtk.Enabled= .F. thisform.pageframelcbc.pagebaocao.opt_taichinh.bcthchi.Enabled= .F. thisform.pageframelcbc.pagebaocao.opt_taichinh.bcththu.Enabled= .F. thisform.pageframelcbc.pagebaocao.opt_taichinh.bcxdcb.Enabled= .F. thisform.pageframelcbc.pagebaocao.opt_taichinh.tmbctc.Enabled= .F. thisform.pageframelcbc.pagebaocao.opt_quyettoan.bcdqt.Enabled= .T. thisform.pageframelcbc.pagebaocao.opt_quyettoan.bcqtchi.Enabled= .T. thisform.pageframelcbc.pagebaocao.opt_quyettoan.bcqtthu.Enabled= .T. thisform.pageframelcbc.pagebaocao.opt_quyettoan.bcthqtthu.Enabled= .T. thisform.pageframelcbc.pagebaocao.opt_quyettoan.bcthqtchi.Enabled= .T. thisform.pageframelcbc.pagexa.cmbthang.Enabled= .F. thisform.pageframelcbc.pagexa.cmbxatc.Enabled= .F. thisform.pageframelcbc.pagexa.cmbnam.Enabled= .T. thisform.pageframelcbc.pagexa.cmbxaqt.Enabled= .T. ENDIF Cmdlc.click
SET EXCLUSIVE OFF SET PATH TO &m_tables
OPEN DATABASE "&m_tables\ngansachxa.dbc" && Opens the test databsase &&SELECT taikhoan && IN 0 EXCLUSIVE && Not opened exclusively &&SELECT dmxa
SELECT taikhoan
REPORT FORM '&m_reports\bcdtk.frx' PREVIEW FOR
thang=thisform.pageframelcbc.pagexa.cmbthang.value AND so_hieu_xa= thisform.pageframelcbc.pagexa.cmbxatc.Value
ENDIF
*********************** &&SELECT cackhoanthu
IF thisform.pageframelcbc.pagebaocao.opt_taichinh.bcththu.Value=1 THEN REPORT FORM '&m_reports\bcththu.frx' PREVIEW FOR
thang=thisform.pageframelcbc.pagexa.cmbthang.Value AND so_hieu_xa=thisform.pageframelcbc.pagexa.cmbxatc.Value ENDIF ************************ &&SELECT cackhoanchi IF thisform.pageframelcbc.pagebaocao.opt_taichinh.bcthchi.Value= 1 THEN REPORT FORM '&m_reports\bcthchi.frx' PREVIEW FOR
thang=thisform.pageframelcbc.pagexa.cmbthang.Value AND so_hieu_xa=thisform.pageframelcbc.pagexa.cmbxatc.Value ENDIF
***********************
IF thisform.pageframelcbc.pagebaocao.opt_taichinh.bcxdcb.Value=1 THEN REPORT FORM '&m_reports\bcxdcb.frx' PREVIEW FOR
thang=thisform.pageframelcbc.pagexa.cmbthang.Value AND so_hieu_xa=thisform.pageframelcbc.pagexa.cmbxatc.Value ENDIF
***********************
IF thisform.pageframelcbc.pagebaocao.opt_taichinh.tmbctc.Value=1 THEN REPORT FORM '&m_reports\tmbctc.frx' PREVIEW FOR
thang=thisform.pageframelcbc.pagexa.cmbthang.Value AND so_hieu_xa=thisform.pageframelcbc.pagexa.cmbxatc.Value
ENDIF
**********************
IF thisform.pageframelcbc.pagebaocao.opt_quyettoan.bcdqt.Value=1 THEN REPORT FORM '&m_reports\bangcdqt.frx' PREVIEW FOR
nam=thisform.pageframelcbc.pagexa.cmbnam.Value AND so_hieu_xa=thisform.pageframelcbc.pagexa.cmbxaqt.Value ENDIF
**********************
IF thisform.pageframelcbc.pagebaocao.opt_quyettoan.bcqtchi.Value=1 THEN REPORT FORM '&m_reports\bcqtchi.frx' PREVIEW FOR
nam=thisform.pageframelcbc.pagexa.cmbnam.Value AND so_hieu_xa=thisform.pageframelcbc.pagexa.cmbxaqt.Value ENDIF
*********************
IF thisform.pageframelcbc.pagebaocao.opt_quyettoan.bcqtthu.Value=1 THEN REPORT FORM '&m_reports\bcqtthu.frx' PREVIEW FOR
nam=thisform.pageframelcbc.pagexa.cmbnam.Value AND so_hieu_xa=thisform.pageframelcbc.pagexa.cmbxaqt.Value ENDIF
*********************
IF thisform.pageframelcbc.pagebaocao.opt_quyettoan.bcthqtthu.Value=1 THEN REPORT FORM '&m_reports\bcthqtthu1.frx' PREVIEW FOR
nam=thisform.pageframelcbc.pagexa.cmbnam.Value AND so_hieu_xa=thisform.pageframelcbc.pagexa.cmbxaqt.Value ENDIF
********************
REPORT FORM '&m_reports\bcthqtchi1.frx' PREVIEW FOR nam=thisform.pageframelcbc.pagexa.cmbnam.Value AND
so_hieu_xa=thisform.pageframelcbc.pagexa.cmbxaqt.Value ENDIF
*******************
Cmdvao.click (Login ch ơng trình)
#define thongbao "Sai tên hoặc mật khẩu, bạn hãy nhập lại!" CLOSE TABLES ALL
SET PROCEDURE TO '&m_prg\nsd.prg' IF kiemtra(ALLTRIM(thisform.txtten.Value),ALLTRIM(thisform.txtmatkhau.Value )) THEN DO '&m_menu\nsx.mpr' thisform.Release ELSE = MESSAGEBOX(thongbao,24,"Thông báo") ENDIF
Cmddoi.click (Để đổi mật khẩu)
# define hoi "Nhập lại mật khẩu cũ" # define tb1 "Thông báo"
# define tb2 "Mã khẩu cũ không hợp lệ"
# define tb4 "Mật khẩu đã đợc đổi thành công"
# define tb3 "Mật khẩu mới nhập lần 1 và lần 2 không thống nhất" IF EMPTY(thisform.txtold.Value) THEN
=MESSAGEBOX(hoi,24,tb1) ELSE
SET PROCEDURE TO '&m_prg\nsd.prg' 93
IF mahoa(ALLTRIM(thisform.txtold.Value))<>pword THEN = MESSAGEBOX(tb2,24,tb1) ELSE IF ALLTRIM(thisform.txtnew.Value)<>ALLTRIM(thisform.txtnew2.Value) THEN =MESSAGEBOX(tb3,24,tb1) ELSE SELECT 1 USE '&m_backup\nsd.dbf'
REPLACE ALL password WITH
mahoa(ALLTRIM(thisform.txtnew.Value)) FOR username=uname USE pword=mahoa(ALLTRIM(thisform.txtnew.Value)) =MESSAGEBOX(tb4,24,tb1) ENDIF ENDIF SET PROCEDURE TO ENDIF
Cmdvect.click (Quay trở về ch ơng trình)
# define tb1 "Bạn có đồng ý quay về chơng trình không?" # define tb2 "Thông báo"
IF MESSAGEBOX(tb1,36,tb2)=6 THEN thisform.Release DO '&m_menu\nsx.mpr' ELSE thisform.Release QUIT
ENDIF Class Button (txtbtns) Destroy Event LOCAL nTablesUsed,aTablesUsed,i,nDECursors,aDECursors,cDataEnvRef DIMENSION aTablesUsed[1] IF TYPE('THIS.Parent') # "O" RETURN ENDIF
IF TYPE("THIS.oldTalk") = "C" AND THIS.oldTalk="ON" SET TALK ON
ENDIF
IF THIS.UseDataEnv
DIMENSION aDECursors[1] DO CASE
CASE TYPE("THISFORM.DataEnvironment") = "O" nDECursors =
AMEMBERS(aDECursors,THISFORM.DataEnvironment,2) cDataEnvRef = "THISFORM.DataEnvironment" CASE TYPE("THISFORMSET.DataEnvironment") = "O"
nDECursors =
AMEMBERS(aDECursors,THISFORMSET.DataEnvironment,2) cDataEnvRef = "THISFORMSET.DataEnvironment" ENDCASE
FOR i = 1 TO m.nDECursors
WITH EVAL(m.cDataEnvRef + "." + aDECursors[m.i]) 95
IF USED(.ALIAS) AND ATC("CURSOR",.BaseClass)#0 AND ; CursorGetProp("sourcetype",.ALIAS)=3 AND ; CursorGetProp("buffering",.ALIAS)>1 TableRevert(.T.,.ALIAS) * CursorSetProp("buffering",1,.ALIAS) &&optimistic table buffering
ENDIF ENDWITH ENDFOR ENDIF ******** IF THIS.PreviewMode RETURN ENDIF IF THIS.oldSetDelete = "OFF" SET DELETED OFF ENDIF
SET REPROCESS TO THIS.oldReprocess SET MESSAGE TO
SELECT (THIS.nWorkArea)
IF THIS.UseDataEnv AND !THIS.lAutoBuffer RETURN
ENDIF
RETURN ENDIF
* The following code is here to support * forms not using a DataEnvironment. m.nTablesUsed = AUSED(aTablesUsed) FOR i = 1 TO m.nTablesUsed
IF CursorGetProp('sourcetype',aTablesUsed[m.i,1])=3 &&skip for views
CursorSetProp("buffering",THIS.oldBuffering,aTablesUsed[m.i,1]) &&optimistic table buffering
ENDIF ENDFOR
IF THIS.oldMultiLocks = "OFF" SET MULTILOCKS OFF ENDIF
IF THIS.oldSetFields = "ON" SET FIELDS ON ENDIF
Init Event
#DEFINE C_WIZSTYLE "button.VCX" #DEFINE C_WIZDIR "vfox\class\" #DEFINE C_PROMPT1_LOC "Tìm kiếm: "
#DEFINE E_NOSTYLE_LOC "Th viện lớp (button.VCX) cha đợc tìm thấy. "+;"Xác định lại đờng dẫn."
LOCAL cGridRef,cWizHomePath,separator,cWizStyFile IF TYPE('THIS.Parent') # "O"
RETURN ENDIF
IF SET("TALK") = "ON" SET TALK OFF THIS.oldTalk = "ON" ELSE
THIS.oldTalk = "OFF" ENDIF
IF ATC(C_WIZSTYLE,SET("CLASSLIB")) = 0 * Returns just the pathname
cWizHomePath = _WIZARD IF '\' $ cWizHomePath
cWizHomePath =
SUBSTR(m.cWizHomePath,1,RAT('\',m.cWizHomePath))
IF RIGHT(m.cWizHomePath,1) = '\' AND LEN(m.cWizHomePath) > 1 ; AND SUBSTR(m.cWizHomePath,LEN(m.cWizHomePath)-1,1) <> ':' cWizHomePath = SUBSTR(m.cWizHomePath,1,LEN(m.cWizHomePath)-1) ENDIF ELSE cWizHomePath = ''
ENDIF
separator = IIF(_MAC,":","\")
IF !(RIGHT(m.cWizHomePath,1) $ '\:') AND !EMPTY(m.cWizHomePath) m.cWizHomePath= m.cWizHomePath+ m.separator
ENDIF DO CASE CASE FILE(C_WIZSTYLE) cWizFile = C_WIZSTYLE CASE FILE(m.cWizHomePath+C_WIZSTYLE) cWizFile = m.cWizHomePath+C_WIZSTYLE CASE FILE(m.cWizHomePath+C_WIZDIR+C_WIZSTYLE) cWizFile = m.cWizHomePath+C_WIZDIR+C_WIZSTYLE CASE FILE(HOME()+C_WIZSTYLE) cWizFile = HOME()+C_WIZSTYLE CASE FILE(HOME()+C_WIZDIR+C_WIZSTYLE) cWizFile = HOME()+C_WIZDIR+C_WIZSTYLE OTHERWISE =MESSAGEBOX(E_NOSTYLE_LOC) cWizFile = GETFILE("VCX",C_PROMPT1_LOC+C_WIZSTYLE) ENDCASE IF ATC(C_WIZSTYLE,m.cWizFile)#0
SET CLASS TO (m.cWizFile) ADDITIVE ELSE
* Failed to get WIZSTYLE.VCX file RETURN .F.
ENDIF
ENDIF
THIS.InitVars()
IF THIS.lStartTop AND !EMPTY(ALIAS()) GO TOP ENDIF THIS.ButtonRefresh() THIS.NavRefresh() cGridRef=THIS.GridRef IF !EMPTY(m.cGridRef)
* Change this if you desire to have the grid initially selected. * THISFORM.&cGridRef..SetFocus() ENDIF Search Click LOCAL oSearchDlog LOCAL lVisChange,lStateChange IF EMPTY(ALIAS()) RETURN ENDIF
* Check if SDI Window
IF THISFORM.ShowWindow = 2 IF !_VFP.Visible
_VFP.Visible = .T. lVisChange = .T. ENDIF IF _SCREEN.WindowState = 1 _SCREEN.WindowState = 0 lStateChange = .T. ENDIF ENDIF oSearchDlog = CREATE("searchform") oSearchDlog.SHOW() IF m.lVisChange _VFP.Visible = .F. ENDIF IF m.lStateChange