佳礼资讯网

 找回密码
 注册

ADVERTISEMENT

楼主: maybird_2

Visual FoxPro 的疑难杂症

[复制链接]
发表于 5-7-2004 11:33 AM | 显示全部楼层
可以,design report是使用Group Band。
Group Customer先,然后才Group Item。
回复

使用道具 举报


ADVERTISEMENT

发表于 8-7-2004 09:32 PM | 显示全部楼层
在其中一个 REPORT 里,是 GROUP DATE, GROUP ITEMS, GROUP CUSTOMER。
1。为何当我 PREVIEW 时,它会显示全部的 DATABASE 的 RECORD 而不是我所 SEARCH 的 RECORD?应该要如何或用什么 COMMAND 才能让它显示我所 SEARCH 的 RECORD?

2。是不是一定要 DELETE REPORT 里 DATA ENVIRONMENT 的 DATA?
当我 DELETE REPORT 里 DATA ENVIRONMENT 的 DATA 后,就可以只显示我所 SEARCH 的 RECORD?但为何显示出来的 RECORD 只是 GROUP by DATE 而已?ITEMS 和 CUSTOMER 都不会 GROUP 在一起?
回复

使用道具 举报

发表于 9-7-2004 10:50 AM | 显示全部楼层
EXAMPLE:
我是问为何删除数据环境中的数据表后,它显示成:
01/01/04
  ITEMS 1
    CUSTOMER A
      INVOICE 001

  ITEMS 3
    CUSTOMER A
      INVOICE 001

  ITEMS 1
    CUSTOMER B
      INVOICE 002

  ITEMS 3
    CUSTOMER B
      INVOICE 002

但在还没有除数据环境中的数据表前,它可显示成:

01/01/04
  ITEMS 1
    CUSTOMER A
      INVOICE 001

    CUSTOMER B
      INVOICE 002

  ITEMS 2
    CUSTOMER A
      INVOICE 001

    CUSTOMER B
      INVOICE 002

而我要的是第二种,请问应该怎样写?
我的是 GROUP DATE, GROUP ITEMS, GROUP CUSTOMER。
回复

使用道具 举报

发表于 15-7-2004 09:51 AM | 显示全部楼层
在一个 FORM 里有 TIEM IN 和 TIME OUT,请问要如何写才能算出总共用了多少时间?
回复

使用道具 举报

发表于 15-7-2004 11:21 AM | 显示全部楼层
tstan135 于 15-7-2004 09:51 AM  说 :
在一个 FORM 里有 TIEM IN 和 TIME OUT,请问要如何写才能算出总共用了多少时间?


Example:
a = in_time
b = out_time

? out_time - in_time

如果 A 和 B 是 CHRACTER,

? ctot(out_time) - ctot(in_time)

它所算出的時間是秒,如果要轉換去 hh:mm:ss, 那麼可要再加點程式.
回复

使用道具 举报

发表于 15-7-2004 12:06 PM | 显示全部楼层
itgenius 于 15-7-2004 11:21 AM  说 :
Example:
a = in_time
b = out_time

? out_time - in_time

如果 A 和 B 是 CHRACTER,

? ctot(out_time) - ctot(in_time)

它所算出的時間是秒,如果要轉換去 hh:mm:ss, 那麼可要再加點程式.

1.请问转换去 hh:mm:ss 应该如何写?
2.假设 TIME OUT 是第二天的时间又应该如何写?
3.假设 TIME IN 和 TIME OUT 的 TYPE 是 DATETIME 又应该如何写?
请写它的指令给我,谢谢!
回复

使用道具 举报

Follow Us
发表于 15-7-2004 02:45 PM | 显示全部楼层
tstan135 于 9-7-2004 10:50 AM  说 :
EXAMPLE:
我是问为何删除数据环境中的数据表后,它显示成:
01/01/04
  ITEMS 1
    CUSTOMER A
      INVOICE 001

  ITEMS 3
    CUSTOMER A
      INVOICE 001

  ITEMS ...


先index on dtos(date)+item+customer to ...

再去,modify report,用Report菜单,Data Grouping项目。
弄3个Group,即Date,Item,Customer(一定要跟次序)
Group Header不要放东西,在Detail band里放这些field...
[Date][Item][Customer][Invoice]
回复

使用道具 举报

发表于 15-7-2004 03:01 PM | 显示全部楼层
tstan135 于 15-7-2004 12:06 PM  说 :

1.请问转换去 hh:mm:ss 应该如何写?
2.假设 TIME OUT 是第二天的时间又应该如何写?
3.假设 TIME IN 和 TIME OUT 的 TYPE 是 DATETIME 又应该如何写?
请写它的指令给我,谢谢!


