Resources

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

Papers Topic List  
Date Title
April 2018 Manipulating Statistical and Other Procedure Output to Get the Results That You Need (PDF)
Many scientific and academic journals require that statistical tables be in a specific format (for example, the American Psychological Association [APA] style). This paper shows you how to change the output of any SAS® procedure to conform to any journal or corporate style. You'll learn how to save data from any SAS procedure, change the data format using the DATA step, and dynamically create a format based on your data. You'll also use the SAS Output Delivery System (ODS) inline formatting functions and style overrides, and produce several output formats, including HTML, RTF (for Microsoft Word), PDF, and Microsoft Excel files. Finally, you'll learn how to create and deliver the output on-demand using SAS server technology. The information presented is appropriate for all SAS skill levels.
Read the paper (PDF) | Download the zip file (ZIP)
May 2017 A Guru’s Guide: Producing Section 508-Compliant Custom Reports with the Output Delivery System (PDF)
Creating sophisticated, visually stunning reports is imperative in today s business environment, but is your fancy report really accessible to all? Let s explore some simple enhancements that the fourth maintenance release of SAS® 9.4 made to Output Delivery System (ODS) layout and the Report Writing Interface that will truly empower you to accommodate people who use assistive technology. ODS now provides the tools for you to meet Section 508 compliance and to create an engaging experience for all who consume your reports.
May 2017 Tag, You're It! Creating Accessible (Tagged) PDF Files with SAS 9.4 Output Delivery System (PDF)
In the game of tag, being it is bad, but where accessibility compliance is concerned, being tagged is good! Tagging is required for PDF files to comply with accessibility standards such as Section 508 and the Web Content Accessibility Guidelines (WCAG). In the fourth maintenance release for SAS® 9.4, the preproduction option in the ODS PDF statement, ACCESSIBLE, creates a tagged PDF file. We look at how this option changes the file that is created and focus on the SAS® programming techniques that work best with the new option. You ll then have the opportunity to try it yourself in your own code and provide feedback to SAS.
May 2017 The REPORT Procedure and ODS Destination for Microsoft Excel: The Smarter, Faster Way to Create First-Rate Excel Reports (PDF)
Does your job require you to create reports in Microsoft Excel on a quarterly, monthly, or even weekly basis? Are you creating all or part of these reports by hand, referencing another sheet containing rows and rows and rows of data? If so, stop! There is a better way! The new ODS destination for Excel enables you to create native Excel files directly from SAS®. Now you can include just the data you need, create great-looking tabular output, and do it all in a fraction of the time! This paper shows you how to use the REPORT procedure to create polished tables that contain formulas, colored cells, and other customized formatting. Also presented in the paper are the destination options used to create various workbook structures, such as multiple tables per worksheet. Using these techniques to automate the creation of your Excel reports will save you hours of time and frustration, enabling you to pursue other endeavors.
May 2017 Escape the Desktop with ODS EPUB (PDF)
The Base SAS® 9.4 Output Delivery System (ODS) EPUB destination enables users to deliver SAS® reports as e-books on Apple mobile devices. ODS EPUB e-books are truly mobile you don't need an Internet connection to read them. Just install Apple's free iBooks app, and you're good to go. This paper shows you how to create an e-book with ODS EPUB and sideload it onto your Apple device. You will learn new SAS® 9.4 techniques for including text, images, audio, and video in your ODS EPUB e-books. You will understand how to customize your e-book's table of contents (TOC) so that readers can easily navigate the e-book. And you will learn how to modify the ODS EPUB style to create specialized presentation effects. This paper provides beginning to intermediate instruction for writing e-books with ODS EPUB. Please bring your iPad, iPhone, or iPod to the presentation so that you can download and read the examples.
May 2017 New for SAS® 9.4: Including Text and Graphics in Your Microsoft Excel Workbooks, Part 2 (PDF)
A new ODS destination for creating Microsoft Excel workbooks is available starting in the third maintenance release for SAS® 9.4. This destination creates native Microsoft Excel XLSX files, supports graphic images, and offers other advantages over the older ExcelXP tagset. In this presentation you learn step-by-step techniques for quickly and easily creating attractive multi-sheet Excel workbooks that contain your SAS® output. 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. Using earlier versions of SAS to create multi-sheet workbooks is also 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 2017 Raising the Bar: The Pending Section 508 Refresh and the ODS HTML5 Destination (PDF)
The United States Access Board will soon refresh the Section 508 accessibility standards. The new requirements are based on Web Content Accessibility Guidelines (WCAG) 2.0 and include a total of 38 testable success criteria-16 more than the current requirements. Is your organization ready? Don't worry, the fourth maintenance release for SAS® 9.4 Output Delivery System (ODS) HTML5 destination has you covered. This paper describes the new accessibility features in the ODS HTML5 destination, explains how to use them, and shows you how to test your output for compliance with the new Section 508 standards.
May 2017 More Than Just a Pretty Face: Using SAS® Output Delivery System to Create Microsoft Excel Worksheets That Answer Those Difficult Questions (PDF)
Microsoft Excel worksheets enable you to explore data that answers the difficult questions that you face daily in your work. When you combine the SAS® Output Deliver System (ODS) with the capabilities of Excel, you have a powerful toolset that you can use to manipulate data in various ways, including highlighting data, using formulas to answer questions, and adding a pivot table or graph. In addition, ODS and Excel give you many methods for enhancing the appearance of your tables and graphs. This paper, written for the beginning analyst to the most advanced programmer, illustrates first how to manipulate styles and presentation elements in your worksheets by controlling text wrapping, highlighting and exploring data, and specifying Excel templates for data. Then, the paper explains how to use the TableEditor tagset and other tools to build and manipulate both basic and complex pivot tables that can help you answer all of the questions about your data. You will also learn techniques for sorting, filtering, and summarizing pivot-table data.
May 2017 The Future of Transpose: How SAS® Is Rebuilding its Foundation by Making What Is Old New Again (PDF)
As computer technology advances, SAS® continually pursues opportunities to implement state-of-the-art systems that solve problems in data preparation and analysis faster and more efficiently. In this pursuit, we have extended the TRANSPOSE procedure to operate in a distributed fashion within both Teradata and Hadoop, using dynamically generated DS2 executed by the SAS® Embedded Process and within SAS® Viya® , using its native transpose action. With its new ability to work within these environments, PROC TRANSPOSE provides you with access to its parallel processing power and produces results that are compatible with your existing SAS programs.
May 2017 Finding Out about Formats and Their Attributes (PDF)
This paper discusses format enumeration (via the DICTIONARY.FORMATS view) and the new FMTINFO function that gives information about a format, such as whether it is a date or currency format.
May 2017 Step Through Your DATA Step: Introducing the DATA Step Debugger in SAS® Enterprise Guide® (PDF)
Have you ever run SAS® code with a DATA step and the results were not what you expected? Tracking down the problem can be a time-consuming task. To assist you in this common scenario, SAS® Enterprise Guide® 7.13 and beyond has a DATA step debugger tool. The simple and interactive DATA step debugger enables you to visually walk through the execution of your DATA step program. You can control the DATA step execution, view the variables, and set breakpoints to quickly identify data and logic errors. Come see the full capabilities of the new SAS Enterprise Guide DATA step debugger. You'll be squashing bugs in no time!
May 2017 SAS® and UTF-8: Ultimately the Finest. Your Data and Applications Will Thank You! (PDF)
The SAS® platform with Unicode's UTF-8 encoding is ready to help you tackle the challenges of dealing with data in multiple languages. In today's global economy, software needs are changing. Companies are globalizing and consolidating systems from various parts of the world. Software must be ready to handle data from social media, international web pages, and databases that have characters in many different languages. SAS makes migrating your data to Unicode a snap! This paper helps you move smoothly from your legacy SAS environment to the powerful SAS Unicode environment with UTF-8 support. Along the way, you will uncover secrets to successfully manipulate your characters, so that all of your data remains intact.
May 2017 Dictionaries: Referencing a New PROC FCMP Data Type (PDF)
Hash objects have been supported in the DATA step and in the FCMP procedure for a while, but have you ever felt that hash objects could do a little more? For example, what if you needed to store more than doubles and character strings? Introducing PROC FCMP dictionaries. Dictionaries allow you to create references not only to numeric and character data, but they also give you fast in-memory hashing to arrays, other dictionaries, and even PROC FCMP hash objects. This paper gets you started using PROC FCMP dictionaries, describes usage syntax, and explores new programming patterns that are now available to your PROC FCMP programs, functions, and subroutines in the new SAS® Viya® platform environment.
May 2017 A Long-Time SAS® Programmer Learns New Tricks (PDF)
When a large and important project with a strict deadline hits your desk, it's easy to revert to those tried-and-true SAS® programming techniques that have been successful for you in the past. In fact, trying to learn new techniques at such a time can prove to be distracting and a waste of precious time. However, the lull after a project's completion is the perfect time to reassess your approach and see whether there are any new features added to the SAS arsenal since the last time you looked that could be of great use the next time around. Such a post-project post-mortem has provided me with the opportunity to learn about several new features that will prove to be hugely valuable in the next release of my project. For example: 1) The PRESENV option and procedure 2) Fuzzy matching with the COMPGED function 3) The ODS POWERPOINT statement 4) SAS® Enterprise Guide® enhancements, including copying and pasting process flows and the SAS Macro Variable Viewer
May 2017 Tables and Graphics That Will FREQ You Out (PDF)
Did you know that you could leverage the statistical power of the FREQ procedure and still be able to control the appearance of your output? Many people think they have to use procedures such as REPORT and TABULATE to be able to apply style options and control formats and headings for their output. However, if you pair PROC FREQ with a TEMPLATE procedure step, you can customize the appearance of your output and make enhancements to tables, such as adding colors and controlling headings. If you are a statistician, you know the many PROC FREQ options that produce high-level statistics. But did you also know that PROC FREQ can generate a graphical representation of those statistics? PROC FREQ can generate the graphs, and then you can use ODS Graphics and the Graph Template Language (GTL) to improve the appearance of the graphs. Written for intermediate users, this paper demonstrates how you can enhance the default output for PROC FREQ one-way and multi-way tables by modifying colors, formats, and labels. This paper also describes the syntax for creating graphs for multiple statistics, and it uses examples to show how you can customize these graphs.
May 2017 Comparing and Contrasting the LUA Procedure and the Macro Facility (PDF)
The LUA procedure is a relatively new SAS® procedure, having been available since SAS® 9.4. It allows for the Lua language to be used as an interface to SAS, as an alternative scripting language to the SAS macro facility. This paper compares and contrasts PROC LUA with the SAS macro facility, showing examples of approaches and highlighting the advantages and disadvantages of each.
May 2017 DATA Step in SAS® Viya®: Essential New Features (PDF)
The DATA step is the familiar and powerful data processing language in SAS® and now SAS® Viya®. The DATA step's simple syntax provides row-at-a-time operations to edit, restructure, and combine data. New to the DATA step in SAS® Viya® are a varying-size character data type and parallel execution. Varying-size character data enables intuitive string operations that go beyond the 32KB limit of current DATA step operations. Parallel execution speeds the processing of big data by starting the DATA step on multiple machines and dividing data processing among threads on these machines. To avoid multi-threaded programming errors, the run-time environment for the DATA step is presented along with potential programming pitfalls. Come see how the DATA step in SAS® Viya® makes your data processing simpler and faster.
May 2017 I Am Multilingual: A Comparison of the Python, Java, Lua, and REST Interfaces to SAS® Viya® (PDF)
The openness of SAS® Viya® , the new cloud analytic platform that uses SAS® Cloud Analytic Services (CAS), emphasizes a unified experience for data scientists. You can now execute the analytics capabilities of SAS® in different programming languages including Python, Java, and Lua, as well as use a RESTful endpoint to execute CAS actions directly. This paper provides an introduction to these programming languages. For each language, we illustrate how the API is surfaced from the CAS server, the types of data that you can upload to a CAS server, and the result tables that are returned. This paper also provides a comprehensive comparison of using these programming languages to build a common analytical process, including loading data to a CAS server; exploring, manipulating, and visualizing data; and building statistical and machine learning models.
May 2017 How SAS® Customers Are Using Hadoop: Year in Review (PDF)
Another year implementing, validating, securing, optimizing, migrating, and adopting the Hadoop platform. What have been the top 10 accomplishments with Hadoop seen over the last year? We also review issues, concerns, and resolutions from the past year as well. We discuss where implementations are and some best practices for moving forward with Hadoop and SAS® releases.
May 2017 Go Ahead and _BREAK_-down: Advanced COMPUTE Block Examples (PDF)
When you look at examples of the REPORT procedure, you see code that tests _BREAK_ and _RBREAK_, but you wonder what s the breakdown of the COMPUTE block? And, sometimes, you need more than one break line on a report, or you need a customized or adjusted number at the break. Everything in PROC REPORT that is advanced seems to involve a COMPUTE block. This paper provides examples of advanced PROC REPORT output that uses _BREAK_ and _RBREAK_ to customize the extra break lines that you can request with PROC REPORT. Examples include how to get custom percentages with PROC REPORT, how to get multiple break lines at the bottom of the report, how to customize break lines, and how to customize LINE statement output. This presentation is aimed at the intermediate to advanced report writer who knows some about PROC REPORT, but wants to get the breakdown of how to do more with PROC REPORT and the COMPUTE block.
   
