เอาตัวแปลที่ตั้งไว้ มาคำนวนและเก็บเข้าอีกตัวแปลงนึงในรายงาน

หากท่านใดมีข้อสงสัยหรือคำถามเกี่ยวกับการใช้งานโปรแกรม Express สามารถเข้ามาสอบถามได้ที่นี่ครับ

Moderator: Sutas, CO-Admin, Global Moderator

เอาตัวแปลที่ตั้งไว้ มาคำนวนและเก็บเข้าอีกตัวแปลงนึงในรายงาน

โพสต์โดย polppol » จันทร์ ก.พ. 16, 2015 1:59 pm

จะสอบถามว่า เราสามารถเอาตัวแปลที่ประกาศไว้ในรายงาน มาใช้ในตัวแปลงอีกตัวได้หรือไม่ครับ
ตัวอย่างเช่น

เช่นในส่วน
[data spec]
มีตัวแปลงที่ประกาศไว้แล้ว คือ
~CHKAMT:    0,      "99,999,999.99",    "netamt",          "netamt = IIF( ARTRN->FLGVAT <> '1', ARTRN->NETAMT, ARTRN->TOTAL - ARTRN->VATAMT)"

และผมอยากสรา้งตัวแปล X_CHKAMT ขึ้นมาโดยเอา ~CHKAMT มา + 100 แบบนี้
~X_CHKAMT:  0,      "99,999,999.99",    "X_CHKAMT",        "X_CHKAMT = CHKAMT+ 100"
ต้องทำอย่างไรครับ

และอีก 1 คำถามคือ คำสั่ง ในช่องสุดท้าย (Exp) สามารถใช้คำสั่งอะไรได้บ้างครับ
หรือเป็นคำสั่งมาตฐานของภาษาอะไรหรือเป่าว ผมจะได้หาดูรายชื่อคำสั่งที่มีให้ใช้ได้
polppol
Jr. Member
Jr. Member
 
โพสต์: 90
ลงทะเบียนเมื่อ: จันทร์ ก.พ. 16, 2015 12:51 pm

Re: เอาตัวแปลที่ตั้งไว้ มาคำนวนและเก็บเข้าอีกตัวแปลงนึงในรายงาน

โพสต์โดย savek » จันทร์ ก.พ. 16, 2015 2:10 pm

จากที่ยกตัวอย่าง ให้ใช้คำสั่งลักษณะนี้นะครับ

~CHKAMT:    0,      "99,999,999.99",    "netamt",           "netamt = IIF( ARTRN->FLGVAT <> '1', ARTRN->NETAMT, ARTRN->TOTAL - ARTRN->VATAMT); X_CHKAMT= netamt+100"

~X_CHKAMT:  0,      "99,999,999.99",    "X_CHKAMT",        ""

โดยที่ตัวแปร ~X_CHKAMT จะต้องอยู่หลังจาก ~CHKAMT เพราะมีการฝากค่าการคำนวณเอาไว้ในตัวแปร ~CHKAMT ซึ่งอาจจะอยู่ในบรรทัดเดียวกัน หรือคนละบรรทัดก็ได้ครับ (เพราะโปรแกรมจะอ่านค่าจากบนลงล่าง และจากซ้ายไปขวา)

ส่วนคำสั่งที่ใช้ในหน้าจอแก้ไขแบบฟอร์มนี้ได้ ก็จะคล้ายๆ กับคำสั่งใน Visual Foxpro ครับ แต่ก็ไม่ได้เอามาทั้งหมดนะครับ ใช้ได้เป็นบางส่วน
ภาพประจำตัวสมาชิก
savek
Administrator
Administrator
 
โพสต์: 12467
ลงทะเบียนเมื่อ: พฤหัสฯ. พ.ย. 15, 2007 11:04 am

Re: เอาตัวแปลที่ตั้งไว้ มาคำนวนและเก็บเข้าอีกตัวแปลงนึงในรายงาน

