面向对象操作的一个难题 ( 积分: 100 )

  • 主题发起人 主题发起人 sxdthonda
  • 开始时间 开始时间
S

sxdthonda

Unregistered / Unconfirmed
GUEST, unregistred user!
我现在遇到一个问题。描述如下:<br>数据库中有如下几个表:<br>1、Product表,记录配件名称及编号;<br>2、Price表,记录配件的进货价(注:一个商品可能会有多个进货价);<br>3、Rt_Repair表,修理记录主表;(该主表下还有一个表Rt_Parts用来记录该次维修所使用到的配件)<br>4、Rt_Parts表,修理记录使用的配件。(注:一个Rt_Repair对应1..*个Parts)<br>说明,上面这几个表是一个系统会用到的。我不能对这些表做修改删除操作,只能读取这里的数据。现在因为这个系统没有财务统计方面的功能。<br>我需要实现一个如下的功能。<br>输入一个Rt_repair表的单号,然后读出该单对应的Rt_Parts信息,然后把Rt_Parts分两种类型,一种是只有单一进货价的配件(这个已经解决);另一种是存在多进货价的配件,在找出多进货价的配件信息后,将这些信息显示给用户,然后让用户对每一种多进价商品对应的不同进货价进行分配(说明:如果一个配件存在多个进货价,而一个修理单中如果使用了3个该配件,那不同的进货价对应出货的数量由财务人员去决定)。<br><br>我现在的实现是使用两个Stringgrid分别用来存放:1、只有单一进价的配件;2、有多进价的配件。<br>但在实现对多进货配件的不同价位出货分配是没法实现分配(这个需要人工去操作!),不知大家有什么好方法呀。(注:我不喜欢使用临时表之类的处理方法,希望能使用对象来操作!)
 
用类进行操作,对一种配件建一个类,该类用这么几个属性:<br>//价格类<br>TPrice&nbsp;=class<br>private<br>&nbsp;&nbsp;FPrice&nbsp;:&nbsp;float;//价格<br>&nbsp;&nbsp;FNum&nbsp;&nbsp;&nbsp;&nbsp;:&nbsp;float;//该价格的数量<br>public<br>&nbsp;&nbsp;...<br>&nbsp;&nbsp;property&nbsp;Price&nbsp;:&nbsp;float&nbsp;read&nbsp;FPrice&nbsp;write&nbsp;FPrice;<br>&nbsp;&nbsp;property&nbsp;Num&nbsp;:&nbsp;float&nbsp;read&nbsp;FNum&nbsp;write&nbsp;FNum;<br>end;<br>//价格列表类<br>TPriceList=class(TObjectList)<br>......<br>public<br>&nbsp;&nbsp;property&nbsp;items[index]:TPrice&nbsp;read..&nbsp;write..;<br>end;<br>//配件类<br>TFitting=class<br>private<br>&nbsp;&nbsp;FPriceList&nbsp;:&nbsp;TPriceList;<br>public<br>&nbsp;&nbsp;constructor&nbsp;create;<br>&nbsp;&nbsp;destructor&nbsp;&nbsp;destroy;override<br>&nbsp;&nbsp;property&nbsp;&nbsp;PriceList&nbsp;:&nbsp;TPriceList&nbsp;read&nbsp;FPriceList&nbsp;Write&nbsp;FPriceList;<br>end;<br>constructor&nbsp;TFitting.create;<br>var<br>&nbsp;&nbsp;Price:TPrice;<br>begin<br>&nbsp;&nbsp;FPriceList&nbsp;:=&nbsp;TPriceList.Create;<br>&nbsp;&nbsp;读取数据,例如价格等<br>&nbsp;&nbsp;Price:=TPrice.Create;<br>&nbsp;&nbsp;FPriceList.items.add(Price);<br>end;<br>//---------------------在实际使用的时候-------------------------<br>Fitting.PriceList.Items.Price&nbsp;表示价格i;<br>Fitting.PriceList.Items.Num&nbsp;表示价格i对应的数量;<br>然后用户确定时,就根据类写进数据库中即可。
 
xingkong97,提供的方法很好,呵呵,我先研究一下,有不懂的地方再请教。
 
哈哈,多谢xingkong97,问题已经处理![:D]
 
后退
顶部