home *** CD-ROM | disk | FTP | other *** search
/ DOS Wares / doswares.zip / doswares / DATABASE / DBASE5 / DRIVERS.EXE / IBMLASER.PRG < prev    next >
Encoding:
Text File  |  1994-06-24  |  6.9 KB  |  132 lines

  1. FUNCTION ibmlaser
  2. PARAMETERS pc_todo,px_param1,px_param2,px_param3,px_param4,px_param5,px_param6,px_param7
  3.  
  4.    PRIVATE lc_params,lc_str,ll_query,ll_toprint
  5.    lc_params = "pc_todo,px_param1,px_param2,px_param3,px_param4,px_param5,px_param6,px_param7"
  6.  
  7.    lc_str     = ""
  8.    ll_query   = .F.
  9.    ll_toprint = .T.
  10.    pc_todo    = UPPER(pc_todo)
  11.    IF pc_todo="QUERY"
  12.       ll_query   = .T.
  13.       ll_toprint = .F.
  14.       IF PCOUNT()=1
  15.          RETURN .T.
  16.       ENDIF
  17.       pc_todo   = UPPER(px_param1)
  18.       px_param1 = px_param2
  19.       px_param2 = px_param3
  20.       px_param3 = px_param4
  21.       px_param4 = px_param5
  22.       px_param5 = px_param6
  23.       px_param6 = px_param7
  24.    ENDIF
  25.  
  26.    DO CASE                                                       
  27.       CASE pc_todo = "VMI"                                       
  28.            lc_str = CHR(27)+"[\"+int2bytstr(2)+int2bytstr(1440)  
  29.            lc_str = lc_str +CHR(27)+"A" + ;                      
  30.                     CHR(INT(1440/px_param1))+CHR(27)+"2"         
  31.                                                                  
  32.       CASE pc_todo = "ORIENTATION"                               
  33.            PRIVATE la_orients,ln_x                               
  34.            DECLARE la_orients[3,2]                               
  35.                                                                  
  36.            la_orients[1,1] = "PORTRAIT"                          
  37.            la_orients[1,2] = "k"                                 
  38.            la_orients[2,1] = "LANDSCAPE"                         
  39.            la_orients[2,2] = "l"                                 
  40.                                                                  
  41.            ln_x = 1                                              
  42.            px_param1 = UPPER(px_param1)                          
  43.            DO WHILE TYPE("la_orients[ln_x,1]")='C'               
  44.               IF la_orients[ln_x,1] = px_param1                  
  45.                  EXIT                                            
  46.               ENDIF                                              
  47.               ln_x = ln_x + 1                                    
  48.            ENDDO                                                 
  49.                                                                  
  50.            IF TYPE("la_orients[ln_x,1]") = 'C'                   
  51.               lc_str = CHR(27)+la_orients[ln_x,2]                
  52.            ENDIF                                                 
  53.                                                                  
  54.       CASE pc_todo = "PFEED"                                     
  55.            lc_str = CHR(27)+"[F"+int2bytstr(1)+;                 
  56.                     CHR(IIF(UPPER(px_param1)="MANUAL",1,3))      
  57.                                                                  
  58.       CASE pc_todo = "PSIZE"                                     
  59.            PRIVATE la_psizes,ln_x                                
  60.            DECLARE la_psizes[6,2]                                
  61.                                                                  
  62.            la_psizes[1,1] = "LETTER"                             
  63.            la_psizes[1,2] = 1                                    
  64.            la_psizes[2,1] = "LEGAL"                              
  65.            la_psizes[2,2] = 2                                    
  66.            la_psizes[3,1] = "B5"                                 
  67.            la_psizes[3,2] = 3                                    
  68.            la_psizes[4,1] = "A4"                                 
  69.            la_psizes[4,2] = 4                                    
  70.            la_psizes[5,1] = "EXECUTIVE"                          
  71.            la_psizes[5,2] = 5                                    
  72.                                                                  
  73.            ln_x = 1                                              
  74.            px_param1 = UPPER(px_param1)                          
  75.            DO WHILE TYPE("la_psizes[ln_x,1]")='C'                
  76.               IF la_psizes[ln_x,1] = px_param1                   
  77.                  EXIT                                            
  78.               ENDIF                                              
  79.               ln_x = ln_x + 1                                    
  80.            ENDDO                                                 
  81.                                                                  
  82.            IF TYPE("la_psizes[ln_x,1]") = 'C'                    
  83.               lc_str = CHR(27)+"[F"+int2bytstr(4)+;              
  84.                        REPLICATE("{0}",3)+;                      
  85.                        CHR(la_psizes[ln_x,2])                    
  86.            ENDIF                                                 
  87.                                                                  
  88.       CASE pc_todo = "TMARGIN"                                   
  89.            lc_str = CHR(27)+"[K"+int2bytstr(4)+;                 
  90.                     CHR(6)+CHR(49)+CHR(1)+CHR(32+128)            
  91.            lc_str = lc_str + CHR(27)+"[S"+int2bytstr(2)+;        
  92.                     int2bytstr(px_param1,.T.)                    
  93.                                                                  
  94.     ENDCASE                                                      
  95.                                                                  
  96.                                                                  
  97.  
  98.     IF ll_toprint
  99.        ??? lc_str
  100.     ELSE
  101.       IF ll_query
  102.          px_param7 = px_param6
  103.          px_param6 = px_param5
  104.          px_param5 = px_param4
  105.          px_param4 = px_param3
  106.          px_param3 = px_param2
  107.          px_param2 = px_param1
  108.       ENDIF
  109.     ENDIF
  110.  
  111. RETURN .NOT. ISBLANK(lc_str)
  112.  
  113. FUNCTION int2bytstr                                              
  114. PARAMETER pn_int,pl_hilo                                         
  115.                                                                  
  116.     PRIVATE ln_hi,ln_lo,lc_str,ln_sbyte,ln_ebyte                 
  117.                                                                  
  118.     ln_hi  = INT(pn_int/256)                                     
  119.     ln_lo  = MOD(pn_int,256)                                     
  120.     lc_str = ""                                                  
  121.                                                                  
  122.     ln_sbyte = IIF(pl_hilo,ln_hi,ln_lo)                          
  123.     ln_ebyte = IIF(pl_hilo,ln_lo,ln_hi)                          
  124.                                                                  
  125.     lc_str = lc_str + IIF(ln_sbyte # 0,CHR(ln_sbyte),"{0}")      
  126.     lc_str = lc_str + IIF(ln_ebyte # 0,CHR(ln_ebyte),"{0}")      
  127.                                                                  
  128. RETURN lc_str                                                    
  129. *EOP: int2bytstr                                                 
  130.                                                                  
  131.                                                                  
  132.