โพสต์โดย polppol » จันทร์ ก.พ. 16, 2015 2:35 pm

ลองและครับเหมือนค่าจะไม่ตรง
~CHKAMT:    0,      "99,999,999.99",    "netamt",           "netamt = IIF( ARTRN->FLGVAT <> '1', ARTRN->NETAMT, ARTRN->TOTAL - ARTRN->VATAMT); X_CHKAMT= netamt"
~X_CHKAMT:  0,      "99,999,999.99",    "X_CHKAMT",        ""

(2บันทัดนี้อยู่ติดกันแบบนี้เลยครับ)

ในรายงาน ตอน print
~CHKAMT = 10,903.10
~X_CHKAMT = 11,666.32

น่าจะเกียวกับ การคิดราคาหรือเป่าวครับ
ตอนนี้ถ้าบิลใหน ประเภทราคาเลือกเป็น รวม vat อยู่ใน form จะต้องไปสลับตัวแปลง
~TOTAL กับ ~CHKAMT ไม่งั้นมัน print สลับกัน
มีวิธีที่ใหนให้ from เดียวมันใช้ได้ทั้ง รวม vat และ แยก vat มั้ยครับ

หรือมี ค่าตัวแปลใหนที่สามารถเอามา check ว่าบิลนั้นเป็น ราคารวมvatแล้วหรือยังไม่รวมมั้ยครับ
แก้ไขล่าสุดโดย polppol เมื่อ จันทร์ ก.พ. 16, 2015 2:39 pm, แก้ไขแล้ว 1 ครั้ง
polppol
Jr. Member
Jr. Member
 
โพสต์: 90
ลงทะเบียนเมื่อ: จันทร์ ก.พ. 16, 2015 12:51 pm

Re: เอาตัวแปลที่ตั้งไว้ มาคำนวนและเก็บเข้าอีกตัวแปลงนึงในรายงาน

โพสต์โดย savek » จันทร์ ก.พ. 16, 2015 2:42 pm

ที่ผมอธิบายไปเรื่องที่ว่าตัวแปรที่เกิดจากการฝากค่า ต้องอยู่หลังตัวแปรที่เรานำค่าการคำนวณไปฝากเอาไว้ จะหมายถึงการจัดตัวแปรในส่วนของ [report frame] นะครับ ไม่ใช่ในส่วนของ [data spec]

ส่วนกรณีประเภทราคาเป็นรวม VAT , แยก VAT วิธีที่ง่ายที่สุด คือ แยกออกมาเป็น 2 ฟอร์มครับ เช่น ฟอร์ม 1 ใช้สำหรับพิมพ์ฟอร์มแบบแยก VAT ส่วนฟอร์ม 2 ใช้สำหรับการพิมพ์ฟอร์มแบบรวม VAT
ภาพประจำตัวสมาชิก
savek
Administrator
Administrator
 
โพสต์: 12467
ลงทะเบียนเมื่อ: พฤหัสฯ. พ.ย. 15, 2007 11:04 am

Re: เอาตัวแปลที่ตั้งไว้ มาคำนวนและเก็บเข้าอีกตัวแปลงนึงในรายงาน

โพสต์โดย polppol » จันทร์ ก.พ. 16, 2015 3:05 pm

~X_CHKAMT วางอยู่หลัง ~CHKAMT
ทั้ง [report frame] และ [data spec] เลยครับแค่ค่าไม่ตรงเหมือนตามที่แจ้งไปครับ