*
CLEAR
D_IN  = CTOT('01/01/2004 10:05:20 AM')
D_OUT = CTOT('03/01/2004 09:05:20 PM')
*
IF D_OUT < D_IN && CHECKING DATED
        ? 'DATE NOT VALID'
        RETURN
ENDIF
*
TSECOND = D_OUT - D_IN
DD = INT(TSECOND / 86400)
TSECOND = TSECOND - (DD*86400)
HH = INT(TSECOND / 3600)
TSECOND = TSECOND - (HH*3600)
MM = INT(TSECOND / 60)
TSECOND = TSECOND - (MM*60)
SS = INT(TSECOND)
*
? ' DAYS   :' + ALLTRIM(STR(DD))
? ' HOURS  :' + ALLTRIM(STR(HH))
? ' MINUTE :' + ALLTRIM(STR(MM))
? ' SECOND :' + ALLTRIM(STR(SS))

RETURN

這是小弟所寫的, 請多多指教!!!

[ Last edited by itgenius on 16-7-2004 at 11:22 AM ]
回复

使用道具 举报


ADVERTISEMENT

发表于 15-7-2004 03:21 PM | 显示全部楼层
tstan135 于 15-7-2004 09:51 AM  说 :
在一个 FORM 里有 TIEM IN 和 TIME OUT,请问要如何写才能算出总共用了多少时间?

这是我在4年前Hotel Mgt Sys里的程序。
create 5个控件:
txtCheckIn, cmdCheckIn
txtCheckOut, cmdCheckOut
txtDiff

txtCheckIn.ControlSource = CheckIn && 资料栏
txtCheckOut.ControlSource = CheckOut

在cmdCheckIn.Click编程
Replace CheckIn With DateTime()
Thisform.txtCheckIn.Refresh

在cmdCheckOut.Click编程
Replace CheckOut With DateTime()
Thisform.txtCheckOut.Refresh
Thisform.txtDiff.Value = CheckOut - CheckIn && 秒数

1. 使用60进制,自己想下!
2. 参考上面。
3. 系统自动的。
4. 指令只是上面5行。
回复

使用道具 举报

发表于 16-7-2004 08:40 AM | 显示全部楼层
有誰原意把 SOURCE CODE 放上來分享分享!!!或者有什麼好用的 FUNCTIONS.謝謝!!!
回复

使用道具 举报

发表于 16-7-2004 09:59 AM | 显示全部楼层
itgenius∶
你的编码计算小时错误,超过24小时没进位去多一日。
以下编码指正。


dIn = {^2004/01/01 8:25:20 A}
dOut = {^2004/01/02 04:49:21 P}

nD = Ttod(dOut) - Ttod(dIn)
tS = dOut - dIn && Total Second

tS = tS - (nD * 86400)
nH = Int(tS / 3600)
tS = tS - (nH * 3600)
nM = Int(tS / 60)
nS = tS % 60

? datetime(2001,1,nD,nH,nM,nS)
回复

使用道具 举报

发表于 16-7-2004 05:33 PM | 显示全部楼层
在一个REPORT里有很多种ITEM,而每一种ITEM的QTY多不同。要如何才能在REPORT(纸)的最下方算出每一种ITEM的QTY的总数?它的EXPRESSION要如何写?
回复

使用道具 举报

发表于 17-7-2004 09:11 AM | 显示全部楼层
在一个FORM里有ADD和EDIT的BUTTON,当我按ADD时,ADD就会变成SAVE和EDIT就会变成REVERT。当我按SAVE时,它就会储存资料而SAVE就会变回ADD和REVERT就会变回EDIT;按REVERT时,它就不会储存资料,同样的SAVE就会变回ADD和REVERT就会变回EDIT。请问它的COMMAND应该如何写?
回复

使用道具 举报

发表于 17-7-2004 04:16 PM | 显示全部楼层
计算错误。
假设 TIME IN 是 17/07/2004 08:00:00 AM
TIME OUT 是 17/07/2004 08:20:00 PM

itgenius 于 15-7-2004 03:01 PM  说 :
*
CLEAR
D_IN  = CTOT('01/01/2004 10:05:20 AM')
D_OUT = CTOT('03/01/2004 09:05:20 PM')
*
IF D_OUT < D_IN && CHECKING DATED
        ? 'DATE NOT VALID'
        RETURN
ENDIF
*
TSECOND = D_OU ...

itgenius的显示出来的是 12H 19M 59S




白日梦 于 16-7-2004 09:59 AM  说 :
itgenius∶
你的编码计算小时错误,超过24小时没进位去多一日。
以下编码指正。


dIn = {^2004/01/01 8:25:20 A}
dOut = {^2004/01/02 04:49:21 P}

nD = Ttod(dOut) - Ttod(dIn)
tS ...

白日梦的显示出来的是 12H 19M 60S
回复

使用道具 举报

发表于 17-7-2004 11:45 PM | 显示全部楼层
tstan135 于 16-7-2004 05:33 PM  说 :
在一个REPORT里有很多种ITEM,而每一种ITEM的QTY多不同。要如何才能在REPORT(纸)的最下方算出每一种ITEM的QTY的总数?它的EXPRESSION要如何写?


只要在CALCULATION里面的SUM点一点就行了!!!
回复

使用道具 举报

发表于 19-7-2004 10:52 AM | 显示全部楼层
tstan135 于 16-7-2004 05:33 PM  说 :
在一个REPORT里有很多种ITEM,而每一种ITEM的QTY多不同。要如何才能在REPORT(纸)的最下方算出每一种ITEM的QTY的总数?它的EXPRESSION要如何写?

不用写的,把Qty sum起来放在Group Footer。

tstan135 于 17-7-2004 09:11 AM  说 :
在一个FORM里有ADD和EDIT的BUTTON,当我按ADD时,ADD就会变成SAVE和EDIT就会变成REVERT。当我按SAVE时,它就会储存资料而SAVE就会变回ADD和REVERT就会变回EDIT;按REVERT时,它就不会储存资料,同样的SAVE就会变回 ...

有时你也得自己想一想,不要一直靠别人。
答案是用if ...和this.caption=。

tstan135 于 17-7-2004 04:16 PM  说 :
计算错误。
假设 TIME IN 是 17/07/2004 08:00:00 AM
TIME OUT 是 17/07/2004 08:20:00 PM
白日梦的显示出来的是 12H 19M 60S

错误在于你的debuging skill不强。
一位美国电脑界前辈的话∶一位高级程序员同时也是除错高手。
把dIn = {^2004/07/17 8:00:00 A}
dOut = {^2004/07/17 8:20:00 P}
<运算照回我回复的帖>
? datetime(2000,1,1,nH,nM,nS)

[ Last edited by 白日梦 on 19-7-2004 at 11:04 AM ]
回复

使用道具 举报


ADVERTISEMENT

发表于 19-7-2004 11:46 AM | 显示全部楼层
白日梦 于 19-7-2004 10:52 AM  说 :
OOP不用写的,把Qty sum起来放在Group Footer。

因为我是想计算各自不同ITEM的总数,所以不能用 QTY SUM来做。
我想应该用SQL来写。好像:SUM QTY TO nTotal FOR items = "HDD"。

白日梦 于 19-7-2004 10:52 AM  说 :
有时你也得自己想一想,不要一直靠别人。
答案是用if ...和this.caption=。

我也知道是用IF...this.caption=...
我只是想不到REVERT应该如何写。

白日梦 于 19-7-2004 10:52 AM  说 :
<运算照回我回复的帖>

nD = Ttod(thisform.time_out1.Value) - Ttod(thisform.time_in1.Value)
tS = thisform.time_out1.Value  - thisform.time_in1.Value

tS = tS - (nD * 86400)
nH = Int(tS / 3600)
tS = tS - (nH * 3600)
nM = Int(tS / 60)
nS = tS % 60

?nd
?nh
?nm
?ns

不知这样对不对?
有些时间它就计算正确,但有些时间它就计算错误。就好像:
假设 TIME IN 是 17/07/2004 08:00:00 AM
     TIME OUT 是 17/07/2004 08:20:00 PM
但显示出来的是 12H 19M 60S
答案应该是12H 20M 00S 才对。
回复

使用道具 举报

发表于 19-7-2004 02:30 PM | 显示全部楼层
1. 先index Item,用Data Grouping...,Group Footer加入Qty的field,properties改它的Sum on Item.

2. 先用array存起资料栏的内容,当revert时才拿出来放回去。

3. 既然你知道出错,就想办法找出来。很简单,错在分钟的计算。
回复

使用道具 举报

发表于 21-7-2004 12:45 PM | 显示全部楼层
我用SQL找到我要的资料,但要如何才能让它显示在一个FORM里的GRID里?它的COMMAND要如何写?
回复

使用道具 举报

发表于 21-7-2004 01:51 PM | 显示全部楼层
我没用SQL方式写。

试改Grid的属性(Properties):
Grid1.RecordSourceType = 4
Grid1.RecordSource = ..... && SQL Statement
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

 

ADVERTISEMENT



ADVERTISEMENT



ADVERTISEMENT

ADVERTISEMENT


版权所有 © 1996-2023 Cari Internet Sdn Bhd (483575-W)|IPSERVERONE 提供云主机|广告刊登|关于我们|私隐权|免控|投诉|联络|脸书|佳礼资讯网

GMT+8, 24-4-2024 11:11 PM , Processed in 0.062204 second(s), 21 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表