ถ้าจะปรับแก้ ต้องไปแก้ไข p_d-ban.prg ยังไงบ้างครับ
- โค้ด: เลือกทั้งหมด
******************************************************************
* ส่งข้อมูล พิมพ์ STICKER ยา ให้ Mit Utility แบบสร้าง CURSOR *
******************************************************************
* ตัวแปร temno = เลขที่ใบสั่งยา
* banref= ลำดับยา
* _lang .f.=ไทย .t.=english
* หมายเหตุ ถ้าเป็น thai จะใช้ข้อมูลจำเพราะของยา ที่ ; ตัวที่ 1 และ 2
* ถ้าเป็น english จะใช้ข้อมูลจำเพราะของยา ที่ ; ตัวที่ 3 และ 4
* 1.ใช้ Esp2 code : chr(27)+chr(67)+chr(0)+chr(X) X = ความยาวกระดาษเป็นนิ้ว(จำนวนเต็มบวกเท่านั้น)
* 2.ใช้ function ใน mit-net : p_long(X,Y,D) X = ความยาวกระดาษเป็นนิ้ว เช่น 2.5
* Y = ความละเอียด ถ้าไม่กำหนดให้จะใช้ค่า 360
* D = ไว้ใช้กรณีต้องการกำหนดเป็นเศษส่วน เช่น ยาว 4/3 นิ้ว(หนึ่งเศษหนึ่งส่วนสาม)
* กำหนดเป็น p_long(4,360,3)
******************************************************************
PARAMETERS C_date,C_name,C_DIRECTION,C_DOSE,N_AMOUNT,C_UNIT,C_LANGUE &&&sattahip 23/11/2002
PRIVATE HAVE,DATA1,DATA2,DATA3,DATA4,COMMENT1,COMMENT2,LLEN,NLINE,FSPACE,NLEN,a1,a2,b1,b2,NRET
STORE '' TO DATA1,DATA2,DATA3,DATA4,DATA5,DATA6,COMMENT1,COMMENT2
STORE 0 TO A1,A2,B1,B2
DATA1 = ALLTRIM(SUBTHAI(C_DIRECTION,1,34))
NLEN=LENTHAI(C_DIRECTION)
IF NLEN > 34
DATA2 = ALLTRIM(SUBTHAI(C_DIRECTION,35,34))
NLEN = NLEN-40
NLINE = 2
ELSE
DATA2 = ''
NLINE = 1
ENDIF
C_DOSE = ALLTRIM(C_DOSE)
HAVE = .F.
DO WHILE !EMPTY(C_DOSE)
FSPACE = AT(" ",C_DOSE)
IF FSPACE = 0
SUBDAT = C_DOSE+' '
C_DOSE =''
ELSE
SUBDAT = LEFT(C_DOSE,FSPACE)
C_DOSE=ALLTRIM(SUBSTR(C_DOSE,FSPACE+1))
ENDIF
SUBDESC = D_SIG(SUBDAT,C_LANGUE) &&เพิ่ม parameter C_LANGUE พิมพ์ภาษา E,T
IF INLIST(SUBDAT,"M ","N ","E ","B ","HS ","NN ").AND.!HAVE
NLINE = NLINE+1
C_VAR = 'DATA'+STR(NLINE,1,0)
&C_VAR= SUBDESC
NLEN = LENTHAI(SUBDESC)
HAVE = .T.
ELSE
IF NLEN+LENTHAI(SUBDESC) > 34
NLINE =NLINE+1
C_VAR ='DATA'+STR(NLINE,1,0)
&C_VAR= SUBDESC
NLEN =LENTHAI(SUBDESC)
ELSE
C_VAR ='DATA'+STR(NLINE,1,0)
&C_VAR= &C_VAR+SUBDESC
NLEN =NLEN+LENTHAI(SUBDESC)
ENDIF
ENDIF
ENDDO
***** COMMENT 2 lines *********************
A1=AT(";",J.TEXT)
B1=AT(";",J.TEXT,2)
IF A1 > 0
IF !EMPTY(C_LANGUE)
A2=AT(";",J.TEXT,3)
B2=AT(";",J.TEXT,4)
IF A2 > 0
A1=A2
A2=B1+1
B1=B2
B2=A1-A2-1
ELSE
A2=1
B2=A1-1
ENDIF
ELSE
A2=1
B2=A1-1
ENDIF
COMMENT1 = SUBSTR(J.TEXT,A2,B2)
NRET=RAT(CHR(13),COMMENT1)
IF NRET>0
COMMENT1=SUBSTR(COMMENT1,NRET+2,A1-3-NRET)
ENDIF
*******************
*NLINE =NLINE+1
NLINE = 5
*******************
C_VAR ='DATA'+STR(NLINE,1,0)
&C_VAR = ALLTRIM(COMMENT1)
IF B1>0
COMMENT2=SUBSTR(J.TEXT,A1+1,B1-A1-1)
NRET=RAT(CHR(13),COMMENT2)
IF NRET>0
COMMENT2=SUBSTR(COMMENT2,NRET+2,A1-3-NRET)
ENDIF
*********************
*NLINE =NLINE+1
NLINE = 6
*********************
C_VAR ='DATA'+STR(NLINE,1,0)
&C_VAR = ALLTRIM(COMMENT2)
ENDIF
ENDIF
*** ส่งข้อมูลออกไปพิมพ์ ทาง Utility *********************
?? "EXC DRUGBANNER.LBX" &&สั่งให้ โปรแกรม Utility run LABEL FROM นี้ใช้ EXC เพื่อให้สร้าง cursor
? "DATE"+CHR(1)+C_date
? "NAME"+chr(1)+C_name
? 'AMOUNT'+CHR(1)+str(N_AMOUNT,6,0)
? 'UNIT'+CHR(1)+C_UNIT
? 'ITEM'+CHR(1)+banref
? 'HN'+CHR(1)+b_hn
? 'NO'+CHR(1)+temno
? 'DRUG'+CHR(1)+j.ban_name
FOR NLEN = 1 TO 6
C_VAR = 'DATA'+STR(NLEN,1,0)
? 'DATA'+STR(NLEN,1,0)+CHR(1)+&C_VAR
NEXT
EJECT PAGE
RETURN
และแบบสร้าง cursor กับไม่สร้าง cursor ต่างกันยังไงครับ