โค้ด: เลือกทั้งหมด
* ARIVC.RN - ใบกำกับสินค้า (INVOICE)
* ****EX+IN VAT**** Pol 2015-02-16
[report frame]
*** ผู้ใช้สามารถเปลี่ยนแปลงแก้ไข ได้ตามต้องการ ****************************************
Ti:: ~INIT
He:
He:
He:
He:
*He:~P_ORGTXT       ~P_ORGSTR
He:
He:
He:             ~CUSCOD  ~BILLTO                                                     
He:       ~CUSNAM                                                  ~DOCNUM
He:       ~ADDR01                                                  ~DOCDAT                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               
He:       ~ADDR02                                                  ~CR                  ~DUEDAT                                                                                                                                                                                                                                                                                                 
He:       ~ADDR03                                                  ~SONUM              ~SODAT                                                                     
He:       ~TELNUM                                                  ~SLMCOD                                                 
He: เลขประจำตัวผู้เสียภาษี  ~TAXIDX        ~ORG                    ~YOUREF             ~DLVBY                                             
He:                                                         
He:
He:
Bo::
Ih::                    ;1 stcrd->docnum artrn->docnum
Ib: ~N    ~ARTICLE                                   ~QTY    ~TQUCOD  ~UNITPR     ~NETAMT_I     ;1
Ih::                    ;2 artrnrm->docnum+artrnrm->seqnum stcrd->rdocnum
Ib:       ~REMARK       ;2
Ih::                    ;3 artrnrm->docnum+artrnrm->seqnum stcrd->docnum+stcrd->seqnum
Ib:       ~REMARK       ;3
Fo:
Su:                                                                               ~AMOUNT
Su:  ~HREM1                                                           ~DISC       ~DISCAMT
Su:  ~HREM4                                                                       ~TOTAL
Su:  ~HREM5                                                               ~VAT    ~VATAMT
Su: ~BAHT                                                                         ~CHKAMT
* ########################################
* ########                     START EDIT             ###########
* ########################################
Su: ~X_CHKAMT              TEST:         ~X_TOTAL   ~VATPRD
* ########################################
* ########                     END EDIT             ###########
* ########################################
*Su:  ~HREM3                                                                       ~AMTRATZ
*Su:  ~HREM4                                                              ~VAT  %  ~AMTRATX
*Su:  ~HREM5                                                                       ~VATAMT
*Su: ~BAHT                                                                         ~NETAMT
*Su:
*Su:  พิมพ์โดย  ~PRNBY         วันที่  ~PRNDAT   ~PRNTIM พิมพ์ครั้งที่~PRNCNT บันทึกโดย ~RECBY
[end frame]

*** คำสั่งต่อจากนี้ ผู้ใช้ไม่ควรแก้ไข ****************************************

[print options]
Top=0
Left=0
Tabs=4
Right=94
Lines=36
Output=Select, Printer, Screen, File,
File Name=ARIVC.TXT
Print Control=\027\033\001
Fix Summary Line=ON
Select Scope=OFF
*Form=ON
Select Page=OFF
Condition=OFF

[range of report]
From=CUR

[master file]
File=artrn
Alias=A
Tag=artrn1
System=DATA_PATH

[item file]
File=stcrd
Alias=B
Tag=stcrd5
System=DATA_PATH

File=artrnrm
Alias=C
Tag=artrnrm1
System=DATA_PATH

[relate file]
File=armas
Alias=R
Tag=armas1
System=DATA_PATH
Master file=artrn
Master-Related Field=CUSCOD

File=stmas
Alias=C
Tag=stmas1
System=DATA_PATH
Master file=stcrd
Master-Related Field=STKCOD

File=oeso
Alias=Y
Tag=oeso1
System=DATA_PATH
Master file=artrn
Master-Related Field=SONUM

File=stloc
Alias=L
Tag=stloc1
System=DATA_PATH
Master file=stcrd
Master-Related Field=STKCOD+LOCCOD

