progress 4gl - how to calculate total balance per state per country using accumulate function in openedge -
i have tried code.
define variable totalbalance decimal     no-undo.  define frame f1      centered three-d size 100 50. each customer no-lock break country frame f1:      accumulate balance(total country).     if first-of(customer.country)         display customer.country.     display customer.state customer.balance.     if last-of(customer.country)     do:             display skip fill("-", 25) @ 50 format "x(25)".          display accum total customer.balance @ 51.          display skip fill("-", 25) @ 50 format "x(25)".     end. end.   it gives total balance per country want display total balance per state.
you not have "break state" nothing state.
something (not tested):
define frame f1      centered .  each customer no-lock break country state frame f1:      accumulate balance( total country ).     accumulate balance( sub-total state ).      if first-of( customer.country )         display customer.country.      if first-of( customer.state )         display customer.state.      display customer.balance.      if last-of( customer.country )       do:         display skip fill( "-", 25 ) @ 50 format "x(25)".         display accum total customer.balance @ 51.         display skip fill( "-", 25 ) @ 50 format "x(25)".       end.      if last-of( customer.state )       do:         display skip fill( "-", 25 ) @ 80 format "x(25)".         display accum sub-total customer.balance @ 81.         display skip fill( "-", 25 ) @ 80 format "x(25)".       end.  end.   (that doesn't work... multiple clauses main thing missing.)
personally find accum syntax unpleasant , not worth bothering with. create , manage simple variables. find sort of coding cleaner. unless "gotchya" question on skills test suggest avoid coding in manner. if "gotchya" question move on more suitable prospective employer -- don't want work thinks idea.
i more this:
define variable countrybalance decimal no-undo. define variable statebalance   decimal no-undo.  each customer no-lock break country state frame f1:      if first-of( customer.country )       do:         display customer.country.         countrybalance = 0.       end.      if first-of( customer.state )       do:         display customer.state.         statebalance = 0.       end.      assign       countrybalance = countrybalance + customer.balance       statebalance   = statebalance  + customer.balance     .      display customer.balance.      if last-of( customer.country )       do:         display countrybalance.       end.      if last-of( customer.state )       do:         display statebalance.       end.  end.   i think whole lot easier read, understand , maintain.
Comments
Post a Comment