标题:csyx,我想改一下双飞输入模式,在帮我一下,感谢!
只看楼主
hytizj023
Rank: 1
等 级:新手上路
帖 子:166
专家分:7
注 册:2023-3-2
结帖率:100%
已结贴  问题点数:8 回复次数:18 
csyx,我想改一下双飞输入模式,在帮我一下,感谢!

麻烦帮我改一下,我现在想直接用标签输出
cTemp = Sys(2015)
Create Cursor (cTemp) (code V(4), cnt I)
cFlds = '零零,零一,零二,零三,零四,零五,零六,零七,零八,零九' ;
    + ',一一,一二,一三,一四,一五,一六,一七,一八,一九' ;
    + ',二二,二三,二四,二五,二六,二七,二八,二九' ;
    + ',三三,三四,三五,三六,三七,三八,三九' ;
    + '四四,四五,四六,四七,四八,四九' ;
    + ',五五,五六,五七,五八,五九' ;
    + ',六六,六七,六八,六九' ;
    + ',七七,七八,七九,八八,八九,九九'
For ii = 1 to ALines(aFlds, cFlds, 1+4, ',')
    Insert into (cTemp) (code) Values (aFlds[ii])
EndFor
*************************************************临时表

Select 历史
Scan all
    Scatter name oRec Fields 期号,组选号
    c双飞号 = Chrtran('XY,XZ,YZ', 'XYZ', m.oRec.组选号)
    For jj = ALines(a双飞号, c双飞号, 1+4, ',') to 2 step -1
        If a双飞号[jj] == a双飞号[jj-1]        && 去重
            a双飞号[jj] = ''
        EndIf
    EndFor
    For jj = 1 to Alen(a双飞号)
        If !Empty(a双飞号[jj])
            c双飞号 = Chrtranc(a双飞号[jj], '0123456789', '零一二三四五六七八九')
            Insert into (cTemp) (code, cnt) Values (c双飞号, 1)
        EndIf
    EndFor
EndScan
*****************************************************************************这里没看明白,好像是先写入到临时表,然后下面在写入到sql数据库里面
Select code, Sum(cnt) as cnt from (cTemp) group by code into cursor (cTemp)
Select (cTemp)
cUpd = ''
cFld = '[用户名]'
cVal = ['&user_']
Scan all
    cUpd = cUpd + Textmerge(',[<<code>>]=<<cnt>>')
    cFld = cFld + Textmerge(',[<<code>>]')
    cVal = cVal + Textmerge(',<<cnt>>')
EndScan
Text to m.cSql Noshow textmerge pretext 1+2+4
    If Exists (Select * from [历史统计双飞] where [用户名] = '<<user_>>')
        Update [历史统计双飞] set <<Substr(cUpd,2)>> where [用户名] = '<<user_>>';
    Else
        Insert [历史统计双飞] (<<cFld>>) Values (<<cVal>>);
EndText
******************************************************************************sql语句操作
*-- 更新到后台
SQLSetProp(nHandle, "Transactions", 1)
nResult = SQLExec(nHandle, cSql, cTemp)
Use in Select(cTemp)

******************************************************************************
我现在想直接输出到标签,不用数据库这块了,用数据库好像会影响速度,没有标签来得快,数据库表多了会对配置低点的电脑会有影响
如图:
我框起来的是四个容器,容器里面是标签,我需要你把值写入到数组,然后我控制数组去输出,或许你本来就是输出到数组的,中间那段程序我没看懂
我想用简单的方式,复杂了我看不懂
例如:你把数据输出到数组,我用循环去打印到标签就可以了
a[55]
我可以
for i=1 to 55
赋值给变量
b(i)=a(i)
endfor
for i=1 to x
输出标签
endfor
或者你直接帮我写好也可以,我四个容器的名称是Container17,Container19,Container21,Container23
23是7个标签,其他都是12个标签,标签名称都是排好了的,1到12
感谢!要不收个徒吧,不然老是找你,我都不好意思了,其他人也明白不了,现在就你一个人明白意思,我也只能找你
搜索更多相关主题的帖子: Select code 输出 For 标签 
2023-04-21 22:41
csyx
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:29
帖 子:484
专家分:1827
注 册:2018-3-13
得分:4 
今天周末没时间仔细看这些,明天吧,没解决的话我抽空帮你改
这个学习交流的论坛,其他话题就别提了
建议帖子标题上最好不要点名,可能愿意帮你的人看到标题也不好出手了

[此贴子已经被作者于2023-4-21 23:21编辑过]

2023-04-21 23:17
csyx
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:29
帖 子:484
专家分:1827
注 册:2018-3-13
得分:4 
双飞号.rar (1.14 KB)
2023-04-22 08:06
hytizj023
Rank: 1
等 级:新手上路
帖 子:166
专家分:7
注 册:2023-3-2
得分:0 
以下是引用csyx在2023-4-22 08:06:35的发言:

2023-04-22 09:25
hytizj023
Rank: 1
等 级:新手上路
帖 子:166
专家分:7
注 册:2023-3-2
得分:0 
以下是引用csyx在2023-4-22 08:06:35的发言:
你那个东西,我没看明白,看得我一头雾水
要不在改一下

cTemp = Sys(2015)
Create Cursor (cTemp) (code V(4), cnt I)
cFlds = '零零,零一,零二,零三,零四,零五,零六,零七,零八,零九' ;
    + ',一一,一二,一三,一四,一五,一六,一七,一八,一九' ;
    + ',二二,二三,二四,二五,二六,二七,二八,二九' ;
    + ',三三,三四,三五,三六,三七,三八,三九' ;
    + '四四,四五,四六,四七,四八,四九' ;
    + ',五五,五六,五七,五八,五九' ;
    + ',六六,六七,六八,六九' ;
    + ',七七,七八,七九,八八,八九,九九'