[data spec]
*           len  (0)default, (>0)cut, (<0)cut to new line
*~dat:      len,    "pict",             "data",             "exp"
~ADDR:      0,      "",                 "p_addr()",         ""
~TAXID:     0,      "",                 "p_taxid()",        ""
~TEL:       0,      "",                 "p_telnum()",       ""
~INIT:      0,      "",                 "",                 "seq=0; sumamt0=0; sumamt1=0"
~TXT0:      0,      "",                 "txt0",             "txt0 = IIF( ARTRN->FLGVAT <> '1', '  จำนวนเงิน', 'ราคารวมภาษี')",
*~TXT1:     0,      "",                 "txt1",             "txt1 = IIF( ARTRN->FLGVAT <> '1', 'จำนวนเงินหลังหักส่วนลด', 'จำนวนเงินรวมทั้งสิ้น  ')",
~TXT1:      0,      "",                 "txt1",             "txt1 = IIF( ARTRN->FLGVAT <> '1', 'จำนวนเงินหลังหักมัดจำ ', 'จำนวนเงินรวมทั้งสิ้น  ')",
~TXT2:      0,      "",                 "txt2",             "txt2 = IIF( ARTRN->FLGVAT <> '1', 'จำนวนเงินรวมทั้งสิ้น', 'ราคาสินค้า          ')",
*~DOCNUM:   0,      "",                 "doc_num",          "doc_num=SUBSTR(ARTRN->DOCNUM, 3, 8)"
~DOCNUM:    0,      "",                 "ARTRN->DOCNUM",    ""
~DOCDAT:    0,      "",                 "ARTRN->DOCDAT",    ""
~CUSCOD:    0,      "",                 "ARTRN->CUSCOD",    ""
~CUSNAM:    0,      "",                 "cus_nam",          "cus_nam = ARMAS->PRENAM - ' ' - ARMAS->CUSNAM"
~ADDR01:    0,      "",                 "ARMAS->ADDR01",    ""
~ADDR02:    0,      "",                 "ARMAS->ADDR02",    ""
~ADDR03:    0,      "",                 "addr_03",          "addr_03 = ARMAS->ADDR03 - ' ' - ARMAS->ZIPCOD"
~TELNUM:    0,      "",                 "ARMAS->TELNUM",    ""
~YOUREF:    0,      "",                 "ARTRN->YOUREF",    ""
~SLMCOD:   27,      "",                 "slm",              "slm = ARTRN->SLMCOD-'-'-OESLM->SLMNAM"
~CR:        0,      "ZZZ",              "ARTRN->PAYTRM",    ""
~DUEDAT:    0,      "",                 "ARTRN->DUEDAT",    ""
~DLVBY:     0,      "",                 "p_istab( ARTRN->DLVBY, 41, 1, 40 )",           ""
~AREA:      0,      "",                 "p_istab( ARTRN->AREACOD, 40, 1, 40 )",         ""
~SONUM:     0,      "",                 "ARTRN->SONUM",     ""
~SODAT:     0,      "",                 "OESO->SODAT",      ""
~FLGVAT:    0,      "Y",                "ARTRN->FLGVAT",    ""
~AMOUNT:    0,      "99,999,999.99",    "ARTRN->AMOUNT",    ""
~DISC:      0,      "",                 "ARTRN->DISC",      ""
~DISCAMT:   0,      "99,999,999.99",    "ARTRN->DISCAMT",   ""
~AFTDISC:   0,      "99,999,999.99",    "ARTRN->AFTDISC",   ""
~ADVNUM:    0,      "",                 "ARTRN->ADVNUM",    ""
~ADVAMT:    0,      "99,999,999.99",    "ARTRN->ADVAMT",    ""
~TOTAL:     0,      "99,999,999.99",    "ARTRN->TOTAL",     ""
~VAT:       0,      "99.99",            "ARTRN->VATRAT",    ""
~VATAMT:    0,      "99,999,999.99",    "ARTRN->VATAMT",    ""
~VATPRD:    0,      "",            "ARTRN->FLGVAT",    ""
* ########################################
* ########                     START EDIT             ###########
* ########################################
~CHKAMT:    0,      "99,999,999.99",    "netamt",           "netamt = IIF( ARTRN->FLGVAT <> '1', ARTRN->NETAMT, ARTRN->TOTAL - ARTRN->VATAMT); X_CHKAMT = netamt"
~X_CHKAMT:  0,      "99,999,999.99",    "X_CHKAMT",        ""
* ########################################
* ########                     END EDIT             ###########
* ########################################
~BAHT:      0,      "",                 "t_baht(ARTRN->NETAMT)"                         ""

