Progress 4Gl
  Sample coding
 

/* Browse All Properties */

/* CODING */

 

Define Variable lv-int As Integer No-undo.

Define Variable lv-name-list As Character No-undo.

Define Variable lv-log As Logical No-undo.

Define Variable lv-cust-name As Character No-undo Label "customer details" Format "X(40)".

Define Button btn-list Label "list...".

Define Button btn-add Label "add".

Define Button btn-delete Label "Delete".

 

Define Query q1 For customer.

Define Browse b1 Query q1 Display cust-num Name credit-limit Enable Name credit-limit With 10 Down Multiple Separators Title "customer details".

 

Define Frame f

    b1 Skip(2)

    lv-cust-name Skip(2)

    btn-list At 15 SPACE(3) btn-add Space(3) btn-delete

    With Side-labels No-box Three-d.

 

ON 'row-leave':U OF b1

DO:

    Define Variable lv-recid As Recid No-undo.

    If b1:new-row Then

    Do:

        Create customer.

        Assign Input Browse b1 Name credit-limit.

    End.

 

 /*reposition currently created row*/

 

lv-recid=Recid(customer).

Open Query q1 For Each customer.

    Reposition q1 To Recid lv-recid.

    b1:Select-focused-row().

End.

 

/* trigger part start*/

 

ON 'value-changed':U OF b1

 

DO:

    Define Variable lv-handle As Handle No-undo.

    lv-handle=browse b1:Handle.

    If Valid-handle(lv-handle) Then

        lv-handle=lv-handle:First-column.

    Do While Valid-handle(lv-handle):

        Assign

            lv-handle:Fgcolor=2

            lv-handle:Bgcolor=5

            lv-handle:font =12

            lv-handle=lv-handle:Next-column.

 

    End.

END.

 

    ON 'choose':U OF btn-delete

    DO:

        Message "are you want to delete the recod" View-as Alert-box Question Buttons Yes-no Update lv-log as Logical.

        If lv-log =yes  Then

        Do:

            Get Current q1 Exclusive-lock.

            Delete customer.

            b1:Refresh().

        End.

         END.

 

         ON 'choose':U OF btn-add

         DO:

             b1:Insert-row("after").

        

         END.

 

         ON 'choose':U OF btn-list

         DO:

             Do lv-int=1 To b1:Num-selected-rows:

                 lv-log=b1:Fetch-selected-row(lv-int).

                 If lv-log=Yes Then

                     lv-name-list=lv-name-list + ( If lv-name-list <> "" Then "," Else "") + customer.Name.

         End.

             lv-cust-name:Screen-value=lv-name-list.

         END.

 

         Open Query q1 For Each customer.

 

         Enable All With Frame f SIZE 70 BY 20.

         Wait-for Close of Current-window.

 

 

 

/* Aggregate Total */

 

DEFINE VARIABLE pno AS INTEGER    NO-UNDO.

DEFINE VARIABLE pname AS CHARACTER  NO-UNDO.

DEFINE VARIABLE price AS DECIMAL    NO-UNDO.

DEFINE VARIABLE purchase AS INTEGER    NO-UNDO.

DEFINE VARIABLE amount AS DECIMAL    NO-UNDO.

DEFINE VARIABLE tot AS INTEGER    NO-UNDO.

 

REPEAT :

      SET pno.

      SET pname.

      SET price.

      SET purchase.

      amount = price * purchase.

      DISPLAY pno pname price purchase amount(SUM LABEL "Total   Amount").                     

 END.

/* Using No-Wait */

  FIND FIRST customer WHERE customer.cust-num=1 NO-ERROR NO-WAIT.

    IF LOCKED customer THEN

        MESSAGE "Record Is Locked" VIEW-AS ALERT-BOX.

    ELSE

        DISPLAY customer.

    FIND NEXT customer.

      DISPLAY customer.

 

 
   
 
This website was created for free with Own-Free-Website.com. Would you also like to have your own website?
Sign up for free