| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 741 人关注过本帖
标题:[求助]:哪位大侠帮小弟解决一下这个程序怎么编?
只看楼主 加入收藏
weileai
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2011-6-27
收藏
得分:0 
回复 10楼 muyubo
把你的QQ留下,我给你发截图,说的自习些!我的QQ 835860898
2011-06-27 21:24
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:7 
图片附件: 游客没有浏览图片的权限,请 登录注册


程序代码:
CLEAR ALL 
CLOSE DATABASES ALL 
SET EXCLUSIVE ON 
Main()
RETURN 

PROCEDURE Main()
    LOCAL frm_Main AS Form 
    frm_Main = CREATEOBJECT("_Main")
    frm_Main.Show
    READ EVENTS
ENDPROC 

DEFINE CLASS _Main AS Form 
    Caption = "論壇作業"
    Width = 600
    Height = 400
    AutoCenter = .T.
    ShowTips = .T.
    
    ADD OBJECT grd_Data AS Grid
    ADD OBJECT cmd_Adjust AS CommandButton WITH Caption = "調整價格", Height = 25, Width = 80, ToolTipText = "等級1調升10.0" + CHR(13)+CHR(10) + "等級2調升5.0"
    
    PROCEDURE Load
        USE cpjg IN 0
    ENDPROC 
    
    PROCEDURE Unload
        USE IN cpjg
    ENDPROC 
    
    PROCEDURE Destroy
        CLEAR EVENTS 
    ENDPROC 
    
    PROCEDURE Activate
        ThisForm.Arrange
    ENDPROC 
    
    PROCEDURE Resize
        ThisForm.Arrange
    ENDPROC 
    
    PROCEDURE Arrange
        WITH ThisForm.cmd_Adjust
            .Top = ThisForm.Height - .Height - 5
            .Left = 20
        ENDWITH 
        WITH ThisForm.grd_Data
            .Top = 0
            .Left = 5
            .Height = ThisForm.cmd_Adjust.Top - .Top - 5
            .Width = ThisForm.Width - .Left - 5
        ENDWITH 
    ENDPROC 
    
    PROCEDURE grd_Data.Init
        LOCAL aList[FCOUNT("cpjg")]
        LOCAL nIndex AS Integer 
        
        aList[1] = "代碼"
        aList[2] = "品名"
        aList[3] = "等級"
        aList[4] = "價格"
        WITH ThisForm.grd_Data
            .DeleteMark = .F.
            .RecordMark = .F.
            .HighlightStyle = 2
            .RecordSourceType = 1
            .RecordSource = "cpjg"
            .ReadOnly = .T.
            .ColumnCount = FCOUNT("cpjg")
            FOR nIndex = 1 TO .ColumnCount
                .Columns(nIndex).ControlSource = "cpjg." + FIELD(nIndex, "cpjg")
                WITH .Columns(nIndex).Header1
                    .Caption = aList[nIndex]
                    .Alignment = 2
                    .FontBold = .T.
                ENDWITH 
            NEXT 
            .Columns(3).InputMask = "999.99"
            .Columns(4).InputMask = "999.99"
        ENDWITH 
        
    ENDPROC 
    
    PROCEDURE cmd_Adjust.Click
        LOCAL nCurrentRecord AS Integer, nValue AS Currency 
        
        SELECT cpjg
        nCurrentRecord = RECNO("cpjg")
        SCAN ALL 
            DO CASE 
                CASE cpjg.c03 == 1
                    nValue = 10.0
                CASE cpjg.c03 == 2
                    nValue = 5.0
            ENDCASE 
            REPLACE cpjg.c04 WITH cpjg.c04 + nValue
        ENDSCAN 
        GOTO nCurrentRecord IN cpjg
        ThisForm.grd_Data.Refresh
        
    ENDPROC 

ENDDEFINE 


[ 本帖最后由 TonyDeng 于 2011-6-28 08:11 编辑 ]

授人以渔,不授人以鱼。
2011-06-28 00:23
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
補充說明一下:將12樓的代碼放在一個PRG文件中執行就可以了,不用任何可視化操作(個人觀點那是不值得提倡的)。

上面的代碼,因為使用了自由表,沒有利用DBC數據庫的Caption屬性獲取字段名稱,而是直接使用字段名(通常字段名最好不要用漢字,既爲兼容性著想,也爲自己打字方便著想),所以才要用數組設置字段列表,其實未必需要的。但現在是按表字段的物理順序排列表格順序,有時候未必是這樣的順序(在涉及數據庫和表結構時隨時增減字段導致順序混亂是很常見的事),或者Grid表格中要用到非數據庫數據來源的時候,這樣用數組設置表格欄目屬性的方法是很方便的。如果你願意,可以修改一下,Grid表格多置一列,一列顯示原價格,一列顯示調整後的價格,這樣就不用馬上刷改數據庫,確認後再灌進去(在實務工作中這是很容易理解的需求,用事務回滾,雖然提供了後悔機會,但也不及這樣直觀),此時可以加一個“審核”按鈕。

[ 本帖最后由 TonyDeng 于 2011-6-28 11:33 编辑 ]

授人以渔,不授人以鱼。
2011-06-28 11:26
快速回复:[求助]:哪位大侠帮小弟解决一下这个程序怎么编?
数据加载中...
 
   



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

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