How about first some query questions written in basic regarding the options
available, and then followed by an internal building of the headings so left
parts are left justified, center parts are center justified, right parts are
right justified, and then building query statement within the program and
PERFORM'ing that?

This is what I do for a MvBASE client and the results are really nice.
Multiple options selected can be included as part of the headings, and it's
easy as pie since I have variables that I just plop in the options selected
and the programming does the auto-justification!

This way I can do things normally only 'doable' in a program, but still let
the query language do all the reporting work.  Headings come out perfectly
every time and the first time with no guessing.  Different options selected
which in a proc would throw the headings off, still come out perfect.

SETUP.HEADINGS:
  RPT.HDNG    = 'Report Title Goes Here'
  RPT.HDNG<2> = OPTION.TEXT
  LINE.SIZE   = 132
  COMPANY     = 'Client Name Goes Here'
  *#* GENERIC HEADINGS DO NOT MODIFY THIS CODE
  *
  IF NOT(MOD(LEN(COMPANY),2)) THEN COMPANY = ' ':COMPANY
  HALF.SIZE = INT(LINE.SIZE/2)
  OPEN '', 'SYSTEM' TO SYSTEM ELSE STOP CANNOT OPEN SYSTEM FILE
  LOGON = SYSTEM(19)
  PORT  = SYSTEM(18)
  READ SYS.REC FROM SYSTEM, LOGON ELSE SYS.REC = ''
  IF SYS.REC<1> = 'D' THEN
    LOGON.ACCOUNT = LOGON
  END ELSE
    LOGON.ACCOUNT = SYS.REC<2>
  END
  *
  IDATE = DATE()
  TEMP  = OCONV(IDATE,'DWA')
  DAY   = TEMP[1,1]:OCONV(TEMP[2,10],'MCL')
  TIME  = OCONV(TIME(),'MTH')
  DATE  = OCONV(IDATE,'D2/')
  *
  SEC.1 = PGM.NAME:' ':TIME
  SEC.2 = COMPANY
  SEC.3 = 'Port ':PORT:' Acct ':LOGON.ACCOUNT[40]:'  Page'
  L2SC1 = DAY:' ':DATE

  *
  SEC.1.LEN = LEN(SEC.1)
  SEC.2.LEN = INT(LEN(SEC.2)/2)
  SEC.3.LEN = LEN(SEC.3)+5 ; *Add five digits to account for space & page #
at eol
  *
  L2SC1.LEN = LEN(L2SC1)
  RPT1H.LEN = INT(LEN(RPT.HDNG<1>)/2)
  *
  HDNG.1                        = ''
  HDNG.1[1,SEC.1.LEN]           = SEC.1
  HDNG.1[HALF.SIZE - SEC.2.LEN] = SEC.2
  HDNG.1[LINE.SIZE - SEC.3.LEN] = SEC.3
  *
  HDNG.1 = HDNG.1[1,LINE.SIZE-5]
  *
  HDNG.2                        = ''
  HDNG.2[1,L2SC1.LEN]           = L2SC1
  HDNG.2[HALF.SIZE - RPT1H.LEN] = RPT.HDNG<1>
  *
  HDNG.3   = SPACE(HALF.SIZE-LEN(RPT.HDNG<2>)/2):RPT.HDNG<2>
  HDNG.4   = SPACE(HALF.SIZE-LEN(RPT.HDNG<3>)/2):RPT.HDNG<3>
  HDNG.5   = SPACE(HALF.SIZE-LEN(RPT.HDNG<4>)/2):RPT.HDNG<4>
  PAGE.CNT = 0
  LINE.CNT = 99
  *
  *#* END OF GENERIC HEADINGS
  *
  * Now make what would normally be headings in a program, into PICK
headings
  HDNG.1 := "'":'PL':"'"
  HDNG.2 := "'":'L':"'"
  HDNG.3 := "'":'L':"'"
  HEADINGS = HDNG.1:HDNG.2:HDNG.3
  RETURN

-----Original Message-----
From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED] Behalf Of MAJ Programming
Sent: Monday, March 12, 2007 06:33
To: u2-users@listserver.u2ug.org
Subject: Re: [U2] Reports In Universe BASIC


Can't wait for the answers on this one.

My submissions are:
1. External SSELECT then report formatting in Basic.
2. Parameters gathered in BASIC then report formatting in Basic.
3. Parameters gathered in BASIC then create an EXECUTEable TCL statement for
the report.

This thread should get interesting. Refer to last week's Anita and Marinko's
newbie requests and this falls directly into it.

My side bet is going to be how differently BREAK-ON's are handled with
Basic. Also, the inclusion of secondary files, simultaneous report sections
etc. This could get ugly.

My 1 cent
Mark Johnson
----- Original Message -----
From: "Sanjeebkumar Sarangi" <[EMAIL PROTECTED]>
To: <u2-users@listserver.u2ug.org>
Sent: Monday, March 12, 2007 7:00 AM
Subject: [U2] Reports In Universe BASIC


> Hi
>
> What type of report is generated in Universe Basic ?
> Can any one tell me how to write a program that will generate a report ?
> Please give me some example that will provide me a clear idea regarding
> reports generation in Universe Basic.
>
> Sanjeeb
> =====-----=====-----=====
> Notice: The information contained in this e-mail
> message and/or attachments to it may contain
> confidential or privileged information. If you are
> not the intended recipient, any dissemination, use,
> review, distribution, printing or copying of the
> information contained in this e-mail message
> and/or attachments to it are strictly prohibited. If
> you have received this communication in error,
> please notify us by reply e-mail or telephone and
> immediately and permanently delete the message
> and any attachments. Thank you
> -------
> u2-users mailing list
> u2-users@listserver.u2ug.org
> To unsubscribe please visit http://listserver.u2ug.org/
-------
u2-users mailing list
u2-users@listserver.u2ug.org
To unsubscribe please visit http://listserver.u2ug.org/
-------
u2-users mailing list
u2-users@listserver.u2ug.org
To unsubscribe please visit http://listserver.u2ug.org/

Reply via email to