For ii = 1 to ALines(aFlds, cFlds, 1+4, ',')
    Insert into (cTemp) (code) Values (aFlds[ii])
EndFor
Select 历史
Scan all
    Scatter name oRec Fields 期号,组选号
    c双飞号 = Chrtran('XY,XZ,YZ', 'XYZ', m.oRec.组选号)
    For jj = ALines(a双飞号, c双飞号, 1+4, ',') to 2 step -1
        If a双飞号[jj] == a双飞号[jj-1]        && 去重
            a双飞号[jj] = ''
        EndIf
    EndFor
    For jj = 1 to Alen(a双飞号)
        If !Empty(a双飞号[jj])
            c双飞号 = Chrtranc(a双飞号[jj], '0123456789', '零一二三四五六七八九')
            Insert into (cTemp) (code, cnt) Values (c双飞号, 1)
        EndIf
    EndFor
EndScan
Select code, Sum(cnt) as cnt from (cTemp) group by code into cursor (cTemp)
Select (cTemp)
程序到这里,我觉得就可以了,只需要在重新排一下序,从零零排到九九
我在用SCATTER TO b,来处理后面的东西
因为你现在的排序是字母排序,我无法下手啊
2023-04-22 11:41
hytizj023
Rank: 1
等 级:新手上路
帖 子:166
专家分:7
注 册:2023-3-2
得分:0 
2023-04-22 20:24
csyx
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:29
帖 子:484
专家分:1827
注 册:2018-3-13
得分:0 
哦,是的,忘了 code 是中文了 简单,先替换成阿拉伯数字再汇总排序

Select code, Sum(cnt) as cnt from (cTemp) group by code into cursor (cTemp)
改成
Update (cTemp) set code = Chrtranc(code, '零一二三四五六七八九', '0123456789')
Select code, Sum(cnt) as cnt from (cTemp) group by code order by code into cursor (cTemp)

就你现在这需求,一开始就应该使用阿拉伯数字,而不是用中文数字,懒得改前面的了
2023-04-22 20:47
csyx
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:29
帖 子:484
专家分:1827
注 册:2018-3-13
得分:0 
还 scatter to 数组干啥,直接到数组就行了

Update (cTemp) set code = Chrtranc(code, '零一二三四五六七八九', '0123456789')
Select code, Sum(cnt) as cnt from (cTemp) group by code order by code into array a双飞统计

2023-04-22 20:50
csyx
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:29
帖 子:484
专家分:1827
注 册:2018-3-13
得分:0 
不做无用功的话应该这样
1. 最前面的定义用阿拉伯数字
cFlds = '00,01,02,.....,09' ;
    + ',11,12, ....'
    + ...
    + ',77,78,79,88,89,99'

2.

红框里面两句简化成
Insert into (cTemp) (code, cnt) Values (a双飞号[jj], 1)

3. 7,8 楼的代码也不用了
2023-04-22 21:02
hytizj023
Rank: 1
等 级:新手上路
帖 子:166
专家分:7
注 册:2023-3-2
得分:0 
以下是引用csyx在2023-4-22 21:02:53的发言:

不做无用功的话应该这样
1. 最前面的定义用阿拉伯数字
cFlds = '00,01,02,.....,09' ;
    + ',11,12, ....'
    + ...
    + ',77,78,79,88,89,99'

2.
红框里面两句简化成
Insert into (cTemp) (code, cnt) Values (a双飞号[jj], 1)

3. 7,8 楼的代码也不用了

cTemp = Sys(2015)
Create Cursor (cTemp) (code V(4), cnt I)
cFlds = '00,01,02,03,04,05,06,07,08,09' ;
    + ',11,12,13,14,15,16,17,18,19' ;
    + ',22,23,24,25,26,27,28,29' ;
    + ',33,34,35,36,37,38,39' ;
    + ',44,45,46,47,48,49' ;
    + ',55,56,57,58,59' ;
    + ',66,67,68,69' ;
    + ',77,78,79' ;
    + ',88,89 ';
    + ',99'
   
For ii = 1 to ALines(aFlds, cFlds, 1+4, ',')
    Insert into (cTemp) (code) Values (aFlds[ii])
EndFor
Select 历史
Scan all
    Scatter name oRec Fields 期号,组选号
    c双飞号 = Chrtran('XY,XZ,YZ', 'XYZ', m.oRec.组选号)

    For jj = ALines(a双飞号, c双飞号, 1+4, ',') to 2 step -1
        If a双飞号[jj] == a双飞号[jj-1]        && 去重
            a双飞号[jj] = ''
        EndIf
    EndFor

    For jj = 1 to Alen(a双飞号)
        If !Empty(a双飞号[jj])
                Insert into (cTemp) (code, cnt) Values (a双飞号[jj], 1)   
               
        EndIf
    EndFor
EndScan

*Select code, Sum(cnt) as cnt from (cTemp) group by code into cursor (cTemp)&&这句没问题!
Select code, Sum(cnt) as cnt from (cTemp) group by code into array a双飞统计    &&用这句不对啊!数据都不对了
现在只需要把cnt存到数组就可以了,code没用了。我只需要值,然后把值输出到标签就OK了



[此贴子已经被作者于2023-4-22 22:36编辑过]

2023-04-22 22:29



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-512000-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.175814 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved