2013-04-12 34 views
0

我有三个表格,第一个用于合作伙伴名称,第二个用于质量,第三个用于存储采购订单的 。目前我开发了带有文本框的订单输入表单。 当我在同一天有不同质量的一方10或20多个订单时,很难进入订单。 现在我想让它在网格中。首先选择日期,然后按照您的意愿输入订单。但我不知道如何在Visual Foxpro中做到这一点。我尝试了很多来找到一些样本或例子,但没有找到。还有一件事我想在这里提到,这是我的唯一一种形式从我的4形式的应用程序。我需要知道如何在网格中进行计算。基于Visual Foxpro数据网格的输入屏幕表格

请帮忙。

回答

0

在VFP命令窗口中,打开任务窗格管理器并选择解决方案示例。搜索网格,你会发现一堆使用网格的例子。

+0

我试过但不是gtnd wht我想要的。还有一件事我想在这里提到Solution Sample没有任何好的示例来学习数据网格编程。 –

0

这样的事情?

createtables() 
ON ERROR 
oForm = CREATEOBJECT("myform") 
oForm.visible = .t. 
READ EVENTS 
DEFINE CLASS mygrid as grid 
    PROCEDURE init 
     this.top = 40 
     this.Left = 10 
     this.Width = 450 
     this.ColumnCount = 6 
     this.DeleteMark = .f. 
     this.RecordMark = .f. 
     this.RecordSource = "porders" 
     this.column1.ControlSource = this.RecordSource + ".podate" 
     this.column1.Header1.Caption = "PO Date" 
     this.column1.width = 75  
     this.column2.ControlSource = this.RecordSource + ".ponum" 
     this.column2.Header1.Caption = "PO Num" 
     this.column2.width = 65 
     this.column3.ControlSource = this.RecordSource + ".poparty"   
     this.column3.Header1.Caption = "Party" 
     this.column3.width = 65 
     this.column4.ControlSource = this.RecordSource + ".poqty" 
     this.column4.Header1.Caption = "Qty" 
     this.column4.width = 65 
     this.column5.ControlSource = this.RecordSource + ".poprice" 
     this.column5.Header1.Caption = "Price" 
     this.column5.width = 65 
     this.column6.addobject("oqualities", "myqualities") 
     this.column6.CurrentControl = "oqualities" 
     this.column6.width = 65 
     this.column6.sparse = .t. 
     this.column6.Header1.Caption = "Quality" 
     this.column6.ControlSource = this.RecordSource + ".poquality"  
    ENDPROC 
ENDDEFINE 
DEFINE class mycombo as combobox 
    PROCEDURE init 
     this.top = 10 
     this.left = 150 
     this.Style = 2 
     this.RowSource = "parties.name" 
     this.RowSourceType = 6  
    ENDPROC  
    PROCEDURE interactivechange 
     SELECT (this.Parent.oGrid.RecordSource) 
     lcVal = ["] + ALLTRIM(this.value) + ["] 
     SET FILTER TO ALLTRIM(poparty) = &lcVal  
     this.Parent.ogrid.refresh() 
    ENDPROC 
ENDDEFINE 
DEFINE class myqualities as combobox 
    PROCEDURE init 
     this.Style = 2 
     this.RowSource = "qualities.desc" 
     this.RowSourceType = 6  
    ENDPROC  
ENDDEFINE 
DEFINE CLASS mybutton as commandbutton 
    PROCEDURE init 
     LPARAMETERS tcMode 
     this.Caption = tcMode 
     this.Top = 250 
     this.Left = 10 
    ENDPROC 
    PROCEDURE click  
     IF this.Caption == "ADD" 
      IF EMPTY(ALLTRIM(this.Parent.oparties.value)) 
       MESSAGEBOX("Please select party") 
       RETURN .f. 
      ENDIF 
      SELECT (this.Parent.ogrid.recordsource)   
      APPEND BLANK 

      replace podate WITH this.parent.odate.value, ; 
        ponum WITH INT(RAND()*100000), ; 
        poparty WITH this.Parent.oparties.value, ; 
        poqty WITH 1      

      this.Parent.ogrid.setfocus() 
     ENDIF 
    ENDPROC 
ENDDEFINE 
DEFINE CLASS mydate as TextBox 
    PROCEDURE init 
     this.Value = DATE() 
     this.Left = 10 
     this.Top = 10 
    ENDPROC 
ENDDEFINE 
DEFINE CLASS myform as form 
    PROCEDURE init 
     this.AddObject("ogrid", "mygrid") 
     this.AddObject("odate", "mydate") 
     this.AddObject("oparties", "mycombo") 
     this.AddObject("oAdd", "mybutton", "ADD")    
     this.ogrid.visible = .t. 
     this.oparties.visible = .t. 
     this.oAdd.visible = .t. 
     this.odate.visible = .t.   
     this.Height = 300 
     this.Width = 470 
     this.Visible = .t. 
    ENDPROC 
ENDDEFINE 
PROCEDURE createtables 
    IF !USED('parties') 
     CREATE TABLE parties FREE (name c(20)) 
     INSERT INTO parties values("John") 
     INSERT INTO parties values("Richard") 
     INSERT INTO parties values("Melvin") 
    ENDIF 
    IF !USED('qualities') 
     CREATE TABLE qualities FREE (desc c(20)) 
     INSERT INTO qualities values("GOOD") 
     INSERT INTO qualities values("BAD") 
     INSERT INTO qualities values("SMELLY") 
    ENDIF 
    IF !USED('porders') 
     CREATE TABLE porders FREE (ponum i, podate D, poparty c(20), poqty n(10,2), poprice n(10,2), poquality c(20)) 
    ENDIF 
ENDPROC