Knowledge Base

SAS Technical Papers » Base SAS Language, PROCs, ODS, and Macros

Papers Topic List 
Date Title
August 2015 TS-673: Reading Delimited Text Files Into SAS®9 (PDF)
May 2015 Driving SAS with Lua (PDF)
This paper shows you how you can get started using Lua to drive SAS, via a quick introduction to Lua and a tour through some of the features of the Lua and SAS combination that make SAS programming easier.
May 2015 Don't Be a Litterbug: Best Practices for Using Temporary Files in SAS® (PDF)
This paper explains best practices for using temporary files in SAS® programs. These practices include using the TEMP access method, writing to the WORK directory, and ensuring that you leave no litter files behind. An additional special temporary file technique is described for mainframe users.
May 2015 Staying Relevant in a Competitive World: Using the SAS Output Delivery System to Enhance, Customize, and Render Reports (PDF)
To begin, the paper illustrates how to modify styles in your reports using the ODS CSS style engine, which incorporates the use of cascading style sheets (CSS) and the ODS document object model (DOM). You also learn how you can use ODS to customize and generate reports in the body of email messages. Then the paper discusses methods for enhancing reports and rendering them in desktop and mobile browsers by using the HTML and HTML5 ODS destinations. To conclude, the paper demonstrates the use of selected SAS ODS destinations and features in practical, real-world applications.
May 2015 Creating Multi-Sheet Microsoft Excel Workbooks with SAS: The Basics and Beyond, Part 2 (PDF)
This paper explains how to use Base SAS®9 software to create multi-sheet Excel workbooks. You learn step-by-step techniques for quickly and easily creating attractive multi-sheet Excel workbooks that contain your SAS® output using the ExcelXP Output Delivery System (ODS) tagset. The techniques can be used regardless of the platform on which SAS software is installed. You can even use them on a mainframe! Creating and delivering your workbooks on-demand and in real time using SAS server technology is discussed. Although the title is similar to previous presentations by this author, this presentation contains new and revised material not previously presented.
Read the paper (PDF) | Download the zip file (ZIP)
May 2015 The REPORT Procedure: A Primer for the Compute Block (PDF)
This paper is a primer for using a compute block. With a compute block, you can easily change values in your output with the proper assignment statement and add text with the LINE statement. With the CALL DEFINE statement, you can adjust style attributes such as color and formatting. Through examples, you learn how to apply these techniques for use with any style of output.
May 2015 New Macro Features Added in SAs 9.3 and SAS 9.4 (PDF)
This paper describes the new features added to the macro facility in SAS® 9.3 and SAS® 9.4. New features described include the /READONLY option for macro variables, the %SYSMACEXIST macro function, the %PUT &= feature, and new automatic macro variables such as &SYSTIMEZONEOFFSET.
May 2015 Helping You C What You Can Do with SAS (PDF)
This paper gets you started on how to use the PROTO procedure and, in turn, how to call your C functions from within FCMP and SAS®.
May 2015 An Insider’s Guide to ODS Layout Using SAS 9.4 (PDF)
This paper reviews some common issues customers have reported to SAS Technical Support when migrating to the LAYOUT destination in SAS 9.4 and explores the basics for those who are making their first foray into the adventure that is ODS LAYOUT. This paper discusses some tips and tricks to ensure your trip through the ODS LAYOUT statement will be a fun and rewarding one.
May 2015 The SAS Scalable Performance Data Engine: Moving your Data to Hadoop without Giving up the SAS features you depend on (PDF)
June 2014 Dealing with Numeric Representation Error in SAS® Applications (PDF)
This paper describes the problem of numeric representation and how the problem manifests itself. In addition, it provides ideas about how to handle the problem in SAS applications. This paper also updates and replaces TS-230.
March 2014 Nitty Gritty Data Set Attributes (PDF)
This paper covers the majority of the attributes stored in a SAS data set, how to obtain them, why they are important, and what you can do with them.
March 2014 Parallel Data Preparation with the DS2 Programming Language (PDF)
The DS2 programming language in SAS 9.4 simplifies and speeds data preparation with user-defined methods, storing methods and attributes in shareable packages, and threaded execution on multi-core symmetric multiprocessing (SMP) and massively parallel processing (MPP) machines.
March 2014 Reading and Writing ZIP files with SAS (PDF)
This paper provides several examples of reading from and writing to ZIP files using the ZIP access method.
March 2014 Sailing Over the ACROSS Hurdle in PROC REPORT (PDF)
This presentation illustrates how to make the most of ACROSS usage with PROC REPORT. Use PROC REPORT instead of multiple TRANSPOSE steps.
March 2014 Using Base SAS to Extend the SAS System (PDF)
This paper demonstrates how to use Base SAS tools to add functional, reusable extensions to the SAS system.
March 2014 Three Different Ways to Import JSON from the Facebook Graph API (PDF)
This paper shows how we can parse the JSON in SAS by calling an external script, using PROC GROOVY to parse it inside of SAS, or by parsing the JSON manually with a DATA step.
March 2014 PDF vs. HTML: Can't We All Just Get Along? (PDF)
This paper provides tips from beginner to advanced in all areas of reporting. Each destination (PDV or HTML) helps you transform your reports to meet all your needs.
March 2014 Advanced Mobile Reporting with the ODS EPUB3 Destination (PDF)
This paper provides advanced instruction for writing e-books with ODS EPUB.
March 2014 Comparing ODS LAYOUT and the ODS Report Writing Interface (PDF)
This paper highlights the similarities and differences between the ODS LAYOUT and ODS Report Writing and illustrates the advantages of using them together.
March 2014 Combining the Power of the SAS Output Delivery System with Microsoft Excel Worksheets (PDF)
This paper starts by discussing common questions and problems that users report when they try to generate Excel worksheets. The discussion continues with methods for automating Excel worksheets using ODS tagsets and customizing your worksheets using the CSS style engine and extended tagsets.
December 2013 Flexibility by Design: A Look at New and Updated System Options in SAS® 9.4 (PDF)
This paper discusses new SAS 9.4 system options that enable Base SAS programmers to create large data sets, accelerate program execution time, ensure the correct date and time in SAS output, prevent truncation of input and output external files and SAS programs, read two-digit years correctly, and save the SAS environment for use in later SAS sessions.
April 2013 Go Mobile with the ODS EPUB Destination (PDF)
This paper provides an introduction to writing e-books with ODS EPUB. With ODS EPUB, you can generate your reports as e-books that you can read with iBooks on the iPad, or, you can write an e-book from scratch if you like.
April 2013 Renovating Your SAS® 9.3 ODS Output: Tools for Everything from Minor Remodeling to Extreme Makeovers (PDF)
This paper shows how you can use certain ODS statements (for example, ODS SELECT and ODS TEXT) and ODS statement options (for example, STYLE=) for minor remodeling. The paper also illustrates how to use the REGISTRY, TEMPLATE, and DOCUMENT procedures for a more extreme makeover.
April 2013 A First Look at the ODS Destination for PowerPoint (PDF)
This paper introduces the ODS destination for PowerPoint, one of the next generation of ODS destinations.
April 2013 Macro Basics for new SAS Users (PDF)
This paper provides an overview of how the SAS macro facility works and how you can make it work in your programs.
April 2013 Tips for Generating Percentages Using the SAS® TABULATE Procedure (PDF)
Written for intermediate users, this paper discusses techniques for enhancing PROC TABULATE output with percentage statistics.
April 2013 Submitting SAS Code on the side (PDF)
This paper explains the new DOSUBL function and how it can submit SAS code to run "on the side" while your DATA step is still running.
April 2013 The SAS Output Delivery System: Boldly Take your web pages where they have never gone before (PDF)
This paper discusses how to use ODS techniques to deliver web content specifically for mobile devices, web content for both mobile and desktop devices, and web content specifically for desktop devices.
April 2013 Take Home the ODS Crown Jewels: Master the New Production Features of ODS LAYOUT and Report Writing Interface Techniques (PDF)
This paper describes the ODS “crown jewels” that allow the customer to create sophisticated documents that can readily be published via print, Web, or mobile devices.
July 2012 Harnessing the Power of SAS ISO 8601 Informats, Formats, and the CALL IS8601_CONVERT Routine(PDF)
This paper addresses how to create and manage ISO 8601 compliant date, time, and datetime values in a CDISC environment.
May 2012 Using the New Features in PROC FORMAT (PDF)
This paper describes several examples using functions as labels within PROC FORMAT definitions. Also described is the new feature allowing for Perl regular expressions for informatting data, as well as other new features in PROC FORMAT for SAS 9.3.
May 2012 Why Does SAS® Say That? What Common DATA Step and Macro Messages Are Trying to Tell You (PDF)
This paper explores some notes, warnings, and errors that come from DATA step and macro programs and deciphers them into easily understood explanations that enable you to answer many of your questions.
May 2012 Where's the LISTING Window? Using the New Results Viewer in SAS® 9.3 (PDF)
This paper outlines several techniques for adjusting the behavior of the SAS windowing environment Results Viewer using SAS 9.3. Examples of the new Output Delivery System (ODS)-related options that allow you to establish destination and style defaults in your configuration file are also provided.
December 2011 Using Arrays in SAS® Programmings (PDF)
When you are working with groups of similar data and performing common operations on each element of the group, arrays can save you significant time in coding an application.
April 2011 Don’t Gamble with Your Output: How to Use Microsoft Formats with ODS (PDF)
This paper provides an overview of how you can use the HTMLSTYLE attribute with HTML-based destinations and the TAGATTR attribute with the TAGSETS.EXCELXP destination to send Microsoft formats from SAS to Excel using the Output Delivery System (ODS) STYLE= overrides.
April 2011 The Greatest Hits: ODS Essentials Every User Should Know (PDF)
This paper covers some of the essential features and options of ODS that every user needs to know to be productive and includes concrete code examples.
May 2010 Traffic Lighting your Multi-sheet Microsoft Excel Workbooks the Easy Way with SAS® (PDF)
This paper explains how to use Base SAS®9 software to create multi-sheet Microsoft Excel workbooks (for Excel versions 2002 and later), and then traffic light the values that lie outside a range.
March 2009 Customizing FREQ Procedure Output in SAS 9.2 (PDF)
This paper introduces the new crosstabulation table template, which enables you to customize PROC FREQ output and highlights how to use the template to accomplish some common tasks.
March 2009 CSSSTYLE: Stylish Output with ODS and SAS 9.2 (PDF)
This paper provides an introduction into the use of the new CSSSTYLE option in SAS 9.2. This option allows you to use cascading style sheet (CSS) style specifications for RTF and PDF files, in addition to HTML files. This paper includes a brief introduction to CSS syntax and some of the features, such as @media CSS sections, that are particularly useful when creating ODS output.
March 2009 Dear Miss SAS Answers: A Guide to Efficient PROC SQL Coding (PDF)
This paper answers commonly asked questions and helps you harness the potential of Structured Query Language.
March 2009 Have It Your Way: Rearrange and Replay Your Output with ODS DOCUMENT (PDF)
This paper illustrates how to capture your output and save it in an Output Delivery System (ODS) Document store. Then you can create custom folders and a custom folder hierarchy using ODS DOCUMENT and PROC DOCUMENT in order to rearrange and replay your output.
March 2009 Tiptoe through the Templates (PDF)
This paper provides an overview of all the different template types and how they're used with the Output Delivery System. From style and table templates, that first appeared with SAS 7 to the newest graph templates that appeared with SAS 9.2, this paper provides an overview and several concrete examples for each template type.
November 2008 Achieving Better I/O Throughput Using SGIO in the Microsoft Windows Environment (PDF)
In the SAS System, SAS I/O. the most common input/output (I/O) processing, is performed on SAS files such as SAS data sets, SAS catalogs, and SAS index files. Most SAS I/O processing is sequential I/O, which means that the DATA step and SAS procedures read a data set from the beginning of the file to the end of the file.
March 2008 Creating Complex Reports (PDF)
Are you confused about whether you need a detail report or a summary report? Do you wonder whether you're using the right reporting procedure for your report? Have you ever spent a lot of time going down the road with one procedure only to discover that you need to switch to a different procedure to get what you want or closer to what you want?
March 2008 Tips and Tricks for Creating Multi-Sheet Microsoft Excel Workbooks the Easy Way with SAS (PDF)
This paper discusses using the XML support in Base SAS 9.1 software to create multi-sheet Microsoft Excel workbooks (versions 2002 and later). You will learn step-by-step techniques for quickly and easily creating attractive multi-sheet Excel workbooks that contain your SAS output. The information presented is new for 2008.
March 2007 Adventures in Arrays: A Beginning Tutorial (PDF)
This paper presents examples to explain what arrays are and how to use them. In addition to simple examples demonstrating arrays used to perform calculations, restructure data and look up values, the paper includes examples using multidimensional arrays for efficient table lookups.
March 2007 PROC TEMPLATE Tables from Scratch (PDF)
In this paper, you learn how to create and modify table templates, including how to add, remove, and move columns as well as headers and footers. You also learn how to apply styles, formats, and other visual effects, all from scratch.
March 2007 The Output Delivery System (ODS) from Scratch (PDF)
Using ODS, you can generate reports in formats such as HTML, XML, PDF, PostScript, RTF, and Microsoft Excel. This paper shows you how to generate reports with ODS, from scratch. You'll learn how to generate multiple output formats, simultaneously; how to change the look of your report using styles; how to add text passages; and other helpful information.
July 2001 TS-654: Numeric Precision 101 (PDF)
December 2000 TS-642: Reading EBCDIC Files on ASCII Systems