PDA

View Full Version : [dis] Câu lạc bộ Visual Foxpro Hấp dẫn nhất từ trước đến nay !!!!!!



Pages : 1 2 3 4 5 6 7 [8] 9 10

foxprokinhdien
29-01-2012, 00:05
Xin chào tất cả mọi người. Trước tiên xin tự giới thiệu, tui 34 tuổi, đã sử dụng VFP trên 10 năm để viết Code (Từ thời FoxPro for Win, VFP 3.0), đến nay đang dùng VFP9. Dù đã vào diễn đàn này nhiều lần, nhưng chưa từng giúp ai về VFP. Thời gian gần đây đã không cò sử dụng ngôn ngữ lập trình này nữa. Vì vậy quyết định truyền đạt lại hết cho nhưng người "cần". Hy vọng với kinh nghiệm lập trình ứng dụng thực tế với ngôn ngữ này, có thể giúp được mọi người. Xin mời đặt câu hỏi ...

Đối với VFP, không có gì là không thể làm được, từ ứng dụng cho đến game... Điều tệ nhất của nó chính là bảo mật. Vì vậy các bạn nên sử dụng SQL hoặc Oracle làm CSDL cho những bigApp. Còn nếu chỉ đi học thi lấy điểm thì ...

foxprokinhdien
29-01-2012, 00:32
Theo mình thì cả 2 cách trên đều không khó, nhưng cách thứ 2 phiền phức hơn 1 tí bởi vì nó đòi hỏi file mẫu luôn phải đúng định dạng và trống dữ liệu .

Bạn nên làm theo cách này :
- mở file csv ra
- chạy record Macro của excel
- thực hiện việc trình bày, định dạng lại cho đẹp theo ý của bạn
- sau khi xong xuôi thì stop macro recording
- xem code được tạo ra từ việc record macro
- tham khảo và sửa thành code vfp

Tui có đoạn code về việc này rất hay, không hiểu sao Post không được. Chắc mới tham gia phải không ? Chỉ cách tui post lên cho ...

HUGOVFP
29-01-2012, 00:57
Tui có đoạn code về việc này rất hay, không hiểu sao Post không được. Chắc mới tham gia phải không ? Chỉ cách tui post lên cho ...
Bạn Click vào nút Like vào một số bài bất kỳ Bạn thích là được (để có đủ số lượng 10 bài). Sau đó Bạn Post bài.

dungnt1011
30-01-2012, 13:46
Các Bro ai có Key Refox XII(hoặc bản full) post cho mình với nhé.
Cảm ơn các Bro nhiều!

Không có anh em nào hỗ trợ được em ạ? Năm mới em chúc các ACE Vạn sự như ý!

hongquangtn
01-02-2012, 10:19
Chao foxprokinhdien
Cam on ban da co long, nếu được mong bạn chỉ giúp phần hướng dẫn cách tạo bảng, truy xuất dữ liệu với SQL từ FOX. Đối với FOX để truy cập nhứng bảng dữ liệu lớn ta co sthể dùng index ròi khi tru cập số liệu, dụng lệnh SEEK, SCAN WHILE co tốc độ rất nhanh( không như câu lạnh SELECT của SQL), nếu kết hợp dữ liệu từ SQL có thể truy cập tương tu duoc khong? mong ban chỉ giáo
Cam ơn

foxnewbie
01-02-2012, 10:27
Xin chào tất cả mọi người. Trước tiên xin tự giới thiệu, tui 34 tuổi, đã sử dụng VFP trên 10 năm để viết Code (Từ thời FoxPro for Win, VFP 3.0), đến nay đang dùng VFP9. Dù đã vào diễn đàn này nhiều lần, nhưng chưa từng giúp ai về VFP. Thời gian gần đây đã không cò sử dụng ngôn ngữ lập trình này nữa. Vì vậy quyết định truyền đạt lại hết cho nhưng người "cần". Hy vọng với kinh nghiệm lập trình ứng dụng thực tế với ngôn ngữ này, có thể giúp được mọi người. Xin mời đặt câu hỏi ...

Đối với VFP, không có gì là không thể làm được, từ ứng dụng cho đến game... Điều tệ nhất của nó chính là bảo mật. Vì vậy các bạn nên sử dụng SQL hoặc Oracle làm CSDL cho những bigApp. Còn nếu chỉ đi học thi lấy điểm thì ...

Cám ơn bạn. Mình có điều này chưa xử lý được, nếu bạn đã làm rồi xin chỉ giúp : Trên report của mình có một dòng văn bản phải thể hiện in hàng dọc (Giống như chọn Format cells - Alignment - Orỉentation trong Excel ấy). Mình phải xử lý bằng cách thủ công rất mất thời gian.

Mong bạn và mọi người giúp đỡ. Cám ơn

tayngangvfp
03-02-2012, 12:24
Cám ơn bạn. Mình có điều này chưa xử lý được, nếu bạn đã làm rồi xin chỉ giúp : Trên report của mình có một dòng văn bản phải thể hiện in hàng dọc (Giống như chọn Format cells - Alignment - Orỉentation trong Excel ấy). Mình phải xử lý bằng cách thủ công rất mất thời gian.

Mong bạn và mọi người giúp đỡ. Cám ơn

VFP9 SP2 có chức năng này mà. Bấm phải field / text (trên report), chọn properties \ advanced \ object rotation.

foxnewbie
03-02-2012, 13:29
VFP9 SP2 có chức năng này mà. Bấm phải field / text (trên report), chọn properties \ advanced \ object rotation.

Cám ơn bạn TayngangVFP. Mỗi khi trên 4rum có vấn đề khó giải quyết đều được bạn giúp đỡ.
Mình đã tải và cài thử SP2. Đúng là có thể hiện chức năng này. Nhưng xin hỏi bạn có kèm điều kiện gì không?, vì mình đã đặt thuộc tính rotate cho object rồi nhưng khi in vẫn không thể hiện hàng dọc.

Mong bạn chỉ giáo thêm

tayngangvfp
03-02-2012, 14:18
Cám ơn bạn TayngangVFP. Mỗi khi trên 4rum có vấn đề khó giải quyết đều được bạn giúp đỡ.
Mình đã tải và cài thử SP2. Đúng là có thể hiện chức năng này. Nhưng xin hỏi bạn có kèm điều kiện gì không?, vì mình đã đặt thuộc tính rotate cho object rồi nhưng khi in vẫn không thể hiện hàng dọc.

Mong bạn chỉ giáo thêm

Bạn thêm lệnh vào đầu ct hoặc trước khi chạy report
SET REPORTBEHAVIOR 90

foxnewbie
03-02-2012, 15:38
Bạn thêm lệnh vào đầu ct hoặc trước khi chạy report
SET REPORTBEHAVIOR 90

Cám ơn bạn TayngangVFP rất nhiều. Mình đã làm được rồi.

Tiện thể, xin hỏi bạn : Mình vẫn sử dụng một số chương trình cũ viết từ thời Foxpro hiện đang chạy bằng VFP, cái bất tiện là ở các nút radio button hay check box khi rê chuột qua thì biến mất tiêu. Nếu dùng bàn phím để di chuyển thì không sao.

Vậy nếu bạn biết thì chỉ giúp cách khắc phục.
Cám ơn bạn

foxprokinhdien
04-02-2012, 00:12
Chao foxprokinhdien
Cam on ban da co long, nếu được mong bạn chỉ giúp phần hướng dẫn cách tạo bảng, truy xuất dữ liệu với SQL từ FOX. Đối với FOX để truy cập nhứng bảng dữ liệu lớn ta co sthể dùng index ròi khi tru cập số liệu, dụng lệnh SEEK, SCAN WHILE co tốc độ rất nhanh( không như câu lạnh SELECT của SQL), nếu kết hợp dữ liệu từ SQL có thể truy cập tương tu duoc khong? mong ban chỉ giáo
Cam ơn

Chào bạn, theo minh biết thì: Đối với 1 Table có lượng Record tương đối nhiều thì thông thường khi bạn dùng CSDL FOX bạn có thể dùng những lệnh như trên để duyệt và ít khi bạn để ý đến tốc độ xử lý của nó vì công việc diễn ra khá nhanh. Tuy nhiên câu lệnh SQL trong các CSDL khác cũng xử lý rất nhanh chứ không như bạn nói là :"(không như câu lạnh SELECT của SQL)".

Còn đối với việc dùng SQL SERVER để làm CSDL trên nền VFP thì thông thường người ta không duyệt cả bảng (nếu nhiều triệu record). Họ thường hay xử lý dữ liệu theo kiểu truy vấn có điều kiện và Load dữ liệu theo từng trang theo điều kiện tương ứng như trên Web vậy. Còn đối với các bảng nhỏ hơn, bạn vẫn có thể Load hết cho vào View và xử lý bình thường như 1 table chính hiệu VFP vẫn OK

foxprokinhdien
06-02-2012, 00:05
vậy cho mình hỏi muốn replace mẫu tin kế mẫu tin cuối cùng thì dùng lệnh gì?

VD: replace mẫu tin cuối cùng(record số 300) thì là:

go bottom
replace TEN with "Nguyen Van Teo"

Vậy muốn replace mẫu tin kế mẫu tin cuối (tức là record 299) mà không phải dùng lệnh "go 299" vì mình không thể xác định số record

Go recc()-1
replace ...

foxprokinhdien
06-02-2012, 00:08
Các bạn giúp mình:
Viết chương trình như nào để có thể hiển thị tờ lịch ngày thường xuyên trên form.

Không hiểu ý bạn cho lắm, nhưng với phiên bản VFP đầy đủ, bạn có thể sủ dụng ActiveX Control. Có một Object hỗ trợ chuyện này ...

foxprokinhdien
06-02-2012, 00:26
cho mình hỏi, làm thế nào để tạo một report tự động trong phần mềm.
ví dụ, mình làm form thống kê các nhân viên có lương bằng một số nào đó( được nhập từ bàn phím). khi lọc được những nhân viên đó thì mình muốn xuất report ra, có danh sách các công nhân sau khi lọc, giúp mình nhá.

Vì mình không Post Code được nên có thể hướng dẫn bạn thế này:
Tạo một table tên "bangtam" với đầy đủ các field bạn cần xuất hiện trong Report. Sau đó thiết kế Report bình thường và Add "bangtam" vào dataenvironment. Trong form, sau khi đã có điều kiện. Bạn viết một câu lệnh SQL dạng chuỗi đặt trong 1 biến, Sele các field tương ứng với điều kiện where bằng với lương mà bạn gõ vào, và cuối cùng nhớ into vào "bangtam". Sau đó dùng lện vĩ mô "&" để thực thi chuỗi SQL đó. View report sẽ có kết quả như ý bạn

chuoi="select a,b,c,d from bang where luong"+var_luong+"into table bangtam"
&chuoi

foxprokinhdien
06-02-2012, 00:29
cho mình hỏi tí....làm thế nào để đóng gói phần mềm khi viết trong visual foxpro 9.0?
Mình muốn phần mềm thành 1 file exe chạy độc lập với visual foxpro.

Bạn có thể dùng Intall Shield để đóng gói. Cái này lên mạng download về sẽ có hướng dẫn chi tiết

foxprokinhdien
06-02-2012, 00:55
mình có csdl bao gồm tên và điểm, bác nào có thể giúp mình viết đoạn code để xếp hạng cho từng học sinh giống như hàm rank trong excel:
- nếu các hs có điểm số giống nhau thì được xếp hạng bằng nhau.
- điền hạng tương ứng vào field hang trong file .dbf.
Mình có gửi file .dbf dữ kèm. Xin cảm ơn trước.

Bạn cần lưu ý Code của những người bạn trước cho bạn. Nếu có người hàng 1, hạng 2, hạng 3, hạng 3 thì người thứ 5 phải là hạng 5 mới đúng. Vì có 2 người hạng 3 thì sẽ không có hạng 4. Ở đây mình không xử lý trên bảng gốc mà Select ra 1 bảng tạm thứ 2

set talk off
close databases all
use c:\aaa\bang
select * from bang order by diem desc into table c:\aaa\bang1
go top
var_diem=diem
var_hang1=1
var_hang2=1
replace hang with var_hang1
for i=1 to reccount()
skip
var_hang2=var_hang2+1
if diem=var_diem
replace hang with var_hang1
else
replace hang with var_hang2
var_hang1=var_hang2
var_diem=diem
endif
endfor
select bang1
brow

Hihi Code này lại pót được vậy ta. Ngộ quá ...

sweetboy2805
06-02-2012, 09:36
Chào các bạn, mình đang cần đoạn code để kiểm tra trạng thái 1 file dbf đang là "read only" hay đang ở trạng thái bình thường, các bạn giúp mình mới, mình làm mãi không được

hoangnnm
06-02-2012, 11:02
Chào các bạn, mình đang cần đoạn code để kiểm tra trạng thái 1 file dbf đang là "read only" hay đang ở trạng thái bình thường, các bạn giúp mình mới, mình làm mãi không được

Đây là code để kiểm trả thuộc tính readonly của 1 file bất kỳ :


Private file_mau, _Adir
m.file_mau = [c:\***.***]
=Adir( _Adir, M.File_mau, [ARSH] )

if At( 'R', _Adir( 1,5))>0
?[read only]
Endif

hshason
06-02-2012, 11:25
Chào các bạn, mình đang cần đoạn code để kiểm tra trạng thái 1 file dbf đang là "read only" hay đang ở trạng thái bình thường, các bạn giúp mình mới, mình làm mãi không được

Một cách khác dùng API để kiểm tra thuộc tính file bất kỳ


DECLARE INTEGER GetFileAttributes IN kernel32 STRING lpFileName
lcFilePath = "C:\Test.dbf"
lnAttributeType = GetFileAttributes(lcFilePath)
DO CASE
CASE lnAttributeType = 32 &&Normal
CASE lnAttributeType = 33 &&Read-Only
CASE lnAttributeType = 34 &&Hidden
CASE lnAttributeType = 35 &&Read-Only and Hidden
ENDCASE

tamhoat
06-02-2012, 15:49
Chào các bác, thớt này hay quá, nhưng hơi dài cũng hơi oải cho bác nào đọc từ đầu, giá như có bác nào tổng hợp lại thành 1 file thì tuyệt nhỉ

tamhoat
06-02-2012, 16:11
Gửi thanhtam_t3a
Trước đây mình làm các phần mềm cũng thường theo cách thay đổi font của hệ thống, từ ngày có Windows8 thì học theo phong cách của nó đôi chút, đồng thời cũng bỏ qua cách đó luôn, font hiện trực tiếp trên form, không liên quan đến font của hệ thống nữa. Cách mình làm như hình dưới đây
http://imageshack.us/photo/my-images/847/unledvgk.jpg/
http://imageshack.us/photo/my-images/846/unled2gxt.jpg/
http://imageshack.us/photo/my-images/707/unled3tf.jpg/

Chắc nhìn các hình vậy bạn đã hình dung ra đúng không, rất dễ làm mà không ảnh hưởng gì đến font hệ thống cả
Bác có thể nói rõ hơn được không, form của bác làm đẹp lắm

ptndad
07-02-2012, 05:52
Chào các Bạn, nhờ ace hướng dẫn mình cách hiển thị (dùng lệnh browse) 1 table VFP lên 1 form đang active.

Nghĩa là cửa sổ browse phải nằm trên form đang active chứ không tách riêng ra nhé!

Thanks in adv!

hoangnnm
07-02-2012, 08:07
Chào các Bạn, nhờ ace hướng dẫn mình cách hiển thị (dùng lệnh browse) 1 table VFP lên 1 form đang active.

Nghĩa là cửa sổ browse phải nằm trên form đang active chứ không tách riêng ra nhé!

Thanks in adv!
Bạn phải dùng grid .

hoangnnm
07-02-2012, 08:08
Bác có thể nói rõ hơn được không, form của bác làm đẹp lắm
Ý của bác ấy là thay vì phải sửa font hệ thống thì chúng ta làm giao diện dựa vào button và label , không cần phải động gì đến font hệ thống cả .

ptndad
07-02-2012, 13:05
Bạn phải dùng grid .

Dùng grid thì k thành vấn đề, nhưng ý tui muốn hỏi là có tip nào để dùng lệnh browse cho hiển thị trên form đc không thôi!

Thanks!

tayngangvfp
07-02-2012, 14:04
Dùng grid thì k thành vấn đề, nhưng ý tui muốn hỏi là có tip nào để dùng lệnh browse cho hiển thị trên form đc không thôi!

Thanks!

BROWSE IN WINDOW (thisform.Name)

hoangnnm
07-02-2012, 14:09
Dùng grid thì k thành vấn đề, nhưng ý tui muốn hỏi là có tip nào để dùng lệnh browse cho hiển thị trên form đc không thôi!

Thanks!

Nếu không dùng grid thì lệnh browse thông thường sẽ như thế này :
Browse in window windowname ( windowname = name của form ) , ví dụ
Browse in window form1

robotfpt
08-02-2012, 09:00
Bạn nào có tool sửa lỗi "not a table" hiệu quả không share cho mình với. Tks!

hoangnnm
08-02-2012, 09:55
Bạn nào có tool sửa lỗi "not a table" hiệu quả không share cho mình với. Tks!

Mình dùng bản này thấy rất tốt nhé . Bạn mở table bị lỗi ra, so sánh 2 cột nếu giá trị khác nhau thì click change đến khi nào hết là ok .

http://www.mediafire.com/?msrbqo9656c0dik

ptndad
08-02-2012, 18:40
Hi all,

trong VFP 9 có thể group một nhóm các control (có thể là textbox, label, grid, listbox,...) lại với nhau rồi khi cần chỉ với 1 lệnh .visible = .T. là có thể hiển thị hết những control trong group đó được không mấy bro?

Đã thử với Container và shape nhưng k đc vừa ý!

help me!

P/S: đã làm tạm bằng pageframe :D

foxprokinhdien
08-02-2012, 19:52
Hi all,

trong VFP 9 có thể group một nhóm các control (có thể là textbox, label, grid, listbox,...) lại với nhau rồi khi cần chỉ với 1 lệnh .visible = .T. là có thể hiển thị hết những control trong group đó được không mấy bro?

Đã thử với Container và shape nhưng k đc vừa ý!

help me!

P/S: đã làm tạm bằng pageframe :D

What do you want ? .

foxprokinhdien
08-02-2012, 19:54
Hi all,

trong VFP 9 có thể group một nhóm các control (có thể là textbox, label, grid, listbox,...) lại với nhau rồi khi cần chỉ với 1 lệnh .visible = .T. là có thể hiển thị hết những control trong group đó được không mấy bro?

Đã thử với Container và shape nhưng k đc vừa ý!

help me!

P/S: đã làm tạm bằng pageframe :D

Không phải bất kỳ điều gì mình cũng biết, kho kiến thức rộng lớn nằm trên Google, các bạn nên tự thân mình tìm hiểu là điều rất tốt. Không nên "chuyện nhỏ" gì cũng "hỏi", mình mong muốn giúp các bạn cho những câu hỏi mà mình nghĩ có ý nghĩa. Mong các bạn hiểu và thông cảm ...

SunMoon8
09-02-2012, 21:46
cho mình hỏi....làm thế nào để dùng combobox điều khiển được grid trong form của VF..mình thiết kế một form indanhsachlop..mình có 1 combobox có mã lớp trong đó và 1 grid in danh sách học sinh của lớp đó..mà làm mãi không được...

