EOLE=CREATEOBJECT('EXCEL.APPLICATION')
LCFILENAME=GETFILE([XLS]) && 此处 XLS 改为EXCEL2010文件的扩展名
IF EMPTY(LCFILENAME)
RETURN
ENDIF
EOLE.WORKBOOKS.OPEN(LCFILENAME)
EOLE.WORKSHEETS(1).ACTIVATE
LNROW=EOLE.SHEETS(1).USEDRANGE.ROWS.COUNT
LNCOL=EOLE.SHEETS(1).USEDRANGE.COLUMNS.COUNT
DIM...
比如我在编辑状态,点中一个数字文本框左边部分,然后回车,文本框的内容清空了,我觉得不应该被清空才对啊,这样很容易出错的。
比如123.5678 我点到2后面回车,就变成12了,我觉得我只是点了一下回车,内容应该不变才对。怎么设置?
解决方法
文本框的 KeyPress 事件加代码:
If nKeyCode=13
Nodefault
KEYBOARD '{TAB}'
Endif
表格 INIT 事件代码
thisform.grid1.highlight=.f.
thisform.grid1.highlightrow=.f.
For i=1 to Fcount()
thisform.grid1.columns(i).text1.backstyle=1
thisform.grid1.columns(i).text1.bordercolor=rgb(255,0,0)
thisform.grid1.columns(i).text1.borderstyle=1
thisform.grid1.columns(i)....
以DBF文件为例
create cursor tt (vfile c(20))
ncnt=adir(aa,"*.dbf")
b=1
append from array aa[b,1]
browse
list memory like aa
三、VFP控制EXCEL工作表
工作表是操作 EXCEL 时不可缺少的对象,同时是编辑单元格对象的入口和载体,利用 VFP 更好的控制 EXCEL 工作簿和单元格,掌握控制工作表的方法至关重要。
3.1 插入工作表
在新打开的工作簿中,默认有三个工作表,当工作表的数量不够用时,可以插入工作。
3.1.1 插入指定数量工作表
使用以下代码可以插入新的工作表。
1、插入单个空白工作表,不带参数增加新表至当前工作表之前
oExcel.Sheets.Add
说明:
●使用 Sheets (工作表集合对象)的 Add 方法可以插入空白工作表。
2...
一、创建Excel对象
oExcel=CreateObject('Excel.Application')
二、控制工作簿
2.1 新建工作簿
2.1.1 新建空白工作簿
1、默认为3个工作表
oExcel.WorkBooks.Add
2、新建一个仅包含一个工作表的工作簿
oExcel.WorkBooks.Add(-4167)
说明:
●在 Excel 中表示工作簿的关键字有 WorkBooks (工作簿集合对象)和 WorkBook (工作簿对象)。它们之间是集合与集合中对象的关系,即 WorkBooks 是 WorkBook 的集合。...
应用于 Workbooks 集合(对象)的 Add 方法。
新建工作簿时,用户通常会使用 WorkBooks 集合的 Add 方法,其代码如下:
oExcel.Workbooks.Add
如果新建工作簿时忽略 Add 方法的参数,那么在默认的情况下新建的工作簿将包含3个工作表。新建的工作簿中工作表的数量具体由“选项”对话框“常规”选项卡中的“新工作簿内的工作表数”决定,如下图所示,该数值能够通过 Application 对象的 SheetsInNewWorkbook 属性返回或设置。
Workbooks 集合(对象)的 Add 方法语法如下...
ox=CreateObject("MSwinsock.Winsock")
?'IP地址:',ox.LocalIP
?'计算机名:',ox.LocalHostName
RELEASE OX
oExcel=CreateObject('Excel.Application')
With oExcel
.Workbooks.Add
.SheetsInNewWorkBook=1
.Sheets(1).Cells(2,5).Select
.ActiveSheet.Pictures.Insert("F:\第五十组MIS设计报告\1-110Q0130GD10.jpg").Select
.Selection.ShapeRange.LockAspectRatio =.T.
.ActiveSheet.Columns...
clear
local aa[5,4]
aa[1,1]=1
aa[1,2]=2
aa[1,3]=12
aa[1,4]=123
aa[2,1]=3
aa[2,2]=4
aa[2,3]=34
aa[2,4]=345
aa[3,1]=5
aa[3,2]=6
aa[3,3]=56
aa[3,4]=567
aa[4,1]=7
aa[4,2]=8
aa[4,3]=78
aa[4,4]=789
aa[5,1]=9
aa[5,2]=10
aa[5,3]=910
aa[5,4]=901
*---------------------------...
1-33共33个数字,生成由小到大的
1,2,3,4,5,6
1,2,3,4,5,7
..........
27,29,30,31,32,33
28,29,30,31,32,33
6位数字不相同的新组合
CLEAR
T1=SECONDS()
CREATE CURSOR TEST (A1 N(2),A2 N(2),A3 N(2),A4 N(2),A5 N(2),A6 N(2))
FOR I1=1 TO 33
FOR I2=I1+1 TO 33
...
*问题:ABCDE分别代表5个不相同的数字(每个字母代表1位数字),并且A与E不等于0,求出算式 ABCDE*A=EEEEEE 中各字母所代表的数字<P23>
CLEAR
N1=0
N2=0
FOR I1=1 TO 9
FOR I2=0 TO 9
FOR I3=0 TO 9
FOR I4=0 TO 9
FOR I5=1 TO 9
N1=I1*10000+I2*1000+I3*100+I4*10+I5
...
CLEAR
FOR I=1 TO 26
STORE "" TO A,B
?I,SPACE(26-I)
FOR J=1 TO I
A=A+CHR(J+64)
IF J=1
B=""
ELSE
B=CHR(J+63)+B
ENDIF
ENDFOR
?? A+B
ENDFOR
数字金字塔代码
clear
for i=...
用第一条记录各字段的对应值替换原有表结构中的字段名
clear all
create cursor aa (a c(10),b c(10))
insert into aa values ("a1","b1")
scatter to cc
for lni=1 to fcount()
alter table aa rename column (field(lnI)) to &cc[lnI]
endfor
browse
来源:http://www.mzvfp.com/read.php?tid=55600&page=3
作者:陈家驹
?gcd(15,21)
?gcd(125,25)
Function GCD(X, Y)
If X < 0
X = -x && 欧拉算法
Endif
If Y < 0
Y = -Y && 返回 X 和 Y 的 GCD
Endif
If X = 0 Or Y = 0
? "GCD...
* VFP9.0 CODE
Create Cursor Tt (Kh C(3))
Insert Into Tt Values ("001")
Insert Into Tt Values ("001")
Insert Into Tt Values ("002")
Insert Into Tt Values ("003")
Insert Into Tt Values ("001")
Insert Into Tt Values ("003")
Insert Into Tt Values ("002")
Insert Into Tt Values ("001"...
loWord = Createobject("word.application")
loWord.Documents.Open('c:\1.doc')
?loWord.ActiveDocument.ComputeStatistics(1) &&总行数
第一项:(1/3)-(1/3)*(2/5)
第二项:(1/3)*(2/5)*(3/7)-(1/3)*(2/5)*(3/7)*(4/9)
第三项:(1/3)*(2/5)*(3/7)*(4/9)*(5/11)-(1/3)*(2/5)*(3/7)*(4/9)*(5/11)*(6/13)
第四项:(1/3)*(2/5)*(3/7)*(4/9)*(5/11)*(6/13)*(7/15)-(1/3)*(2/5)*(3/7)*(4/9)*(5/11)*(6/13)*(7/15)*(8/17)
上面数列的特征:分子等差为1,分母等差为2,分母为2倍的分子加1,“-“前、后相邻两项之间,最后...
CLEAR
DO WHILE .T.
INPUT "请输入11-1000000之间的任意数:" TO N
IF N>10^6 OR N<11
MESSAGEBOX("数字超出范围,请重新输入!")
LOOP
ELSE
EXIT
ENDIF
ENDDO
S=2+3+5+7
C=4
FOR LNI=11 TO N
X=LNI
Y=0
DO WHILE X!=0
Y=X%10+Y*10
X=INT(X/10)
ENDDO
IF Y=...
有这么一个数值型数据
Num=2015.02
转换为日期型数据:2015-02-01
Set Date Ansi
Set Century ON
Set Mark To "-"
? Date(Int(Num),(Num-Int(Num))*100,1)
? Date(Int(Num),mod(Num*100,100),1)