~N:         0,      "999",              "seq",              "seq=seq+1"
~ARTICLE:  42,      "",                 "article",          "article = STCRD->STKCOD - ' ' - STCRD->STKDES"
~STKCOD:   15,      "",                 "STCRD->STKCOD",    ""
~STKDES:   28,      "",                 "STCRD->STKDES",    ""
~L:         0,      "",                 "STCRD->LOCCOD",    ""
~QTY:       0,      "qtyZ(7)",          "STCRD->TRNQTY",    ""
~TQUCOD:    8,      "",                 "p_istab( STCRD->TQUCOD,  20, 1, 0 )",      ""
~UNITPR:    0,      "priZ(10)",         "STCRD->UNITPR",    ""
~DISC_I:    0,      "",                 "STCRD->DISC",      ""
~NETAMT_I:  0,      "ZZ,ZZZ,ZZZ.ZZ",    "STCRD->TRNVAL",    ""
~SONUM_I:   0,      "",                 "STCRD->RDOCNUM",   ""
~REMARK:    0,      "",                 "ARTRNRM->REMARK",  ""
~MQTY:      0,      "ZZ,ZZZ",           "mqty",             "mqty = STCRD->TRNQTY * STCRD->TFACTOR"
~MQUCOD:    0,      "",                 "p_istab( STMAS->QUCOD,  20, 1, 0 )",       "",

~NETAMT0:   0,      "ZZ,ZZZ,ZZZ.ZZ",    "amt0",             "amt0=IIF(STCRD->VATCOD='0', STCRD->TRNVAL, 0); sumamt0 =sumamt0+amt0"
~NETAMT1:   0,      "ZZ,ZZZ,ZZZ.ZZ",    "amt1",             "amt1=IIF(STCRD->VATCOD#'0', STCRD->TRNVAL, 0); sumamt1 =sumamt1+amt1"
~SUMAMT0:   0,      "99,999,999.99",    "sumamt0",          ""
~SUMAMT1:   0,      "99,999,999.99",    "sumamt1",          ""

~HREM1:     0,      "",                 "p_hrem( A->DOCNUM,1,A->SONUM )",   ""
~HREM2:     0,      "",                 "p_hrem( A->DOCNUM,2,A->SONUM )",   ""
~HREM3:     0,      "",                 "p_hrem( A->DOCNUM,3,A->SONUM )",   ""
~HREM4:     0,      "",                 "p_hrem( A->DOCNUM,4,A->SONUM )",   ""
~HREM5:     0,      "",                 "p_hrem( A->DOCNUM,5,A->SONUM )",   ""

~DEP:       0,      "",                 "A->DEPCOD",                ""
~P_ISDEP:   0,      "",                 "p_isdep( A->DEPCOD )",     ""
~LOCAREA:   0,      "",                 "STLOC->AREA",              ""
~RDOCNUM:   0,      "",                 "so",                       "so = SUBSTR( STCRD->RDOCNUM,1,12)"

~NETAMT:    0,      "99,999,999.99",    "ARTRN->NETAMT",    ""
~AMTRATZ:   0,      "99,999,999.99",    "AMTRATZ",          "AMTRATZ = ARTRN->AMTRAT0 - (ARTRN->AMTRAT0 * ARTRN->DISCAMT / ARTRN->AMOUNT)"
~AMTRATX:   0,      "99,999,999.99",    "AMTRATX",          "AMTRATX = IIF(ARTRN->FLGVAT='1',ARTRN->TOTAL - AMTRATZ - ARTRN->VATAMT, ARTRN->TOTAL - AMTRATZ)"
*~V:        0,      "",                 "VAT_SYM",          "VAT_SYM = IIF(STCRD->VATCOD='0', ' ', 'V')"
~V:         0,      "",                 "STCRD->VATCOD",    ""
~SHIPTO:    0,      "",                 "ARTRN->SHIPTO",    ""
~S_ADDR01:  0,      "",                 "ARSHIP->ADDR01",   ""
~S_ADDR02:  0,      "",                 "ARSHIP->ADDR02",   ""
~S_ADDR03:  0,      "",                 "addr_03",          "addr_03 = ARSHIP->ADDR03 - ' ' - ARSHIP->ZIPCOD"
~S_TELNUM:  0,      "",                 "ARSHIP->TELNUM",   ""