robotfpt
10-02-2012, 10:02
Mình có 4 cột là "mã khách", "tên khách", "địa chỉ" và 1 cột "Hiển thị".
Mình muốn thể hiện cột "Hiển thị" bằng 3 cột kia cộng lại nhưng phải đảm bảo khi xem dữ liệu thì lề trái của "mã khách", "tên khách", "địa chỉ" phải thẳng nhau.
VD:

http://upnhanh.sieuthinhanh.com/tmpimages/images/sieuthiNHANH201202104006zmnlowexnt7241.jpeg

Kiểu như vậy.
Mong các bạn giúp đỡ

hoangnnm
10-02-2012, 10:26
Mình có 4 cột là "mã khách", "tên khách", "địa chỉ" và 1 cột "Hiển thị".
Mình muốn thể hiện cột "Hiển thị" bằng 3 cột kia cộng lại nhưng phải đảm bảo khi xem dữ liệu thì lề trái của "mã khách", "tên khách", "địa chỉ" phải thẳng nhau.
VD:

http://upnhanh.sieuthinhanh.com/tmpimages/images/sieuthiNHANH201202104006zmnlowexnt7241.jpeg

Kiểu như vậy.
Mong các bạn giúp đỡ

Theo mình điều này là không thể được, nó chỉ có thể chừng mực ở 1 mức là không lệch nhau lắm chứ không thể "lề trái cùng nhau thẳng hàng" .

robotfpt
10-02-2012, 10:54
Theo mình điều này là không thể được, nó chỉ có thể chừng mực ở 1 mức là không lệch nhau lắm chứ không thể "lề trái cùng nhau thẳng hàng" .
Vậy bạn thực hiện câu lệnh như thế nào để nó có thể lệch nhau ở mức thấp nhất (lệch nhau 1 đến 2 khoảng trắng). Cảm ơn bạn!

HUGOVFP
10-02-2012, 11:48
cho mình hỏi....làm thế nào để dùng combobox điều khiển được grid trong form của VF..mình thiết kế một form indanhsachlop..mình có 1 combobox có mã lớp trong đó và 1 grid in danh sách học sinh của lớp đó..mà làm mãi không được...

Bạn cho biết Email để Tôi gửi bản mẫu (hướng dẫn)

Gửi Robotfpt
Minh có 4 column is "code Client", "name client", "address" và 1 column "Show thị".
Minh wants to be the current column "Show thị" bằng 3 column kia cộng again but not đám security while xem data Thị Lê left of the "code Client", "name client", "address" must be thang nhau.

Bạn thử kết hợp các hàm TRANSFORM(), CHR(9), CHR(13) … để xuất (vào cột Hiển thị) xem kết quả lề trái có thẳng tương đối không?

hoangnnm
10-02-2012, 12:03
Vậy bạn thực hiện câu lệnh như thế nào để nó có thể lệch nhau ở mức thấp nhất (lệch nhau 1 đến 2 khoảng trắng). Cảm ơn bạn!

Vậy còn tùy bạn muốn thể hiện trên report hay ở đâu ?

robotfpt
10-02-2012, 13:34
Vậy còn tùy bạn muốn thể hiện trên report hay ở đâu ?
Bạn cứ thể hiện vào trong bảng, hiển thị ở cột "Hiển thị" ấy, dùng Browse bảng mà nó thẳng hàng là Ok

robotfpt
10-02-2012, 13:37
Bạn thử kết hợp các hàm TRANSFORM(), CHR(9), CHR(13) … để xuất (vào cột Hiển thị) xem kết quả lề trái có thẳng tương đối không?
3 thông tin gộp vào 1 cột nên không dùng lệnh CHR(9), CHR(13) được bạn à, chỉ chèn thêm khoảng trắng để làm sao khi hiển thị bảng (browse) nó thẳng theo cột thôi

hoangnnm
10-02-2012, 14:06
..........................

hoangnnm
10-02-2012, 14:07
3 thông tin gộp vào 1 cột nên không dùng lệnh CHR(9), CHR(13) được bạn à, chỉ chèn thêm khoảng trắng để làm sao khi hiển thị bảng (browse) nó thẳng theo cột thôi

Đây là code mình viết nóng , bạn để ý chỗ font ( name and size ) cho trùng với font bạn dùng trên bảng browse nhé .

Ngược lại nếu bạn muốn trên report thẳng hàng thì bạn phải chỉnh fontname và size giống như font bạn dùng trên report .



clear
close data

use 1 && ví dụ đây là bảng gốc

private i, _source, _kq, _col, cmd, _len, _maxlen , font_name, font_size
_source = alias()
_kq = []
_len = 2
cmd = []

* Khai báo font rất quan trọng
m.font_name = 'MS Sans Serif'
m.font_size = 8

select *, space(254) as hien_thi from (_source) into dbf(addbs(sys(2023)) + sys(2015))
_kq = alias()

select (_source)
for i = 1 to fCount()
_col = lower(field(i))
if type(_col) <> [C] && ở đây có thể sửa điều kiện thành chẳng hạn như : not ( _col = 'ma_kh' or _col = 'ten_kh' or _col = 'dia_chi' )
loop
endif
select max(txtwidth(rtrim(&_col) + space(_len) , m.font_name, m.font_size)) as maxlen from (_source) into cursor(sys(2015))
_maxlen = maxlen
use
cmd = cmd + iif( empty(m.cmd),[] , [+]) + [rtrim(] + _col + [) + space(round((] + trans(_maxlen) + [- txtwidth(rtrim(] + _col + [), '] + m.font_name + [', ] + trans(m.font_size ) + [))/txtwidth(' ', '] + m.font_name + [', ] + trans(m.font_size ) + [),0))]
use
select (_source)
endfor

select (_kq)
cmd = [replace hien_thi with ] + cmd + [ all]
&cmd
brow

use in (_source)
use in (_kq)

me2thangcu
10-02-2012, 15:32
Các bác có biết vì sao tất cả mọi giao diện đều thể hiện đúng font TCVN, duy chỉ có trên form và grid vẫn bị lỗi không thể hiện đúng font không, chương trình mua lâu quá mà không có source code nên bây giờ bó tay. Giúp mình với. Đồng thời khi vào report nó báo lỗi Runtime eror "429"

hongquangtn
13-02-2012, 09:15
=Còn đối với việc dùng SQL SERVER để làm CSDL trên nền VFP thì thông thường người ta không duyệt cả bảng (nếu nhiều triệu record). Họ thường hay xử lý dữ liệu theo kiểu truy vấn có điều kiện và Load dữ liệu theo từng trang theo điều kiện tương ứng như trên Web vậy.

Chào Bạn
Bạn có thể nói rõ hơn và cho ví dụ được không
Cám ơn nhiều

hongquangtn
13-02-2012, 09:42
Mình dùng bản này thấy rất tốt nhé . Bạn mở table bị lỗi ra, so sánh 2 cột nếu giá trị khác nhau thì click change đến khi nào hết là ok .

http://www.mediafire.com/?msrbqo9656c0dik
Chào bạn
cong cu hay qua
Thank

hoangnnm
13-02-2012, 15:43
Chào Bạn
Bạn có thể nói rõ hơn và cho ví dụ được không
Cám ơn nhiều

Không có gì cao siêu và khó hiểu cả , bạn chỉ cần hiểu đơn giản là bạn cần bao nhiêu thì bạn lấy bấy nhiêu .

Ví dụ : bạn cần thông tin của mã SP A, thì bạn chỉ cần select 1 record chứa thông tin sản phẩm A từ bảng danh mục sản phẩm chẳng hạn . Nói chung khi đã làm việc với SQL rồi thì bạn quên dần câu lệnh Use là vừa :) .

foxprokinhdien
14-02-2012, 21:52
cho mình hỏi....làm thế nào để dùng combobox điều khiển được grid trong form của VF..mình thiết kế một form indanhsachlop..mình có 1 combobox có mã lớp trong đó và 1 grid in danh sách học sinh của lớp đó..mà làm mãi không được...

Không hiểu câu hỏi của bạn lắm: Có phải bạn muốn sau khi chọn 1 lớp trong combobox thì trong Grid tương ứng sẽ xuất hiện danh sách sinh viên của lớp đã chọn không ? Nếu như vậy thì bạn cứ việc làm theo cách đơn giản nhất. Sau khi tạo combobox có mã lớp, bạn vào dataevironment thêm vào table chứa danh sách tất cả học sinh (giả sử tên là bangHSSV). Sau đó kéo cái Grid này ra Form. Sau khi kéo xong, trên Form sẽ có 1 combobox (đặt tên là combo1) và có 1 cái Grid với Record Source Type=1-Alias và Record Source=bangHSSV. Bây giờ vào Methods của combo1, chọn Interactive Change viết đoạn code sau vào:

SELECT bangHSSV
SET FILTER TO bangHSSV.masv=thisform.combo1.value
thisform.Refresh

Khi run Form, nếu bạn thay đổi giá trị combo1 thì dữ liệu Grid phía dưới sẽ thay đổi theo. Nếu bạn muốn xuất dữ liệu này ra Report thì bạn phải đưa dữ liệu sau khi Filter vào 1 table tạm rồi thiết kế Report trên Table tạm đó. Phần thiết kế này mình đã có hướng dẫn ở mấy bài trước

foxprokinhdien
14-02-2012, 22:18
Mình có 4 cột là "mã khách", "tên khách", "địa chỉ" và 1 cột "Hiển thị".
Mình muốn thể hiện cột "Hiển thị" bằng 3 cột kia cộng lại nhưng phải đảm bảo khi xem dữ liệu thì lề trái của "mã khách", "tên khách", "địa chỉ" phải thẳng nhau.
VD:

http://upnhanh.sieuthinhanh.com/tmpimages/images/sieuthiNHANH201202104006zmnlowexnt7241.jpeg

Kiểu như vậy.
Mong các bạn giúp đỡ

Muốn làm được điều này phải dùng chút thủ thuật như sau: Giả sử table (tên là tableA)của bạn có 4 cột: MAKH, TENKH, DIACHI, HIENTHI là kiểu chuỗi hết. bạn phải viết code như sau:

SELECT MAX(LEN(ALLTRIM(makh))) as maxMAKH,MAX(LEN(ALLTRIM(tenkh))) as maxTENKH,MAX(LEN(ALLTRIM(diachi))) as maxDIACHI FROM tablea INTO dbf tableB

var_maxMAKH=tableB.maxMAKH
var_maxTENKH=tableB.maxTENKH
var_maxDIACHI=tableB.maxDIACHI
var_space = space(5) && Cái này thay đổi tuỳ ý thích của bạn, muốn rộng hơn thì tăng lên

SELECT tableA
replace ALL hienthi WITH allt(makh)+SPACE(var_maxMAKH-LEN(allt(makh)))+var_space+allt(tenkh)+SPACE(var_m axTENKH-LEN(allt(tenkh)))+var_space+allt(diachi)+SPACE(var _maxDIACHI-LEN(allt(diachi)))+var_space
brow

Lệnh brow khi bạn xem lại tableA sẽ không thấy thẳng như ý bạn. Nhưng khi thiết kế Report sau khi bạn kéo cột HIENTHI vào Detail sẽ thấy rõ. Bạn có thể tạo thử 1 table như trên và copy đoạn code này vào sẽ thấy kết quả (code chạy được, không cần sửa)

foxprokinhdien
14-02-2012, 22:21
Theo mình điều này là không thể được, nó chỉ có thể chừng mực ở 1 mức là không lệch nhau lắm chứ không thể "lề trái cùng nhau thẳng hàng" .

Mình đã trả lời cho câu hỏi này. Không có gì là không thể được ...

foxprokinhdien
14-02-2012, 22:28
Bạn cứ thể hiện vào trong bảng, hiển thị ở cột "Hiển thị" ấy, dùng Browse bảng mà nó thẳng hàng là Ok

Bạn phải lưu ý điều này: với khoảng cách giữa các makh,tekh,diachi là khoảng trắng space(). Thì việc nhìn bằng mắt trong table mà thấy thẳng là bạn chỉ có thể thực hiện khi chỉnh lại Font hiển thị khi Brow table, nhưng không ai làm điều này trong lập trình hết. Chỉ có thể hiện trong Report thì mới được. Vì khoảng trắng " " nếu hiển thị trên màn hình với Font chuẩn thì độ rộng sẽ ngắn hơn 1 ký tự thông thường

foxprokinhdien
14-02-2012, 22:33
Không có gì cao siêu và khó hiểu cả , bạn chỉ cần hiểu đơn giản là bạn cần bao nhiêu thì bạn lấy bấy nhiêu .

Ví dụ : bạn cần thông tin của mã SP A, thì bạn chỉ cần select 1 record chứa thông tin sản phẩm A từ bảng danh mục sản phẩm chẳng hạn . Nói chung khi đã làm việc với SQL rồi thì bạn quên dần câu lệnh Use là vừa :) .

Chính xác. Nói cách khác là cần gì thì lấy đó theo ý mình (điều kiện), chứ không ai lấy hết nguyên table qua cả.

foxprokinhdien
14-02-2012, 22:36
Hihi, lâu lâu vào 45' đã trả lời xong, hẹn gặp lại sau vài ngày ... Chúc ngày lễ tình nhân vui vẻ ...

hoangnnm
15-02-2012, 07:53
Bạn phải lưu ý điều này: với khoảng cách giữa các makh,tekh,diachi là khoảng trắng space(). Thì việc nhìn bằng mắt trong table mà thấy thẳng là bạn chỉ có thể thực hiện khi chỉnh lại Font hiển thị khi Brow table, nhưng không ai làm điều này trong lập trình hết. Chỉ có thể hiện trong Report thì mới được. Vì khoảng trắng " " nếu hiển thị trên màn hình với Font chuẩn thì độ rộng sẽ ngắn hơn 1 ký tự thông thường

Câu trả lời này mình đã có trả lời từ trước, do bạn không xem kỹ thôi .

hoangnnm
15-02-2012, 10:50
Gợi ý Bạn nên chọn kiểu field Hienthi là kiểu Memo, dùng lệnh các lệnh, hàm như: Replace Hienthi with …… (kết hợp các hàm TRANSFORM(), CHR(9), CHR(13) …) để ghi vào field Hienthi, sau đó Browse xem kết quả thể hiện của field Hienthi …

Hi hugo, vấn đề này mình đã trả lời ở post trước, và nhu cầu là thỏa mãn "con mắt" của người dùng nên không xử lý theo kiểu thông thường được :)
http://www.ddth.com/showthread.php/1***9-dis-C%C3%A2u-l%E1%BA%A1c-b%E1%BB%99-Visual-Foxpro-H%E1%BA%A5p-d%E1%BA%ABn-nh%E1%BA%A5t-t%E1%BB%AB-tr%C6%B0%E1%BB%9Bc-%C4%91%E1%BA%BFn-nay-!!!!!!?p=3651676#post3651676

SunMoon8
15-02-2012, 16:27
xin hướng dẫn build file exe của project trong VFP9...
xin hỏi có build bằng portable được không?và build xong nếu đem sang máy khác chạy thì phải làm sao?
cám ơn các bác...mình làm mãi hk có được

robotfpt
16-02-2012, 09:02
Muốn làm được điều này phải dùng chút thủ thuật như sau: Giả sử table (tên là tableA)của bạn có 4 cột: MAKH, TENKH, DIACHI, HIENTHI là kiểu chuỗi hết. bạn phải viết code như sau:

SELECT MAX(LEN(ALLTRIM(makh))) as maxMAKH,MAX(LEN(ALLTRIM(tenkh))) as maxTENKH,MAX(LEN(ALLTRIM(diachi))) as maxDIACHI FROM tablea INTO dbf tableB

var_maxMAKH=tableB.maxMAKH
var_maxTENKH=tableB.maxTENKH
var_maxDIACHI=tableB.maxDIACHI
var_space = space(5) && Cái này thay đổi tuỳ ý thích của bạn, muốn rộng hơn thì tăng lên

SELECT tableA
replace ALL hienthi WITH allt(makh)+SPACE(var_maxMAKH-LEN(allt(makh)))+var_space+allt(tenkh)+SPACE(var_m axTENKH-LEN(allt(tenkh)))+var_space+allt(diachi)+SPACE(var _maxDIACHI-LEN(allt(diachi)))+var_space
brow

Lệnh brow khi bạn xem lại tableA sẽ không thấy thẳng như ý bạn. Nhưng khi thiết kế Report sau khi bạn kéo cột HIENTHI vào Detail sẽ thấy rõ. Bạn có thể tạo thử 1 table như trên và copy đoạn code này vào sẽ thấy kết quả (code chạy được, không cần sửa)

Cái này mình sử dụng để làm cái Autocomplete theo hướng dẫn của Tayngangvfp
http://vn.360plus.yahoo.com/tayngangvfp/article?mid=11

Theo cách này của bạn thì nó ko thể hiển thị thẳng hàng trên Popup được

robotfpt
16-02-2012, 09:10
Mình đã trả lời cho câu hỏi này. Không có gì là không thể được ...
Bạn có thể hiện lên trên browse cho nó thẳng hàng được ko? Nếu nó Ok thì Popup cũng sẽ ok. Tks bạn!

hongquangtn
16-02-2012, 15:39
Thank
The thi noi lam gi, neu chi dung nhu the thi no qua lâu khi so record nhieu, van de la lam the nao de no nhanh nhu khi dung trong FOX

hoangnnm
16-02-2012, 16:06
Bạn có thể hiện lên trên browse cho nó thẳng hàng được ko? Nếu nó Ok thì Popup cũng sẽ ok. Tks bạn!

Như mình nói trước đó, điều này là không thể được .

Vì nó phụ thuộc vào FONT , ví dụ khi bạn dùng font A, độ dài tính theo pixel của ký tự trống (space) là bằng 3, thì khi bạn dùng font B nó có thể là 2, 4 , 5 ..v...v Đó là còn chưa tính đến trường hợp chữ in nghiêng, in đậm, gạch dưới . Bạn có thể mường tượng đơn giản như thế này, chữ a và chữ A thì len() đều = 1 nhưng độ rộng (pixel) lại khác hẳn nhau đấy .

Theo mình ( tuy vậy mình khá chắc chắn ) giải pháp duy nhất của bạn là giải pháp mà mình đã post trước đó, tuy nhiên mỗi khi có 1 record mới thì phải chạy để ráp lại cho đúng độ dài tối đa của từng cột .

Trừ khi vfp cung cấp hàm thêm khoảng trống theo pixel, còn không thì không còn giải pháp nào khác cho NHU CẦU của bạn .

robotfpt
17-02-2012, 09:46
Như mình nói trước đó, điều này là không thể được .

Vì nó phụ thuộc vào FONT , ví dụ khi bạn dùng font A, độ dài tính theo pixel của ký tự trống (space) là bằng 3, thì khi bạn dùng font B nó có thể là 2, 4 , 5 ..v...v Đó là còn chưa tính đến trường hợp chữ in nghiêng, in đậm, gạch dưới . Bạn có thể mường tượng đơn giản như thế này, chữ a và chữ A thì len() đều = 1 nhưng độ rộng (pixel) lại khác hẳn nhau đấy .

Theo mình ( tuy vậy mình khá chắc chắn ) giải pháp duy nhất của bạn là giải pháp mà mình đã post trước đó, tuy nhiên mỗi khi có 1 record mới thì phải chạy để ráp lại cho đúng độ dài tối đa của từng cột .

