|
发表于 19-8-2004 09:07 AM
|
显示全部楼层
itgenius 于 17-8-2004 08:07 PM 说 :
select dbf2
append from dbf1 for (filter condition)
select dbf1
delete for (filter condition)
因为我是 SET FILTER 后才 MOVE 所显示的 DATA,所以以上的方法应该怎样改? |
|
|
|
|
|
|
|
发表于 19-8-2004 09:15 AM
|
显示全部楼层
dark_heaven 于 19-8-2004 07:54 AM 说 :
你是用 VFP6 吧,有没有 refer 随装护送的 msdn 2000 jan, 那里有个 Solution.pjx 的 sample, 你应该尝试去 figure out your own from those sets of samples included in msdn.
因为我发觉你常问的问题在 Sol ...
Solution 里面的多数是用 Parent Code。对我来说是一门很高深的东东。 |
|
|
|
|
|
|
|
发表于 19-8-2004 10:01 AM
|
显示全部楼层
这是我以前的作法,你看帮得到你吗...
我通常没用你这个 Filter 的方法,完全是 SQL command 来 Filter 的(切确说,应该是 "Select wanted rec" 吧。
- *在你认为适当的 Event 下
- local lcSQLStr, loGrid
- lcSQLStr = "SELECT xxx1, xxx2 FROM xxTable WHERE ";
- + "para1 = " + chr(34) + lcCriteria1 + chr(34)+ " AND ";
- + "para2 = " + chr(34) + lcCriteria2 + chr(34);
- + " INTO CURSOR tempResult "
- loGrid = thisform.grid1
- with loGrid
- .RecordSource = loSQLStr
- .grc1.ControlSource = tempResult.xxx1
- .grc1.text1.ControlSource = 3 + TempResult.xxx1
- endwith
- go top
- loGrid.SetFocus
复制代码
你试一试,若是不行,就要问别人了,我很多年没碰了,刚刚的码是从 以前 project code-listing 的 hard-copy.
你可以找一找 QUE 的 "Special Edition Using VFP 5 or 6"
我以前也靠这本才慢慢摸 那些 sample 的,很久以前,我是时常请教 Carl 的, fox.wikis.com 就是他维持的,可以在 IRC.UniversalThread.com 的 IRC Network 找到他,但是好多年了,不知道那群来自世界各地的 VFP hero 还在不在
/ps:
你把 SQL-command store 在一个 var 的好处是 Dynamic changing your SQL String 的缘故。看看下边的示范:
*this is direct SQL-Command
SELECT * FROM xxTable
and are equivalent to the codes below :-
lcSQL = "SELECT * FROM xxTable"
&lcSQL && <-- this run the SQL statement
我告辞了,要去新加坡剿书,哈哈
[ Last edited by dark_heaven on 19-8-2004 at 10:16 AM ] |
|
|
|
|
|
|
|
发表于 19-8-2004 10:23 AM
|
显示全部楼层
tstan135 于 19-8-2004 09:07 AM 说 :
因为我是 SET FILTER 后才 MOVE 所显示的 DATA,所以以上的方法应该怎样改?
先解除 filter 才 transfer data,执行完毕再 set 回原来的 filter。 |
|
|
|
|
|
|
|
发表于 19-8-2004 12:15 PM
|
显示全部楼层
白日梦 于 19-8-2004 10:23 AM 说 :
先解除 filter 才 transfer data,执行完毕再 set 回原来的 filter。
我是要把 SET FILTER 后,选出来的 DATA MOVE 到另一个 DATABASE 里。 |
|
|
|
|
|
|
|
发表于 19-8-2004 02:15 PM
|
显示全部楼层
tstan135 于 19-8-2004 12:15 PM 说 :
我是要把 SET FILTER 后,选出来的 DATA MOVE 到另一个 DATABASE 里。
山不轉, 路轉; 路不轉, 人轉
作為一個初學者的你,應當多熟悉,多練習命令,function.
以上已有答案所謂的 move ,是把抄了原有的資料.才刪除原有的資料.
試試看吧,你行的! 給多一點耐性. |
|
|
|
|
|
|
|
发表于 19-8-2004 02:41 PM
|
显示全部楼层
在 FORM1 里我用 nRec = RECNO(),在 FROM2 的 INT 里 GO nRec
请问为什么 Record 1 到 7 Form2 都能显示,但 Record 8 或之后的就不能显示,总是 Program Error "Record is out of range"?
请问有什么方法? |
|
|
|
|
|
|
|
发表于 19-8-2004 02:48 PM
|
显示全部楼层
tstan135 于 19-8-2004 12:15 PM 说 :
我是要把 SET FILTER 后,选出来的 DATA MOVE 到另一个 DATABASE 里。
用 copy to dbf2 指令,
use dbf1
set filter to year(date)=2003
copy to dbf2 |
|
|
|
|
|
|
|
发表于 19-8-2004 02:53 PM
|
显示全部楼层
tstan135 于 19-8-2004 02:41 PM 说 :
在 FORM1 里我用 nRec = RECNO(),在 FROM2 的 INT 里 GO nRec
请问为什么 Record 1 到 7 Form2 都能显示,但 Record 8 或之后的就不能显示,总是 Program Error "Record is out of range"?
请问有什 ...
你碰到 eof,reccount() 只有 7,你用 go 指令 不能去 eof() 的记录。 |
|
|
|
|
|
|
|
发表于 19-8-2004 06:21 PM
|
显示全部楼层
在一个 form1 里,当我要 set filter 时就会出现另一个 form2 让我输入我要 filter 的 data。在 form2 里我用
set filter to bank = thisform.combo1.value
但总是 error。"unkown member COMBO1"
请问要如何解决? |
|
|
|
|
|
|
|
发表于 19-8-2004 08:54 PM
|
显示全部楼层
tstan135 于 19-8-2004 06:21 PM 说 :
在一个 form1 里,当我要 set filter 时就会出现另一个 form2 让我输入我要 filter 的 data。在 form2 里我用
set filter to bank = thisform.combo1.value
但总是 error。"unkown member COMBO1"
请问要如 ...
你的 combo1.value 是在form1, 或是 form2 如果是在 form2.的話,而 grid 是在form 1,
那麼條件式不成立. |
|
|
|
|
|
|
|
发表于 19-8-2004 09:34 PM
|
显示全部楼层
tstan135 于 19-8-2004 09:07 AM 说 :
因为我是 SET FILTER 后才 MOVE 所显示的 DATA,所以以上的方法应该怎样改?
方法上次已经说了,好吧!让我写清楚一点.
select data1 && 这是原有的DATBASE
set filter to bank = thisform.xxxx.value && 把它FILTER
select data2 && 这是你要从DATA1 APPEND DATA 的 DATABASE
APPEND FROM DATA1 FOR BANK = THISFORM.XXXX.VALUE && 这个指令是加入RECORD从DATA1,而加入的RECORD要符合 BANK = THISFORM.XXXX.VALUE.
SELECT DATA1
DELETE FOR BANK = THISFORM.XXXX.VALUE && 这是把DATA1的RECORD符合 BANK = THISFORM.XXXX.VALUE 全部 DELETE.因为你要求的是MOVE而不是COPY,如果只是COPY就步需要做这个动作 |
|
|
|
|
|
|
|
发表于 19-8-2004 09:42 PM
|
显示全部楼层
tstan135 于 19-8-2004 06:21 PM 说 :
在一个 form1 里,当我要 set filter 时就会出现另一个 form2 让我输入我要 filter 的 data。在 form2 里我用
set filter to bank = thisform.combo1.value
但总是 error。"unkown member COMBO1"
请问要如 ...
这是因为你会到FORM1的时候, FORM1 里面没有 THISFORM.COMBO1.VALUE,所以会出现UNKNOWN MEMBER COMBO1.
你可以在FORM2里改成这样;
PUBLIC xValue
XVALUE = THISFORM.COMBO1.VALUE && 把THISFORM.COMBO1.VALUE给予 XVALUE
然后就
SET FILTER TO BANK = XVALUE
这样当你会到FORM1是就不会出现ERROR了 |
|
|
|
|
|
|
|
发表于 20-8-2004 06:26 PM
|
显示全部楼层
在一个 GRID 里,要在哪里写才可以当每次打开 FORM 时,增加或修改 Column 里的 Record 时,它会自动算出答案?
我曾写在表单的 INIT 事件里,但不行,因为每当打开 FORM 时,它只会计算 SETFOCUS 的那行而已。
我是这样写的,不知对不对?
SELECT Trade_list
SUM amount TO nTotal FOR company = thisform.grid1.column1.text1.Value;
AND bank = thisform.grid1.column2.text1.Value
SELECT Trade_facilities
replace utilise WITH nTotal
thisform.grid1.column5.text1.Value = thisform.grid1.column3.text1.Value - nTotal
请大家帮忙,谢谢!
[ Last edited by tstan135 on 21-8-2004 at 04:14 AM ] |
|
|
|
|
|
|
|
发表于 21-8-2004 10:34 AM
|
显示全部楼层
两边写∶
开表时执行
grid1.init
和修改时执行
grid1.column5.valid
* column5 是 amount 的话。
你多练习就掌控OOP控件面向编程技巧!现在的你已经不是VFP新手了。 |
|
|
|
|
|
|
|
发表于 21-8-2004 10:59 AM
|
显示全部楼层
白日梦 于 21-8-2004 10:34 AM 说 :
两边写∶
开表时执行
grid1.init
和修改时执行
grid1.column5.valid
* column5 是 amount 的话。
你多练习就掌控OOP控件面向编程技巧!现在的你已经不是VFP新手了。
在 GRID.INIT 事件里也不行,因为每当打开 FORM 时,它也只会计算 SETFOCUS 的那行而已。 |
|
|
|
|
|
|
|
发表于 21-8-2004 11:08 AM
|
显示全部楼层
请问在 GRID 里要让它从第一行到最后一行的 RECORD 都 SETFOCUS 过。应该怎样? |
|
|
|
|
|
|
|
发表于 21-8-2004 11:33 AM
|
显示全部楼层
使用 grid.refresh ,
不用每行 .setfocus |
|
|
|
|
|
|
|
发表于 21-8-2004 02:03 PM
|
显示全部楼层
也许之前我说的不详细。
我有两个Form – Form1 和 Form2。
Form1 是收入日常增加或减少的款项。
Form2 是 GRID 收入公司 (column1), 银行 (column2),可动用款项的顶数 (column3),已经动用的款项 (column4) 和可动用款项的余数(column5)。
Column3 的顶数是固定的。
Column4 是天天随着Form1 里的 Record 的增加或减少而改变
Column5 是Column3 -Column4
我是这样写的。
SELECT Trade_list
SUM amount TO nTotal FOR company = thisform.grid1.column1.text1.Value;
AND bank = thisform.grid1.column2.text1.Value
SELECT Trade_facilities
replace utilise WITH nTotal
thisform.grid1.column5.text1.Value = thisform.grid1.column3.text1.Value - thisform.grid1.column4.text1.Value
请问要在哪里写才可以当每次打开 FORM2 时和当增加或修改在 Form1 或 Form2 里的 Record 时,它会自动算出在 Form2 里Column4 和Column5 的数目?
我曾写在 FORM2.INT 和 FORM2.GRID1.INT ,但每当打开 FORM2 时它只会计算 SETFOCUE 的那一行而已(里面有很多行)。我在 GRID 的 AllowCellSelection 是 .F.。 |
|
|
|
|
|
|
|
发表于 22-8-2004 01:33 AM
|
显示全部楼层
如何才能让 GRID 固定在同一行 Setfocus?
在一个 GRID 里,当我要修改 Column 的 RECORD 时,它会现另一个 FORM 让我修改。EXIT 之后它会返回之前修改的 Column 和在那行 Column 里 Setfocus。
但当我在 FORM 里加入 SUM command 后,当我 EXIT 后,在 GRID 里 SETFOCUS 的那行总是跑到最后一行。请问要如何才能让它返回在我修改的那一行 Setfocus?
[ Last edited by tstan135 on 23-8-2004 at 08:08 PM ] |
|
|
|
|
|
|
| |
本周最热论坛帖子
|