[ NeXuS_SO @ 29.03.2016. 20:41 ] @
Pozdrav svim ljudima dobre volje!

Zamolio bih vas od srca za pomoć oko sledećeg problema sa kojim sam se suočio:

------------------

Stranica koja čita iz baze podataka i nudi artikle na izbor, istemom Ctrl + klik na željene artikle, pa potom “PRINT” koji prosleđuje vrednosti sledećoj stranici metodom POST. Za sada zanemarujemo polje (offset):




Ovako izgleda var_dump. Prvi pravougaonik su vrednosti “ID-a” odabranih artikala koje su prosleđene queriju ove strane i koji pronalazi i skladišti podatke u niz prikazan u drugom pravougaoniku:




Ispod privremenog var_dimpa u toku razvoja stoji stranica čije je telo formatirano u formatu A4 stranice, koja je podeljena u ćelije koje odgovaraju dimenzijama unapred isečenih nalepnica koje se nalaze na jednom A4 tabku za redovan kolorac laserski štampač.
Za sada se svaka ćelija lepo štampa prema izabranim vrednostima. Ignorišite crni border, njega sam uključio da bih lakše objasnio stranicu, inače je border podešen na “white” i nevidi se...




Spomenuti A4 tabak ima 15 unapred isečenih nalepnica na sebi ... Problem nastaje kada se npr. samo 6 nalepnica odštampa ... a sledeći put papir želi ponovo da se koristi, tada je potrebno „pomeriti“ početnu nalepnicu na sedmu ćeliju.
To je zamišljeno tako da se izabere ofset unošenjem cifre u polje „offset“ i odabirom preostalih artikala za štampu u količini od 1 do 9 preostalih slobodnih mesta:




Trenutni kod petljom „while“ vraća rezultate queryja sa dobrim ofsetom indeksnog broja, ali je problem u tome što umesto da sve bude jedan niz, meni petlja vraća svaki niz posebno:




I to ima za posledicu da u templejtu dobijem pogrešan ofset jer su samo vrednosti poslednjeg niza „uhvaćene“ ...
U prevodu: umesto da je ćelija 6 popunjena sa artiklom A0004 sa indeksa 6, ćelija 7 popunjena sa artiklom A0209 sa indeksa 7 ... samo ćelija 8 biva popunjena sa artiklom A0266 sa indeksa 8.




Evo i (većeg dela) koda ... Mogu i ceo da kopiram ... ali znam da sam ga napisao kao noobara teška i izvinjavam se unapred svima :) Ovde je najvažniji deo oko "while" petlje:

Code:
 



    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
        <title>BC BATCH PRINT</title>
        <link rel="stylesheet" href="css/styles.css">
        <link rel="stylesheet" href="css/bootstrap.min.css">
        <style>

            body {
                background: rgb(204,204,204); 
            }

            page[size="A4"] {
                background: white;
                width: 21cm;
                height: 29.7cm;
                display: block;
                margin: 0 auto;
                margin-bottom: 0.5cm;
                box-shadow: 0 0 0.5cm rgba(0,0,0,0.5);
            }

            @media print {
                body, page[size="A4"] {
                    margin: 0;
                    box-shadow: 0;
                }
            }


            tr.header {
                position: relative;
                height: 21mm;
                overflow: hidden;
            }
            
            tr.footer {
                position: relative;
                height: 21mm;
                overflow: hidden;
            }

            tr.medium {
                position: relative;
                height: 21mm;
                overflow: hidden;
            }

            tr.big {
                position: relative;
                height: 30mm;
                overflow: hidden;
            }

            img.attachment {
                height:30mm;
                max-width: 47mm;
                padding-top: 3mm;
            }
            
            img.barcode {
                height: 30mm;
                padding-top: 3mm;
            }

            div.txt {
                display: table-cell;
                vertical-align: bottom;
                padding-left: 10px;
                max-width: 250px;
                white-space: -o-pre-wrap;   
                word-wrap: break-word;
                white-space: pre-wrap; 
                white-space: -moz-pre-wrap; 
                white-space: -pre-wrap; 
            }    

            span.firstcharacter { 
                float: left; 
                color: #903; 
                font-size: 30px; 
                line-height: 30px;
                padding-right: 15px; 
                padding-left: 3px; 
                padding-top: 7px;    
            }

        </style>

    </head>

    <body>

        <!--Otvara vezu sa bazom-->
        <?php include "includes/dbconnection.php"; ?>

        <?php
        
        error_reporting(0);
        
            $offset = $_REQUEST["offset"];        
            $group = $_REQUEST["group"];
        if (count($group) <= 15){
            //var_dump($group);
        
        $i = 0;  
        $o = $offset;
               
            while ($line = mssql_fetch_array(mssql_query("SELECT [item_id],[default_img],[item_name],[description] FROM mdta_item WHERE item_id = $group[$i]"), MSSQL_ASSOC)) {           
                $results = array_fill($o,1,$line);
                var_dump($results); 

                $i++;
                $o++;
        
            }
        
        }
        
        else {
            echo "You have selected more than 15 attachments to be printed! Please de-select a few until qty < or = 15 pcs!";
        }  
        
        ?>


    <page size="A4">
        <table border="1" style="width:100%;height:100%; table-layout: fixed; border: 1px black">
            <col width="4mm"/>
            <col width="15mm"/>
            <col width="55mm"/>
            <col width="15mm"/>
            <col width="55mm"/>
            <col width="15mm"/>
            <col width="55mm"/>
            <col width="4mm"/>
            <tr class="header_footer">
                <td><a href="att_bc_print.php"><<<</a></td>
                <td></td>
                <td></td> 
                <td></td>
                <td></td>
                <td></td> 
                <td></td>
                <td></td>
            </tr>

            <tr class="big">
                <td></td>
                <td style="text-align:center"><img class="barcode"  src="
                                                    <?php 
                                                    if(isset($group[0])){
                                                        echo  "img/items/bc/" . $results[0]['item_id'] . ".png";  
                                                    } 
                                                    else {
                                                        echo "img/items/bc/placeholder.png";
                                                    }
                                                    ?>" alt="BC"></td>
                <td style="text-align:center"><img class="attachment" src="

                                                   <?php
                                                   $filename = "img/items/" . $results[0]['item_id'] . $results[0]['default_img'] . ".jpg";
                                                   if (file_exists($filename)) {
                                                       echo $filename;
                                                   } else {
                                                       echo "img/items/placeholder.jpg";
                                                   }
                                                   ?>" 

                                                   alt="IMG"></td>                 
                <td style="text-align:center"><img class="barcode"  src="
                                                    <?php 
                                                    if(isset($group[1])){
                                                        echo  "img/items/bc/" . $results[1]['item_id'] . ".png";  
                                                    } 
                                                    else {
                                                        echo "img/items/bc/placeholder.png";
                                                    }

                                                    ?>" alt="BC"></td>
                <td style="text-align:center"><img class="attachment" src="
                                                   <?php
                                                   $filename1 = "img/items/" . $results[1]['item_id'] . $results[1]['default_img'] . ".jpg";

                                                   if (file_exists($filename1)) {
                                                       echo $filename1;
                                                   } else {
                                                       echo "img/items/placeholder.jpg";
                                                   }
                                                   ?>" 

                                                   alt="IMG"></td> 
                <td style="text-align:center"><img class="barcode"  src="
                                                    <?php 
                                                    if(isset($group[2])){
                                                        echo  "img/items/bc/" . $results[2]['item_id'] . ".png";  
                                                    } 
                                                    else {
                                                        echo "img/items/bc/placeholder.png";
                                                    }

                                                    ?>" alt="BC"></td>                                   
                <td style="text-align:center"><img class="attachment" src="

                                                   <?php
                                                   $filename2 = "img/items/" . $results[2]['item_id'] . $results[2]['default_img'] . ".jpg";

                                                   if (file_exists($filename2)) {
                                                       echo $filename2;
                                                   } else {
                                                       echo "img/items/placeholder.jpg";
                                                   }
                                                   ?>"                                        

                                                   alt="IMG"></td>
                <td></td>
            </tr>






Hvala svima unapred!
Svaki savet je dobrodošao ....
[ Tpojka @ 29.03.2016. 23:58 ] @
Morao bi da sacuvas poziciju sljedece stampe u bazi ili posebnom fajlu.
Recimo ako si na novom listu odstampao 7 celija, da tako memorises i u bazi u tabeli odredjenoj za to.
Ta vrijednost ce ti reci koliko celija trenutnog lista je potroseno. Za sql bi bilo nesto poput ovog.
Zatim ta vrijednost moze da se koristi. Ali prvenstveno je treba sacuvati po svakom stampanju (INSERT ili UPDATE).
Sljedeca stvar je da bi svaka celija trebala da ima svoj identifikator putem klase ili id-ja od 1 do 15.
Kad se uporedi vrijednost iz baze sa celijom PHP ce stampati vrijednosti ili ne. Isto tako, print tabele treba da ide kroz petlju da bi se mogla dodijeliti id/class vrijednost celiji.
[ NeXuS_SO @ 31.03.2016. 20:01 ] @
Hvala ti dobri čoveče!

Čim uhvatim vremena (verovatno vikend), probam ovo i u praksi, pa se javim! Svaka čast za sugestiju.



Pozdrav!