你说的位置是什么位置呢,是在纸张上要打印的位置(行列)还是打印的页码设置(第7—8页),
vfp不必考虑打印机,你只要考虑页面设置就行了 

解决方案 »

  1.   

    你是指在VFP中定义上顶空格及左边距吗?
      

  2.   

    终于有人看我的贴子了!!!!
    我指的是要打印的位置,比如我可以控制整个报表的位置是靠左还是靠右,偏上还是偏下!
    说白了,比如我在EPSON 1600K的打印机上本来报表打印出来正好在正中央,可换了HP LaserJet后报表就不知为什么不是偏左就是偏右,不是靠上就是靠下,反正是歪了!
    等我把它(在HP LaserJet)调整好,在EPSON 1600K又歪了,没办法只好存两份源程序!!
    诸位大虾多多帮忙呀,我能加多少分就加多少分!(目前仅有47)
      

  3.   

    我想下面的方法可能解决你的问题:
    1、设置不同的纸张大小,调整报表位置,并保存为不同的报表式样(大约A4、80列、132列3种就可以了);
    2、通过程序检测打印机的纸张设置;
    3、根据纸张设置选择不同的报表式样:
       ...
       paper = getpaper()
       ...
       do case
            case paper = 'a4'
                repo form rpt_a4
            case paper = '80'
                repo form rpt_80
            case paper = '132'
                repo form rpt_132
       endcase
      

  4.   

    你把VFP的报表文件改名成DBF与FPT看一下里面的内容
      

  5.   

    可以不会我不知道它是怎么做到的。你可以去下载个试一下。是要银子的哦。(好象是两百两吧)17、vfpprt.vcx 打印机及打印纸张设置工具,特点:
       VfpPrt.vcx是专门为vfp设计的打印机及打印纸张设置工具,它同时提供打印预览和直接打印的功能,关键是它可以在程序中用代码直接操作底层的打印机配置和动态进行纸张设置,如果您的程序安装到其他机器上,它能自动适应该机器的打印驱动程序,它既不是.dll动态连接库,也不是ActiveX控件,它是用vfp本身语言编制的 .VCX类,您可直接把它放入“项目”文件,编译进您的EXE文件中,为您发布程序带来方便。 
     http://vfp.3322.net/vfpgj/vfpprt_gx.zip
      

  6.   

    To murphy711(蒙古土豆):
    不管是那种打印机,我一般默认的都是A4,所以不存在纸张设置的问题?
    这种方法到有可能:
    do case
      case printerName = 'Hp'
             repo form rpt_a4
     case printerName = 'Epson'
                repo form rpt_80
     case printerName = 'Star'
                repo form rpt_132
    这样显然太麻烦,况且怎样得到?PrinterName呢?
    To 25475360(人家不要的,我作宝贝用.) 
    改一下扩展名吗?我怎么打不开呀?
    vfp_database(数据库):我先试试看!诸位将来都会有分送的,我保证还会加分!
      
      

  7.   

    SET MARGIN TO ,_LMARGIN, _ploffset ... ...,sys(?)
    其实VFP有非常丰富的打印控制指令,只是随版本升高M$逐步封装了它们,
    建议你查一下vfp3.0的帮助文件。你的方法也不错,可能比用指令控制
    还是简洁,用函数APRINTERS(ArrayName)可获得系统打印机信息。
      

  8.   

    vfp_database(数据库): 网站是不错,不能免费提供技术支持吗?
    (吃素的狼):有详细的vfp3.0帮助文件吗,或者哪里能下载?诸位再多帮帮忙,最迟下周一结贴!!!!多谢诸位!