Page 1 of 1

custom action

PostPosted: Thu Mar 22, 2012 12:15 pm
by wisni1rr
I have the following to make a printable report. I need to modify it so it will only pull the current record (This action is pulling the entire query rather than the record in details view [this report link is only viewable on the current record details screen])
Code: Select all
<?php
class actions_printable_report {
    function handle(&$params){
        $app =& Dataface_Application::getInstance();
        $query =& $app->getQuery();
       
        if ( $query['-table'] != 'GENERAL' ){
            return PEAR::raiseError('This action can only be called on the Listing table.');
        }
       
        $GENERAL = df_get_records_array('GENERAL', $query);
           echo '<html><head>'
            .'<title>BWA Report v1.0</title>'
            .'<style type="text/css">'
            .'    th { font-size: 60%;}'
            .'    td { font-size: 60%;}'
            .'    img { width:300px;
                        height:145px;
                        border-style:ridge}'
            .'    img.logo { width:75%;
                             height:100%;
                             border:none }'
            .'</style>'
            .'</head>'
            .'<body>';
             
           


Thanks for taking the time to read my post!

Re: custom action

PostPosted: Thu Mar 22, 2012 2:14 pm
by shannah
Change
Code: Select all
$GENERAL = df_get_records_array('GENERAL', $query);

to
Code: Select all
$GENERAL = df_get_record('GENERAL', $query);


-Steve

Re: custom action

PostPosted: Fri Mar 23, 2012 10:41 am
by wisni1rr
Thanks, Steve!

I have changed the code as you have instructed.

Now the very next line in the code throws an error:

Code: Select all
   foreach ($GENERAL as $record){
                   $Address = $record->htmlValue('StreetNo').' '.$record->htmlValue('StreetName').' '.$record->htmlValue('City').', '.$record->htmlValue('State').' '.$record->htmlValue('Zip');

Fatal error: Call to a member function htmlValue() on a non-object (points to line with $Address = ...)

The code works just fine when I call the records_array, It just cycles through all that are in the list view.

Thanks for your help!

Re: custom action

PostPosted: Fri Mar 23, 2012 12:33 pm
by shannah
Yes. df_get_record() returns a Dataface_Record object directly - not an array of records. You don't need to loop through them anymore with a foreach loop.