注册 登录
编程论坛 PowerBuilder

看看這張報表怎麼做

路過 发布于 2007-01-08 14:40, 1513 次点击
相關要求見附檔,謝謝!!
17 回复
#2
路過2007-01-08 14:42
見附檔
只有本站会员才能查看附件,请 登录

#3
hzjwcx2007-01-09 08:16
怎麼沒有人做呢???頂起來!
#4
notbig2007-01-13 00:00
直接贴进来嘛,还要下载解压多麻烦
#5
hzjwcx2007-01-13 17:05

不要沉下去啊

#6
notbig2007-01-14 20:57
楼上把文档内容放上来如何,实在不想下载再解压再打开。
#7
hzjwcx2007-01-15 11:39
aaaa
以下是引用notbig在2007-1-14 20:57:49的发言:
楼上把文档内容放上来如何,实在不想下载再解压再打开。

CREATE TABLE GOBANG_M
(
GOBANG_NO CHAR(20) NOT NULL,
DO_NAME CHAR(20) NOT NULL,
DO_TIME CHAR(20) ,
UPD_TIME CHAR(20),
MEMO CHAR(500),
PRIMARY KEY (GOBANG_NO)
);
CREATE TABLE GOBANG_D
(
GOBANG_NO CHAR(20) NOT NULL,
GOBANG_ITEM INT NOT NULL,
SQUARE INT NOT NULL,
MEMO CHAR(500),
PRIMARY KEY (GOBANG_NO, GOBANG_ITEM)
);

ALTER TABLE GOBANG_D
ADD FOREIGN KEY FK_GOBANG_D_REFERENCE_GOBANG_M (GOBANG_NO)
REFERENCES GOBANG_M (GOBANG_NO);

附檔GOBANG_M.txt、GOBANG_D.txt为Tab字符分隔之纯文字文件,请将GOBANG_M.txt数据汇入GOBANG_M、GOBANG_D.txt数据汇入GOBANG_D。
GOBANG_D资料说明:
A. GOBANG_ITEM为选择之顺序,数据为奇数(1、3、5)表示○,偶数(2、4、6)表示╳。
B. SQUARE为所选择之九宫格位置,如图P01。
C.以G20061213001资料(表一)为例,GOBANG_ITEM为1、SQUARE为5即表示第一次点选位置为第5格(图P02),以此类推,此笔资料的汇总结果如图P03所示。

GOBANG_ITEM SQUARE
1 5
2 1
3 2
4 9
5 8

P01 表一 P02 P03

管控点:
A.报表Hander需显示GOBANG_M(GOBANG_NO、DO_NAME、DO_TIME、UPD_TIME)及目前页数与总页数;DO_TIME、UPD_TIME需设定显示格式,例:2006/12/13 16:10:16。
B.如为汇总表,则报表之MEMO取GOBANG_M(MEMO),如为明细表则取GOBANG_D(MEMO)。
C.报表皆以GOBANG_NO做GROUP,只有明细表需依GROUP分页。
D. GOBANG_ITEM为奇数表示○,偶数表示╳。
E.以井字游戏规则判断是否连成一线,是则该联机之符号(○或╳)显示蓝色(Pen或Text Color等于 RGB(0,0,255) ),否则为黑色。
F.汇总表一笔数据即显示该GOBANG_NO对应之全部明细资料。
G.明细表为逐笔累加显示明细数据。
H.执行Menu之Print时请直接显示打印成功之讯息。
I.执行Menu之First为将报表卷动至第一页。
J.执行Menu之Previous为将报表卷动至上一页。
K.执行Menu之Next为将报表卷动至下一页。
L.执行Menu之Last为将报表卷动至最未页。
以下是报表的格式:

汇总表:
圖片見附檔!
明细表:
圖片見附檔!

#8
notbig2007-01-15 23:44
不觉得有难度呀
不知楼主哪里过不了
#9
路過2007-01-16 08:19
以下是引用notbig在2007-1-15 23:44:40的发言:
不觉得有难度呀
不知楼主哪里过不了