~PRNBY:     0,      "",                 "p_userid()",       ""
~PRNDAT:    0,      "",                 "@d_prndat()",      ""
~PRNTIM:    0,      "",                 "s_prntim()",       ""
~PRNCNT:    0,      "999",              "@n_prncnt()",      ""
~RECBY:     0,      "",                 "A->USERID",        ""

~P_ORGTXT:  0,      "",                 "p_orgtxt()",       ""
~P_ORG:     0,      "",                 "p_orgnum()",       ""
~P_ORGSTR:  0,      "",                 "p_orgstr()",       ""
~BILLTO:    0,      "",                 "A->BILLTO",        "tax_id=@TAXID()"
~TAXIDX:    0,      "",                 "tax_id",           ""
~ORG:       0,      "",                 "org",              "org=IIF(tax_id#'   '.AND.A->ORGNUM>=0,IIF(A->ORGNUM=0,' สำนักงานใหญ่   ', ' สาขาที่ '   -LTRIM(STR(A->ORGNUM,5,0))),'              ')"
*~ORG:      0,      "",                 "org",              "br=@p_orgnum_00009( A->ORGNUM ); org=IIF(tax_id#'   '.AND.A->ORGNUM>=0,IIF(A->ORGNUM=0,' สำนักงานใหญ่  ', ' สาขาที่ '-br),'               ')"
~SEEKCUS:   0,      "",                 "SeekCus()",        ""



แต่ตอน Print ได้ออกมาแบบนี้ครับ
รูปภาพ
แก้ไขล่าสุดโดย polppol เมื่อ จันทร์ ก.พ. 16, 2015 3:07 pm, แก้ไขแล้ว 1 ครั้ง
polppol
Jr. Member
Jr. Member
 
โพสต์: 90
ลงทะเบียนเมื่อ: จันทร์ ก.พ. 16, 2015 12:51 pm

Re: เอาตัวแปลที่ตั้งไว้ มาคำนวนและเก็บเข้าอีกตัวแปลงนึงในรายงาน

โพสต์โดย savek » จันทร์ ก.พ. 16, 2015 3:25 pm

หมายถึงต้องการให้ค่า ~X_CHKAMT แสดงออกมาเหมือนกับ ~CHKAMT เลยใช่ไหมครับ

ถ้าแบบนั้นให้เขียนคำสั่งลักษณะนี้ครับ

~CHKAMT:    0,      "99,999,999.99",    "netamt",          "netamt = IIF( ARTRN->FLGVAT <> '1', ARTRN->NETAMT, ARTRN->TOTAL - ARTRN->VATAMT); X_CHKAMT = IIF( ARTRN->FLGVAT <> '1', ARTRN->NETAMT, ARTRN->TOTAL - ARTRN->VATAMT)"
ภาพประจำตัวสมาชิก
savek
Administrator
Administrator
 
โพสต์: 12467
ลงทะเบียนเมื่อ: พฤหัสฯ. พ.ย. 15, 2007 11:04 am


ย้อนกลับไปยัง ถาม-ตอบปัญหาเกี่ยวกับโปรแกรม Express

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

กำลังดูบอร์ดนี้: ไม่มีสมาชิกใหม่ และ บุคคลทั่วไป 26 ท่าน