[ปัญหา] ส่งค่า id ของ name ที่ค้นหาข้ามฟังก์ชั่น

แนะนำ สอบถาม ภาษา C สำหรับผู้เริ่มต้น ภาษา Java ภาษา Python

Moderator: mindphp, ผู้ดูแลกระดาน

ภาพประจำตัวสมาชิก
Wallapa
PHP Super Member
PHP Super Member
โพสต์: 343
ลงทะเบียนเมื่อ: 30/10/2017 10:22 am

[ปัญหา] ส่งค่า id ของ name ที่ค้นหาข้ามฟังก์ชั่น

โพสต์โดย Wallapa » 22/12/2017 5:23 pm

ตอนนี้กลับไม่กลับไปใช้วิธีเดิมแล้วค่ะ แต่ใช้พารามิเตอร์ postID ช่วย ตอนนี้สามารถคลิกปุ่มไม่ Error แล้ว
ปัญหา คือ ตอนนี้ติดเรื่อง การส่งค่าไอดีของ name ข้ามฟังก์ชั่นค่ะ
ตัวอย่างโค้ดที่ใช้

โค้ด: เลือกทั้งหมด

@app.route('/search/<postID>',methods=['POST'])
def search(postID):
        global comp, money, id, row
        idd = postID
        fname = request.form['name']
        #print(idd)
        try:
            con = psycopg2.connect(host='localhost', database='testppp', user='postgres', password='')
            cur = con.cursor()
            cur.execute('SELECT version()')
            sql = "SELECT id, name, date_to FROM hr_payslip WHERE name='%s'" % fname
            try:
                cur.execute(sql)
                con.commit()
                row = cur.fetchall()
                for line in row:
                    id = line[0]
                    name = line[1]
                    date = line[2]
                    print(id, name, date)
                return render_template("show.html", rows=row)
            except:
                con.rollback()
        except psycopg2.DatabaseError:
            print('Error %s' % psycopg2.DatabaseError)
# -------------------------------------------PDF-----------------------------------------------------
@app.route('/payslippdf/<postID>', methods=['POST'])
def payslippdf(postID):
        global comp
        idd = postID
        #print(idd)
        con = psycopg2.connect(host='localhost', database='testppp', user='postgres', password='')
        cur = con.cursor()
        sql1 = "SELECT name FROM res_company"
        try:
            cur.execute(sql1)
            con.commit()
            comp = cur.fetchone()
            print(comp)
        except:
            con.rollback()

        sql2 = "SELECT name,amount FROM hr_payslip_line WHERE slip_id = '%s" % id
        try:
            cur.execute(sql2)
            con.commit()
            money = cur.fetchall()
            print(money)

            c = canvas.Canvas("payslip.pdf")
            c.setFont("THSarabunNew", 18)
            date = time.localtime()
            a = time.strftime('%d/%m/%Y', date)

            f1 = Frame(inch, 6.25 * inch, 6.5 * inch, 4 * inch, showBoundary=1)  # ช่องใหญ่สุด

        # --------หัวตาราง-------------------------------------------------------------------------

            c.drawString(inch, 11 * inch, "ใบแจ้งเงินเดือน (Payslip)")
            c.drawString(inch, 10.75 * inch, "แผนก/Dep.")
            c.drawString(inch, 10.5 * inch, "ชื่อสกุล/Emp.")

            c.drawString(3.25 * inch, 11 * inch, comp[0])
            c.drawString(3.25 * inch, 10.75 * inch, "***")
            c.drawString(3.25 * inch, 10.5 * inch, "***")

            c.drawImage("md.jpg", 5.5 * inch, 11 * inch, width=1.75 * inch, height=0.5 * inch)
            c.drawString(5.5 * inch, 10.75 * inch, "ประจำงวด(PERIOD)1")
            c.drawString(5.5 * inch, 10.5 * inch, "วันที่จ่าย(DATE)")
            c.drawString(6.7 * inch, 10.5 * inch, a)

            c.drawString(1.25 * inch, 10 * inch, "รายได้(Income)")
            c.drawString(3.5 * inch, 10 * inch, "รายการหัก(Dediction)")

            c.drawString(5.6 * inch, 9.6 * inch, "รวมเงินได้")
            c.drawString(5.6 * inch, 9.3 * inch, "รวมเงินหัก")

            c.drawString(5.6 * inch, 6.64 * inch, "ลงชื่อ/Sing __________")
            c.drawString(5.6 * inch, 6.34 * inch, "วันที่/Date __________")

        # --------ตัวตาราง-------------------------------------------------------------------------
            for row2 in money:
                print(row2[0])
                # print(row2[1])
                c.drawString(1.1 * inch, 9.6 * inch, row2[0])  # c.drawString(2.75 * inch, 9.6 * inch, row[1])

            f1.addFromList(story, c)
            f2 = Frame(inch, 6.25 * inch, 4.5 * inch, 4 * inch, showBoundary=1)  # ช่องรวมเงิน
            f2.addFromList(story, c)
            f3 = Frame(inch, 6.25 * inch, 4.5 * inch, 3.65 * inch, showBoundary=0.5)  # ช่องรายการหัก
            f3.addFromList(story, c)
            f4 = Frame(inch, 6.25 * inch, 2.25 * inch, 4 * inch, showBoundary=0.5)  # ช่องรายได้
            f4.addFromList(story, c)
            f5 = Frame(inch, 6.25 * inch, 4.5 * inch, 0.6 * inch, showBoundary=0.5)  # ช่องล่างซ้าย
            f5.addFromList(story, c)
            f6 = Frame(inch, 6.25 * inch, 1.4 * inch, 0.6 * inch, showBoundary=1)  # ช่องล่างขวา
            f6.addFromList(story, c)
            f7 = Frame(inch, 6.25 * inch, 4.5 * inch, 0.3 * inch, showBoundary=0.5)  # ช่องล่างสุด
            f7.addFromList(story, c)

            c.showFullScreen0()
            c.showPage()
            c.save()

        except:
            con.rollback()

        return render_template("payslip.html")

if __name__ == '__main__':
    app.run(debug=True)

ภาพประจำตัวสมาชิก
Wallapa
PHP Super Member
PHP Super Member
โพสต์: 343
ลงทะเบียนเมื่อ: 30/10/2017 10:22 am

Re: [ปัญหา] ส่งค่า id ของ name ที่ค้นหาข้ามฟังก์ชั่น

โพสต์โดย Wallapa » 22/12/2017 5:43 pm

สามารถแก้ไขได้แล้วค่ะ สาเหตุ คือ ใส่ ' ' ตรง slip_id = '%s แค่ข้างเดียว เลยทำให้ข้อมูลไม่ขึ้นค่ะ

โค้ด: เลือกทั้งหมด

sql2 = "SELECT name,amount FROM hr_payslip_line WHERE slip_id = '%s" % id


ย้อนกลับไปยัง

ผู้ใช้งานขณะนี้

กำลังดูบอร์ดนี้: 399 และ บุคคลทั่วไป 0 ท่าน