which included commits to RCS files with non-trunk default branches. git-svn-id: svn://10.65.10.50/trunk@976 c028cbd2-c16b-5b4b-a496-9718f37d4682
		
			
				
	
	
		
			1012 lines
		
	
	
		
			35 KiB
		
	
	
	
		
			C
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			1012 lines
		
	
	
		
			35 KiB
		
	
	
	
		
			C
		
	
	
		
			Executable File
		
	
	
	
	
| /* r4report.h   (c)Copyright Sequiter Software Inc., 1992-1994.  All rights reserved. */
 | |
| 
 | |
| #ifndef __REPORT4HEADER
 | |
| #define __REPORT4HEADER
 | |
| 
 | |
| /* #include <windows.h> */
 | |
| 
 | |
| #define CREP_MASK 0x15  /* This masks the first byte of a .rep file */
 | |
| 
 | |
| #define START_VERSION_MASK 0x20
 | |
| #define VERSION_MASK 0x26
 | |
| #define STYLE_MASK 0x16
 | |
| 
 | |
| /* defined types used for specifying displayed units of measurement */
 | |
| #define UNIT4POINTS    1
 | |
| #define UNIT4INCHES    2
 | |
| #define UNIT4CM        3
 | |
| 
 | |
| /* defined total types used for internal flags */
 | |
| #define total4lowest  11
 | |
| #define total4highest 12
 | |
| #define total4count   13
 | |
| #define total4average 14
 | |
| #define total4sum     15
 | |
| 
 | |
| /* defined types for report output objects */
 | |
| #define obj4type_field       400
 | |
| #define obj4type_expr        401
 | |
| #define obj4type_total       402
 | |
| #define obj4type_calc        403
 | |
| #define obj4type_text        404
 | |
| #define obj4type_bitmap1     405
 | |
| #define obj4type_bitmap2     409
 | |
| #define obj4type_bitmap3     410
 | |
| #define obj4type_hline       406
 | |
| #define obj4type_vline       407
 | |
| #define obj4type_frame       408
 | |
| 
 | |
| /* defines used for specifying text alignment within an output object */
 | |
| #define justify4left   0
 | |
| #define justify4right  1
 | |
| #define justify4center 2
 | |
| 
 | |
| /* defines used for specifying display format for numeric values  */
 | |
| #define obj4numNumber   0
 | |
| #define obj4numExponent 1
 | |
| #define obj4numCurrency 2
 | |
| #define obj4numPercent  3
 | |
| 
 | |
| /* this define forces the use of the default index extension regardless of
 | |
|    what extension that was saved in the report file  */
 | |
| #define S4DEFAULT_INDEX 1
 | |
| 
 | |
| /* defines used for specifying current index format: these are for report
 | |
|    function use only  */
 | |
| #define r4mdx 1
 | |
| #define r4ndx 2
 | |
| #define r4cli 3
 | |
| #define r4fox 4
 | |
| 
 | |
| /* these defines are for running the report module under windows  */
 | |
| #ifdef S4WINDOWS
 | |
| /* user defined message sent by the report popup output window
 | |
|    to the report parent window upon closing the output window */
 | |
| #define CRM_REPORTCLOSED (WM_USER+1000)
 | |
| 
 | |
| #ifdef S4WIN32
 | |
| /* These macros are used for parsing commands in wind procs and are used
 | |
|    for portability between windows and NT */
 | |
| #define GET_WM_COMMAND_CMD(wp, lp)      HIWORD(wp)
 | |
| #define GET_WM_COMMAND_ID(wp, lp)       LOWORD(wp)
 | |
| #define GET_WM_COMMAND_HWND(wp, lp)     ((HWND)lp)
 | |
| 
 | |
| /* offsets into the extra bytes of the popup output window */
 | |
| #define PWIN_OFF_REPORT 0
 | |
| #define PWIN_OFF_BDC    4
 | |
| #define PWIN_OFF_HBIT   8
 | |
| #define PWIN_OFF_PGWIN  12
 | |
| #define PWIN_OFF_OLDOBJ 16
 | |
| 
 | |
| /* offsets into the extra bytes of the output page window */
 | |
| #define PGWIN_OFF_BDC   0
 | |
| #define PGWIN_OFF_HBIT  4
 | |
| #define PGWIN_OFF_YOFF  8
 | |
| 
 | |
| /* portability macros used for setting and getting info in the window
 | |
|    extra bytes */
 | |
| #define MGetWinP(a,b)  GetWindowLong( (HWND)a, (int)b )
 | |
| #define MSetWinP(a,b,c)  SetWindowLong( (HWND)a, (int)b, (LONG)c )
 | |
| #else
 | |
| /* These macros are used for parsing commands in wind procs and are used
 | |
|    for portability between windows and NT */
 | |
| #define GET_WM_COMMAND_CMD(wp, lp)      HIWORD(lp)
 | |
| #define GET_WM_COMMAND_ID(wp, lp)       (wp)
 | |
| #define GET_WM_COMMAND_HWND(wp, lp)     ((HWND)LOWORD(lp))
 | |
| 
 | |
| /* offsets into the extra bytes of the popup output window */
 | |
| #define PWIN_OFF_REPORT 0
 | |
| #define PWIN_OFF_BDC    4
 | |
| #define PWIN_OFF_HBIT   6
 | |
| #define PWIN_OFF_PGWIN  8
 | |
| #define PWIN_OFF_OLDOBJ 10
 | |
| 
 | |
| /* offsets into the extra bytes of the output page window */
 | |
| #define PGWIN_OFF_BDC   0
 | |
| #define PGWIN_OFF_HBIT  2
 | |
| #define PGWIN_OFF_YOFF  4
 | |
| 
 | |
| /* portability macros used for setting and getting info in the window
 | |
|    extra bytes */
 | |
| #define MGetWinP(a,b) GetWindowWord( (HWND)a, (int)b )
 | |
| #define MSetWinP(a,b,c) SetWindowWord( (HWND)a, (int)b, (WORD)c )
 | |
| #define MoveToEx(a, b, c, d) MoveTo( a, b, c )
 | |
| #endif
 | |
| 
 | |
| typedef struct{
 | |
|   long dtStyle;
 | |
|   BYTE dtItemCount;
 | |
|   int  dtX;
 | |
|   int  dtY;
 | |
|   int  dtCX;
 | |
|   int  dtCY;
 | |
| } DlgTemplateHeader;
 | |
| 
 | |
| typedef struct{
 | |
|   int  dtilX;
 | |
|   int  dtilY;
 | |
|   int  dtilCX;
 | |
|   int  dtilCY;
 | |
|   int  dtilID;
 | |
|   long dtilStyle;
 | |
| }DlgItemTemplateHeader;
 | |
| 
 | |
| typedef struct{
 | |
|   HANDLE hBmi;
 | |
|   HANDLE hDIBits;
 | |
| }R4DIBINFO, *PR4DIBINFO;
 | |
| 
 | |
| GLOBALHANDLE NewDlgTemplate( DWORD, WORD, WORD, WORD, WORD,
 | |
|                             LPSTR, LPSTR, LPSTR,
 | |
|                             LPSTR, WORD);
 | |
| 
 | |
|                             BOOL AddDlgItem( GLOBALHANDLE, DWORD, WORD, WORD, WORD,
 | |
|                                             WORD, LPSTR, LPSTR, BYTE, LPSTR,
 | |
|                                             int );
 | |
| 
 | |
|                                             int TemplateSize( GLOBALHANDLE );
 | |
| 
 | |
|                                             /*typedef struct tagLOGFONT R4LOGFONT;*/
 | |
|                                             /*typedef R4LOGFONT* PR4LOGFONT;*/
 | |
|                                             typedef HFONT R4HFONT;
 | |
|                                             typedef COLORREF R4COLORREF;
 | |
|                                             typedef BYTE R4BYTE;
 | |
|                                             typedef WORD R4WORD;
 | |
|                                             typedef DWORD R4DWORD;
 | |
| 
 | |
| #endif
 | |
| 
 | |
| #ifndef S4WINDOWS
 | |
| #define TRUE 1
 | |
| #define FALSE 0
 | |
| #define LF_FACESIZE 32
 | |
| 
 | |
|                                             typedef unsigned char R4BYTE;
 | |
|                                             typedef unsigned short R4HFONT;
 | |
|                                             typedef unsigned short R4WORD;
 | |
|                                             typedef unsigned long  R4DWORD;
 | |
| #ifndef S4OS2
 | |
|                                             typedef int BOOL;
 | |
| #endif
 | |
|                                             typedef long R4COLORREF;
 | |
| 
 | |
| #endif
 | |
| 
 | |
|                                             /* This structure is the same as the windows LOGFONT structure, I define it here
 | |
|                                                so that it can be referred to in both windows and dos code */
 | |
|                                             typedef struct r4tagLOGFONT
 | |
| {
 | |
|   short    lfHeight;
 | |
|   short    lfWidth;
 | |
|   short    lfEscapement;
 | |
|   short    lfOrientation;
 | |
|   short    lfWeight;
 | |
|   R4BYTE   lfItalic;
 | |
|   R4BYTE    lfUnderline;
 | |
|   R4BYTE    lfStrikeOut;
 | |
|   R4BYTE    lfCharSet;
 | |
|   R4BYTE    lfOutPrecision;
 | |
|   R4BYTE    lfClipPrecision;
 | |
|   R4BYTE    lfQuality;
 | |
|   R4BYTE    lfPitchAndFamily;
 | |
|   R4BYTE    lfFaceName[32];
 | |
| } R4LOGFONT, *PR4LOGFONT ;
 | |
| 
 | |
| /* macros for creating and parsing a colorref value */
 | |
| #define R4GETBVALUE(rgb) ((R4BYTE)((rgb)>>16))
 | |
| #define R4GETGVALUE(rgb) ((R4BYTE)(((R4WORD)(rgb)) >> 8))
 | |
| #define R4GETRVALUE(rgb) ((R4BYTE)(rgb))
 | |
| #define R4RGB(r,g,b)     ((R4COLORREF)(((R4BYTE)(r)|((R4WORD)(g)<<8))|(((R4DWORD)(R4BYTE)(b))<<16)))
 | |
| 
 | |
| /* pre-declarations for the report and object structures */
 | |
| struct REPORT4_st;
 | |
| struct _OBJECT_struct;
 | |
| 
 | |
| 
 | |
| /******************************************************************************/
 | |
| 
 | |
| 
 | |
| 
 | |
| /* this structure is used for supplying equivalent names to the windows font
 | |
|    names for use on other platforms */
 | |
| typedef struct STYLE4EQUIVFONTst
 | |
| {
 | |
|   LINK4 link;
 | |
|   char winfont[33];
 | |
|   char equivfont[33];
 | |
| } STYLE4EQUIVFONT, S4PTR *PSTYLE4EQUIVFONT;
 | |
| 
 | |
| 
 | |
| 
 | |
| /******************************************************************************/
 | |
| 
 | |
| /* This structure is wrapped around an EXPR4CALC calculation structure to create
 | |
|    a total.  Note:  a total structure is then wrapped by a total output object
 | |
|    */
 | |
| typedef struct TOTAL4st
 | |
| {
 | |
|   LINK4 link ;
 | |
|   EXPR4CALC *calc_ptr ; /* A total is a calculation for easy
 | |
|                            removal/name changes */
 | |
| 
 | |
|   /* These two members are used to keep track of when the total should be reset
 | |
|      each time the reset expression is evaluated it's value is compared to the
 | |
|      value stored in last_reset_value, if they are different the total is reset
 | |
|      and the stored value is updated */
 | |
|   EXPR4 *reset_expression;
 | |
|   char  *last_reset_value;
 | |
| 
 | |
|   /* normally a total is 'incremented' appropriately for every record in the
 | |
|      relation set.  In some cases you only want a subset of these records to
 | |
|      apply to the total.  The add_condition and last_add_value function
 | |
|      similarly to the reset condition but selectively enable or disable
 | |
|      updating the total for the current record */
 | |
|   EXPR4 *add_condition;
 | |
|   char  *last_add_value;
 | |
|   short logcon;      /* flag which indicates that the conditional total is
 | |
|                         based on a logical condition, not a changed value */
 | |
|   short donce;
 | |
| 
 | |
|   struct _OBJECT_struct *obj; /* report object associated with the total */
 | |
| 
 | |
|   struct REPORT4_st *report;  /* report containing the total */
 | |
| 
 | |
|   short total_type ;  /* total4lowest, total4highest, total4sum, */
 | |
|   /* total4count, total4average */
 | |
| 
 | |
|   short  lookahead;
 | |
| 
 | |
|   double total ;     /* Running Total */
 | |
|   double low ;       /* Lowest Value */
 | |
|   double high ;      /* Hightest Value */
 | |
|   long count;        /* used internally for computing the average */
 | |
| } TOTAL4, S4PTR *PTOTAL4 ;
 | |
| 
 | |
| 
 | |
| /******************************************************************************/
 | |
| 
 | |
| /* The STYLE4 structure contains a style definition.  It contains information
 | |
|    for both windows and non-windows cases*/
 | |
| typedef struct STYLE4_st
 | |
| {
 | |
|   LINK4 link;
 | |
| 
 | |
|   char name[20];    /* name of the style ex. 'Bold Blue' */
 | |
| 
 | |
|   /* These four members are used to hold the windows font/color info */
 | |
|   R4LOGFONT lfont;   /* windows logical font structure used to create fonts */
 | |
|   R4HFONT   screen_font, printer_font; /* handles for fonts created */
 | |
|   R4COLORREF color; /* color of the styles text */
 | |
| 
 | |
|   /* members used by the codereporter exe for manipulating the style menu */
 | |
|   int menu_id;
 | |
|   short position;
 | |
| 
 | |
|   short point_size;
 | |
| 
 | |
|   /* members used for holding additional (non-windows) style info */
 | |
|   short codes_before_len, codes_after_len;
 | |
|   char *codes_before, *codes_after;
 | |
| 
 | |
| #ifdef S4WINDOWS
 | |
| #ifdef S4WIN32
 | |
|   LOGFONT ntFont;
 | |
| #endif
 | |
| #endif
 | |
| 
 | |
| } STYLE4, S4PTR *PSTYLE4;
 | |
| 
 | |
| 
 | |
| 
 | |
| /******************************************************************************/
 | |
| /* GROUP4 structure: used for specifying the groupings of the records in the
 | |
|    report
 | |
|    */
 | |
| typedef struct GROUP4_st
 | |
| {
 | |
|   LINK4 link;
 | |
| 
 | |
|   short position;  /* holds the groups position in the groups in the report */
 | |
| 
 | |
|   short is_active; /* used by CR .exe to flag the selected group */
 | |
| 
 | |
|   /* two flags used to indicate whether this group is the page header/footer
 | |
|      or the title summary group.  These two groups are created automatically
 | |
|      and cannot be deleted. */
 | |
|   short header_footer;
 | |
|   short title_summary;
 | |
| 
 | |
|   /* flag used to indicate that the title/summary has been outputted */
 | |
|   short tsdone;
 | |
| 
 | |
|   /* expression and values used for determining whether or not a group should
 | |
|      reset */
 | |
|   EXPR4 *reset_expression;
 | |
|   char  *last_reset_value, *held_reset_value;
 | |
| 
 | |
|   /* user defined name for the group */
 | |
|   char group_label[26];
 | |
| 
 | |
|   /* lists containing the display areas for the groups header and footer */
 | |
|   LIST4 header_areas;
 | |
|   LIST4 footer_areas;
 | |
| 
 | |
|   /* flags used to specify user defined options on the group */
 | |
|   short swap_header;
 | |
|   short swap_footer;
 | |
|   short repeat_header;
 | |
|   short reset_page;
 | |
|   short reset_pagenum;
 | |
|   short reset_flag;
 | |
|   short lookahead;
 | |
| 
 | |
|   /* temporary flags */
 | |
|   short tswap_header;
 | |
|   short tswap_footer;
 | |
|   short trepeat_header;
 | |
|   short treset_page;
 | |
|   short treset_pagenum;
 | |
| 
 | |
|   /* containing report */
 | |
|   struct REPORT4_st *report;
 | |
| 
 | |
|   /* in the CR executable the group has two info windows corresponding to
 | |
|      the group header and footer */
 | |
| #ifdef S4WINDOWS
 | |
|   HWND header_info_hWnd;
 | |
|   HWND footer_info_hWnd;
 | |
| #endif
 | |
| } GROUP4, S4PTR *PGROUP4;
 | |
| 
 | |
| 
 | |
| /******************************************************************************/
 | |
| /* AREA4 structure. Each group contains header and footer areas.  These areas
 | |
|    have a specific size, and contain the actual report output objects.
 | |
|    */
 | |
| typedef struct AREA4_st
 | |
| {
 | |
|   LINK4 link;
 | |
| 
 | |
|   short position;   /* position in list of areas */
 | |
|   long height;      /* height of the area in 1000's of an inch */
 | |
|   int  height_dev;  /* height of the area in device output units */
 | |
| 
 | |
|   short is_header;  /* flag specifying whether area is a header area */
 | |
|   short is_active;  /* used by CR exe to indicate selected area */
 | |
| 
 | |
|   EXPR4 *suppression_condition;
 | |
| 
 | |
|   GROUP4 *group;    /* containing group */
 | |
| 
 | |
|   short allow_pagebreaks;  /* user set flag specifying whether an area can
 | |
|                               be broken across page boundaries in output */
 | |
| 
 | |
|   LIST4 objects;    /* list of output objects in the area */
 | |
| 
 | |
|   struct REPORT4_st *report;  /* containing report */
 | |
| 
 | |
|   /* in CR each area has a window associated with it */
 | |
| #ifdef S4WINDOWS
 | |
|   HWND hWnd;
 | |
| #endif
 | |
| 
 | |
| } AREA4, S4PTR *PAREA4;
 | |
| 
 | |
| 
 | |
| /******************************************************************************/
 | |
| /* For non windows output each page of the report is placed in a buffer file.
 | |
|    the information is in the format of a series of OBJECT4 structures.
 | |
|    */
 | |
| typedef struct OBJECT4_st
 | |
| {
 | |
|   short objtype;    /* type of object. ie. obj4text, etc. */
 | |
|   short alignment;  /* alignment of objects text, ie. justify4left */
 | |
|   long x, y, w, h;  /* objects position in page and size in 1000's of inches */
 | |
| 
 | |
|   long info_len;    /* length of the info block */
 | |
|   void *info;       /* information for the objects output, usually a text
 | |
|                        string */
 | |
| 
 | |
|   short style_index; /* index into the reports style list */
 | |
| 
 | |
| } OBJECT4, S4PTR *POBJECT4;
 | |
| 
 | |
| 
 | |
| /******************************************************************************/
 | |
| /* PAGE4 structure is used for buffering the pages of the report in
 | |
|    non-windows output
 | |
|    */
 | |
| typedef struct PAGE4_st
 | |
| {
 | |
|   FILE4  file_buf;
 | |
|   FILE4SEQ_READ seq_rd;
 | |
|   FILE4SEQ_WRITE seq_wr;
 | |
|   char fmem_buf[1024];
 | |
|   char rmem_buf[1024];
 | |
|   char *mem_buf, *mem_buf_pos;
 | |
| 
 | |
|   short first_read;
 | |
|   long info_buf_len;
 | |
| 
 | |
|   OBJECT4 object;
 | |
| 
 | |
| } PAGE4, S4PTR *PPAGE4;
 | |
| 
 | |
| 
 | |
| /******************************************************************************/
 | |
| /* REPORT4 structure.  This is the main report structure.
 | |
|  */
 | |
| 
 | |
| typedef struct REPORT4_st
 | |
| {
 | |
|   CODE4 *code_base;  /* applications CODE4 structure */
 | |
|   RELATE4 *relate;   /* the reports associated relation */
 | |
| 
 | |
|   char *report_name;         /* name of the report */
 | |
|   char *report_file_name;    /* name of the file holding the report, with path */
 | |
| 
 | |
|   char *printer_name;
 | |
| #ifdef S4WINDOWS
 | |
|   HDC printerDC;
 | |
| #endif
 | |
| 
 | |
|   char *stylesheet_name;
 | |
|   char *report_caption;
 | |
|   char default_date_format[20];
 | |
| 
 | |
|   GROUP4 *title_summary; /* GROUP4 holding title and summary areas.  This
 | |
|                             group is also in the groups list */
 | |
| 
 | |
|   GROUP4 *page_header_footer; /* GROUP4 holding page header and footer. This
 | |
|                                  group is not in the group list */
 | |
| 
 | |
|   LIST4 styles;               /* STYLE4 structs associated with report*/
 | |
|   LIST4 groups;               /* list of the reports GROUP4 structs */
 | |
|   LIST4 active_objects;       /* a list of the selected OBJ4 structures. This
 | |
|                                  list is used by the CR .exe */
 | |
| 
 | |
|   LIST4 obj_type_info;        /* a list of OBJ4TYPE structures */
 | |
|   LIST4 *obj_type_list;
 | |
| 
 | |
|   STYLE4 *active_style;
 | |
| 
 | |
|   long  sensitivity_x, sensitivity_y;
 | |
|   int   dsx, dsy;
 | |
|   short adjust_all;
 | |
|   short units;
 | |
|   short hide_info;
 | |
|   short screen_breaks;
 | |
|   short pgbrk_title;
 | |
|   short pathnames;
 | |
|   short bitmaps;
 | |
| 
 | |
|   int output_handle, use_styles;
 | |
| 
 | |
|   long report_width, report_height;
 | |
|   long margin_top, margin_bottom, margin_right, margin_left;
 | |
|   long hard_margin_top, hard_margin_bottom, hard_margin_right, hard_margin_left;
 | |
|   long page_no, start_page, end_page, page_count;
 | |
|   short page_nums;
 | |
| 
 | |
|   char decimal_point, thousand_separator, currency_symbol[11];
 | |
| 
 | |
|   /* info used in generating report output */
 | |
|   short hard_resets_flag;
 | |
|   short first;
 | |
|   int output_code;
 | |
|   long dev_page_height, dev_page_width;
 | |
|   long dev_margin_left, dev_margin_top, dev_margin_right, dev_margin_bottom;
 | |
|   long dev_hard_margin_top, dev_hard_margin_bottom, dev_hard_margin_right, dev_hard_margin_left;
 | |
|   long disp_bottom;
 | |
|   long ypos, break_height;
 | |
|   short in_header, end_report, broken, tdone;
 | |
|   GROUP4 *group_on, *group_first;
 | |
|   AREA4  *area_on;
 | |
| 
 | |
|   /* for use in generating a data file from report output */
 | |
|   short   for_dbf;
 | |
|   LIST4   output_objs;
 | |
|   PGROUP4 output_group;
 | |
|   FILE4SEQ_WRITE dfile_seq;
 | |
|   char *dfile_name, *dfile_buf;
 | |
|   DATA4 *data_file;
 | |
|   long rcount;
 | |
| 
 | |
|   /* for non-windows report output */
 | |
|   PAGE4 page_buf;
 | |
| 
 | |
| #ifdef S4WINDOWS
 | |
|   HWND hWnd;
 | |
|   HWND hWnd2;
 | |
|   HWND pagewin;
 | |
| #endif
 | |
| } REPORT4, S4PTR *PREPORT4;
 | |
| 
 | |
| 
 | |
| /******************************************************************************/
 | |
| 
 | |
| /* pre declarations */
 | |
| struct  _OBJ_TYPE_struct;
 | |
| struct  _OBJECT_struct;
 | |
| 
 | |
| /* OBJ4TYPE structure is used to hold information for each object type.
 | |
|    currently this is limited to the object type name, windows class name,
 | |
|    and the menu and cursor to be used in CR.  In the future this structure
 | |
|    will be used to allow the import of third party or custom output objects */
 | |
| typedef struct _OBJ_TYPE_struct
 | |
| {
 | |
|   LINK4 link;
 | |
| 
 | |
|   char name[26];
 | |
|   char wndclass_name[46];
 | |
|   int obj_type;
 | |
| #ifdef S4WINDOWS
 | |
|   HINSTANCE lib_instance;
 | |
| 
 | |
|   HMENU hMenu;
 | |
|   HCURSOR hCursor;
 | |
| #endif
 | |
| } OBJ4TYPE;
 | |
| 
 | |
| 
 | |
| /******************************************************************************/
 | |
| 
 | |
| 
 | |
| typedef struct _OBJECT_struct
 | |
| {
 | |
|   LINK4 link;
 | |
|   LINK4 link2;
 | |
| 
 | |
|   /* position within the containing area, and size, in 1000's of an inch */
 | |
|   long x, y;
 | |
|   long w, h;
 | |
| 
 | |
|   int num_chars;
 | |
| 
 | |
|   /* flags used by CR .exe for tagging selected objects */
 | |
|   short is_active, is_first;
 | |
| 
 | |
|   /* flag and expression used for display once functionality.  this works in
 | |
|      a similar fashion to the group reset */
 | |
|   short display_once;
 | |
|   EXPR4 *display_once_expr;
 | |
|   char  *last_display_val;
 | |
| 
 | |
|   AREA4 *area; /* containing area */
 | |
| 
 | |
|   /* this is the text displayed in the object in the CR layout screen. In the
 | |
|      case of a text object it is also the text for output */
 | |
|   char *wintext;
 | |
| 
 | |
|   char *date_format;
 | |
|   int date_changed;
 | |
| 
 | |
|   /* text to be output and length of text*/
 | |
|   char *eval_text;
 | |
|   int eval_len;
 | |
| 
 | |
|   /* style to use for objects output */
 | |
|   STYLE4 *style;
 | |
|   short style_location;
 | |
| 
 | |
|   short lookahead;
 | |
| 
 | |
|   OBJ4TYPE *obj_type;
 | |
|   struct _OBJECT_struct *container;  /* pointer to containing object */
 | |
| 
 | |
|   LIST4 contained;           /* list of pointers to contained objects */
 | |
| 
 | |
|   short obj_type_num;
 | |
| 
 | |
|   short alignment; /* justify4left, justify4right, justify4center,
 | |
|                       0=horizontal line, 1 = vertical line
 | |
|                       0=squared frame, 1 = rounded frame */
 | |
| 
 | |
|   short numeric_type, display_zero, dec, use_brackets, leading_zero;
 | |
|   short mod_type, background;
 | |
| 
 | |
|   void *data; /* generic pointer used to hold object specific info. eg. for
 | |
|                  an expression object this will be an expression */
 | |
| 
 | |
|   long dev_x, dev_y, dev_w, dev_h;
 | |
| 
 | |
|   /* these six members are used for sending report output to an data file */
 | |
|   double dval;
 | |
|   FIELD4 *field;
 | |
|   char field_name[11];
 | |
|   char field_type;
 | |
|   int  field_len;
 | |
|   int  field_dec;
 | |
| 
 | |
| #ifdef S4WINDOWS
 | |
|   HWND hWnd;
 | |
| #endif
 | |
| 
 | |
| } OBJ4, S4PTR *POBJ4;
 | |
| 
 | |
| 
 | |
| /******************************************************************************/
 | |
| 
 | |
| 
 | |
| typedef struct OUTOBJLIST_st
 | |
| {
 | |
|   LINK4 link;
 | |
|   POBJ4 obj;
 | |
| } OUT4OBJ, S4PTR *POUT4OBJ;
 | |
| 
 | |
| 
 | |
| /******************************************************************************/
 | |
| 
 | |
| 
 | |
| typedef struct INDEXLIST_st
 | |
| {
 | |
|   LINK4 link;
 | |
|   char  *index_name;
 | |
|   int   name_length;
 | |
| }INAME4;
 | |
| 
 | |
| 
 | |
| /******************************************************************************/
 | |
| 
 | |
| 
 | |
| typedef struct N4CHANGE_st
 | |
| {
 | |
|   LINK4 link;
 | |
|   char  *old_name;
 | |
|   char  *new_name;
 | |
| } N4CHANGE, S4PTR *PN4CHANGE;
 | |
| 
 | |
| 
 | |
| /******************************************************************************/
 | |
| 
 | |
| /* structure used by CR .exe for creating an instant report */
 | |
| #ifdef S4CR2
 | |
| typedef struct _inst4report
 | |
| {
 | |
|   REPORT4 *report;
 | |
|   LIST4   groups;
 | |
|   LIST4   fields;
 | |
|   LIST4   totals;
 | |
|   char    *title, *sort_expr, *query_expr;
 | |
|   int     hspace, vspace, max_obj_width;
 | |
|   BOOL    vert_wrap, labels, labels_ingroup;
 | |
| } INST4REPORT, S4PTR *PINST4REPORT;
 | |
| 
 | |
| 
 | |
| /******************************************************************************/
 | |
| 
 | |
| 
 | |
| typedef struct _inst4group
 | |
| {
 | |
|   LINK4  link;
 | |
|   char   *group_expr;
 | |
| }INST4GROUP, S4PTR *PINST4GROUP;
 | |
| 
 | |
| 
 | |
| /******************************************************************************/
 | |
| 
 | |
| 
 | |
| typedef struct _inst4field
 | |
| {
 | |
|   LINK4 link;
 | |
|   FIELD4 *field;
 | |
| }INST4FIELD, S4PTR *PINST4FIELD;
 | |
| 
 | |
| 
 | |
| /******************************************************************************/
 | |
| 
 | |
| 
 | |
| typedef struct _inst4total
 | |
| {
 | |
|   LINK4 link;
 | |
|   char *total_expr;
 | |
|   PINST4GROUP igroup;
 | |
|   PINST4FIELD ifield;
 | |
| }INST4TOTAL, S4PTR *PINST4TOTAL;
 | |
| 
 | |
| #endif
 | |
| 
 | |
| 
 | |
| /******************************************************************************/
 | |
| 
 | |
| 
 | |
| #ifdef __cplusplus
 | |
| extern "C" {
 | |
| #endif
 | |
| 
 | |
|   S4EXPORT PREPORT4 S4FUNCTION   report4init( RELATE4 S4PTR *);
 | |
|   S4EXPORT void S4FUNCTION       report4free( PREPORT4, int, int );
 | |
| 
 | |
|   S4EXPORT PGROUP4 S4FUNCTION    group4create( PREPORT4, char S4PTR *, char S4PTR * );
 | |
|   S4EXPORT void S4FUNCTION       group4free( PGROUP4 );
 | |
|   S4EXPORT void S4FUNCTION       group4positionSet( PGROUP4, int );
 | |
|   S4EXPORT PGROUP4 S4FUNCTION    group4create_title_summary( PREPORT4 );
 | |
|   S4EXPORT PGROUP4 S4FUNCTION    group4create_pgheader_pgfooter( PREPORT4 );
 | |
|   S4EXPORT int      S4FUNCTION   group4swapHeader( PGROUP4, int );
 | |
|   S4EXPORT int      S4FUNCTION   group4swapFooter( PGROUP4, int );
 | |
|   S4EXPORT int      S4FUNCTION   group4repeatHeader( PGROUP4, int );
 | |
|   S4EXPORT int      S4FUNCTION   group4resetPage( PGROUP4, int );
 | |
|   S4EXPORT int      S4FUNCTION   group4resetPageNum( PGROUP4, int );
 | |
| 
 | |
| 
 | |
|   S4EXPORT PAREA4 S4FUNCTION     area4create( PGROUP4, long, short, char S4PTR * );
 | |
|   S4EXPORT void S4FUNCTION       area4free( PAREA4 );
 | |
|   S4EXPORT void S4FUNCTION       area4add_object( PAREA4, POBJ4 );
 | |
| 
 | |
|   S4EXPORT int S4FUNCTION        report4save( PREPORT4, char S4PTR *, int );
 | |
| 
 | |
|   S4EXPORT int S4FUNCTION        relate4save( RELATE4 S4PTR *, char S4PTR *, int );
 | |
|   S4EXPORT PREPORT4 S4FUNCTION  report4retrieve( CODE4 S4PTR *, char S4PTR *, int, char S4PTR * );
 | |
|   S4EXPORT RELATE4 S4PTR * S4FUNCTION  relate4retrieve( CODE4 S4PTR *, char S4PTR *, int, char S4PTR * );
 | |
| 
 | |
|   S4EXPORT RELATE4 * S4FUNCTION relate4retrieve2( CODE4 *c4, char *file_name,
 | |
|                                                  int open_files, char *pathname, char *buf, char *name_buf );
 | |
|   S4EXPORT REPORT4 * S4FUNCTION  report4retrieve2(CODE4 *c4, char *file_name, int open_files,
 | |
|                                                   char *pathname, char *buf, char *name_buf );
 | |
|   S4EXPORT int S4FUNCTION   relate4save2( RELATE4 *relate, char *file_name,
 | |
|                                          int save_paths, char *buf, char *name_buf );
 | |
| 
 | |
| 
 | |
|   S4EXPORT POBJ4 S4FUNCTION      obj4create( PAREA4, long, long, long, long );
 | |
|   S4EXPORT void S4FUNCTION       obj4free( POBJ4 );
 | |
| 
 | |
|   S4EXPORT POBJ4 S4FUNCTION      obj4fieldCreate( PAREA4, FIELD4 S4PTR *, long, long, long, long );
 | |
|   S4EXPORT void S4FUNCTION       obj4fieldFree( POBJ4 );
 | |
| 
 | |
|   S4EXPORT POBJ4 S4FUNCTION      obj4totalCreate( PAREA4, PTOTAL4, long, long, long, long );
 | |
|   S4EXPORT void S4FUNCTION       obj4totalFree( POBJ4 );
 | |
| 
 | |
|   S4EXPORT POBJ4 S4FUNCTION      obj4calcCreate( PAREA4, EXPR4CALC S4PTR *, long, long, long, long );
 | |
|   S4EXPORT void S4FUNCTION       obj4calcFree( POBJ4 );
 | |
| 
 | |
|   S4EXPORT POBJ4 S4FUNCTION      obj4exprCreate( PAREA4, EXPR4 S4PTR *, long, long, long, long );
 | |
|   S4EXPORT void S4FUNCTION       obj4exprFree( POBJ4 );
 | |
| 
 | |
|   S4EXPORT POBJ4 S4FUNCTION      obj4textCreate( PAREA4, char S4PTR *, long, long, long, long );
 | |
|   S4EXPORT void S4FUNCTION       obj4textFree( POBJ4 );
 | |
| 
 | |
|   S4EXPORT POBJ4 S4FUNCTION      obj4lineCreate( PAREA4, int, long, long, long );
 | |
|   S4EXPORT void S4FUNCTION       obj4lineFree( POBJ4 );
 | |
|   S4EXPORT int S4FUNCTION obj4lineWidth( POBJ4, long );
 | |
| 
 | |
|   S4EXPORT POBJ4 S4FUNCTION      obj4frameCreate( PAREA4, long, long, long, long );
 | |
|   S4EXPORT void S4FUNCTION       obj4frameFree( POBJ4 );
 | |
| 
 | |
|   S4EXPORT void S4FUNCTION       obj4delete( POBJ4 );
 | |
|   S4EXPORT void S4FUNCTION       obj4sort_obj_tree( POBJ4 );
 | |
|   void                           obj4evaluate( POBJ4 );
 | |
|   void                           obj4evaluate_lookahead( POBJ4 );
 | |
|   S4EXPORT int S4FUNCTION obj4justify( POBJ4, int );
 | |
|   S4EXPORT int S4FUNCTION obj4dateFormat( POBJ4, char S4PTR * );
 | |
|   S4EXPORT int S4FUNCTION obj4decimals( POBJ4, int );
 | |
|   S4EXPORT int S4FUNCTION obj4displayOnce( POBJ4, char S4PTR * );
 | |
|   S4EXPORT int S4FUNCTION obj4displayZero( POBJ4, int );
 | |
|   S4EXPORT int S4FUNCTION obj4numericType( POBJ4, int );
 | |
|   S4EXPORT int S4FUNCTION obj4leadingZero( POBJ4, int );
 | |
|   S4EXPORT int S4FUNCTION obj4brackets( POBJ4, int );
 | |
|   S4EXPORT int S4FUNCTION obj4style( POBJ4, PSTYLE4 );
 | |
| 
 | |
|   S4EXPORT int S4FUNCTION report4querySet( PREPORT4, char S4PTR * );
 | |
|   S4EXPORT int S4FUNCTION report4sortSet( PREPORT4, char S4PTR * );
 | |
| 
 | |
|   int report4conv_double( POBJ4, double, char * );
 | |
| 
 | |
|   S4EXPORT PTOTAL4 S4FUNCTION    total4create( PREPORT4, char S4PTR *, char S4PTR *, int, char S4PTR * );
 | |
|   S4EXPORT void S4FUNCTION       total4value_reset( PTOTAL4 );
 | |
|   S4EXPORT void S4FUNCTION       total4free( PTOTAL4 );
 | |
|   S4EXPORT void                  total4value_update( PTOTAL4 );
 | |
| 
 | |
| #ifdef S4WINDOWS
 | |
|   S4EXPORT PSTYLE4 S4FUNCTION     style4create( PREPORT4, PR4LOGFONT, char S4PTR *, R4COLORREF, int );
 | |
| #else
 | |
|   S4EXPORT PSTYLE4 S4FUNCTION     style4create( PREPORT4, char S4PTR *, int, char S4PTR *, int, char S4PTR * );
 | |
| #endif
 | |
|   S4EXPORT PSTYLE4 S4FUNCTION     style4lookup( PREPORT4, char S4PTR * );
 | |
|   S4EXPORT BOOL S4FUNCTION        style4delete( PREPORT4, char S4PTR * );
 | |
|   S4EXPORT BOOL S4FUNCTION        style4free( PREPORT4, PSTYLE4 );
 | |
|   S4EXPORT int S4FUNCTION         style4color( PSTYLE4, R4COLORREF );
 | |
|   S4EXPORT int S4FUNCTION         style4default_set( PREPORT4, PSTYLE4 );
 | |
| 
 | |
|   S4EXPORT int S4FUNCTION report4do( PREPORT4 );
 | |
| 
 | |
|   S4EXPORT int S4FUNCTION report4save_object( FILE4SEQ_WRITE S4PTR *, POBJ4 );
 | |
|   S4EXPORT int S4FUNCTION report4save_area( FILE4SEQ_WRITE S4PTR *, PAREA4 );
 | |
|   S4EXPORT int S4FUNCTION report4save_group( FILE4SEQ_WRITE S4PTR *, PGROUP4 );
 | |
|   S4EXPORT int S4FUNCTION report4save_style( FILE4SEQ_WRITE S4PTR *, PSTYLE4 );
 | |
|   S4EXPORT int S4FUNCTION report4save_calc( FILE4SEQ_WRITE S4PTR *, EXPR4CALC S4PTR * );
 | |
|   S4EXPORT int S4FUNCTION report4save_report( PREPORT4, FILE4SEQ_WRITE S4PTR * );
 | |
| 
 | |
|   S4EXPORT int S4FUNCTION report4retrieve_object( FILE4SEQ_READ S4PTR *, PAREA4 );
 | |
|   S4EXPORT int S4FUNCTION report4retrieve_area( FILE4SEQ_READ S4PTR *, PGROUP4 );
 | |
|   S4EXPORT int S4FUNCTION report4retrieve_group( FILE4SEQ_READ S4PTR *, PREPORT4 );
 | |
|   S4EXPORT int S4FUNCTION report4retrieve_page_header_footer( FILE4SEQ_READ S4PTR *, PREPORT4 );
 | |
|   S4EXPORT PSTYLE4 S4FUNCTION report4retrieve_style( FILE4SEQ_READ S4PTR *, PREPORT4 );
 | |
|   S4EXPORT int S4FUNCTION report4retrieve_calc( FILE4SEQ_READ S4PTR *, PREPORT4 );
 | |
|   S4EXPORT REPORT4 * S4FUNCTION   report4retrieve_report( FILE4SEQ_READ S4PTR *, RELATE4 S4PTR * );
 | |
| 
 | |
|   S4EXPORT int S4FUNCTION retrieve4string( FILE4SEQ_READ S4PTR *, char S4PTR *, int );
 | |
|   S4EXPORT DATA4 S4PTR *  S4FUNCTION relate4lookup_data( RELATE4 S4PTR *, char S4PTR * );
 | |
| 
 | |
|   S4EXPORT int S4FUNCTION report4caption( PREPORT4, char S4PTR * );
 | |
|   S4EXPORT int S4FUNCTION obj4frameCorners( POBJ4, int );
 | |
|   S4EXPORT int S4FUNCTION obj4frameFill( POBJ4, int );
 | |
|   S4EXPORT int S4FUNCTION area4pageBreak( PAREA4, int );
 | |
| 
 | |
|   S4EXPORT int S4FUNCTION report4groupHardResets( PREPORT4, int );
 | |
| 
 | |
|   int report4alloc_records( PREPORT4 );
 | |
|   int report4swap_old_rec( PREPORT4 );
 | |
|   int report4make_old_rec( PREPORT4 );
 | |
|   int report4output_area_break( PAREA4 );
 | |
| 
 | |
| #ifdef S4WINDOWS
 | |
|   S4EXPORT int S4FUNCTION report4generatePage( PREPORT4, HDC );
 | |
|   int report4output_object( OBJ4 *, HDC );
 | |
|   int report4output_area( AREA4 *, HDC, int );
 | |
|   void report4output_pgheader( REPORT4 *, HDC hDC );
 | |
|   void report4output_pgfooter( REPORT4 *, HDC hDC );
 | |
|   void report4output_repeat_headers( REPORT4 *, HDC, GROUP4 * );
 | |
|   void report4output_swapped_footer( GROUP4 *, HDC );
 | |
|   S4EXPORT HDC S4FUNCTION report4get_printerDC ( void );
 | |
|   void report4output_screen_fonts( REPORT4 * );
 | |
|   int report4register_classes( PREPORT4 );
 | |
|   void report4calc_obj_dev( REPORT4 *, HDC );
 | |
|   S4EXPORT void S4FUNCTION obj4bitmapFileFree( POBJ4 obj );
 | |
|   S4EXPORT POBJ4 S4FUNCTION obj4bitmapFileCreate( PAREA4 area, char *filename, long x, long y, long w, long h );
 | |
|   S4EXPORT void S4FUNCTION obj4bitmapFieldFree( POBJ4 obj );
 | |
|   S4EXPORT POBJ4 S4FUNCTION obj4bitmapFieldCreate( PAREA4 area, FIELD4 *field, long x, long y, long w, long h );
 | |
|   S4EXPORT HINSTANCE CALLBACK c4dll_inst(void );
 | |
| #else
 | |
|   S4EXPORT int S4FUNCTION report4generatePage( PREPORT4 );
 | |
|   int report4output_object( OBJ4 *, PAGE4 *);
 | |
|   int report4output_area( AREA4 *, PAGE4 *, int );
 | |
|   void report4output_pgheader( REPORT4 *, PAGE4 *);
 | |
|   void report4output_pgfooter( REPORT4 *, PAGE4 *);
 | |
|   void report4output_repeat_headers( REPORT4 *, PAGE4 *, GROUP4 * );
 | |
|   void report4output_swapped_footer( GROUP4 *, PAGE4 *);
 | |
|   void report4calc_obj_dev( REPORT4 * );
 | |
|   void style4flagsGet( PSTYLE4 style, int *pt_size, int *bold, int *italic, int *underline, int *strikeout );
 | |
|   int style4equivFontGet( CODE4 *code_base, PSTYLE4 style, char *buf, int bufsize );
 | |
|   void style4equivFontsRemove( CODE4 *code_base );
 | |
|   S4EXPORT int S4FUNCTION style4equivFontRegister( CODE4 *code_base, char *winfont, char *equivfont );
 | |
| #endif
 | |
|   void report4evaluate_lookahead( GROUP4 * );
 | |
|   void report4check_lookahead( REPORT4 * );
 | |
|   void report4check_display_once( PREPORT4 );
 | |
| 
 | |
|   S4EXPORT GROUP4 * S4FUNCTION report4calc_first_change_group( REPORT4 * );
 | |
| 
 | |
| #ifdef S4WINDOWS
 | |
|   HDC S4FUNCTION report4get_printerIC ( PREPORT4 );
 | |
| #ifndef S4WIN32
 | |
|   long CALLBACK _export PreViewProc( HWND, UINT, WPARAM, LPARAM );
 | |
|   long CALLBACK _export OutputPageProc( HWND, UINT, WPARAM, LPARAM );
 | |
|   long CALLBACK _export MouseEatProc( HWND, UINT, WPARAM, LPARAM );
 | |
|   long CALLBACK _export PageStatProc( HWND, UINT, WPARAM, LPARAM );
 | |
| #else
 | |
|   S4EXPORT long CALLBACK PreViewProc( HWND, UINT, WPARAM, LPARAM );
 | |
|   S4EXPORT long CALLBACK OutputPageProc( HWND, UINT, WPARAM, LPARAM );
 | |
|   S4EXPORT long CALLBACK MouseEatProc( HWND, UINT, WPARAM, LPARAM );
 | |
| #endif
 | |
|   S4EXPORT void S4FUNCTION obj4bitmapStaticFree( POBJ4 obj );
 | |
|   S4EXPORT POBJ4 S4FUNCTION obj4bitmapStaticCreate( PAREA4 area, HANDLE hDIB, long x, long y, long w, long h );
 | |
| 
 | |
|   S4EXPORT LPSTR S4FUNCTION FindDIBBits (LPSTR );
 | |
|   S4EXPORT WORD S4FUNCTION PaletteSize (LPSTR );
 | |
|   S4EXPORT WORD S4FUNCTION DIBNumColors (LPSTR );
 | |
| 
 | |
|   S4EXPORT BOOL S4FUNCTION WriteDIB ( LPSTR, HANDLE );
 | |
|   S4EXPORT HANDLE S4FUNCTION ReadDIBFile (int);
 | |
|   S4EXPORT HANDLE S4FUNCTION GetDIB ( LPSTR, CODE4 S4PTR * );
 | |
| 
 | |
|   S4EXPORT void S4FUNCTION report4printerSelect( PREPORT4 report );
 | |
|   S4EXPORT int S4FUNCTION report4parent( PREPORT4, HWND );
 | |
|   S4EXPORT HDC S4FUNCTION report4printerDC( PREPORT4, HDC );
 | |
| #endif
 | |
| 
 | |
|   S4EXPORT int S4FUNCTION expr4calc_remove( EXPR4CALC *calc, int remove_all );
 | |
|   S4EXPORT int S4FUNCTION expr4calc_modify( EXPR4CALC *calc, char *expr_source );
 | |
| 
 | |
|   S4EXPORT int S4FUNCTION report4output( PREPORT4 report, int output_handle, int use_styles );
 | |
|   S4EXPORT int S4FUNCTION report4margins( PREPORT4 report, long left, long right, long top, long bottom, int unit_type );
 | |
|   S4EXPORT int S4FUNCTION report4pageSize( PREPORT4 report, long pg_height, long pg_width, int unit_type );
 | |
| 
 | |
|   S4EXPORT int S4FUNCTION report4deleteCalc( PREPORT4 report, EXPR4CALC S4PTR *del_calc );
 | |
| 
 | |
|   S4EXPORT int S4FUNCTION report4styleSheetSave( REPORT4 *report, char *file_name );
 | |
|   S4EXPORT int S4FUNCTION report4styleSheetLoad( REPORT4 *report, char *file_name, int override );
 | |
|   S4EXPORT int S4FUNCTION report4currency( PREPORT4, char * );
 | |
|   S4EXPORT int S4FUNCTION report4decimal( PREPORT4, char );
 | |
|   S4EXPORT int S4FUNCTION report4separator( PREPORT4, char );
 | |
| 
 | |
|   S4EXPORT int S4FUNCTION report4pageInit( PREPORT4 report );
 | |
|   S4EXPORT int S4FUNCTION report4pageFree( PREPORT4 report );
 | |
|   S4EXPORT POBJECT4 S4FUNCTION report4pageObjNext( PREPORT4 report );
 | |
|   S4EXPORT POBJECT4 S4FUNCTION report4pageObjFirst( PREPORT4 report );
 | |
|   S4EXPORT int S4FUNCTION report4toScreen( PREPORT4 report, int to_screen );
 | |
| 
 | |
|   S4EXPORT PSTYLE4 S4FUNCTION report4styleFirst( PREPORT4 report );
 | |
|   S4EXPORT PSTYLE4 S4FUNCTION report4styleNext( PREPORT4 report, PSTYLE4 style );
 | |
|   S4EXPORT PSTYLE4 S4FUNCTION report4styleLast( PREPORT4 report );
 | |
|   S4EXPORT PSTYLE4 S4FUNCTION report4stylePrev( PREPORT4 report, PSTYLE4 style );
 | |
|   S4EXPORT int S4FUNCTION report4numStyles( PREPORT4 report );
 | |
| 
 | |
|   S4EXPORT PGROUP4 S4FUNCTION report4groupFirst( PREPORT4 report );
 | |
|   S4EXPORT PGROUP4 S4FUNCTION report4groupNext( PREPORT4 report, PGROUP4 group );
 | |
|   S4EXPORT PGROUP4 S4FUNCTION report4groupLast( PREPORT4 report );
 | |
|   S4EXPORT PGROUP4 S4FUNCTION report4groupPrev( PREPORT4 report, PGROUP4 group );
 | |
|   S4EXPORT int S4FUNCTION report4numGroups( PREPORT4 report );
 | |
|   S4EXPORT PGROUP4 S4FUNCTION report4titleSummary( PREPORT4 report );
 | |
|   S4EXPORT PGROUP4 S4FUNCTION report4pageHeaderFooter( PREPORT4 report );
 | |
| 
 | |
|   S4EXPORT PAREA4 S4FUNCTION group4headerFirst( PGROUP4 group );
 | |
|   S4EXPORT PAREA4 S4FUNCTION group4headerNext( PGROUP4 group, PAREA4 area );
 | |
|   S4EXPORT PAREA4 S4FUNCTION group4headerLast( PGROUP4 group );
 | |
|   S4EXPORT PAREA4 S4FUNCTION group4eaderPrev( PGROUP4 group, PAREA4 area );
 | |
|   S4EXPORT int S4FUNCTION area4numHeaders( PGROUP4 group );
 | |
|   S4EXPORT PAREA4 S4FUNCTION group4footerFirst( PGROUP4 group );
 | |
|   S4EXPORT PAREA4 S4FUNCTION group4footerNext( PGROUP4 group, PAREA4 area );
 | |
|   S4EXPORT PAREA4 S4FUNCTION group4footerLast( PGROUP4 group );
 | |
|   S4EXPORT PAREA4 S4FUNCTION group4footerPrev( PGROUP4 group, PAREA4 area );
 | |
|   S4EXPORT int S4FUNCTION group4numFooters( PGROUP4 group );
 | |
| 
 | |
|   S4EXPORT int S4FUNCTION report4titlePage( PREPORT4 report, int title_page );
 | |
| 
 | |
|   S4EXPORT TOTAL4 * S4FUNCTION total4lookup( REPORT4 *report, char *name );
 | |
|   S4EXPORT RELATE4 * S4FUNCTION   relate4retrieve_relate( FILE4SEQ_READ *seq, int open_files, char *spath );
 | |
|   S4EXPORT int S4FUNCTION report4index_type( void );
 | |
| 
 | |
|   S4EXPORT PGROUP4 S4FUNCTION report4groupLookup( PREPORT4 report, char *group_name );
 | |
|   S4EXPORT int S4FUNCTION group4resetExprSet( PGROUP4 group, char *expr_src );
 | |
| 
 | |
|   S4EXPORT PREPORT4 S4FUNCTION report4retrieve_old(CODE4 *c4,char *file_name,int open_files);
 | |
| 
 | |
| #ifdef S4CR2
 | |
|   S4EXPORT int S4FUNCTION AlternateDataFile( char S4PTR *dname_buf, int len );
 | |
|   S4EXPORT int S4FUNCTION AlternateIndexFile( char S4PTR *iname_buf, int len );
 | |
|   S4EXPORT int S4FUNCTION AlternateTagName( char S4PTR *tname_buf, int len );
 | |
|   S4EXPORT int S4FUNCTION AlternateMasterExpression( char S4PTR *expr_buf, RELATE4 S4PTR *relate, int len );
 | |
|   S4EXPORT int S4FUNCTION AlternateSortExpression(  char S4PTR *expr_buf, RELATE4 S4PTR *relate, int len );
 | |
|   S4EXPORT int S4FUNCTION AlternateQueryExpression( char S4PTR *expr_buf, RELATE4 S4PTR *relate, int len );
 | |
| #endif
 | |
| 
 | |
| #ifdef S4VBASIC
 | |
| #ifdef S4WINDOWS
 | |
|   S4EXPORT long S4FUNCTION vbRepWndProc( HWND, UINT, WPARAM, LPARAM ) ;
 | |
|   S4EXPORT void S4FUNCTION report4registerVBClass( REPORT4 * ) ;
 | |
| #endif
 | |
|   S4EXPORT int S4FUNCTION report4decimal_v( PREPORT4 report, char *decimal ) ;
 | |
|   S4EXPORT int S4FUNCTION report4separator_v( PREPORT4, char * ) ;
 | |
| #endif
 | |
| 
 | |
|   S4EXPORT POBJ4 S4FUNCTION area4objFirst( PAREA4 area );
 | |
|   S4EXPORT POBJ4 S4FUNCTION area4objNext( PAREA4 area, POBJ4 aobj );
 | |
|   S4EXPORT POBJ4 S4FUNCTION area4objPrev( PAREA4 area, POBJ4 aobj );
 | |
|   S4EXPORT POBJ4 S4FUNCTION area4objLast( PAREA4 area );
 | |
| 
 | |
|   S4EXPORT void S4FUNCTION obj4remove( POBJ4 obj );
 | |
|   S4EXPORT void S4FUNCTION area4sort_obj_tree( PAREA4 area );
 | |
|   S4EXPORT int S4FUNCTION report4pageMarginsGet( PREPORT4, long S4PTR *, long S4PTR*, long S4PTR *, long S4PTR * );
 | |
|   S4EXPORT int S4FUNCTION report4pageSizeGet( PREPORT4, long S4PTR *,long S4PTR * );
 | |
|   void report4nchange( CODE4 *, char **, int, int );
 | |
|   void report4free_name_list( void );
 | |
|   S4EXPORT PSTYLE4 S4FUNCTION report4styleSelected( PREPORT4 );
 | |
|   S4EXPORT int S4FUNCTION report4styleSelect( PREPORT4, PSTYLE4 );
 | |
|   S4EXPORT PSTYLE4 S4FUNCTION style4index( PREPORT4, int );
 | |
| 
 | |
|   S4EXPORT int S4FUNCTION total4addCondition( PTOTAL4, char *, int );
 | |
|   S4EXPORT int S4FUNCTION obj4dataFieldSet( POBJ4 obj, char *fname, char ftype, int flength, int fdec );
 | |
|   S4EXPORT int S4FUNCTION report4dataFileSet( PREPORT4 report, char *fname );
 | |
|   S4EXPORT int S4FUNCTION report4dataDo( PREPORT4 report );
 | |
|   S4EXPORT int S4FUNCTION report4dataGroup( PREPORT4, PGROUP4 );
 | |
| 
 | |
|   S4EXPORT int S4FUNCTION obj4lookAhead( POBJ4, int );
 | |
| 
 | |
| 
 | |
| #ifdef __cplusplus
 | |
| }
 | |
| #endif
 | |
| 
 | |
| #endif /* __REPORT4HEADER */
 | |
| 
 |