Trừ khi vfp cung cấp hàm thêm khoảng trống theo pixel, còn không thì không còn giải pháp nào khác cho NHU CẦU của bạn .
Để giải quyết bài toán của mình, đơn giản là mình dùng font có độ rộng các ký tự bằng nhau (VD: Courier New) khi đó chỉ cần cộng ký tự trắng vào là ok. Tks bạn đã nhiệt tình giúp mình!

hoangnnm
17-02-2012, 10:20
Để giải quyết bài toán của mình, đơn giản là mình dùng font có độ rộng các ký tự bằng nhau (VD: Courier New) khi đó chỉ cần cộng ký tự trắng vào là ok. Tks bạn đã nhiệt tình giúp mình!

Kiến thức thật bao la :) , nói thật là hôm nay mình mới biết đến fixed width font . Dù sao thì nếu như vậy giải pháp mình đưa ra vẫn đúng tuy dù không cần thiết phải code nhiều như thế :)

robotfpt
17-02-2012, 10:30
Kiến thức thật bao la :) , nói thật là hôm nay mình mới biết đến fixed width font . Dù sao thì nếu như vậy giải pháp mình đưa ra vẫn đúng tuy dù không cần thiết phải code nhiều như thế :)
Giải pháp của bạn đúng yêu cầu mình cần hỗ trợ nếu nó khác font, nhưng mình chưa thỏa mãn nên mới nghĩ ra tìm font có độ rộng bằng nhau khi bạn đề cập đến pixel của từng ký tự

tayngangvfp
17-02-2012, 11:06
Giải pháp của bạn đúng yêu cầu mình cần hỗ trợ nếu nó khác font, nhưng mình chưa thỏa mãn nên mới nghĩ ra tìm font có độ rộng bằng nhau khi bạn đề cập đến pixel của từng ký tự

- Vấn đề này khi làm cái Combobox Autocomplete và AutoFilter (Grid) mình cũng đã "nhức đầu" để tìm giải pháp. Tuy nhiên chỉ có thể tương đối vì các chuỗi là dùng cách "cộng" lại và thêm 1 số khoảng trắng dựa vào fixel của khoảng trắng và số fixel còn cần bổ sung. Trong cái menthod "kiemtra" của class Autocomplete đã dùng cách này để thể hiện việc thẳng hàng 1 cách tương đối.
- Mình cũng đã tính đến phương án dùng fixed font nhưng chỉ biết có Courier. Vấn đề là đây lại là font unicode => chỉ dùng cho tiếng việt không dấu, số (nếu dùng trong VFP). Như vậy giải phải này cũng không ổn hoặc chỉ dùng cho kiểu số (trong class Grid Autofilter có sử dụng cách này cho những cột kiểu số để nó canh phải thẳng hàng). Không biết có fixed font nào dùng cho vni hay abc được không nhỉ?

- Nếu có cách nào mà subclass được cái Popup để dùng kỹ thuật OwnerDraw "vẽ" chuỗi vào popup theo vị trí fixel thì mới giải quyết triệt để được.

robotfpt
17-02-2012, 14:12
- Vấn đề này khi làm cái Combobox Autocomplete và AutoFilter (Grid) mình cũng đã "nhức đầu" để tìm giải pháp. Tuy nhiên chỉ có thể tương đối vì các chuỗi là dùng cách "cộng" lại và thêm 1 số khoảng trắng dựa vào fixel của khoảng trắng và số fixel còn cần bổ sung. Trong cái menthod "kiemtra" của class Autocomplete đã dùng cách này để thể hiện việc thẳng hàng 1 cách tương đối.
- Mình cũng đã tính đến phương án dùng fixed font nhưng chỉ biết có Courier. Vấn đề là đây lại là font unicode => chỉ dùng cho tiếng việt không dấu, số (nếu dùng trong VFP). Như vậy giải phải này cũng không ổn hoặc chỉ dùng cho kiểu số (trong class Grid Autofilter có sử dụng cách này cho những cột kiểu số để nó canh phải thẳng hàng). Không biết có fixed font nào dùng cho vni hay abc được không nhỉ?

- Nếu có cách nào mà subclass được cái Popup để dùng kỹ thuật OwnerDraw "vẽ" chuỗi vào popup theo vị trí fixel thì mới giải quyết triệt để được.

[Courier New] với unicode và [.VnCourier New] với TCVN bạn ạ. Mình test với TCVN thấy ok rồi

gafoxpro2012
20-02-2012, 00:30
xin hướng dẫn build file exe của project trong VFP9 đuợc không ạ, em muon dịh sang file exe , xong em cho chạy form dangnhap khi bấm vào file exe da xuất. em gà lắm, các bác thông cảm.

SunMoon8
23-02-2012, 10:50
xin hướng dẫn tạo help của mình bằng html...
cám ơn các bác..

Người hỏi đáp
23-02-2012, 11:26
xin hướng dẫn tạo help của mình bằng html...
cám ơn các bác..
File Help dùng cho chương trình viết trên ứng dụng VFP có thể chọn các kiểu *.CHM, *.HTML, *.HTM, *.DOC (file Word) … Nếu Bạn muốn viết kiểu *.CHM thì Bạn vào Google tìm kiếm có khá nhiều chương trình tạo file Help kiểu CHM (Word2CHM, PowerCHM …) có hướng dẫn rất dễ sử dụng, Bạn tải về mà dùng hoặc đơn giản là viết file Help trên file Word, lưu file này kiểu “Web page filterd (*.HTML, *.HTM …), sử dụng hàm, lệnh VFP trong chương trình để gọi file Help khi cần.

SunMoon8
23-02-2012, 14:14
bác có thể giải thích rõ cho mình dc không ?hay có mẫu nào k cho mình với...mình k hiểu cho lắm..như cách tạo file html và cách để trong table help để gọi file đó

Người hỏi đáp
23-02-2012, 14:54
bác có thể giải thích rõ cho mình dc không ?hay có mẫu nào k cho mình với...mình k hiểu cho lắm..như cách tạo file html và cách để trong table help để gọi file đó
Bạn cho biết Email để tiện liên hệ hướng dẫn tạo file Help cụ thể hoặc gửi ví dụ đơn giản (chương trình mẫu VFP có sử dụng dụng file Help tự tạo).

foxprokinhdien
02-03-2012, 23:45
Tình hình là lúc này hình như ai cũng Pro VSFoxpro thì phải, không thấy ai hỏi cái gì hết vậy ta ... hihi

foxprokinhdien
02-03-2012, 23:46
Ngoài VFP, bà con có thể hỏi mình C# cũng được. Nhưng nói trước, cái này chỉ mới có thể hiểu = 10% VFP thui àh

robotfpt
08-03-2012, 08:17
Hiện giờ bảng mã Unicode khá phổ biến, tuy nhiên phần lớn các phần mềm viết bằng Foxpro lại sử dụng bảng mã TCVN3. Bạn nào đã từng xây dựng bảng mã TCVN3 riêng cho foxpro tích hợp trong phần mềm, khi phần mềm được kích hoạt trên màn hình thì sử dụng bảng mã này để gõ, còn khi tắt, hoặc thu nhỏ, hoặc kích hoạt cửa sổ khác thì bảng mã này mất tác dụng (máy có thể vẫn cài Unikey... nhưng bật chế độ tiếng Anh, để mặc định là Unicode) thì chia sẻ cách làm được không?

queluatb
08-03-2012, 12:48
e đang sử dụng phần mềm kế toán viết bằng ngôn ngữ foxpro (fast10.1) có ai biết mã nguồn của phần mềm này xin hướng dẫn giúp e để e tạo các code cho riêng mình, e xin cám ơn

diepbinhqn
12-03-2012, 14:12
Cho mình hỏi cách hiển thị file text trong textbox được không? Xin cảm ơn

SunMoon8
14-03-2012, 16:54
Xin hướng dẫn tạo 2 khóa chính trong 1 table....
Thks all......

tayngangvfp
15-03-2012, 16:49
Hiện giờ bảng mã Unicode khá phổ biến, tuy nhiên phần lớn các phần mềm viết bằng Foxpro lại sử dụng bảng mã TCVN3. Bạn nào đã từng xây dựng bảng mã TCVN3 riêng cho foxpro tích hợp trong phần mềm, khi phần mềm được kích hoạt trên màn hình thì sử dụng bảng mã này để gõ, còn khi tắt, hoặc thu nhỏ, hoặc kích hoạt cửa sổ khác thì bảng mã này mất tác dụng (máy có thể vẫn cài Unikey... nhưng bật chế độ tiếng Anh, để mặc định là Unicode) thì chia sẻ cách làm được không?


Có thể dùng sendkeys trong wscript.Shell để gửi tổ hợp phím điều khiển chuyển bảng mã tới UNIKEY.

PROC ChuyenBangMa_Unikey
PARAMETERS cTenBangMa
_poWshShell = CreateObject("wscript.Shell")
DO CASE
CASE cTenBangMa=[ABC]
_poWshShell.SendKeys( "^+{F2}") &&Ctrl+Shif+F2
CASE cTenBangMa=[VNI]
_poWshShell.SendKeys( "^+{F3}") &&Ctrl+Shif+F3
OTHERWISE
*UNICODE
_poWshShell.SendKeys( "^+{F1}") &&Ctrl+Shif+F1
ENDCASE
relea _poWshShell
ENPROC

Để thuận tiện thì nên bẫy sự kiện khi chương trình ACTIVATE thì sẽ chuyển sang bảng mã cần thiết (abc, vni) còn khi INACTIVATE thì chuyển sang mã unicode.

Để bẫy sự kiện ACTIVATE,INACTIVATE có thể dùng hàm BINDEVENT.

Giả sử ta có 1 form chính là FormMain, ta thêm 1 menthod "ChuyenBangMa" và 1 property "nOldProc". Và viết code như sau

TRong Form.Init
*-----------------------------------------------

#define GWL_WNDPROC (-4)
#define WM_ACTIVATE 0x0006

Declare Sleep IN WIN32API INTEGER
DECLARE integer GetWindowLong IN WIN32API ;
integer hWnd, ;
integer nIndex

DECLARE integer CallWindowProc IN WIN32API ;
integer lpPrevWndFunc, ;
integer hWnd,integer Msg,;
integer wParam,;
integer lParam

this.nOldProc=GetWindowLong(_VFP.HWnd,GWL_WNDPROC)
BINDEVENT(_VFP.hWnd, WM_ACTIVATE, THIS, "ChuyenBangMa" )
ChuyenBangMa_Unikey([VNI])

*------------------------

TRong Form.ChuyenBangMa
LPARAMETERS hWnd as Integer, Msg as Integer, wParam as Integer, lParam as Integer
nRetvalue=0
#define WM_ACTIVATE 0x0006
#define WA_INACTIVE 0

IF Msg = WM_ACTIVATE && App Switching
LOCAL loword, hiword, lcStr

loword=BITAND(wparam,0xffff)
hiword=BITAND(wparam,0xffff0000)/2^16

Sleep(50) && chờ 1 chút để unikey có thể nhận tổ hợp phím
IF wparam=WA_INACTIVE OR hiword!=0
&&Chon bang ma Unicode
ChuyenBangMa_Unikey([UNICODE])
ELSE
ChuyenBangMa_Unikey([VNI])
ENDIF
nRetvalue = CallWindowProc(THIS.noldproc,hWnd,msg,wParam,lPara m)
ENDIF
RETURN nRetvalue

*----------------------------------
TRong Form.Release

ChuyenBangMa_Unikey([UNICODE])
#define WM_ACTIVATE 0x0006
UNBINDEVENT(_VFP.hWnd, WM_ACTIVATE)



Cho mình hỏi cách hiển thị file text trong textbox được không? Xin cảm ơn

Textbox bị hạn chế chiều dài là 255 ký tự nên nếu file >255 ký tự thì không hiển thị hết duoc. Nên dùng editbox để thay thế.


Xin hướng dẫn tạo 2 khóa chính trong 1 table....
Thks all......

Không hiểu ý bạn là tạo 2 chỉ mục Primary hay là Primary được kết hợp từ 2field trở lên?

SunMoon8
16-03-2012, 22:23
XIN CHÀO CÁC BÁC...MÌNH CÓ MỘT ĐIỀU THẮC MẮC MUỐN HỎI TRÒN VFP...
VÍ DỤ NẾU MÌNH CÓ MỘT DÒNG THÔNG BÁO KHI NHẬP TRÙNG SOHIEU LÀ ""uniqueness of Index SOHIEU is violated".
MÌNH CÓ THỂ THAY THẾ CÁI THÔNG BÁO ""uniqueness of Index SOHIEU is violated" CỦA FOX BẰNG THÔNG BÁO CỦA MÌNH ĐỰOC KHÔNG?
VÍ DỤ THAY "uniqueness of Index SOHIEU is violated" THÀNH BẠN ĐÃ NHẬP TRÙNG MẪU TIN CHẲNG HẠN...

tayngangvfp
17-03-2012, 07:25
XIN CHÀO CÁC BÁC...MÌNH CÓ MỘT ĐIỀU THẮC MẮC MUỐN HỎI TRÒN VFP...
VÍ DỤ NẾU MÌNH CÓ MỘT DÒNG THÔNG BÁO KHI NHẬP TRÙNG SOHIEU LÀ ""uniqueness of Index SOHIEU is violated".
MÌNH CÓ THỂ THAY THẾ CÁI THÔNG BÁO ""uniqueness of Index SOHIEU is violated" CỦA FOX BẰNG THÔNG BÁO CỦA MÌNH ĐỰOC KHÔNG?
VÍ DỤ THAY "uniqueness of Index SOHIEU is violated" THÀNH BẠN ĐÃ NHẬP TRÙNG MẪU TIN CHẲNG HẠN...

Dùng lệnh ON ERROR hoặc TRY CATCH để bẫy. Ví dụ:


ON ERROR do xulyloi

USE .......................
* thực hiện thêm dữ liệu

ON ERROR

PROCEDURE XuLyLoi
LOCAL aErrInfo[1]
AERROR(aErrInfo)
IF aErrInfo[1] = 1884
cLoi=[Trung khoa !]
ELSE
cLoi=aErrInfo[2]
ENDIF
MESSAGEBOX(cLoi,16)
ENDPROC

SunMoon8
18-03-2012, 21:31
dùng lệnh on error hoặc try catch để bẫy. Ví dụ:


On error do xulyloi

use .......................
* thực hiện thêm dữ liệu

on error

procedure xulyloi
local aerrinfo[1]
aerror(aerrinfo)
if aerrinfo[1] = 1884
cloi=[trung khoa !]
else
cloi=aerrinfo[2]
endif
messagebox(cloi,16)
endproc
bác cho e hỏi thế nào để mình lấy dữ liệu từ view vào table..
Ví dụ như mình có 1 view đã lọc rồi..xong muốn tạo table lấy từ view để tính toán thì làm thế nào?

tamhoat
09-04-2012, 11:37
Xin chào các cao thủ FOX, có bác nào thạo về trigger không, phần mềm mình sử dụng gần đây bị tình trạng bị mất dữ liệu của 1 table mà không biết tại sao (trước đó dùng bao nhiêu năm không sao), đang nghi ngờ có người vào xoá. Mình đang nghiên cứu về Trigger mà chưa biết làm thế nào, xin hỏi các bác có chặn được việc xoá đó không, hay lưu được user hoặc máy tính thao tác với bảng đó không ? cảm ơn các bác

khzaof
09-04-2012, 11:47
chương trình của mình sao chỉ chạy được trên máy cài fox, máy không cài không chạy được.
Ai biết giúp với :D
Và mình muốn hỏi thêm về lệnh xóa trên grid nữa, ai có code lệnh xóa mà không làm trắng grid thì chỉ mình với.

luu_luu
10-04-2012, 13:45
chương trình của mình sao chỉ chạy được trên máy cài fox, máy không cài không chạy được.
Ai biết giúp với :D
Và mình muốn hỏi thêm về lệnh xóa trên grid nữa, ai có code lệnh xóa mà không làm trắng grid thì chỉ mình với.
bạn copy vfp9enu.dll,vfp9renu.dll,vfp9r.dll vào thư mục system32 của windows là được

ybvba
12-04-2012, 10:06
Em có nhiều file DBF có cấu trúc giống nhau, cùng 1 thư mục, nhưng tên file không cố định.
Các bác cho em hỏi viết code như thế nào để nối các file với nhau mà không phải Appen từng file thủ công? Cảm ơn các bác.

fucosg
12-04-2012, 14:22
1. Lập danh sách file dbf
2. Copy structure từ file đầu tiên
3. Lần lượt append data từ các file dbf

CLEAR
path="d:\"
IF ADIR(ff,path+"*.dbf")=0
RETURN
ENDIF
=ASORT(ff,1)
USE (path+ff(1,1))
COPY STRUCTURE TO xx
USE xx
FOR ii=1 TO ALEN(ff,1)
? ff(ii,1)
APPEND FROM (path+ff(ii,1))
ENDFOR
GO TOP
BROWSE
USE

robotfpt
13-04-2012, 13:48
Có bạn nào biết cách nén/giải nén file hoặc folder bằng Compressed (Ziped) Folder của Windows không xin chỉ giáo? (Tất nhiên viết bằng Foxpro nhé).
Xin cảm ơn!

ybvba
13-04-2012, 21:22
1. Lập danh sách file dbf
2. Copy structure từ file đầu tiên
3. Lần lượt append data từ các file dbf

CLEAR
path="d:\"
IF ADIR(ff,path+"*.dbf")=0
RETURN
ENDIF
=ASORT(ff,1)
USE (path+ff(1,1))
COPY STRUCTURE TO xx
USE xx
FOR ii=1 TO ALEN(ff,1)
? ff(ii,1)
APPEND FROM (path+ff(ii,1))
ENDFOR
GO TOP
BROWSE
USE

Em rất rất cảm ơn bác.

dungnt1011
14-04-2012, 09:54
Cho em hỏi về việc dùng câu lệnh SELECT * FROM tới 1 Cursor nào đó? Tại sao chạy rất chậm nhìn thanh status thấy chạy có 100 bản ghi một lần thay đổi status. Số bản ghi của cursor là 13.000.
Cảm ơn các Mem!

dungnt1011
16-04-2012, 09:30
Anh Tayngang và các Mem cho em hỏi vấn đề này với ạ:
Em muốn copy dữ liệu (dữ liệu là SQL)từ Data1 ở máy tính 1 sang data 2 của máy tính 2 trong fox thì em làm thế nào ạ?
Cảm ơn nhiều!

dungnt1011
17-04-2012, 08:50
Hjc, Các mem không ai giúp em ạ?

robotfpt
20-04-2012, 13:42
Mình có 1 bảng dữ liệu trong Access font chữ Unicode và 1 module có hàm convert font sang TCVN3. Mình muốn convert bảng dữ liệu đó sang Foxpro bằng 1 thủ tục trong Foxpro. Mong các bạn giúp đỡ.

bd1808
02-05-2012, 18:19
mình muốn public 1 form truy xuất csdl lên web thì phải làm cách nào? Ví dụ: sinh viên nhập mà số SV vào thì sẽ xem được điểm, lịch học.... Form thì mình lam được rồi, nhưng không biết cách đưa lên web, nhờ các bạn chỉ giáo dùm ạ. Thanks nhiều!!!

kienpham_tn
03-05-2012, 21:13
các bạn cho mình hỏi chút: mình muốn phân quyền trong fox, tức là nếu quyền là admin( mình gán quyền là=1) thì được toàn quyền(thêm, sửa , xóa, in) trong các form, còn nếu là quyền khác(mình gán quyền là =2) thì chỉ được xem(in) thì phải làm như thế nào?cảm ơn mọi người trong diễn đàn!