那你幫我做一下吧,呵呵
我還不知道怎麼做(兩張報表)。
數據據必需是pb自帶的。(ODBC配置的)
等候你的佳音!!!

#10
notbig2007-01-16 09:02
干嘛要我做呢,你做到哪不对的可以帮你看看,自己的活还是自己做吧。
#11
路過2007-01-16 09:26

不是不會嗎?才找你們幫忙的嗎?這麼懶!!!!!
不會還會找你們嗎?
不是說一張報表嗎?

#12
hzjwcx2007-01-16 11:49
以下是引用notbig在2007-1-16 9:02:22的发言:
干嘛要我做呢,你做到哪不对的可以帮你看看,自己的活还是自己做吧。

兄弟,我看了這張報表,不好做,我做了一天也沒有做出來!!
如果你能做,可以看看,不要只發表意見,而不去實做,是沒有用的!!!
不要以為簡單,只有真正去做了,才知道.........................................

#13
notbig2007-01-16 17:59
楼上怎么说话的,这东西还要做一天,即刻做一个给你,细节不调整,效果出来就OK
只有本站会员才能查看附件,请 登录

只有本站会员才能查看附件,请 登录

#14
notbig2007-01-16 18:02

给你代码我看你能用多长时间做出来
long m
dw_2.retrieve()
for i = 1 to dw_2.rowcount()
ls_1 = dw_2.object.gobang_no[i]
dw_3.retrieve(ls_1)
k = dw_1.insertrow(0)
dw_1.object.gobang_no[k] = ls_1
dw_1.object.do_name[k] = dw_2.object.do_name[i]
dw_1.object.do_time[k] = dw_2.object.do_time[i]
dw_1.object.upd_time[k] = dw_2.object.upd_time[i]
dw_1.object.memo[k] = dw_2.object.memo[i]
for j = 1 to dw_3.rowcount()
m = long(dw_3.object.square[j])
if j/2 = int(j/2) then //○,偶数(2、4、6)表示╳。
dw_1.object.data[k,5+m] = '╳'
else
dw_1.object.data[k,5+m] = '○'
end if
dw_1.object.data[k,14+m] = string(j)
next
next

#15
hzjwcx2007-01-17 08:02
以下是引用notbig在2007-1-16 18:02:04的发言:

给你代码我看你能用多长时间做出来
long m
dw_2.retrieve()
for i = 1 to dw_2.rowcount()
ls_1 = dw_2.object.gobang_no[i]
dw_3.retrieve(ls_1)
k = dw_1.insertrow(0)
dw_1.object.gobang_no[k] = ls_1
dw_1.object.do_name[k] = dw_2.object.do_name[i]
dw_1.object.do_time[k] = dw_2.object.do_time[i]
dw_1.object.upd_time[k] = dw_2.object.upd_time[i]
dw_1.object.memo[k] = dw_2.object.memo[i]
for j = 1 to dw_3.rowcount()
m = long(dw_3.object.square[j])
if j/2 = int(j/2) then //○,偶数(2、4、6)表示╳。
dw_1.object.data[k,5+m] = '╳'
else
dw_1.object.data[k,5+m] = '○'
end if
dw_1.object.data[k,14+m] = string(j)
next
next

高手.............................

#16
notbig2007-01-17 08:49

高手之外还有高手,我也不算是什么高手,只是做人要厚道一点,不是别人不帮,什么都你做好了对你没有好处,什么事还得靠自己,你自己做一天也没有做出来也不见你把你做的思路和问题列出来。有时从一开头就想错了掉到死胡同里,有时是基本功不扎实。当别人指正自己的缺点和错误才可以进步,一味的看别人的成果,未必了解别人的思路,到头来你又学习到了什么呢?!不要只为对付功课,有很多东西不是功课可以提高的。

#17
路過2007-01-17 12:33

呵呵,
謝謝 notbig
我試一下

#18
notbig2007-01-17 17:42
判断谁赢倒是没有想到好算法,如果用判断语句也不是不行。
好在是3X3,如果要是N X N 且没有固定数目连成一条直线就不好处理了。
1