熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> PB編程 >> 正文

在PB中實現數據錄入維持序號連續性的簡單實現[1]

2013-11-23 17:27:28  來源: PB編程 

  在實際開發應用程序中常常會碰到數據行增加插入刪除要求保持數據行的某一字段值的連續性如在職工表中希望按職務高低賦予不同的連續的值以便按職務高低進行顯示在制定工作任務或計劃時能體現 … 連續的子項目在此將此類要求連續的值稱為序號則要求程序能實現以下功能

  )增加(追加)數據行時能根據當前數據的總行數(n)追加新序號為(n+

  )插入數據行時能根據當前所在行的序號(r)將序號大於和等於(r)的值都加上即序號(r)被賦予給新 插入的數據行而原來序號rr+n的數據行序號變為r+r+n+

  )刪除數據行時能根據當前所在行的序號(r)將序號大於和等於(r)的值都減去即原來序號rr+n的數據行序號變為rrn

  對於程序員來說實現上述三個功能邏輯上來說比較簡單但對於具體開發語言實現起來卻有一定的難度特別是當序號是關鍵字組成之一時更是較為困難本人曾用Delphi開發一訂貨程序為實現訂貨明細錄入具有以上功能竟然為此編制了三個後台存儲過程才得與實現雖可在前台實現但數據行大於幾十行時速度其慢無比而當時一個訂貨明細數據行一般在千條以上

  而在Powerbuilder在保證較好的響應速度可直接在前台實現上述功能簡直是小菜一碟這主要是Powerbuilder與Delphi對數據控制的機制不同而造成的

  下面就在Powerbuilder中實現上述功能的方法舉例予以說明

  創建一個employee表如下

  create table employee(

  serial number //序號

  name varchar //姓名

  duty varchar //職務

  primary key(serial) //設置字段serial為主鍵

  )

  假設表中將插入如下數據要求按職位高低進行顯示在此例中序號即表示了職務的高低

  序號  姓名  職務

    board chairman  董事長

    general manager  總經理

   manager  經理

  創建一個性新的庫稱作autoserialpbl以及一個應用程序對象稱作a_autoserial

  使用DataWindow畫板創建一個數據窗口對象dw_employee

  Data Source選擇Quick Select或SQL Select

  Presentation Style選擇Grid

  Table 選擇剛創建的employee

  Selection List 選擇serialnameduty (注意serial字段在Selection List中的位置)

  使用Window畫板創建一個窗口w_autoserial並在窗體中放入以下控件

  控件名   屬性   值

  DataWindows Control   Name  dw_

  DataWindows Object   Name   dw_employee

  HScrollBar   TRUE

  VScrollBar   TRUE

  Command Button   Name   cb_insert

  Text   插入

  Command Button   Name   cb_add

  Text   增加

  Command Button   Name   cb_delete

  Text   刪除

  Command Button   Name   cb_save

  Text   保存

[]  []  


From:http://tw.wingwit.com/Article/program/PB/201311/24614.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.