Lão Trư
04-05-2012, 16:15
các bạn cho mình hỏi chút: mình muốn phân quyền trong fox, tức là nếu quyền là admin( mình gán quyền là=1) thì được toàn quyền(thêm, sửa , xóa, in) trong các form, còn nếu là quyền khác(mình gán quyền là =2) thì chỉ được xem(in) thì phải làm như thế nào?cảm ơn mọi người trong diễn đàn!
Bạn viết Code trong các event Init của Form hoặc của Thư viện nút (Class nếu có dùng), dùng cấu trúc If …… Else …… Endi để thay đổi thuộc tính Enabled=.T. hoặc Enabled=.F. của các nút này tùy theo tình huống gán quyền (quyền đang là 1 hoặc là 2) tại thời điểm chạy chương trình.
(Lưu ý khai báo biến Public quyen và gán quyen=1 hoặc quyen=2 tủy theo tình huống chọn toàn quyền hay bị hạn chế quyền tại file khởi động chính của chương trình).

thattuyettran
04-05-2012, 20:19
Xin các cao thủ chỉ giáo, em muốn chuyển font vni sang unicode từ dbf sang excel thì làm cách nào? Em đọc trong diễn đàn có class chuyển font của tayngangvfp, ai có xin gửi qua mail giúp dùm em, em xin cám ơn!

kienpham_tn
05-05-2012, 10:34
Bạn viết Code trong các event Init của Form hoặc của Thư viện nút (Class nếu có dùng), dùng cấu trúc If …… Else …… Endi để thay đổi thuộc tính Enabled=.T. hoặc Enabled=.F. của các nút này tùy theo tình huống gán quyền (quyền đang là 1 hoặc là 2) tại thời điểm chạy chương trình.
(Lưu ý khai báo biến Public quyen và gán quyen=1 hoặc quyen=2 tủy theo tình huống chọn toàn quyền hay bị hạn chế quyền tại file khởi động chính của chương trình).

cảm ơn nhiều!mình đã phân quyền được rồi!

HUGOVFP
05-05-2012, 14:47
Xin các cao thủ chỉ giáo, em muốn chuyển font vni sang unicode từ dbf sang excel thì làm cách nào? Em đọc trong diễn đàn có class chuyển font của tayngangvfp, ai có xin gửi qua mail giúp dùm em, em xin cám ơn!
Nếu Bạn chưa giải quyết được việc chuyển font vni sang unicode từ dbf sang excel, Bạn có thể tham khảo các ví dụ sau:

1- Ví dụ về chuyển font vni <=> unicode <=> abc (bảng Table) của Bạn Tayngangvfp
(Diễn đàn chưa cho phép gửi đường link, Bạn xem tin nhắn đã gửi Bạn)

2- Tham khảo bài #1568 trang 157 (Hướng dẫn cách copy DBF ra File Excel của Bạn Tayngangvfp).

Vận dụng kết hợp các ví dụ trên để giải quyết vấn đề của Bạn. Nếu có vướng mắc trở ngại gì thì trao đổi thêm với Tayngangvfp hoặc trong Diễn đàn này để được hỗ trợ.

kienpham_tn
06-05-2012, 10:52
Các bác cho em hỏi: em có 2 form(tạm gọi là form 1 và form 2, form 1 có chứa grid), khi em kích vào nút In của form 1 thì nó sẽ chạy đến form 2, thao tác với form 2 xong, thoát form 2 ra thì form 1 không load được grid, grid bị trắng xóa, vậy phải làm thế nào?xin mọi người trong diễn đàn chỉ giáo giúp em! Em xin cảm ơn!

hoangnnm
06-05-2012, 12:39
Các bác cho em hỏi: em có 2 form(tạm gọi là form 1 và form 2, form 1 có chứa grid), khi em kích vào nút In của form 1 thì nó sẽ chạy đến form 2, thao tác với form 2 xong, thoát form 2 ra thì form 1 không load được grid, grid bị trắng xóa, vậy phải làm thế nào?xin mọi người trong diễn đàn chỉ giáo giúp em! Em xin cảm ơn!

Có lẽ bạn có dùng lệnh pack, hoặc trong code của form 2 có lệnh close data hoặc lệnh nào đó vô tình "use in" bảng của grid trong form 1 .

chupi.love
07-05-2012, 13:27
cho mình hỏi muốn import và export dữ liệu từ EX 2003 vào VF9.0
thì ntn? mình rất cần gấp...

thattuyettran
07-05-2012, 18:13
Em xin cám ơn Bác HUGOVFP đã giúp đỡ. Nay e có vấn đề khó, xin mọi người giúp đỡ.

- Vấn đề 1: em có 1 form A chứa dữ liệu, em tạo 1 nút để gọi form B và chuyền dữ liệu từ form A vào form B để chỉnh sữa, ví dụ như mã hàng hóa... Em không biết dùng lệnh nào để làm?

- Vấn đề 2: em muốn chèn thêm 1 dòng dữ liệu trắng có điều kiện vào bảng dữ liệu. Em định dùng lệnh append blank nhưng lệnh này không có đặt được điều kiện. Hy vong mọi người giúp đỡ. Em xin chân thành cám ơn nhiều!

HUGOVFP
07-05-2012, 20:20
Gửi Thattuyettran
Tôi không gửi đươc bài, Bạn xem tin nhắn

thattuyettran
08-05-2012, 20:11
Cam on bác HUGOVFP, nhưng ma em chèn được dong trắng vào bảng dữ liệu, nhưng khi đưa vào datagridview thì dòng trắng đó lại nằm trên cùng, không nằm dưới cùng được.

- Tiện thể cho em cách đặt điều kiện cho report khi muốn in: nếu có dữ liệu thì hiện và nếu không có dữ liệu thì in dòng trắng. Em xin cám ơn!

HUGOVFP
09-05-2012, 02:57
Gửi Thattuyettran
- Do không biết Code trong Form chứa Grid đã có những gì, nên chỉ đề nghị bạn kiểm tra xem trong các sự kiện Load, Init, Activate … của form này có dòng mệnh đề về chỉ mục (Index) hay không? Ví dụ:
Nếu có dòng mệnh đề này:
INDEX on Mahanghoa TO <tên chỉ mục> ASCENDING && Grid thể hiện dòng trắng nằm trên cùng
Đề nghị sửa lại:
INDEX on Mahanghoa TO <tên chỉ mục> DESCENDING && Grid thể hiện dòng trắng nằm dưới cùng

- Về điều kiện cho report khi in, Bạn có thể thêm điều kiện For… hoặc While …. Ví dụ như sau:
REPORT FORM <Tên report> prev for !Empt(mahanghoa)

thattuyettran
09-05-2012, 14:38
Em đã chỉnh dòng trắng nằm ở dưới rồi, nhưng trong report không in được theo nhóm. ví dụ: in mã hàng hóa theo nhóm vật tư, nếu nhóm vật tư đó chưa có mã hàng hóa thì in dòng trắng, em không biết cách group by theo nhóm để hiện được dòng trắng. Xin mọi người giúp dùm!

TrangHoa73
09-05-2012, 15:32
Các bạn cho mình hỏi. Mình chuyển dữ liệu từ office excel2003 vào tập DBF thì được, nhưng khi chuyển dữ liệu từ office excel2010 vào tập DBF thì bị lỗi " Microsoft excel file format is invalid" các bạn chỉ mình cách khắc phục. Mình xin cảm ơn.

HUGOVFP
09-05-2012, 17:06
Em đã chỉnh dòng trắng nằm ở dưới rồi, nhưng trong report không in được theo nhóm. ví dụ: in mã hàng hóa theo nhóm vật tư, nếu nhóm vật tư đó chưa có mã hàng hóa thì in dòng trắng, em không biết cách group by theo nhóm để hiện được dòng trắng. Xin mọi người giúp dùm!
Group Records được thực hiện khi thiết kế Report, nếu bạn dùng Report Wizard để thiết kế thì việc này được chọn tại bước 2 (Step 2 - Group Records), tại đây bạn chọn mahanghoa tại Combobox 1. Khi thiết kế Report đã xong bước 6 (Step 6 – Finish), bạn mở Report này DoubleClick vào Fileld mahanghoa chẳng hạn, xuất hiện hộp thoại Fields Properties >> chọn trang Print when >> bỏ dấu chọn (nếu có) tại Checkbox Remove line if blank
Nếu cần bạn có thể nhắn tin Email của bạn để tiện liên hệ hoặc gửi file hướng dẫn.

TrangHoa73
09-05-2012, 22:11
Các bác cho em hỏi. Mình có thể import dữ liệu từ excel 2010 vào VF9.0 được không ạ. Sao em dùng lệnh "append FROM danhsach TYPE XL8 " thì máy báo lỗi "Microsoft excel file format is invalid" nhưng dùng excel 2003 thì được. Các bác hướng dẫn cho em với. Thanks !

kelangdu
10-05-2012, 06:25
mình cần các bạn giúp đỡ
tình hình là mình có 2 file
file 1 :Tonghs(mahs,ten,ngaysinh,diemtoan,diemvan,....)
file 2 :hsgioi(mahs,ten,ngaysinh)
mình cần lấy diemtoan,diemvan,....tu file 1 sang file 2 theo mahs thì phải viết sao các bạn
mong các bạn giúp mình với
cá ơn các bạn nha

HUGOVFP
10-05-2012, 12:48
mình cần các bạn giúp đỡ
tình hình là mình có 2 file
file 1 :Tonghs(mahs,ten,ngaysinh,diemtoan,diemvan,....)
file 2 :hsgioi(mahs,ten,ngaysinh)
mình cần lấy diemtoan,diemvan,....tu file 1 sang file 2 theo mahs thì phải viết sao các bạn
mong các bạn giúp mình với
cá ơn các bạn nha
Tôi không gửi được bài, xem ví dụ gợi ý tại tin nhắn đã gửi

thattuyettran
10-05-2012, 19:21
Cám ơn bác HUGOVFP, bác cho em xin địa chỉ mail để tiện liên lạc!

HUGOVFP
10-05-2012, 20:02
Cám ơn bác HUGOVFP, bác cho em xin địa chỉ mail để tiện liên lạc!
DĐTH không cho tôi gửi Link hoặc Email, Bạn xem tin nhắn hoặc trong số bài trước Tôi đã gửi Email của tôi trên DĐTH này

robotfpt
11-05-2012, 11:13
Các bác cho em hỏi. Mình có thể import dữ liệu từ excel 2010 vào VF9.0 được không ạ. Sao em dùng lệnh "append FROM danhsach TYPE XL8 " thì máy báo lỗi "Microsoft excel file format is invalid" nhưng dùng excel 2003 thì được. Các bác hướng dẫn cho em với. Thanks !
Foxpro chỉ cho phép import trực tiếp Excel 2003 trở xuống.
Nếu dùng excel 2007 - 2010 bạn phải dùng Connect string để import
Tốt nhất khi sử dụng excel phiên bản 2007 - 2010 bạn save as về dạng 2003 hoặc Workbook 5.0.

TrangHoa73
11-05-2012, 15:07
Cảm ơn robotfpt ! Nhưng ở excel2010 em save as Type excel 97-2003 Workbook nhưng em import vẫn bị báo lỗi như trên. Hoặc file excel 2003 nhưng mình mở bằng excel 2010 sao đó nhập dữ liệu và save lại thì vẫn bị lỗi như trên. Mong anh nhiệt tình chỉ cụ thể giúp. Anh có thể hướng dẫn cụ thể cách dùng Connect string để impor excel 2010 nhé. Em chưa biết nhiều mong anh thông cảm.

thattuyettran
11-05-2012, 19:06
Code chuyển font từ vni sang uni bị lỗi nên chuyển font không đọc được, còn dùng công cụ của unikey thì đọc được, xin bác giúp đỡ cách viết code chuyển font để không bị lỗi, em đang sử dụng fox 8. Xin cám ơn Bác HUGOVFP trước!

kelangdu
11-05-2012, 19:45
cám ơn Bác HUGOVFP rất nhiều

HUGOVFP
12-05-2012, 00:29
Code chuyển font từ vni sang uni bị lỗi nên chuyển font không đọc được, còn dùng công cụ của unikey thì đọc được, xin bác giúp đỡ cách viết code chuyển font để không bị lỗi, em đang sử dụng fox 8. Xin cám ơn Bác HUGOVFP trước!
Tôi đã gửi Email cho bạn Bản Demo minh họa cho phép người dùng chọn DBF (bảng mã TCVN3 hoặc bảng mã VNI) chuyển sang file Excel bảng mã Unicode (UTF8), nếu có gì cần thì trao đổi thêm

fucosg
12-05-2012, 09:39
@tayngangvfp #1828
Code chuyển keyboard unikey của bác rất tuyệt. Cảm ơn rất nhiều.
Tuy nhiên unikey chỉ cho hotkey từ Ctrl+Shift+F1 đến Ctrl+Shift+F4 (VIQR), có cách nào chuyển sang Vietware F không ?

haicbgy
12-05-2012, 16:31
Chào tất cả các bạn!
Mình muốn hỏi vấn đề sau, mong mọi người giúp đỡ.
Cần viết đoạn lệnh làm những việc sau:
- Khi chạy chương trình, đưa vào report (baocao frx) một nhãn (label1) tại tọa độ (x,y) xác định.
- Khi đóng chương trình thì file baocao frx vẫn giữ nguyên như lúc đầu.
Hoặc có hướng dẫn viết report động, không cần file frx càng tốt.

TrangHoa73
14-05-2012, 17:00
Cám ơn bác HUGOVFP rất nhiều. Em đã nhận được mail của Anh về bản Demo dùng xuất dữ liệu từ DBF ra Excel và chuyển font .

haicbgy
16-05-2012, 18:51
Chào tất cả các bạn!
Mình muốn hỏi vấn đề sau, mong mọi người giúp đỡ.
Cần viết đoạn lệnh làm những việc sau:
- Khi chạy chương trình, đưa vào report (baocao frx) một nhãn (label1) tại tọa độ (x,y) xác định.
- Khi đóng chương trình thì file baocao frx vẫn giữ nguyên như lúc đầu.
Hoặc có hướng dẫn viết report động, không cần file frx càng tốt.

Mọi người quan tâm chỉ điểm giúp, mình muốn làm cái giống như mã vạch trong tờ khai thuế của chương trình HTKK, khi xem view thì không thấy, nhưng in ra thì lại có mã vạch.

hoangnnm
17-05-2012, 09:17
Mình nghĩ bạn làm theo hướng này nhé :
- khi chạy chuơng trình thì copy file report *** ra 1 report mới, ***1 chẳng hạn
- thêm nhãn vào report ***1 theo tọa độ xác định
- In
- đóng chuơng trình xóa report ***1 đi
-> nghĩa là report *** chỉ có tác dụng làm "mẫu"

Còn về chuyện thêm label vào report, bạn hãy "use duongdanreport.frx" lên để tham khảo và sẽ biết cách làm thế nào để thêm bằng code.

thattuyettran
17-05-2012, 09:48
Bác HUGOVFP cho em hỏi muốn chuyển chương trình từ fox 8 lên fox 9 cần thêm lệnh nào? Khi em chạy chương trình trên fox 9 thì báo lỗi thiếu thư viện!

haicbgy
17-05-2012, 10:28
Cảm ơn bạn hoangnnm đã cho hướng giải quyết rất khả quan. thanhks nhiều

HUGOVFP
17-05-2012, 10:37
Bác HUGOVFP cho em hỏi muốn chuyển chương trình từ fox 8 lên fox 9 cần thêm lệnh nào? Khi em chạy chương trình trên fox 9 thì báo lỗi thiếu thư viện!
Tôi không gửi được bài dù ngắn gọn chỉ 2, 3 dòng, Bạn xem tin nhắn Tôi đã gửi.

thattuyettran
17-05-2012, 14:29
Cám ơn Bác HUGOVFP, em còn 1 vấn đề nan giải là code chuyển font vni sang unicode chỉ chạy tốt trên fox 9, khi em chạy trên fox 8 thì khi chuyển font, font bị lỗi, xin Bác hướng dẫn code chuyển font trên fox 8!

HUGOVFP
17-05-2012, 16:41
Cám ơn Bác HUGOVFP, em còn 1 vấn đề nan giải là code chuyển font vni sang unicode chỉ chạy tốt trên fox 9, khi em chạy trên fox 8 thì khi chuyển font, font bị lỗi, xin Bác hướng dẫn code chuyển font trên fox 8!
Tôi chưa dùng VFP8, nhưng theo Tôi biết từ phiên bản VFP8 trở xuống không hỗ trợ bảng mã Unicode (UTF8). Hy vọng có người giúp được Bạn.

tqhung2310
18-05-2012, 12:51
mình đang gặp vấn đề rất gấp
hiện tại mình có dữ liệu hồ sơ , dữ liệu này cũng được nhận từ nhiều file khác gộp lại thành 1 file dữ liệu
nhưng khi mình sắp xếp để đánh mã hồ sơ theo thứ tự BanTS, khối và đơn vị dự thi thì gặp vấn đề là có vài thứ tự bị lặp lại trong cùng 1 khối với nhau
Ai có thể giúp mình với
cảm ơn các bạn nhiều

changkhoag
19-05-2012, 15:57
Chào các bạn, mình muốn tạo 1 form tìm kiếm dữ liệu trong 1 bảng tương tự như Form Find của VFP nhưng chưa hình dung được giải thuật cũng như cách làm, nhờ các bạn giúp mình định hướng cách làm (nếu có Form mẫu càng hay). Cảm ơn các bạn nhiều.

fucosg
25-05-2012, 10:49
Font unicode trong VFP chỉ chuyển được thông qua UTF8, vì vậy phải sử dụng các hàm SYS(3101,65001), SYS(3101,0) [65001 là mã code page của UTF8] trước và sau khi chuyển (bạn tìm xem các ví dụ của bác tayngangvfp).
Các hàm nầy chỉ có trong VFP9, vì vậy chỉ chuyển được font unicode trong VFP9.

vfp8.0
26-05-2012, 11:25
chào các bác.
chả là e pải viết 1 from. trong đó doanh thu lấy từ phiếu thu, chi tiết chi tiêu lấy từ phiếu chi.e viết mãi mà k được
bác nào biết chỉ giùm e với
e cảm ơn các bác nhiều

jizay10
29-05-2012, 18:48
bác ttphong68 xem mail tl jup e!

salaza
30-05-2012, 01:29
Mình làm 1 Grid hiển thị nhân viên và sản phẩm làm được. Mình tạo 1 combobox cboBophan (với nội dung là do tự mình add) Mình làm câu lệnh như sau để lọc bộ phận nhưng không chạy được

set filter to ALLTRIM(UPPER(cctt mabophan)) = "PX1"

Sửa giúp mình với

minhdangdlk
30-05-2012, 14:06
Xin chào các bác.
Có bác nào biết nguyên nhân vì sao khi chạy foxpro 2.6 for win thì bị treo chương trình khi máy đang chạy yahoo messenger 10. nếu thoát hoàn toàn yahoo messenger thì mới vào được. hoặc cài messenger 8 thì mới không bị treo nữa.

becktam
30-05-2012, 15:18
em đang gặp 1 vấn đề về phiếu in:
giờ em muốn tạo 1 phiếu in là hóa đơn bán hàng có 3 liên, mỗi liên trên 1 trang
và số thứ tự của liên đánh theo số thứ tự trang.
Các bác giúp em với ạ. Tks!