April 2016 Dealing with Nanoseconds in SAS® Datetime Values in Transaction Processing (PDF)
This paper describes a technique for dealing with the precision problems inherent in datetime values containing nanosecond data. Floating-point values cannot store sufficient precision for this, and this limitation can be a problem for transactional data where nanoseconds are pertinent. Methods discussed include separation of variables and using the special GROUPFORMAT feature of the BY statement with MERGE in the DATA step.
April 2016 New for SAS® 9.4: A Technique for Including Text and Graphics in Your Microsoft Excel Workbooks, Part I (PDF)
A new ODS destination for creating Microsoft Excel workbooks is available starting in the third maintenance release for SAS® 9.4. This destination creates native Microsoft Excel XLSX files, supports graphic images, and offers other advantages over the older ExcelXP tagset. In this presentation you learn step-by-step techniques for quickly and easily creating attractive multi-sheet Excel workbooks that contain your SAS® output. 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. Using the ExcelXP tagset with earlier versions of SAS to create multi-sheet workbooks is also discussed.
Read the paper (PDF) | Download the zip file (ZIP)
April 2016 A Ringside Seat: The ODS Excel Destination versus the ODS ExcelXP Tagset (PDF)
The discussion covers features and benefits of the new Excel destination, differences between the Excel destination and the older ExcelXP tagset, and functionality that exists in the ExcelXP tagset that is not available in the Excel destination. These topics are all illustrated with meaningful examples. The paper also explains how you can bridge the gap that exists as a result of differences in the functionality between the destination and the tagset. In addition, the discussion outlines when it is beneficial for you to use the Excel destination versus the ExcelXP tagset, and vice versa.
April 2016 The Dynamic Duo: ODS Layout and the ODS Destination for PowerPoint (PDF)
Through code examples this paper shows you how to create a custom title slide, as well as place the desired number of graphs and tables on each slide.
April 2016 A Second Look at the ODS Destination for PowerPoint (PDF)
This paper demonstrates how to use the ODS destination for PowerPoint to create attractive presentations from your SAS® output.
April 2016 That’s All Right: More Complex Reports (PDF)
The paper presents a nuts-and-bolts look at more complex report examples gleaned from SAS® Community Forum questions and questions from students
April 2016 A Guide to Section 508 Compliance Using SAS® 9.4 Output Delivery System (ODS) (PDF)
This paper describes concrete steps that help you use SAS® 9.4 Output Delivery System (ODS) to create SAS output that complies with accessibility standards. It also provides recommendations and code samples that are aligned with the accessibility standards defined by Section 508 and the Web Content Accessibility Guidelines (WCAG 2.0).
April 2016 Implementing Hashing Techniques in SAS® (PDF)
This paper shows how hashing and methods can be implemented using SAS DATA steps and macros, with judicious use of the bitwise functions (BAND, BOR, and so on) and by referencing public domain sources.
April 2016 Data Analysis with User-Written DS2 Packages (PDF)
This paper discusses the SAS In-Database Code accelerator and how it enables customer packages to be deployed in parallel on massive data grids. It also shows how to create a package template that facilitates code reuse in a strongly typed system
April 2016 Deep Dive with SAS® Studio into SAS® Grid Manager 9.4 (PDF)
In this paper you learn how to connect each of them to SAS Grid Manager and discover best practices for harnessing a high-performance SAS analytics environment, while avoiding potential pitfalls.
April 2016 Developing SAS® Studio Repositories (PDF)
This paper covers developing SAS® Studio repositories. SAS Studio introduced a new way of developing custom tasks using an XML markup specification and the Apache Velocity templating language.
April 2016 Create Web-Based SAS® Reports Without Having to Be a Web Developer (PDF)
In this paper you will learn how to take a typical SAS program and create a SAS Studio task from it.
April 2016 Get Out of DATA Step Code and into Quality Knowledge Bases (PDF)
This paper explains the QKB and shows how to invoke QKB operations in a DATA step and in various SAS® Data Management offerings.
April 2016 How to Maintain Happy SAS®9 Users (PDF)
The guidance offered in this paper helps SAS administrators evaluate hardware, operating system, and infrastructure options for a SAS environment that will keep their SAS applications running at optimal performance and keep their user community happy.
April 2016 PharmaSUG 2016 – Paper BB11: Surviving the SAS® Macro Jungle by Using Your Own Programming Toolkit (PDF)
This paper describes ten macro programming tools that programmers of all levels can add to their toolboxes. The tools discussed in this paper (which include the DOSUBL function, the CALL SYMPUTX routine, and macro debugging system options among others) are intended to help programmers better understand the macro language and program more effectively.
   
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)
   
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® Programming (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.