asp fpdf пытается вывести изображение, назначенное переменной - PullRequest
0 голосов
/ 10 июня 2010

это код, который я использовал для отображения изображения в заголовке.проблема, которую я имею, я хочу использовать переменную для изображения, когда я помещаю имя переменной вместо имени изображения, я получаю ошибку:

Ошибка выполнения Microsoft JScript '800a138f'

'undefined' является нулем или не является объектом

/ EKtestdb / fpdf / fpdf / includes / Basics.asp, строка 121

    this.Header=function Header() 
  { 
  this.SetY (10) 
  this.SetFont ("Times","",10) 
  //this.Cell (45,5, "HEADER", 0, 0, "L") 
  this.SetFont ("Times","b",14) 
  //this.Cell (190,5, this.title, 0, 0, "C") 
  this.Cell (190,20, this.title, 0, 0) 
  this.SetFont ("Times","",10) 
  this.Image('logoSM1.jpg',165,3,33) 
  this.Image( techpic ,165,3,33)

это код для basics.asp строка 121:

this.strrpos=function strrpos(s,ch){ 
 res = s.lastIndexOf(ch) 
 if (res>0-1){return res}else{return false} 
} 
this.strpos=function strpos(s,ch,start){ 
 if (arguments.length<3){start=0} 
 res = s.indexOf(ch,start); 
 if (res>-1){return res}else{return false} 
}

если вы просто хотите отобразить изображение, эта строка должна работать:

this.Image('logoSM1.jpg',165,3,33)

но для использования переменной вместо имени изображения может кто-то помочь с этим?

Ответы [ 2 ]

0 голосов
/ 11 июня 2010

У меня была проблема с объявлением переменной. Я не уверен, почему, но мне пришлось объявить переменную в первом разделе файла pdf.asp, чтобы вывести переменную в заголовке. Для вывода в нижний колонтитул это было не так, и я все еще не уверен, почему вот пример кода fpdf.asp:

this.Header=function Header()
        {
        this.SetY (10);
        this.SetFont ("Times","b",14);
        this.Cell (190,20, this.title, 0, 0);
        this.SetFont ("Times","",10);
        //this.Image('logoSM1.jpg',165,3,33);
        this.Image( techpic2 ,165,3,33);
        }
    this.Footer=function Footer()
        {
        this.SetY (-15)
        this.SetFont ("Times","i",10)
        this.Cell (190, 5, "", 0, 1)
        this.Cell (190, 0, "", 1, 1)
        this.Cell (45, 5, EmployeeName + " - " + EmployeeNo, 0, 0, "L")
        this.Cell (100, 5, this.PageNo() + "/{nb}", 0, 0, "C")
        this.Cell (45, 5, "", 0, 0, "R")            
        }

В приведенном выше коде нижний колонтитул будет получать значение EmployeeName и выводить его правильно, но в заголовке значение techpic2 не будет получено. В строке выше techpic2 изображение было успешно отображено, вот пример кода pdf.asp:

strSQL = "SELECT * FROM employee_course_vendortraining_view "  

objRS.Open strSQL, objConn

%>

<!--#include file="fpdf.asp"-->

<%

Set pdf=CreateJsObject("FPDF")

pdf.CreatePDF()

pdf.SetPath("fpdf/")

'------pdf.SetFont "Arial","",16

pdf.Open()

pdf.AddPage()


if (objRS.EOF) then

else

    Do Until objRS.EOF = True

    EmployeeNo = objRS("EmployeeNo")
    EmployeeName = objRS("EmployeeName")
     techpic2 = objRS("techpic2") 

Здесь переменным присваивается значение из набора записей, который работал для вывода из нижнего колонтитула, но не работал бы для заголовка. Но как только я объявил и установил переменные в примере ниже, заголовок вывел бы правильно:

strSQL = "SELECT * FROM employee_course_vendortraining_view "  

    objRS.Open strSQL, objConn
Dim EmployeeName
    EmployeeName = objRS("EmployeeName")
Dim techpic2
    techpic2 = objRS("techpic2")
    %>

    <!--#include file="fpdf.asp"-->

    <%

    Set pdf=CreateJsObject("FPDF")

    pdf.CreatePDF()

    pdf.SetPath("fpdf/")

Почему нижний колонтитул может прочитать переменную, но не заголовок. Я до сих пор не уверен, почему, но если у кого-то возникнут проблемы, может быть, это поможет.

0 голосов
/ 10 июня 2010

Я обновляю свой ответ, потому что я не осознавал, что вы используете JScript и VBscript. Вам не нужно добавлять <% =%>, потому что весь ваш код уже находится в <%%> на стороне Jscript.

Я не уверен, почему у вас возникла проблема, но, глядя на код, который вы добавили, я не вижу LoadModels (), который в документации по fpdf говорит, что вам нужен, если вы используете страницу vbscript.

http://www.aspxnet.it/public/Default.asp?page=174&idp=62

Также я не уверен, имеет ли это значение, но, возможно, вы можете добавить открывающую и закрывающую одинарные кавычки:

this.Image( "'" + techpic + "'" ,165,3,33);

Я также заметил, что ни один из кодов под this.Header=function Header() не содержит после них точку с запятой, что требуется для JSCript.

...