luu_luu
31-05-2012, 07:51
em đang gặp 1 vấn đề về phiếu in:
giờ em muốn tạo 1 phiếu in là hóa đơn bán hàng có 3 liên, mỗi liên trên 1 trang
và số thứ tự của liên đánh theo số thứ tự trang.
Các bác giúp em với ạ. Tks!

bạn tạo report xong send lên cho xem nới chỉnh được chứ

becktam
31-05-2012, 09:19
mình chưa post đc link, cũng ko attach file vào đc T.T
bạn có thể nói phương pháp cho mình đc ko?
dùng lệnh select những gì, copy to vào đâu rồi append ntn đc ko?
mình nghĩ như thế nhưng ko biết nhiều về foxpro lắm nên ko viết đúng đc.

Character
31-05-2012, 15:40
em đang gặp 1 vấn đề về phiếu in:
giờ em muốn tạo 1 phiếu in là hóa đơn bán hàng có 3 liên, mỗi liên trên 1 trang
và số thứ tự của liên đánh theo số thứ tự trang.
Các bác giúp em với ạ. Tks!

Bạn nêu rõ hơn vấn đề bạn đang cần giúp là gì? Nếu Bạn đã thiết kế Report (phiếu in) thì việc viết Code để in hoá đơn 3 liên (3 trang), mỗi liên có in liên 1, liên 2, liên 3 … như sau:
- Bạn mở Report và thiết kế thêm tại vị trí thích hợp cần in 01 Label “Liên” và 01 field Allt(Str(i)) (i là biến số 1, 2, 3 của vòng lặp For ….. Endfor).
- Thay câu lệnh Repo form <Ten_Report_phieu_in> prev với vòng lặp For …Endfor như sau:
For i=1 to 3
Repo form <Ten_Report_phieu_in> prev
Endfor

nglth
02-06-2012, 11:30
Mình muốn hỏi thêm 1 vấn đề về xử lý report:
Trên mẫu hóa đơn GTGT , trong phần nội dung hóa đơn cần in thêm 1 đường gạch chéo vào những dòng còn trống.
Có bro nào xử lý được xin hỗ trợ giùm.

jizay10
02-06-2012, 17:42
To Character: bác xem giúp e lỗi này với, cho e xin mail e gửi ảnh, e chưa post ảnh được

Character
02-06-2012, 17:53
To Character: bác xem giúp e lỗi này với, cho e xin mail e gửi ảnh, e chưa post ảnh được
Bạn xem tin nhắn Tôi đã gửi.

jizay10
02-06-2012, 22:41
To Character: e gửi hình rồi, bác xem giúp e

Character
03-06-2012, 12:48
To Character: e gửi hình rồi, bác xem giúp e

Tôi đã viết chương trình mẫu tương tự gửi Email cho Bạn tham khảo thực hiện. Bạn chú ý cấu trúc, phương pháp chương trình mẫu, sự khác biệt của các câu lệnh khi viết Code trong Menu, tránh các lỗi cú pháp trong chương trình.

hoangvietiphone
03-06-2012, 20:09
Các bác giúp em tạo cái report co thể thay đổi vi trí size va font khi in dc không?Em dang dùng visual studio c#

fucosg
05-06-2012, 10:26
@minhdangdlk #1885

Tôi chưa từng gặp trường hợp nầy bao giờ, có thể là do việc quản lý memory.
Thử giải quyết như sau:
Vào FoxPro 2.6
Menu Help/About FoxPro...
Đánh Next 3 lần để đến phần quản lý memory với các mục như sau:

Total Memory:
Memory In USe:
MEMLIMIT:

Nếu mục MEMLIMIT có giá trị là 0%,0K,0K
Bạn tìm file Config.fpw (cũng xem trong mục about) thêm vào dòng sau:
MEMLIMIT=50,65536,131072
Như vậy là đủ, thường thì FoxPro 2.6 chỉ sử dụng 64-132 Mb RAM, nếu để default nó sẽ quản lý hết memory, có thể gây xung đột với các software khác.
Lưu ý : giá trị của mục Total Memory: sẽ thay đổi sau khi thực hiện như trên.


@nglth #1890
Để in dấu chéo trên các dòng trống trên hóa đơn bạn làm như sau:
Giả sử tổng số dòng in được trên 1 HĐ là 10, HĐ in ra có 2 dòng
1. Tạo file dbf có 2 dòng muốn in
2. Tạo thêm cho đủ 10 dòng

SELECT ...
DO WHILE MOD(recc(),10)#0
APPEND BLANK
* Ghi giá trị là dấu chéo lên field tên mặt hàng
* REPL <tenmathang> with space(20+recno())+'\\'
ENDDO
REPORT FORM ...

Lưu ý : nếu file DBF bạn có sử dụng index thì phải xử lý thêm các field khác, nếu không các dòng trắng sẽ chạy lên phía trên

nglth
05-06-2012, 11:56
Cám ơn fucosg đã hỗ trợ. Cách xử lý này dùng chữa cháy cũng được.
Mình muốn hỏi xem có cách nào xử lý sâu hơn vào table của frx để vẽ đường chéo không?

hoangnnm
05-06-2012, 14:07
Cám ơn fucosg đã hỗ trợ. Cách xử lý này dùng chữa cháy cũng được.
Mình muốn hỏi xem có cách nào xử lý sâu hơn vào table của frx để vẽ đường chéo không?
Không có, và cách ở trên đã là cách chuẩn rồi chứ không phải chữa cháy đâu nhé.

Character
05-06-2012, 20:21
Mình muốn hỏi thêm 1 vấn đề về xử lý report:
Trên mẫu hóa đơn GTGT , trong phần nội dung hóa đơn cần in thêm 1 đường gạch chéo vào những dòng còn trống.
Có bro nào xử lý được xin hỗ trợ giùm.
Bạn có thể tham khảo cách làm này:

Mở Report cần thiết kế :
- Dùng ứng dụng của Windows (Paint – Office Picture Manager …) vẽ một file Image kích cở bằng <fieldname> có đường gạch chéo, hình sin, màu sắc, dầy, mỏng tùy ý (ví dụ đặt tên gachcheo.jpg chẳng hạn) lưu tại thư mục chứa Report này.
- Trong hộp thoại Picture/Ole Bound Properties (khi chọn Menu View>> Toolbars… >> Report Controls >> chọn Picture/Ole Bound Control):
- Thiết kế một đối tượng Picture/Ole Bound control chồng khít lên <fieldname> cần in gạch chéo (đối tượng này chỉ thể hiện nếu <fieldname> rỗng).
Tại trang General >> Control soure type >> chọn Image file name
Tại Textbox Control source chọn: <Ổ dĩa\đường dẫn file Image\gachcheo.jpg>
Tại trang Print when >> đánh dấu check vào Checkbox Remove line if blank
Tại Textbox Print only when expression is true nhập dòng code: Empt(<fieldname>)
- Lưu Report >> chạy chương trình >> xem trước kết quả (Print Preview) Report này.

(Tôi đã Post được đủ bài)

uronmapu
06-06-2012, 12:42
Xin cách tạo menu như sau

Mình có 1 form A, mình muốn form A có chức năng menu

File: New, Save, Edit
Print: Print Preview, Print

Thanks

fucosg
07-06-2012, 15:23
@nglth, hoangnnm, character
Làm cách nào cũng được miễn sao đạt yêu cầu thì thôi.
Muốn đẹp thì làm cầu kỳ, không thì chỉ làm đơn giản.
Lưu ý: trường hợp khối lượng in HĐ liên tục khá lớn thì chỉ nên làm đơn giản, HĐ diện nước là một ví dụ.

onglao_danhca
26-06-2012, 10:49
Xin hỏi các bác về FOX DOS 2.6.
Để tạo một file .dbf thì dùng lệnh create dbf danhba(Stt N(5), Ten C (12), ho_dem C (20),don_vi C (50), madv C (8), gioitinh L (1), ngaysinh D (8))

Xin các cao thủ cho biết cách để tạo file dbf có cấu trúc như trên nhưng không dùng lệnh create dbf mà dùng lệnh =fcreate() và lệnh fwrite() . Sau này vẫn mở được file bằng lệnh use.
Xin cám ơn.

foxnewbie
05-07-2012, 15:22
Mình muốn hỏi thêm 1 vấn đề về xử lý report:
Trên mẫu hóa đơn GTGT , trong phần nội dung hóa đơn cần in thêm 1 đường gạch chéo vào những dòng còn trống.
Có bro nào xử lý được xin hỗ trợ giùm.

Gửi bạn nglth

Vấn đề của bạn nêu thấy cũng khá hay.

Mình gửi bạn 1 cách đơn giản hơn rất nhiều. Bạn làm thử đi nhé. Nếu chưa được thì gửi mail mình sẽ gửi report cho bạn. cách làm như sau :

Trong report bạn tạo SUMMARY BAND và PAGE FOOTER

- Bạn gõ nội dung của PAGE FOOTER vào
- Bạn vẽ 1 đường nằm ngang trong SUMMARY BAND
- Sau đó bạn đóng SUMMARY BAND lại (Tức là bỏ chọn nó)
Khi VFP hỏi trong cửa sổ REPORT BUIDER ... Bạn trả lờ NO (quan trọng)

Bạn thử Preview xem. Ưng ý chưa !!!

nhd_chau
06-07-2012, 16:44
Tôi đang làm Form chứa cả view và table.. khi vừa thêm record vào table thì có cách nào để view có thể tự cập nhật dữ liệu vào không. không cần phải thoát form. mình đang rất cần giải quyết vấn đề này. các bác giúp với...

Fish eye
07-07-2012, 06:06
Tôi đang làm Form chứa cả view và table.. khi vừa thêm record vào table thì có cách nào để view có thể tự cập nhật dữ liệu vào không. không cần phải thoát form. mình đang rất cần giải quyết vấn đề này. các bác giúp với...
Sau khi cập nhật 01 mẫu tin vào DBF, Bạn cho thi hành hàm REQUERY() ngay sau lệnh Select <Tên View> (chọn vùng làm việc View liên hệ)
Ví dụ:
Repl …… with ……. && lệnh cập nhật DBF
………………………....
Select <Tên View> && chọn View liên hệ
Requery()
........................

anhdung060777
12-07-2012, 17:07
[QUOTE=Fish eye;3858458]Sau khi cập nhật 01 mẫu tin vào DBF, Bạn cho thi hành hàm REQUERY() ngay sau lệnh Select <Tên View> (chọn vùng làm việc View liên hệ)
Ví dụ:
Repl …… with ……. && lệnh cập nhật DBF
………………………....
Select <Tên View> && chọn View liên hệ
Requery()
........................[/QUOTE

anhdung060777
12-07-2012, 17:15
chào các bác cho mình hỏi muốn lấy 1 số lẻ sau dấu chấm thập phân thì làm sao
vd: 9.28 thi ra 9.2

minhdangdlk
16-07-2012, 11:10
cám ơn fucusg nhé. mình sẽ thực hiện theo cách của bạn xem.

hocfoxpro
18-07-2012, 09:48
chào các bạn!
cho mình hỏi:
mình có 2 form(form1,form2) trong form1 chứa grid1(mã,tên) và 2 textbox(textbox1,textbox2); form2 chứa textbox3,textbox4.
grid1 lấy dữ liệu từ sqlserver2000 và hiển thị được trên lưới.
khi dùng thuộc tính afterrowcolchange của grid1, click chuột vào từng hàng của grid1 thì textbox1,2 hiển thị được dữ liệu(mã,tên) theo đúng hàng trên grid1.
Cho mình hỏi là sử dụng thuộc tính gi và làm thế nào để khi kích đôi(dblclick) hoăc nhấn phím enter vào từng hàng grid1 thì tại hàng đó sẻ được bôi đen(làm nổi bật lên) và tiếp sau đó là form 2 hiển thị(text3,4) lấy mã,tên từ grid1!
thanks!

Character
19-07-2012, 11:14
chào các bạn!
cho mình hỏi:
mình có 2 form(form1,form2) trong form1 chứa grid1(mã,tên) và 2 textbox(textbox1,textbox2); form2 chứa textbox3,textbox4.
grid1 lấy dữ liệu từ sqlserver2000 và hiển thị được trên lưới.
khi dùng thuộc tính afterrowcolchange của grid1, click chuột vào từng hàng của grid1 thì textbox1,2 hiển thị được dữ liệu(mã,tên) theo đúng hàng trên grid1.
Cho mình hỏi là sử dụng thuộc tính gi và làm thế nào để khi kích đôi(dblclick) hoăc nhấn phím enter vào từng hàng grid1 thì tại hàng đó sẻ được bôi đen(làm nổi bật lên) và tiếp sau đó là form 2 hiển thị(text3,4) lấy mã,tên từ grid1!
thanks!
Bạn tham khảo gợi ý này xem:

1- Kiểu Highlight (nổi bật khi chọn hàng của Grid1)
Tại bảng thuộc tính của Grid1 chọn giá trị HighlightStyle=2 và tùy chọn giá trị màu nền, màu chữ (làm nổi bật) HighlightBackColor, HighlightForeColor.

2-Lấy giá trị mã, tên từ Grid1 để hiển thị cho textbox3, textbox4
Giả định Bạn đang dùng biểu mẫu Formset trong đó có 02 Form con, thuộc tính Name là Form1name và Form2name có các đối tượng Grid và textbox như Bạn đã nêu. Tại phương thức AfterRowColChange của Grid1 (của Form1), bạn nhập các dòng lệnh sau:
cId=Thisform.Grid1.Column1.Text1.ControlSource && vd: Column1 là cột mã
cName=Thisform.Grid1.Column2.Text1.ControlSource && vd: Column2 là cột tên
Thisformset.Form2name.Textbox3.Value=&cId
Thisformset.Form2name.Textbox4.Value=&cName
Bạn tham khảo, vận dụng dụng để giải quyết vào trường hợp của Bạn.

Chào.

hocfoxpro
24-07-2012, 16:51
cảm ơn bạn Character nhiều
mình sẽ thử cách của bạn!

hocfoxpro
24-07-2012, 17:02
cho mình hỏi ban character thêm tí! khi dùng thuộc tính afterrowcolchange thì chỉ cần click chuột vào từng hàng thì form2 hiển thị ngay rồi! mình muốn khi kích đôi chuột(hoăc nhấn enter) tại mổi hàng của grid thì mới nhảy sang form2,còn khi click chuột vào từng hàng thì vẩn ở lại form1.
thank bạn

Character
24-07-2012, 20:59
cho mình hỏi ban character thêm tí! khi dùng thuộc tính afterrowcolchange thì chỉ cần click chuột vào từng hàng thì form2 hiển thị ngay rồi! mình muốn khi kích đôi chuột(hoăc nhấn enter) tại mổi hàng của grid thì mới nhảy sang form2,còn khi click chuột vào từng hàng thì vẩn ở lại form1.
thank bạn

Nếu bạn muốn dùng phím Enter hoặc DblClick chuột vào mỗi hàng – cột bất kỳ trên Grid để dữ liệu Mã – Tên của Grid chuyển sang các Textbox Form2 thì viết code tại tất cả biến cố DblClick và KeyPress của Text1 trong mỗi Column(i) của Grid (Để tránh viết Code nhiều cho tất cả các cột, Bạn có thể chỉ cần viết tại một Cột quy định nào đó, chẳng hạn cột Mã để dùng là đủ), ví dụ như sau:

- Code trong biến cố DblClick của Text1 trong từng Column (chỉ khi người dùng DblClick thì mới chuyển Mã – Tên sang Form2):

cId=Thisform.Grid1.Column1.ControlSource && vd: Column1 là cột mã
cName=Thisform.Grid1.Column2.ControlSource && vd: Column2 là cột tên
Thisformset.Form2name.Textbox3.Value=&cId
Thisformset.Form2name.Textbox4.Value=&cName

- Code trong biến cố KeyPress của Text1 trong từng Column (chỉ khi người dùng ấn phím Enter thì mới chuyển Mã – Tên sang Form2):

LPARAMETERS nKeyCode, nShiftAltCtrl
If nKeyCode=13 && nếu chỉ khi người dùng ấn phím Enter
cId=Thisform.Grid1.Column1.ControlSource && vd: Column1 là cột mã
cName=Thisform.Grid1.Column2.ControlSource && vd: Column2 là cột tên
Thisformset.Form2name.Textbox3.Value=&cId
Thisformset.Form2name.Textbox4.Value=&cName
Endi

hocfoxpro
25-07-2012, 10:57
cảm ơn bạn Character!
mình đã thử cách của bạn mà vẫn chưa được! chắc là mình thực hiện sai thì phải! bạn có thể chỉ rỏ cách hơn cho mình được ko! mình có thể nói lại mục đích của mình là: khi dblclick hoặc nhấn enter tại mổi hàng của grid1 thì form2 hiện lên, form1 thoát đi và form2 hiển thị dữ liệu lấy từ hàng của grid1 trong form1! nếu sử dung thuộc tính afterrowcolchange thì minh đã làm được(dung paramerters trong thuộc tính init của form2 để lấy dử liệu trong form1(tại thuộc tính afterrowcolchange của grid1 gỏ lênh "do form2 with cid,cname" trong đó cid=colum1,cname=clum2;tại thuộc tính init của form2 gỏ câu lênh parameter cid,cname sau đó gán value của mổi test=cid,cname!) nhưng chỉ cần click chuột vào từng hàng là nó đã nhảy-->rất bất tiện! mong ban giúp! cam ơn ban!

Character
25-07-2012, 14:16
cảm ơn bạn Character!
mình đã thử cách của bạn mà vẫn chưa được! chắc là mình thực hiện sai thì phải! bạn có thể chỉ rỏ cách hơn cho mình được ko! mình có thể nói lại mục đích của mình là: khi dblclick hoặc nhấn enter tại mổi hàng của grid1 thì form2 hiện lên, form1 thoát đi và form2 hiển thị dữ liệu lấy từ hàng của grid1 trong form1! nếu sử dung thuộc tính afterrowcolchange thì minh đã làm được(dung paramerters trong thuộc tính init của form2 để lấy dử liệu trong form1(tại thuộc tính afterrowcolchange của grid1 gỏ lênh "do form2 with cid,cname" trong đó cid=colum1,cname=clum2;tại thuộc tính init của form2 gỏ câu lênh parameter cid,cname sau đó gán value của mổi test=cid,cname!) nhưng chỉ cần click chuột vào từng hàng là nó đã nhảy-->rất bất tiện! mong ban giúp! cam ơn ban!
Gửi bạn HocFoxPro
Nếu có thể được Bạn cho biết Email của Bạn (gửi vào mục “tin nhắn” cho Tôi trong diễn đàn này), Tôi gửi cho bạn bản Demo đã test chạy tốt cho trường hợp của bạn (Kiểu Highlight nổi bật khi chọn hàng của Grid1 và chỉ khi dùng phím Enter hoặc DblClick chuột để chuyển dữ liệu từ form1 chứa Grid sang form2 – không dùng Methods AfterRowColChange).

Character
26-07-2012, 09:10
Gửi bạn HocFoxPro!
Tôi đã gửi Email bản Demo cho Bạn, nếu dùng chưa đúng ý thì Bạn cho Tôi biết.
Chào Bạn.

hocfoxpro
26-07-2012, 09:29
Các bạn giúp mình viết lệnh sql này với!
mình có bảng hocluc(thoigian,xeploai) để theo dỏi đạo đức của một học sinh
thoigian xeploai
01/10/2009 trungbinh
01/06/2010 kha
01/08/2010 tot
01/05/2011 yeu
+bảng luutru(thang,xeploai)
+biến tamthoi để nhập thới gian cần so sánh với thời gian trong bảng hocluc!
cách so sánh lấy thời gian trong biến tạm thời so sánh với từng thới điểm trong bảng hocluc rồi inser vào bảng luutru. mổi lần biến tạm thời mang giá trị thì trong bảng luutru sẻ xóa hết 5 dòng củ và lưu lại 5 dòng mới.
-khi tamthoi=01/07/2012
thì sẻ insert vào bảng luutru:
thang xeploai
06/2012 yeu
05/2012 yeu
04/2012 yeu
03/2012 yeu
02/2012 yeu
-khi tamthoi=01/07/2010
thì sẻ insert vào bảng luutru:
thang xeploai
06/2010 kha
05/2010 trungbinh
04/2010 trungbinh
03/2010 trungbinh
02/2010 trungbinh

-khi tamthoi=01/09/2011
thì sẻ insert vào bảng luutru:
thang xeploai
08/2011 yeu
07/2011 yeu
06/2011 yeu
05/2011 yeu
04/2011 tot
-khi tamthoi=01/09/2010
thì sẻ insert vào bảng luutru:
thang xeploai
08/2010 tot
07/2010 kha
06/2010 kha
05/2010 trungbinh
04/2012 trungbinh
-khi tamthoi=01/06/2011
thì sẻ insert vào bảng luutru:
thang xeploai
05/2011 yeu
04/2011 tot
03/2011 tot
02/2011 tot
01/2011 tot
+biến tamthoi có thể nhập vào tủy ý
mục đích là viết lệnh sql để insert vào bảng luutru tùy theo biến tamthoi
mình đã suy nghỉ nhiều nhung vẩn chưa tìm ra câu lệnh sql thích hop!
các Bạn giúp mình với! tốt nhất là gói gon trong một câu lệnh sql
cho rằng các bảng xeploai va luutru nằm trong cùng database.

ngonphilao
26-07-2012, 09:53
Có ai bày mình cách kết nối dữ liệu trong VF6 với

hocfoxpro
02-08-2012, 07:50
khong bạn nào giúp mình viết câu lệnh sql hết ah!!!

Character
02-08-2012, 09:36
khong bạn nào giúp mình viết câu lệnh sql hết ah!!!

Trong khi chờ ai đó giúp Bạn câu lệnh SQL, Bạn có thể tham khảo sử dụng tạm bản Demo (Tôi đã gửi Mail cho Bạn) tìm và thông báo kết quả đạo đức (hoặc học lực) 05 tháng trước của 01 học sinh tính từ thời điểm bất kỳ.
Chào.

hocfoxpro
02-08-2012, 15:10
bạn character giúp mình nhiều quá! mình rất cảm ơn! có 1 số trường hợp mình thử thì đã đúng nhưng có trường hơp nhập vào '01/08/2010' thì vẩn sai: nó xuất ra
thang ......xeploai
08/2010 tot
07/2010 tot
06/2010 kha
05/2010 kha
04/2010 kha
đúng của trường hơp này là
thang...xeploai
08/2010 tot
07/2010 kha
06/2010 kha
05/2010 trungbinh
04/2010 trungbinh
mình mới thử một vài trường hơp thôi! mong bạn giúp mình hoàn thành vơi! thank

Character
02-08-2012, 21:14
Gửi Bạn HocFoxPro
Tôi đã gửi Mail cho Bạn bản Demo (đính kèm) đã chỉnh sửa theo cách đếm lùi (countdown) để cho ra kết quả và có thiết kế thêm việc mở rộng tùy chọn số tháng cần tìm. Nếu dùng chưa đúng ý, Bạn cho Tôi biết.

hocfoxpro
03-08-2012, 08:32
rất cảm ơn ban character! Kiến thức về foxpro bạn tốt quá! mình hi vọng sẻ được sự giúp đở nhiều ở bạn! demo của bạn đã đúng ý của mình! mình sẽ ứng dụng nó vào bải tập của mình! thank

thattuyettran
03-08-2012, 19:14
Các bác cho e hoi, e có 1 bảng dữ liệu hàng hóa gồm có( mã hang, tên hàng, mã loại) và 1 bảng loại hàng(mã loại, tên loại) liên kết với nhau. Em muốn truyền dữ liệu vào form theo kiểu loại hàng hiện ở trên và các mặt hàng tương ứng hiện trong khung grid, thì e sẽ dùng code gì?

Các bác giúp dùm, em xin chân thành cám ơn nhiều!

tanquadt
04-08-2012, 15:03
chào các bạn
Mình mới học visual fox
Và tập tò làm phần mềm trên nền tản này
các bạn giúp mình một chút nhé:

mình có 1 phần mềm khai báo ngày kích hoạt ví dụ: 1/1/2012
chỉ dùng 1 năm thôi đến ngày 1/1/2013 thì phần mềm thông báo hết hạn sử dụng hoặc thoát khỏi phần mềm.

Ngày 1/1/2013 mình lấy theo ngày hệ thống máy tính

Bạn nào biết cách khai báo giúp mình với
trân trọng cảm ơn

ThangXike
05-08-2012, 20:29
Hi, up lên mới giúp được thôi.

tanquadt
06-08-2012, 16:59
Mình cần code đó như thế nào?
ví dụ: set nhé
thoigianbatdau=4/2012
thoigianketthuc=4/2013
thoigianhethong=lấy ngày hệ thống
nếu
thoigianhethong==thoigianketthuc thi
Phần mềm tự động đóng lại hoặc Thông báo
ngược lại thì hoạt động bình thường
Ai giúp mình với
cảm ơn
Mr. Quả

hoangnnm
06-08-2012, 20:05
Mình cần code đó như thế nào?
ví dụ: set nhé
thoigianbatdau=4/2012
thoigianketthuc=4/2013
thoigianhethong=lấy ngày hệ thống
nếu
thoigianhethong==thoigianketthuc thi
Phần mềm tự động đóng lại hoặc Thông báo
ngược lại thì hoạt động bình thường
Ai giúp mình với
cảm ơn
Mr. Quả

Có 2 cách.
1. Kiểm tra mỗi khi chuơng trình chạy lên.
2. Dùng 1 timer để kiểm tra. Timer là gì thì bạn tự lên google hoặc mở file help của fox ra tìm hiểu.
Code đại loại là :


m.ngayketthuc= {01/04/2013}

if date() >= m.ngayketthuc
messagebox([da den han ket thuc])
return && hoac la lam gi do
endif

tanquadt
06-08-2012, 23:31
Phần mềm này là chạy mặc định với hệ thống windows
Mình đã tạo 1 timer2 với tên timer2
tạo 1 label6 lấy dữ liệu từ timer2 và đếm thời gian theo hệ thống
Trên form chính mình đã code theo ý bạn nhưng vẫn không thành công
Mong bạn chỉ giúp

tanquadt
07-08-2012, 07:57
bạn có yahoo hay skype gì không
cho mình hỏi thêm chút
mình đang bị rối chổ đó
thân
yahoo: tanquadt
Skype: tanquadt

tanquadt
07-08-2012, 08:10
Chào bạn Character
Bạn giúp mình chút về vấn đề này với
Mình có 1 phần mềm chạy mặc định cùng window
trong đó mình tạo 1 timer
mình muốn form chính chạy đến 1 thời gian nào đó tùy mình set
ví dụ: thoigianbatdau={1/1/2012}
thoigianketthuc={1/1/2013}
nếu ngày hệ thống mà lớn hơn ngày kết thúc thì báo lỗi và đóng form lại
ngược lại thì chạy tiếp
Rất mong nhận được sự trợ giúp của các bạn
Thân
yahoo: tanquadt

Character
07-08-2012, 14:01
Chào bạn Character
Bạn giúp mình chút về vấn đề này với
Mình có 1 phần mềm chạy mặc định cùng window
trong đó mình tạo 1 timer
mình muốn form chính chạy đến 1 thời gian nào đó tùy mình set
ví dụ: thoigianbatdau={1/1/2012}
thoigianketthuc={1/1/2013}
nếu ngày hệ thống mà lớn hơn ngày kết thúc thì báo lỗi và đóng form lại
ngược lại thì chạy tiếp
Rất mong nhận được sự trợ giúp của các bạn
Thân
yahoo: tanquadt

Tôi có gợi ý để bạn tham khảo:

1- Nếu Bạn muốn đặt ngày hết hạn chương trình là một khoảng thời gian nào đó (ví dụ sau 03 tháng, 06 tháng, 01 năm …) so với ngày kích hoạt phần mềm (chương trình).

Vấn đề mấu chốt của Bạn là khi người sử dụng kích hoạt lần đầu tiên phần mềm (chương trình) thì chương trình phát sinh ghi nhận trong file biến nhớ (*.mem) hoặc sự kiện, đối tượng nào đó xác định và ghi nhận thời điểm kích hoạt (hoặc thời điểm cài đặt), thời điểm này phải được ghi nhận như một biến hoặc sự kiện cố định (người dùng không sửa đổi được, có thể được mã hoá) trong suốt quá trình người dùng kích hoạt (khởi động) cho các lần sau.
Mỗi khi người dùng kích hoạt (chương trình, phần mềm) lần sau, file khởi động chính sẽ so sánh thời điểm hiện tại với biến nhớ hoặc sự kiện lần đầu (chỉ lần đầu phát sinh file biến nhớ .mem), nếu quá thời hạn quy định (sau 03 tháng, 06 tháng, 01 năm …), thì chương trình sẽ thông báo với người dùng đã hết hạn dùng và thoát phần mềm, chương trình này. (Code nhiều, khá phức tạp). Tuy nhiên cách này cũng vẫn là tạm thời kém hiệu quả vì người dùng vẫn có thể xoá file biến nhớ (*.mem) phát sinh …

2- Bạn có thể chọn ngày cố định để làm ngày hết hạn sử dụng thì việc viết “Code đơn giản hơn”.
Tại file khởi động của chương trình (hoặc tại biến cố Load của Form dùng làm file khởi động, Bạn viết các dòng code sau (ví dụ này 08/08/2012 là ngày hết hạn dùng):

Set Date DMY
Set Cent on
If Date()>Ctod([07/08/2012])
Messagebox([ Da het han su dung ……],64,[Thong bao],3000)
Thisform.Release && dong nay dung cho form khoi dong
Clos tabl all
Clear Events
Clear Dlls
Quit
Endi
(Cách này tương đối hiệu quả)

3- Hoặc Bạn có thể đặt một khoảng thời gian sau ngày đóng gói, biên dịch chương trình, phần mềm (ví dụ sau 03 tháng, 06 tháng, 01 năm …) để làm ngày hết hạn sử dụng.
Chương trình căn cứ vào sau một khoảng thời gian quy định trên tính từ thời điểm cập nhật cuối cùng (Lastmodified) của file thực thi *.exe (hoặc file *pjx nào đó …) để làm mốc đối chiếu xác định cho việc chương trình đã hết hạn dùng hay chưa hết hạn dùng để thực thi theo quy định chương trình (Code ít phức tạp). (Cách này tương đối hiệu quả).

Một vài ý nhỏ để Bạn tham khảo, vận dụng tự giải quyết vào trường hợp của Bạn.

tanquadt
10-08-2012, 16:27
cảm ơn charater
Mình đã nhờ ban hoangnnm hỗ trợ
và đã được như mong muốn
Nhưng cách của bạn mình sẽ tìm hiểu
cảm ơn nhiều

namtuancntt
11-08-2012, 15:09
Các pro giúp em? Em có một vướng mắc như thế này!
Em có tạo một Form trong đó gồm có chức năng thêm, sửa, xóa bản ghi!
Vấn đề là đề bài ra là khi thêm hoặc sửa một bản ghi thì có hàm kiểm tra trùng lặp, và hiện thông báo ra màn hình, em không biết code thế nào nữa, mong ace giúp đỡ. Thank!

namtuancntt
12-08-2012, 15:34
Đợi hai ngày ùi mà chưa có người giúp mình ak???

Character
14-08-2012, 22:26
Các pro giúp em? Em có một vướng mắc như thế này!
Em có tạo một Form trong đó gồm có chức năng thêm, sửa, xóa bản ghi!
Vấn đề là đề bài ra là khi thêm hoặc sửa một bản ghi thì có hàm kiểm tra trùng lặp, và hiện thông báo ra màn hình, em không biết code thế nào nữa, mong ace giúp đỡ. Thank!
Nếu vấn đề của Bạn chưa giải quyết được hoặc các Bạn khác cần có thể tham khảo gợi ý sau:

Giả sử Bạn có bảng Table1.DBF có trường Ma_ID (kiểu chuỗi) được chọn làm khoá chính.
Bạn đã thiết kế một Form cập nhật dữ liệu cho bảng Table1.DBF, Form này có các nút chức năng Thêm, Sửa, Xoá …
Muốn Form có chức năng kiểm tra việc cập nhật và thông báo khi nhập trùng khoá chính, tiến hành như sau (chỉ sử dụng cho trường hợp bắt buộc mẫu tin không trùng khoá chính và không rỗng):
1- Tạo một bảng table ảo (ví dụ tên là CurListID.DBF) có 01 trường duy nhất Ma_ID (kiểu chuỗi) dùng để chứa danh sách tất cả giá trị Mã ID của bảng Table1 đang tồn tại.
2- Khi vừa nhập mã ID tại Textbox thì biến cố Valid của Textbox này sẽ kiểm tra mã ID vừa mới nhập đã tồn tại trong DBF hay chưa?, nếu đã tồn tại thì thông báo đã tồn tại, yêu cầu nhập lại.
3- Trường hợp đã kiểm tra giá trị Mã ID vừa nhập là hợp lệ, khi click nút Lưu, Form sẽ lưu Mã ID mới vào bảng Table1.DBF và bảng ảo CurListID.DBF.
4- Khi Xoá mẫu tin thì Mã ID cùng giá trị của bảng table ảo CurListID.DBF cũng được xoá theo.

Tham khảo việc tạo Code trong các phương thức (đã test dùng ổn định):

- Procedure Load:
Set talk off
Set Dele on
Clos tabl all
Sele 0
Use Full('')+[Table1] Excl && giả sử bảng Table1.DBF đặt cùng thư mục với Form

- Tạo thêm phương thức mới tên là “ListID”, nhập các dòng Code sau:
Sele 0
Crea curs CurListID (Ma_ID C(7))
Inde on Ma_ID TAG Ma_ID
Appen from Full('')+[Table1]
Sele Table1

- Procedure Valid: (của Textbox dùng nhập mã ID - thuộc tính name là “TxtID”)
If Thisform.Buttons.Them.Caption=[\<Luu] && Trường hợp sử dụng lớp thư viện nút Buttons
Sele CurListID
If Seek(ThisForm.TxtID.Value,[CurListID])
=Messagebox([ Ma ID ]+Allt(Thisform.TxtID.Value)+[ da ton tai ! ],16,[Thong bao])
ThisForm.TxtID.Value=''
Retu
Endi
Sele Table1
Endi

- Procedure Click (của nút Thêm)
If Empt(Thisform.TxtID.Value)
=Messagebox([ Chua nhap Ma ID ... ],16,[Thong bao])
Else
If This.Caption=[\<Luu]
Sele CurListID
Appen blan
Repl Ma_ID with Thisform.TxtID.Value
Endi
Sele Table1
=Dodefault()
Endi

- Procedure Click (của nút Xoá)
Sele Table1
=Dodefault()
Set Excl on
Pack
Set Excl off
Sele CurListID
Use
Thisform.ListID

namtuancntt
15-08-2012, 08:00
Cảm ơn bạn Character nhiều nhé! Cho mình hỏi thêm bạn một tý.Giả sử mình cho maID đó tự động tăng.Và trong bảng có trường tenhang.mình muốn kiểm tra việc trùng lặp khi nhập tên hàng, không phải là trùng mã nữa.vậy thì có giống trên không?

namtuancntt
15-08-2012, 08:44
Mình up code nên mong bạn Character và các bạn sửa dùm mình, mình cần sửa chức năng Thêm và Sửa (xử lý trùng lặp tên hàng) của Form Danh mục hàng hóa, rất mong bạn Character giúp mình sớm.! thanks all.
code : mediafire.c*m/?2uukyx8rk220e41
y : kiss chấm chiplove
mail : namtuancntt (gmail)
P/s : ẹc! do mình chưa đủ bài viết để đăng link nên phải làm vậy! các bạn copy link và sửa "*" thành "o" giúp mình nhé :))

hongquangtn
15-08-2012, 11:18
Các bạn giúp với
Tôi có chươg trình dùng cho nhiều người nên trong đó có 1 số file dùng chung (share), vấn đề làm thế nào để biết máy nào đang truy cập vào file dùng chung này. Mong các bạn chỉ giùm
Thank nhiều

vttien1967
15-08-2012, 11:18
Tổi có một CSDL access sử dụng fon Unicode tôi đã lấy dữ liệu này qua table của VPF9 nhưng không đọc được tiếng Việt, nhờ các bạn giúp đỡ

hoangnnm
15-08-2012, 13:26
Tổi có một CSDL access sử dụng fon Unicode tôi đã lấy dữ liệu này qua table của VPF9 nhưng không đọc được tiếng Việt, nhờ các bạn giúp đỡ

Trước khi chuyển sang VFP9 anh phải chuyển dữ liệu access sang TCVN3.

Anh có thể search google để tìm cách làm, đại loại là viết 1 hàm chuyển chuỗi từ UNI -> TCVN3, và cho chạy vòng lặp tất cả các bảng, tất cả các cột của ms access database

Character
15-08-2012, 14:28
Mình up code nên mong bạn Character và các bạn sửa dùm mình, mình cần sửa chức năng Thêm và Sửa (xử lý trùng lặp tên hàng) của Form Danh mục hàng hóa, rất mong bạn Character giúp mình sớm.! thanks all.
code : mediafire.c*m/?2uukyx8rk220e41
y : kiss chấm chiplove
mail : namtuancntt (gmail)
P/s : ẹc! do mình chưa đủ bài viết để đăng link nên phải làm vậy! các bạn copy link và sửa "*" thành "o" giúp mình nhé :))
Bạn xem tin nhắn, Tôi đã chuyển Code cụ thể cho trường hợp của Bạn

tuan_tvkg
15-08-2012, 16:09
Gửi bác namtuancntt toi da sua dum bac roi bac coi thu xem co duoc khong.
http://www.mediafire.com/?icpewqa0w0jec4g

namtuancntt
15-08-2012, 16:13
Gửi bạn Character ! mình đã làm như bạn hướng dẫn! đã chạy oke! nhưng có vấn đề nho nhỏ. là khi ta sửa một bản ghi thì mặc dù đã có thông báo là trùng lặp nhưng nó vẫn auto lưu vào bản ghi! mình muốn khi có thông báo vậy thi nó sẽ không save vào bản ghi, và trở lại bản ghi đầu .

namtuancntt
15-08-2012, 17:19
Mình đã xem code! Thanks bạn Tuan_tvkg nhiều nhé!

Character
15-08-2012, 19:40
Gửi bạn Character ! mình đã làm như bạn hướng dẫn! đã chạy oke! nhưng có vấn đề nho nhỏ. là khi ta sửa một bản ghi thì mặc dù đã có thông báo là trùng lặp nhưng nó vẫn auto lưu vào bản ghi! mình muốn khi có thông báo vậy thi nó sẽ không save vào bản ghi, và trở lại bản ghi đầu .
Trao đổi thêm với Bạn vài ý:

- Trường hợp bảng table có thiết lập khoá chính mà người dùng nhập trùng khoá chính thì sẽ phát sinh lỗi, do vậy nhất thiết cần phải có đoạn Code chỉ dùng để kiểm tra việc nhập khoá chính, ngăn chận và thông báo nhập trùng khoá chính này cho người dùng biết.
- Trường hợp nhập dữ liệu cho các trường (field) khác không là khoá chính thì không cần thiết viết Code ngăn chận do không phát sinh lỗi. Nếu cần kiểm tra, thông báo nhập trùng dữ liệu của field nào đó chỉ cần lưu ý tạo Code tại biến cố Valid của điều khiển (Control) đó.

Do chỉ quan tâm đến yêu cầu ban đầu của Bạn là “ … kiểm tra trùng lặp, và hiện thông báo ra màn hình …” của field không là khoá chính, nên Tôi gợi ý Code cũng chỉ dừng ở mức đó. Còn việc xử lý vấn đề nhỏ mà Bạn vừa nêu cũng khá đơn giản, Tôi nghĩ Bạn tự giải quyết được thôi.

Các form Bạn dùng hiện nhập trực tiếp vào Grid, không thiết kế chức năng Lưu, Hủy, hiện tại Form xem như tự Lưu khi nhập xong nên phát sinh trường hợp nêu trên, Bạn nên tìm hiểu thêm về Class và sử dụng dãy nút điều khiển như: Đầu Trước, Kế, Cuối, Thêm/Lưu, Sửa/Hủy, Xem, Xoá, Thoát … (thiết kế hướng đối tượng) thay cho các nút điều khiển riêng biệt hiện dùng.

hocfoxpro
16-08-2012, 07:58
gửi ban Character
Mình đã gửi mail cho bạn nhờ bạn giúp mình chuyển form! mong bạn giúp đở! cảm ơn bạn!

Character
16-08-2012, 10:55
gửi ban Character
Mình đã gửi mail cho bạn nhờ bạn giúp mình chuyển form! mong bạn giúp đở! cảm ơn bạn!
Bạn xem Mail Tôi đã gửi.

ChungITT
17-08-2012, 10:17
Các bạn giúp với
Tôi có chươg trình dùng cho nhiều người nên trong đó có 1 số file dùng chung (share), vấn đề làm thế nào để biết máy nào đang truy cập vào file dùng chung này. Mong các bạn chỉ giùm
Thank nhiều

Nếu chỉ để xem thì bạn có thể vào Computer Management, vào mục Share Folders sẽ biết user nào đang sử dụng file nào.

mytitty
18-08-2012, 00:02
Cần tuyển 1 Lập trình VFP: Thông thạo VFP, MySQL, PHP...
Liên hệ: tranlamkttc,gmail,com

vttien1967
29-08-2012, 10:02
Trước khi chuyển sang VFP9 anh phải chuyển dữ liệu access sang TCVN3.

Anh có thể search google để tìm cách làm, đại loại là viết 1 hàm chuyển chuỗi từ UNI -> TCVN3, và cho chạy vòng lặp tất cả các bảng, tất cả các cột của ms access database

Cơ sở dữ liệu access là CSDL dùng chung cho một ứng dụng khác đang có nhiều người dùng, mình muốn lấy dữ liệu ở CSDL này để làm thêm các báo cáo khác, do đó không thể tác động đến CSDL access được, mình chỉ muốn đọc dữ liệu ở đây thôi. Mong các bạn giúp đỡ

nguyenxuanphu
03-09-2012, 22:04
Các bạn ơi giúp mình với !

Mình có chương trình quản lý vật tư viết bằng Visual Fox...dưng bỗng nhiên hôm nay mở chương trình thì thấy báo là " Not a table" và không sử dụng được việc xuất hay nhập vật tư và in phiếu xuất nhập kiểm tra lại CSDL thì thấy vẫn còn ....Em đã lục tưng bừng trên Goolge có chỉ cách nhưng không phải chuyên ngành nên đành chịu thua !

Mong các bạn giúp đỡ....nếu mà không sử dụng được luôn chắc có nước ...em cũng cuốn gói đi theo...

Xin chân thành cảm ơn !

naiko
05-09-2012, 14:37
Chào các bro, e mới học VS foxpro có nhiều bỡ ngỡ mong các bác chỉ giáo
Có bác nào giúp e phần tạo form đăng nhập và cách kết nối từ form đăng nhập vào form chính
và cách mở form từ menu nữa mong nhận được sự giúp đỡ của các bro?

Giúp e với thanks

phuongphamaof
05-09-2012, 19:10
cho em hỏi trong fox thi có cách nào nhập cột stt nhanh như là trong excel ko ạ?

HUGOVFP
05-09-2012, 19:32
cho em hỏi trong fox thi có cách nào nhập cột stt nhanh như là trong excel ko ạ?
Bạn dùng lệnh. Ví dụ Bạn có bảng Table1 có 01 triệu record, có trường Stt kiểu số chẳng hạn. Bạn muốn Stt chính là số Recn(). Bạn cho thi hành 02 dòng lệnh sau:
Use Table1 && mở bảng Table1
Repl all Stt with Recn() && Thay Stt chính là số hàng rất nhanh

fucosg
06-09-2012, 11:55
@nguyenxuanphu #1953
Tình trạng của bạn là có ít nhất một file bị hỏng, có nguyên nhân là bị cúp điện hoặc tắt máy đột ngột, làm cho file không update lại được file header.
Trước hết là phải xác định được file bị hỏng (.DBF), sau đó lên google tìm "dbf repair" để tìm tool sử lại file nầy.

naiko
10-09-2012, 23:12
Có bạn nào cho mình hỏi với, làm sao để các form phụ khi mở đều xuất hiện trong 1 form chính??? ai giúp mình với thanks

robotfpt
11-09-2012, 13:42
Mình sử dụng CDO Message để gửi mail trong foxpro. Mình muốn Subject bằng tiếng Việt có dấu thì làm thế nào?

traxanhda
11-09-2012, 15:26
Hi các bác!
Em mới tìm hiểu về foxpro, muốn nhờ các bác giúp em với ạ. Trong foxpro có cách nào để đọc tên các file hiện có trong 1 thư mục không ạ. Ví dụ trong D:\Dulieu của em có 5 file dạng *.txt Giờ em phải đọc xem trong thư mục Dulieu này có những file nào ạ. Em đa tạ các bác

VFP4Win7
11-09-2012, 15:31
Có bạn nào cho mình hỏi với, làm sao để các form phụ khi mở đều xuất hiện trong 1 form chính??? ai giúp mình với thanks
Đinh nghĩa 1 form Showwindows -> In screen
Childform co thuoc tinh la Showwindows -> In Top level Form

VFP4Win7
11-09-2012, 15:40
Xin chào,
Hiện mình đang gặp sự cố lội Font VNI khi chạy VFP chạy trên Windows 7.
Trước đây mình code VFP sử dụng font VNI (VFP không support Unicode) và Datbase đặt trên SQL server mọi thứ đều xuôi chèo mát máy với HDH windows XP
Khi chuyển HDH Windows 7 thì tất cả các chương trình đều bị lỗi Font, nếu sử dụng Windows 7 update service pack 1 thì khắc phục được 1 số nhưng mà lỗi vẫn còn.
Anh em ai có gặp qua hay có cao kiến gì để khắc phục được lỗi này không xin giúp mình với.

Best regards & Thks

Character
11-09-2012, 20:30
Hi các bác!
Em mới tìm hiểu về foxpro, muốn nhờ các bác giúp em với ạ. Trong foxpro có cách nào để đọc tên các file hiện có trong 1 thư mục không ạ. Ví dụ trong D:\Dulieu của em có 5 file dạng *.txt Giờ em phải đọc xem trong thư mục Dulieu này có những file nào ạ. Em đa tạ các bác
Tham khảo đoạn Code này:
Set talk off
cDir=GETDIR(Full(''),[Chon thu muc:],[Danh sach thu muc])
If !Empt(cDir)
lcfiles=''
If Empt(ADIR(cFilename,cDir+"*.*"))
Retu
Else
nfiles=ALEN(cFilename,1)
For i=1 TO nfiles
lcfiles=Iif(Empt(lcfiles),'',lcfiles+[, ])+cFilename(i,1)
Endf
Endi
MESSAGEBOX(lcfiles,220,[Tong so ]+Allt(Str(nfiles))+[ File(s)])
Endi
Retu


Xin chào,
Hiện mình đang gặp sự cố lội Font VNI khi chạy VFP chạy trên Windows 7.
Trước đây mình code VFP sử dụng font VNI (VFP không support Unicode) và Datbase đặt trên SQL server mọi thứ đều xuôi chèo mát máy với HDH windows XP
Khi chuyển HDH Windows 7 thì tất cả các chương trình đều bị lỗi Font, nếu sử dụng Windows 7 update service pack 1 thì khắc phục được 1 số nhưng mà lỗi vẫn còn.
Anh em ai có gặp qua hay có cao kiến gì để khắc phục được lỗi này không xin giúp mình với.

Best regards & Thks

Bạn tham khảo vài kinh nghiệm:
- Chưa rõ chương trình dùng trên Hệ điều hành Win7 64 bit như thế nào nhưng dùng chương trình trên Hệ điều hành Win7 32 bit thì chưa thấy gây lỗi Font
- Kiểm tra lại máy tính phải tồn tại các fonts (VNI, TCVN3) mà chương trình cần dùng
- Nếu fonts đã tồn tại thì thuộc tính file của fonts này phải không ẩn, trong chương trình tránh dùng các fonts màn hình (*.FON)

naiko
11-09-2012, 21:59
Đinh nghĩa 1 form Showwindows -> In screen
Childform co thuoc tinh la Showwindows -> In Top level Form

hi mình làm được rồi cảm ơn bạn nhiều nhé :D ah tiện cho mình hỏi với có cách nào để viết tiếng việt trong fox ko minh đổi font chữ của win rồi của fox nhưng cũng ko được ko biết có cách nào ko bạn chỉ mình với???

VFP4Win7
12-09-2012, 09:03
Bạn tham khảo vài kinh nghiệm:
- Chưa rõ chương trình dùng trên Hệ điều hành Win7 64 bit như thế nào nhưng dùng chương trình trên Hệ điều hành Win7 32 bit thì chưa thấy gây lỗi Font
- Kiểm tra lại máy tính phải tồn tại các fonts (VNI, TCVN3) mà chương trình cần dùng
- Nếu fonts đã tồn tại thì thuộc tính file của fonts này phải không ẩn, trong chương trình tránh dùng các fonts màn hình (*.FON)

Mình xài bản Win7 32 sp 1 thì phần hiển thị font VNI trên Textbox và grid vẫn còn 1 số ký tự không hiện được. Không biết cậu sd Font gì mà không lỗi?

Thanks!

VFP4Win7
12-09-2012, 09:44
Naiko: Sử dụng font MS Sans Serif của Vietkey2000

Character
12-09-2012, 13:07
Mình xài bản Win7 32 sp 1 thì phần hiển thị font VNI trên Textbox và grid vẫn còn 1 số ký tự không hiện được. Không biết cậu sd Font gì mà không lỗi?

Thanks!

Kiểm tra lại một vài fonts màn hình *.FON đang dùng trong chương trình (ví dụ MS Sans Serif - SSERIFE.FON có thuộc tính ẩn) không đọc được trong Win Vista (hoặc có thể cả trên Win7). Bạn nên chuyển chương trình dùng các fonts kiểu *.TTF (.Vntime, .VnArial, .VnCourier ….)

VFP4Win7
12-09-2012, 14:14
Thanks Character
Bộ font ms san serif cho form của mình vẫn hiển thị ok trên form, menu bình thường không vấn đề gì với Win7 cả, nhưng việc hiển thị font VNI của VFP trên Win 7 đúng là vấn đề thật, mình đã Test phần Install Font rồi nhưng vẫn không ăn thua, do là Win 7 không support VFP nữa & Microsoft thì cũng ngừng support Win XP. Chắc phải say goodbye VFP ;( vì
VFP & Unicode như 2 bờ của 1 con sông
Mình đang tìm 1 giải pháp cầm cự để VFP sống chung với Win 7, theo cái đà này phải chuyển các ứng dụng leo lên dot net ngán quá!

traxanhda
12-09-2012, 14:15
Cảm ơn bác Character!
Bác xem giúp em tiếp với ạ. Em muốn vào thư mục D:\Dulieu và đọc tên 5 file dạng *.txt đó. Sau đó em insert tên 5 file đó vào 1 table (em lưu vào table để mục đích làm các việc khác ạ.). Đa tạ bác.

tayngangvfp
12-09-2012, 14:27
Thanks Character
Bộ font ms san serif cho form của mình vẫn hiển thị ok trên form, menu bình thường không vấn đề gì với Win7 cả, nhưng việc hiển thị font VNI của VFP trên Win 7 đúng là vấn đề thật, mình đã Test phần Install Font rồi nhưng vẫn không ăn thua, do là Win 7 không support VFP nữa & Microsoft thì cũng ngừng support Win XP. Chắc phải say goodbye VFP ;( vì
VFP & Unicode như 2 bờ của 1 con sông
Mình đang tìm 1 giải pháp cầm cự để VFP sống chung với Win 7, theo cái đà này phải chuyển các ứng dụng leo lên dot net ngán quá!


Bạn kết nối như thế nào?
Lúc trước mình cũng bị lỗi này: không hiển thị được chữ "ư"
Tuy nhiên có thể lỗi là do trình ODBC.

Character
12-09-2012, 15:06
Thanks Character
Bộ font ms san serif cho form của mình vẫn hiển thị ok trên form, menu bình thường không vấn đề gì với Win7 cả, nhưng việc hiển thị font VNI của VFP trên Win 7 đúng là vấn đề thật, mình đã Test phần Install Font rồi nhưng vẫn không ăn thua, do là Win 7 không support VFP nữa & Microsoft thì cũng ngừng support Win XP. Chắc phải say goodbye VFP ;( vì
VFP & Unicode như 2 bờ của 1 con sông
Mình đang tìm 1 giải pháp cầm cự để VFP sống chung với Win 7, theo cái đà này phải chuyển các ứng dụng leo lên dot net ngán quá!
Bạn có thể chọn giải pháp sử dụng các ứng dụng khác nào đó thay cho chương trình thuộc ứng dụng VFP Bạn đang dùng cũng là giải pháp tốt, vì dùng được fonts Unicode phổ biến hiện nay, tuy nhiên tôi vẫn đang dùng một số chương trình VFP trên Win7 giao diện tiếng Việt có dấu (bảng mã TCVN3 – ABC) bình thường.

VFP4Win7
12-09-2012, 15:09
Bạn kết nối như thế nào?
Lúc trước mình cũng bị lỗi này: không hiển thị được chữ "ư"
Tuy nhiên có thể lỗi là do trình ODBC.

tayngangvfp: Chính xác là chữ "ư" và một vài ký tự nữa đặc biệc là bỏ dấu ~ ? nhìn thấy mà ghét.
Mình dùng SQL pass-through để kết nối, không xài remote view của ODBC. Không phải bị lỗi của ODBC cậu ạ, mình test cả với ASP NET thì font VNI của dữ liệu vẫn lỗi khi hiển thị.


Bạn có thể chọn giải pháp sử dụng các ứng dụng khác nào đó cho thay cho chương trình thuộc ứng dụng VFP Bạn đang dùng cũng là giải pháp tốt, vì dùng được fonts Unicode phổ biến hiện nay, tuy nhiên tôi vẫn đang dùng một số chương trình VFP trên Win7 giao diện tiếng Việt có dấu (bảng mã TCVN3 – ABC) bình thường.
Character: Giao diện thì không bàn rồi.
Cậu lưu dữ liệu trong Table với font ABC và hiển thị textbox và grid Okie trên WIN 7 phải không?
Nếu đúng là như vậy thì mình chuyển data sang ABC.

Character
12-09-2012, 15:25
Character: Giao diện thì không bàn rồi.
Cậu lưu dữ liệu trong Table với font ABC và hiển thị textbox và grid Okie trên WIN 7 phải không?
Nếu đúng là như vậy thì mình chuyển data sang ABC.
Đúng là như thế, tất cả Form, Report, Menu, Data … đều dùng font ABC

tayngangvfp
12-09-2012, 15:59
tayngangvfp: Chính xác là chữ "ư" và một vài ký tự nữa đặc biệc là bỏ dấu ~ ? nhìn thấy mà ghét.
Mình dùng SQL pass-through để kết nối, không xài remote view của ODBC. Không phải bị lỗi của ODBC cậu ạ, mình test cả với ASP NET thì font VNI của dữ liệu vẫn lỗi khi hiển thị.





Lúc trước bị lỗi đó => cũng đã test trên access => cũng bị vậy!
Như thế có thể là do bộ mã VNI không tương thích tốt với Win7 chăng?

Character
12-09-2012, 19:08
Cảm ơn bác Character!
Bác xem giúp em tiếp với ạ. Em muốn vào thư mục D:\Dulieu và đọc tên 5 file dạng *.txt đó. Sau đó em insert tên 5 file đó vào 1 table (em lưu vào table để mục đích làm các việc khác ạ.). Đa tạ bác.
Bạn tham khảo đoạn Code này:

Set talk off
Clos tabl all
cDir=ADDBS([D:\Dulieu])
lcfiles=''
If Empt(ADIR(cFilename,cDir+[*.TXT]))
MESSAGEBOX([Thu muc ]+cDir+[ khong ton tai file *.TXT ],220,[Thong bao],3000)
Retu
Else
nfiles=ALEN(cFilename,1)
If !file(cDir+[Tabfilename.dbf])
Crea tabl (cDir+[Tabfilename]) (Filename C(50))
Else
Use (cDir+[Tabfilename]) Excl
Zap
Endi
For i=1 to nfiles
Insert into Tabfilename Values (cFilename(i,1))
Endf
Brow
Use
Endi
Retu

naiko
12-09-2012, 21:48
Naiko: Sử dụng font MS Sans Serif của Vietkey2000

hihi lại được rồi thanks bạn nhiều nhiều!
-Mình lại có 1 vấn đề nữa mong các bạn giúp đỡ (hịc gà quá mong các bạn thông cảm :). Minh đang làm 1 chương trình và có 1 bảng nhập dữ liệu vidu: "nhập sinh viên" nhưng có điều khi mình thay đổi trên grid hay bảng nhập, minh xoa hay thay đổi gì thì thông tin dữ liệu cũng bị đổi? mình không biết làm thế nào để khi nhập vào rồi dữ liệu ko bị thay đổi trong csdl hay grid trừ khi có các nút sửa và xóa ????
-Con 1 vấn đề nữa mình muốn hỏi luôn ^^ các bạn giúp mình với nhé. Làm thế nào để khi mình muốn vào chương trình của mình thì phải qua form đăng nhập rồi mới vào form chính???
Cảm ơn cảm ơn các bạn hiền trước nhé !

VFP4Win7
13-09-2012, 09:13
Lúc trước bị lỗi đó => cũng đã test trên access => cũng bị vậy!
Như thế có thể là do bộ mã VNI không tương thích tốt với Win7 chăng?

Mình cũng nghĩ Font VNI dùng trong lập trình win 7 không được support. Vì Font VNI xài cho Word & Excel đâu có vấn đề gì đâu.


hihi lại được rồi thanks bạn nhiều nhiều!
-Mình lại có 1 vấn đề nữa mong các bạn giúp đỡ (hịc gà quá mong các bạn thông cảm :). Minh đang làm 1 chương trình và có 1 bảng nhập dữ liệu vidu: "nhập sinh viên" nhưng có điều khi mình thay đổi trên grid hay bảng nhập, minh xoa hay thay đổi gì thì thông tin dữ liệu cũng bị đổi? mình không biết làm thế nào để khi nhập vào rồi dữ liệu ko bị thay đổi trong csdl hay grid trừ khi có các nút sửa và xóa ????
-Con 1 vấn đề nữa mình muốn hỏi luôn ^^ các bạn giúp mình với nhé. Làm thế nào để khi mình muốn vào chương trình của mình thì phải qua form đăng nhập rồi mới vào form chính???
Cảm ơn cảm ơn các bạn hiền trước nhé !

1. Sử dụng Buffer của Win
CursorSetProp("Buffering",5,"TableName")
TABLEUPDATE(0)
2. Trong Project VFP có 1 file Prg được SET MAIN, sử dụng để khởi tạo và load Environment (Set này nọ) khai báo biến... em cho chạy 1 form Login, nếu form Login trả về giá trị okie thì load tiếp menu... còn không thì say goodbye.

FOXFORDOS
13-09-2012, 09:58
Chào các bạn
Mình gặp may mắn là dùng font VNI trong chương trình viết bằng ứng dụng VFP - môi trường Win 7, mình chưa gặp trở ngại gì.

VFP4Win7
13-09-2012, 10:14
Chào các bạn
Mình gặp may mắn là dùng font VNI trong chương trình viết bằng ứng dụng VFP - môi trường Win 7, mình chưa gặp trở ngại gì.

Nếu thế thì hay quá, Ông xem kỹ lại giúp với, chứ tui kiểm tra đi ktra lại được khoảng 80% à. Lấy Table nào có Data nhiều nhiều chút bằng textbox, grid, report. Đau cả đầu

FOXFORDOS
13-09-2012, 10:56
Nếu thế thì hay quá, Ông xem kỹ lại giúp với, chứ tui kiểm tra đi ktra lại được khoảng 80% à. Lấy Table nào có Data nhiều nhiều chút bằng textbox, grid, report. Đau cả đầu

Đã test (chương trình viết bằng VFP9) gồm bảng dữ liệu vài trăm records, một số fields (kiểu Character, Memo …), các controls Textbox, Combobox, Listbox, Editbox, Grid, Label đều thể hiện font VNI (tiếng Việt có dấu) bình thường trên môi trường Win7 (ngoại trừ một số ký tự quốc tế đặc biệt không có trên bàn phím).

traxanhda
13-09-2012, 15:13
Tks bác Character! Em sẽ ngâm kíu, có gì khúc mắc em sẽ tham khảo thêm bác ạ.

VFP4Win7
14-09-2012, 08:50
Đã test (chương trình viết bằng VFP9) gồm bảng dữ liệu vài trăm records, một số fields (kiểu Character, Memo …), các controls Textbox, Combobox, Listbox, Editbox, Grid, Label đều thể hiện font VNI (tiếng Việt có dấu) bình thường trên môi trường Win7 (ngoại trừ một số ký tự quốc tế đặc biệt không có trên bàn phím).

Thế thì tuyệt quá!
Mời cậu cafe nếu cậu ở Sài gòn, Character nếu cậu rãnh off phát

tayngangvfp
14-09-2012, 11:20
Thế thì tuyệt quá!
Mời cậu cafe nếu cậu ở Sài gòn, Character nếu cậu rãnh off phát

hiện tại M cũng đang dùng 1 c/t nhỏ trên win7 ultimate 32bit SP1. SQL Express 2005. Dùng font vni nhưng cũng không thấy có hiện tượng bị lỗi chữ "ư". (Nhưng cái c/t trước thì lại bị! lúc đó cũng không nhớ là dùng win 7 bản nào!)

hihi off đi.

VFP4Win7
14-09-2012, 14:47
hiện tại M cũng đang dùng 1 c/t nhỏ trên win7 ultimate 32bit SP1. SQL Express 2005. Dùng font vni nhưng cũng không thấy có hiện tượng bị lỗi chữ "ư". (Nhưng cái c/t trước thì lại bị! lúc đó cũng không nhớ là dùng win 7 bản nào!)

hihi off đi.

Mình không tin là WIN 7 nó tha cho chương trình nào, vì mình chuyên code VFP, cái WIN 7 ultimate sp1 mới nhìn nó thế nhưng với số lượng lớn record như DM khách hàng chẳng hạn thì vẫn còn. Htrước mình cũng mừng hụt ;(
Vụ Off các bác nào có nhã hứng thì lê tiếng phát. Tớ ở Q7

tayngangvfp
14-09-2012, 16:53
Mình không tin là WIN 7 nó tha cho chương trình nào, vì mình chuyên code VFP, cái WIN 7 ultimate sp1 mới nhìn nó thế nhưng với số lượng lớn record như DM khách hàng chẳng hạn thì vẫn còn. Htrước mình cũng mừng hụt ;(
Vụ Off các bác nào có nhã hứng thì lê tiếng phát. Tớ ở Q7

Mình thì không chắc là lỗi do đâu! nhưng có 2 cái chắc:
1- Đã từng bị lỗi này (bị chữ "ư" ) trước đây (khoảng 2,3 năm trước), và cũng đã ít nhất 2 người hỏi mình về lỗi này.
2- Giờ đang sử dụng 1 c/t cho công việc hằng ngày trên WIN7 thì lại không thấy lỗi chữ "ư". Vừa mới test thử nhập 1 loạt từ: ư ứ ừ ữ ử ự => đều hiển thị đúng!

FOXFORDOS
14-09-2012, 18:58
Mình không tin là WIN 7 nó tha cho chương trình nào, vì mình chuyên code VFP, cái WIN 7 ultimate sp1 mới nhìn nó thế nhưng với số lượng lớn record như DM khách hàng chẳng hạn thì vẫn còn. Htrước mình cũng mừng hụt ;(
Vụ Off các bác nào có nhã hứng thì lê tiếng phát. Tớ ở Q7
Trong Cơ quan hàng năm vài trăm CBNV lần lượt, luân phiên dùng chương trình thi trắc nghiệm (phần lý thuyết tay nghề) viết bằng VFP9 do bộ phận Công nghệ thông tin của Cơ quan “những người không chuyên code VFP” viết từ năm 2008 chạy trên mạng LAN dùng font VNI (VNI-Times). Từ 2011 đến nay, rất nhiều người trong Cơ quan chạy chương trình này trên máy tính cá nhân cài HĐH Win7 để ôn tập trước khi thi, tình trạng hiển thị Font VNI tiếng Việt có dấu vẫn bình thường kể cả việc cập nhật thêm số lượng câu trắc nghiệm hoặc khi import câu trắc nghiệm bằng file Excel vào dữ liệu.
Tôi khẳng định đó là một thực tế hoàn toàn đúng như thế, Tôi “trao đổi nghiêm túc trên Diễn đàn” để ai đó rơi vào trường hợp này có thể tham khảo, tìm hiểu thêm, có thể không tin. Trường hợp ai “không tin là WIN 7 nó tha cho chương trình nào, vì mình chuyên code VFP”, nếu đúng là như thế thì Cơ quan Tôi gặp may mắn (hên) rồi. Rõ ràng là Chương trình của Cơ quan được test như thế nào thì phản ảnh như thế đó, về tin học thì phải phản ảnh chính xác, không nói bừa, nói càn, giúp là chính, ngoài ra không có ý gì.
Do dùng Fox quá lâu cách đây hơn 20 năm nên Tôi chẳng chuyên nghiệp hoặc kinh nghiệm gì về chương trình này, Chương trình trắc nghiệm không do Tôi viết, Tôi không trẻ người non dạ, không bao giờ rãnh rỗi nhã hứng, tưởng tượng ra nói vớ vẩn, gây hiểu lầm để người khác gánh chịu.

VFP4Win7
14-09-2012, 20:44
Trong Cơ quan hàng năm vài trăm CBNV lần lượt, luân phiên dùng chương trình thi trắc nghiệm (phần lý thuyết tay nghề) viết bằng VFP9 do bộ phận Công nghệ thông tin của Cơ quan “những người không chuyên code VFP” viết từ năm 2008 chạy trên mạng LAN dùng font VNI (VNI-Times). Từ 2011 đến nay, rất nhiều người trong Cơ quan chạy chương trình này trên máy tính cá nhân cài HĐH Win7 để ôn tập trước khi thi, tình trạng hiển thị Font VNI tiếng Việt có dấu vẫn bình thường kể cả việc cập nhật thêm số lượng câu trắc nghiệm hoặc khi import câu trắc nghiệm bằng file Excel vào dữ liệu.
Tôi khẳng định đó là một thực tế hoàn toàn đúng như thế, Tôi “trao đổi nghiêm túc trên Diễn đàn” để ai đó rơi vào trường hợp này có thể tham khảo, tìm hiểu thêm, có thể không tin. Trường hợp ai “không tin là WIN 7 nó tha cho chương trình nào, vì mình chuyên code VFP”, nếu đúng là như thế thì Cơ quan Tôi gặp may mắn (hên) rồi. Rõ ràng là Chương trình của Cơ quan được test như thế nào thì phản ảnh như thế đó, về tin học thì phải phản ảnh chính xác, không nói bừa, nói càn, giúp là chính, ngoài ra không có ý gì.
Do dùng Fox quá lâu cách đây hơn 20 năm nên Tôi chẳng chuyên nghiệp hoặc kinh nghiệm gì về chương trình này, Chương trình trắc nghiệm không do Tôi viết, Tôi không trẻ người non dạ, không bao giờ rãnh rỗi nhã hứng, tưởng tượng ra nói vớ vẩn, gây hiểu lầm để người khác gánh chịu.
Mình đang trao đổi với TayngangVFP mà chứ có nói gì mà Bác lại nóng thế nhỉ...dầu sao cũng cảm ơn bác.
TayngangVFP: Mình Test lại rồi, nếu với chữ THƯỜNG thì chưa thấy lỗi, nhưng chữ in HOA thì chưa được nếu có thể cậu nhập chữ in HOA có dấu ^. VD:
NHIỆT ĐIỆN
NHẬN
BỘ
THUẬT
xem kết quả thế nào.

tayngangvfp
15-09-2012, 09:05
TayngangVFP: Mình Test lại rồi, nếu với chữ THƯỜNG thì chưa thấy lỗi, nhưng chữ in HOA thì chưa được nếu có thể cậu nhập chữ in HOA có dấu ^. VD:
NHIỆT ĐIỆN
NHẬN
BỘ
THUẬT
xem kết quả thế nào.

Kết quả test: hiển thị đúng không lỗi, chữ thường cũng vậy

hoangpnt349
16-09-2012, 14:28
Mình không tin là WIN 7 nó tha cho chương trình nào, vì mình chuyên code VFP, cái WIN 7 ultimate sp1 mới nhìn nó thế nhưng với số lượng lớn record như DM khách hàng chẳng hạn thì vẫn còn. Htrước mình cũng mừng hụt ;(
Vụ Off các bác nào có nhã hứng thì lê tiếng phát. Tớ ở Q7
Các bác không nên ném đá nhau, làm mất hòa khí => diễn đàn vfp mất vui.
Theo kinh nghiệm thực tế tui thấy các ứng dụng viết bằng vfp9 chạy tốt trong môi trường windows 7 (32 bit & 64 bit), ngoại trừ gói start và home.
Việc không hiển thị đúng một số ký tự trong bảng mã vni có thể là do một số setting trong windows chưa phù hợp với vfp. Bác nào đang sử dụng windows 7 thì thử theo cách sau nhé:
Vào Start > Settings > Control Panel > Region and Language
Chọn tab Location > Current location > United States
Chon tab Administrative > Change system locate... > Current system locate > English (United States)
Chọn Ok > Khởi động lại windows
Chúc các bác nhiều sức khỏe để tiếp tục code.

traxanhda
19-09-2012, 16:57
Hi các bác!
Các bác giúp em với ạ, em có 1 file dbf, trong đó có 1 cột kiểu ký tự, nhưng mở file dbf đó ra thì cột đó toàn dữ liệu là "memo", nhưng click vào từng record đó thì hiển thị dữ liệu, nhưng font bị lỗi không đọc được. (Khi em export file dbf này ra excel thì cột dữ liệu đó ko có trong file excel, hic) Các bác xem giúp em giải quyết tình huống này với ạ. Em mới tìm hiểu foxpro nên rất gà mờ ạ. Đa tạ các bác

crazyma
20-09-2012, 21:32
Xin chào mọi người!
xin mọi người chỉ giúp đoạn code trong visual foxpro với yêu cầu sau
mình có một file excel có 5 sheet (có dòng tiêu đề là mahh, tenhh, giale), mình muốn lấy cùng một lúc 5 sheet vào table đã có record của visual foxpro 9 (chỉ lấy các dòng trong file excel không trùng với các record trong Table của visual foxpro)
Cám ơn mọi người rất nhiều.

minhtho
21-09-2012, 23:33
Anh Chị nào có soucre phần mềm tính tiền nước viết bằng foxpro cho mình tham khảo với

Character
25-09-2012, 16:31
Xin chào mọi người!
xin mọi người chỉ giúp đoạn code trong visual foxpro với yêu cầu sau
mình có một file excel có 5 sheet (có dòng tiêu đề là mahh, tenhh, giale), mình muốn lấy cùng một lúc 5 sheet vào table đã có record của visual foxpro 9 (chỉ lấy các dòng trong file excel không trùng với các record trong Table của visual foxpro)
Cám ơn mọi người rất nhiều.
Giả sử Bạn có:
- Bảng Table1 đã có dữ liệu, gồm các field mahh C(15), tenhhC(70), giale N(7,2).
- File Excel tên là <XLSname>, dòng tiêu đề là mahh, tenhh, giale, gồm 5 sheet (sheet1, sheet2 … sheet5)

Bạn tham khảo đoạn code sau:

Clos tabl all
Sele 0
Use Table1
Sele 0
Crea Curs Cursor1 (mahh C(15),tenhh C(70),giale N(7,2))
For i=1 to 5 && ứng với 5 sheet1, sheet2 … sheet5
Sheetname=[Sheet]+Allt(Str(i))
Appe from XLSname fiel mahh, tenhh, giale Type XL8 SHEET &SheetName
Next
Sele Cursor1
Scan
Sele Table1
Go top
Loca for Allt(Cursor1.mahh)=Allt(Table1.mahh) && tìm các mahh không trùng với mahh của bảng Table1
If !foun()
Appe Blan
Repl Table1.mahh with Cursor1.mahh,Table1.tenhh with Cursor1.tenhh,Table1.giale with Cursor1.giale
Endi
Sele Cursor1
Ends
Use
Sele Table1
Brow
Retu

thanhtam_t3a
06-10-2012, 00:18
Khi chạy 1 form, mình viết code tạo ra 1 textbox, nhưng mình không biết tạo ra methods của nó
(Mình muốn tạo methods KẻyPess Event)
Ai biết chỉ giùm
Xin cảm ơn trước

robotfpt
09-10-2012, 07:53
Bạn phải tạo class cho textbox thì mới được
Trong class để viết sự kiện bạn dùng PROCEDURE/ENDPROC

robotfpt
09-10-2012, 08:02
Hi các bác!
Các bác giúp em với ạ, em có 1 file dbf, trong đó có 1 cột kiểu ký tự, nhưng mở file dbf đó ra thì cột đó toàn dữ liệu là "memo", nhưng click vào từng record đó thì hiển thị dữ liệu, nhưng font bị lỗi không đọc được. (Khi em export file dbf này ra excel thì cột dữ liệu đó ko có trong file excel, hic) Các bác xem giúp em giải quyết tình huống này với ạ. Em mới tìm hiểu foxpro nên rất gà mờ ạ. Đa tạ các bác

Bạn add thêm cột rồi replace cột đó bằng giá trị cột memo
Chẳng hạn:
USE [Ten bang] EXCLUSIVE
ALTER TABEL [Ten bang] ADD COLUMN Cot1 C(200)
REPLACE ALL cot1 WITH [Ten cot Memo]
BROWSE && xem ket qua

Trường hợp này chỉ đúng nếu số ký tự trong Memo giới hạn số ký tự (khoảng hơn 200 ký tự)

robotfpt
09-10-2012, 08:04
Anh Chị nào có soucre phần mềm tính tiền nước viết bằng foxpro cho mình tham khảo với
Cái này hơi đặc thù, nếu là SV làm đồ án thì hầu như ko ai chọn đề tài này, còn các công ty lập trình theo đơn đặt hàng thì chẳng ai share cho bạn cả phần mềm đâu. Bạn gặp khó khăn gì thì post lên đây mọi người giúp thôi

thanhtam_t3a
09-10-2012, 08:39
Bạn phải tạo class cho textbox thì mới được
Trong class để viết sự kiện bạn dùng PROCEDURE/ENDPROC

Nếu phải tạo class trước cho textbox thì mình tạo ra textbox từ ban đầu luôn cho nó khoẻ. Có cách nào khác tạo ra PROCEDURE bằng lệnh khi thi hành không bạn. Cảm ơn bạn nhiều
Ai biết xin chỉ giùm

thanhtam_t3a
09-10-2012, 11:11
1. Lập danh sách file dbf
2. Copy structure từ file đầu tiên
3. Lần lượt append data từ các file dbf

CLEAR
path="d:\"
IF ADIR(ff,path+"*.dbf")=0
RETURN
ENDIF
=ASORT(ff,1)
USE (path+ff(1,1))
COPY STRUCTURE TO xx
USE xx
FOR ii=1 TO ALEN(ff,1)
? ff(ii,1)
APPEND FROM (path+ff(ii,1))
ENDFOR
GO TOP
BROWSE
USE

Mình muốn biết xem trong một thư mục nào đó có bao nhiêu thư mục con. Tạo một file dbf và add từng thư mục vào file dbf đó

traxanhda
09-10-2012, 14:15
Tks bác, thế để lấy dữ liệu cột đó ra thì có dùng cách trên được ko bác? hay cách trên chỉ xem được thôi, Đa tạ bác nhiều lắm.

traxanhda
09-10-2012, 14:18
HI các bác!
các đại ca cho e hỏi chút. Trong foxpro có hàm nào đảo ngược vị trí của chuỗi không các bác. tks all.

robotfpt
09-10-2012, 16:33
Nếu phải tạo class trước cho textbox thì mình tạo ra textbox từ ban đầu luôn cho nó khoẻ. Có cách nào khác tạo ra PROCEDURE bằng lệnh khi thi hành không bạn. Cảm ơn bạn nhiều
Ai biết xin chỉ giùm
Vậy bạn mô tả ý tưởng bạn đang làm chứ mô tả thế chung chung quá. Bạn tạo textbox trong sự kiện nào? Dùng code tạo như thế nào?

robotfpt
09-10-2012, 16:34
Tks bác, thế để lấy dữ liệu cột đó ra thì có dùng cách trên được ko bác? hay cách trên chỉ xem được thôi, Đa tạ bác nhiều lắm.

Dùng cách đó thì dữ liệu đã có trên bảng ở cột mới, khi đó bạn dùng số liệu của cột đó bình thường