VFP ·R¥ÎªÌªÀ°Ï ­º­¶ VFP ·R¥ÎªÌªÀ°Ï
¥»°Q½×°Ï¬° Visual Foxpro ·R¥ÎªÌ¸gÅç¥æ¬yªº¦a¤è, ½Ð¦h¦h§Q¥Î"·j´M"ªº¥\¯à, ¥ý¬d¬Ý¬Ý¦³µL«e¨Ò¥i´`, ¦pªGÁÙ¦³¤£À´ªº¦Aµo°Ý. ³¡¥÷¥DÃD¦³ªþ¥[ÀÉ®×, ¶·¥ýµù¥U¦¨¬°ªÀ°Ï©~¥Á¤~¥i¥H¤U¸ü.
 
 ±`¨£°ÝÃD±`¨£°ÝÃD   ·j´M·j´M   ·|­û¦Cªí·|­û¦Cªí   ·|­û¸s²Õ·|­û¸s²Õ   ·|­ûµù¥U·|­ûµù¥U 
 ­Ó¤H¸ê®Æ­Ó¤H¸ê®Æ   µn¤JÀˬd±zªº¨p¤H°T®§µn¤JÀˬd±zªº¨p¤H°T®§   µn¤Jµn¤J

¤À¨É:MSSQL«á¥x¬°UTF16²§Åé¦rNVARCHAR(1000),¥i¦bVFP9Åã¥Ü/¼g¦^SQLÂù¦V·¾³q

 
µoªí·s¥DÃD   ¦^ÂÐ¥DÃD    VFP ·R¥ÎªÌªÀ°Ï ­º­¶ -> VFP °Q½×°Ï
¤W¤@½g¥DÃD :: ¤U¤@½g¥DÃD  
µoªí¤H ¤º®e
CPS0204



µù¥U®É¶¡: 2014-08-24
¤å³¹: 524


²Ä 1 ¼Ó

µoªíµoªí©ó: ¬P´Á¤@ ¤»¤ë 15, 2026 12:16 pm    ¤å³¹¥DÃD: ¤À¨É:MSSQL«á¥x¬°UTF16²§Åé¦rNVARCHAR(1000),¥i¦bVFP9Åã¥Ü/¼g¦^SQLÂù¦V·¾³q ¤Þ¨¥¦^ÂÐ

­è°ÝAI:¥i¥HÅã¥Ü ¥ý¬Ý·Ó¤ù
´Á±æ¥i¥H¬ð¯}UNICODE­­¨î....¤]µL»Ý¨Ï¥Î³y¦rÀÉ,¤w¸g´ú¹L¥i¦æ(AI±Ðªº),Ū¼g,ÂàEXCELªººë¯«´N¬O:¤£ÅýVFP9 ÂàBIG5,ª½±µ©I¥s°Å¶K諸COPY/PASTE
³o¨Ç²§Åé¦r(ûiûiûi)µ¥¬O¤â¤u¿é¤J¦b MS SQL «á¥xªº
¥i¥HÀ³¥Î¦bERP ªº«È¤á¼t°Ó¦WºÙÄæ¦ì,¦a§}µ¥Äæ¦ì
µL¶·¥~±¾DLLµ¥



1.¥ý¼´¶iACTIVE X MS FORMS 2.0 TEXTBOX (¦WºÙ=OLE1),¥ý¶}±Ò¤@­ÓNEW FORM,µM«á¼´¶i¨Ó¦¹OLE±±¥ó....¦A·s¼W¤@­Ó«ö¯Ã COMMAND1 (¬dMS-SQL¸ê®Æ)
2.«á¥xªº TABLE ,ªº²§Åé¦rÄæ¦ì:»Ý³]©w¬°NVARCHAR(1000)³]¤j¤@ÂI
«á¥xªºTABLE= CPU (ÀH«K¨ú¦W),NVARCHAR() Äæ¦ì¦WºÙ=V20 (ÀH«K¨ú¦W)

3.¦b¦¹FORMªºCOMMAND1.CLICK¼g¤U:
DECLARE LONG OpenClipboard IN user32 LONG hwnd
DECLARE LONG CloseClipboard IN user32
DECLARE LONG EmptyClipboard IN user32
DECLARE LONG SetClipboardData IN user32 LONG uFormat, LONG hMem
DECLARE LONG GlobalAlloc IN kernel32 LONG uFlags, LONG dwBytes
DECLARE LONG GlobalLock IN kernel32 LONG hMem
DECLARE LONG GlobalUnlock IN kernel32 LONG hMem
DECLARE LONG RtlMoveMemory IN kernel32 LONG pDest, STRING pSource, LONG dwBytes

CON=RET_SQL_CON() && ³s±µ«á¥xODBC SQL CONNECT ³q¹D

AA=[SELECT CAST(V20 AS VARBINARY(1000)) V21, DATALENGTH(V20) AS my_true_len FROM CPU ]
BB=SQLEXEC(CON,AA,'TEMP1')
=SQLDISCONNECT(CON)
SELECT TEMP1
lnLen= my_true_len+2 && ªø«×+4¤£¦æ

IF OpenClipboard(0) != 0
EmptyClipboard()

* ¨Ï¥Î±j¦æ¥[¤jªº¦w¥þªø«×¨Ó¥Ó½Ð¥þ°ì°O¾ÐÅé
lnHmem = GlobalAlloc(2, lnLen)
IF lnHmem != 0
lnPtr = GlobalLock(lnHmem)

* ª¼¨ê¼g¤J¡A¦¹®Éµ²§À·|¦Û±a°®²bªºªÅ¦r¤¸¡]Null-terminator¡^¡A¹ï Unicode ¨Ó»¡¬O§¹¬üªºµ²§ô¼Ð°O
RtlMoveMemory(lnPtr, lcUtf16Raw, lnLen)

GlobalUnlock(lnHmem)
SetClipboardData(13, lnHmem)
ENDIF
CloseClipboard()
ENDIF
thisform.ole1.Object.Value = ""
* ¬ï¶V COM ¥~´ß¡A¥s·L³n TextBox ¤º®Öª½±µ¥h¸ò Windows ¨t²Î¥Ó½Ð­è­èÄé¶i¥hªº°ª²M Unicode °Å¶Kï
thisform.ole1.Object.Paste()





¤º®eµ¥¤@¤U¸É¤W


CPS0204 ¦b ¬P´Á¤G ¤»¤ë 16, 2026 5:59 pm §@¤F²Ä 12 ¦¸­×§ï
¦^³»ºÝ
À˵ø·|­û­Ó¤H¸ê®Æ µo°e¨p¤H°T®§
CPS0204



µù¥U®É¶¡: 2014-08-24
¤å³¹: 524


²Ä 2 ¼Ó

µoªíµoªí©ó: ¬P´Á¤@ ¤»¤ë 15, 2026 12:52 pm    ¤å³¹¥DÃD: ¤Þ¨¥¦^ÂÐ

°f¦V±NUNICODE UTF16 ¼g¤JMS SQL,¤w¸g´ú¹L¥i¦æ(AI±Ðªº),­ì¥»¤£¯à¼g¤Jªø¤å¦r(¦³255)­­¨î,²{¦b¥i¥H¤F,´«¦æ¤]¥i¥H
«á¥xms sql table nvarchar(800) ½Ð³]¤j¤@ÂI
1.¤â°Ê¿é¤J¦b­è­è«Ø¥ßªºFORM.OLE1¤W­±ÀH«K¿é¤J¤@¨Ç²§Åé¦r(¨Ò¦p:ûiûiûi)

WRITE COMMAND.CLICK ¦p¤U
LOCAL lcHexStr, lcSqlCmd, lnResult

* ==============================================================================
*
LOCAL lcSqlCmd, lnResult, CON, BB
LOCAL lnHmem, lnPtr, lnSize, lcRawBuffer, lbBlobData
LOCAL laErr[1]

* ³z¹L±zªº¥þ°ìÅܼƩΰt¸m±±ºÞ´£¥Ü¤è¶ô¼ÐÃD¡]­YµL¦¹Åܼƥi§ï¬°±`³W¦r¦ê¡^
IF TYPE("ZZ_BOX") # "C"
ZZ_BOX = "¨t²Î´£¥Ü"
ENDIF

* ==============================================================================
* 1. «Å§i Windows ¤º®Ö°O¾ÐÅé»P°Å¶Kï Win32 API ³q´Y
* ==============================================================================
DECLARE LONG OpenClipboard IN user32 LONG hwnd
DECLARE LONG CloseClipboard IN user32
DECLARE LONG GetClipboardData IN user32 LONG uFormat
DECLARE LONG GlobalLock IN kernel32 LONG hMem
DECLARE LONG GlobalUnlock IN kernel32 LONG hMem
DECLARE LONG GlobalSize IN kernel32 LONG hMem

* ­è©Ê«ü©w²Ä¤@­Ó°Ñ¼Æ¬° STRING @¡A±Mªù¹ï»ô VFOX ¤º³¡Åܼƪº¹êÅé«ü°w¦ì§}
DECLARE LONG RtlMoveMemory IN kernel32 STRING @pDest, LONG pSource, LONG dwBytes

* ==============================================================================
* 2. µe­±­I´ººI¨ú¡G©R¥O Forms 2.0 ±±¨î¶µ¦b­I´ºª½±µ°é¿ï¨Ãµo°Ê­ì¥Í½Æ»s
* ==============================================================================
* ?? ®Ö¤ßÀu¤Æ¡G¥þ­±©Þ°£ SetFocus()¡Iª½±µ½Õ¥Î¤º®ÖÄݩʡA¤£¤zÂZ¨Ï¥ÎªÌ·Æ¹«´å¼Ð
thisform.ole1.Object.SelStart = 0
thisform.ole1.Object.SelLength = 99999999 && ª½±µµ¹¤©¶W¤j­È¡A±j¨î°é¿ï¥þ³¡¦h¦æ¤å¦r
thisform.ole1.Object.Copy() && À»µo·L³n­ì¥Í Unicode ½Æ»s¨ó©w¡I

* ==============================================================================
* 3. °O¾ÐÅéÄdºI¡Gª½±µ¦V Windows ¨t²Î°Å¶Kïº^¥X³o¶ô¯Â²bªº UTF-16LE ¤G¶i¦ì¦×Åé
* ==============================================================================
lcRawBuffer = ""

IF OpenClipboard(0) != 0
lnHmem = GetClipboardData(13) && Ū¨ú¼Ð·Ç Unicode °Å¶Kï§Ö¨ú (CF_UNICODETEXT = 13)

IF lnHmem != 0
lnPtr = GlobalLock(lnHmem)
lnSize = GlobalSize(lnHmem)

* ±Æ°£ Windows µ²§À¦Û°Ê¸ÉªºªÅ¦r¤¸¦ì¤¸²Õ (Unicode Null-Terminator ¦û 2 Bytes)
IF lnSize > 2
lnSize = lnSize - 2
ENDIF

IF lnSize > 0
* ¦b VFOX ¤j¸£¤º³¡¶}ÅP¤@¶ô¤Ø¤o§¹¥þ­è¦n¡B¤£®ö¶OªÅ¶¡ªº¦w¥þ³fÂd
lcRawBuffer = REPLICATE(CHR(0), lnSize)

* ­è©Ê¼´¦^ VFOX ÅܼƤ¤¡A¦¹®É¸Ì­±¸Ëªº¬O 100% ¯Â¥¿¡B¥¼¨ü Big5 ¦Ã¬Vªº UTF-16 ¦×Åé
=RtlMoveMemory(@lcRawBuffer, lnPtr, lnSize)
ENDIF

=GlobalUnlock(lnHmem)
ENDIF
=CloseClipboard()
ENDIF

* ¨ú®øµe­±ªº¿ï¨úª¬ºA¡Aºû«ù ERP ¨t²ÎµøÄ±½Ã¥Í°®²b
thisform.ole1.Object.SelLength = 0

* ==============================================================================
* 4. ?? ­°ºû¥´À»¡G±N¤G¶i¦ì¦×ÅéÂ૬¬°¸UÆF Blob ÅܼơA¨Ã§Q¥Î¡i?¡j¯SÅv°Ñ¼Æ³q¹Dª¼¨ê
* ==============================================================================
* ?? ÃöÁä®Ö¤ß¡G¹ý©³¼o°£ CONVERT(NVARCHAR, 0x...) »P¤j¦r¦ê¤Þ¸¹«÷±µ¡I
* §Ú­Ìª½±µ±N­è­è¼´¦^¨Óªº¯Â¤G¶i¦ì¦r¦ê¡A±j¦æ CAST ¦¨ VFOX ¤º®Ö³Ì³»¶¥ªº Blob ª«¥ó¡]W Ãþ«¬¡^
lbBlobData = CAST(lcRawBuffer AS Blob)

IF !EMPTY(lbBlobData)
* ©I¥s±zªº¸ê®Æ®w³s½u±±¨î¬`
CON = RET_SQL_CON()

IF CON <= 0
=MESSAGEBOX('MS SQL ¸ê®Æ®w«á¥x³s½u¥¢±Ñ¡A½ÐÀˬd¤u¼tºô¸ô©Î±±¬`ª¬ºA¡I', 16, ZZ_BOX)
RETURN
ENDIF

* ?? ?? ?? ¥@¬ö¸Ñª¼¥´ªk¡G
* §Ú­Ì¦b SQL »y¥y¤¤ª½±µ«ü¬£¡u?lbBlobData¡v°ÊºAÅܼƫü°w¡C
* ³o¬q SQL ¦r¦êªø«×·¥µu¡A§¹¬ü¶¹L VFOX9 ¤Þ¸¹¦r¦ê 255 ¦r¤¸ªº­P©Rª«²z­­¨î¡I
* VFOX ªº ODBC ÅX°Ê¤@¬Ý¨ì°Ý¸¹¡A·|ª½±µ¦b©³¼hµo°Ê°ÊºA°O¾ÐÅé¸j©w¡A§â¾ã¦êªø³Æµù 100% ¥þ¶qÄé¤J«á¥x¡I
lcSqlCmd = [UPDATE CPU SET V20 = ?lbBlobData WHERE CPU_NUM = 'A2']

* µo®g¦Ü MS SQL 2014 «á¥x
BB = SQLEXEC(CON, lcSqlCmd)
=SQLDISCONNECT(CON)

IF BB < 0
=AERROR(laErr)
=MESSAGEBOX('SQL ¼g¤J¥¢±Ñ¡I©³¼h®Ö¤ß¦^³ø­ì¦]¡G' + laErr[2], 16, ZZ_BOX)
ELSE
=MESSAGEBOX('WRITE TO SQL OK! ¦h¦æªø³Æµù²§Åé¦r¸ô¥Ñ¥¿¦¡§¹¬ü«Ê³»³q¨®¡I', 64, ZZ_BOX)
ENDIF
ELSE
=MESSAGEBOX('ºI¨úµe­±±±¨î¶µ¤§ Unicode ¼Æ¾Ú¸ê²£¥¢±Ñ¡A½w½Ä°Ï¬°ªÅ¡I', 16, ZZ_BOX)
ENDIF
¦^³»ºÝ
À˵ø·|­û­Ó¤H¸ê®Æ µo°e¨p¤H°T®§
CPS0204



µù¥U®É¶¡: 2014-08-24
¤å³¹: 524


²Ä 3 ¼Ó

µoªíµoªí©ó: ¬P´Á¤@ ¤»¤ë 15, 2026 8:19 pm    ¤å³¹¥DÃD: ¤Þ¨¥¦^ÂÐ

¥Ñ©óreport µLªk¦¨¥\(¤w¸g¸Õ¹L§Y®ÉÂàbmpÀÉ)¦breport¨Ì¼Ë¤£¦¨¥\
¦³Ãö¦¹²§Åé¦rªº¦C¦L´N¥æ¥Ñ ©ßÂàexcel¨Ó¦C¦L


command_xls.click¦p¤U:



******* REPORT TO EXCEL
TITLE0='²§Åé¦rÂàXLS'
ExcelApp= CREATEOBJECT("Excel.Application")

ExcelApp.Workbooks.ADD
ExcelActiveSheet=ExcelApp.ActiveSheet
ExcelApp.ActiveWindow.WINDOWSTATE = 2
ExcelActiveSheet.NAME =TITLE0







ExcelApp.COLUMNS("A").COLUMNWIDTH =40
ExcelApp.Cells(1,1).FONT.SIZE=14
ExcelApp.Cells(2,1).FONT.SIZE=14
ExcelApp.Cells(3,1).FONT.SIZE=12
ExcelApp.RANGE("A5:A5").FONT.SIZE=9
ExcelApp.RANGE("A5:A5").FONT.Bold = .T.

ExcelApp.Cells(5,1).VALUE = "«È¤á¦WºÙ"


ExcelActiveSheet.PageSetup.ORIENTATION =2 && ?¸m¥´¦L¤è¦V¡G 1 ª½¦V 2¾î¦V


thisform.ole1.Object.SelStart = 0
thisform.ole1.Object.SelLength = 99999999
thisform.ole1.Object.Copy() && À»µo·L³n­ì¥Í Unicode ½Æ»s¨ó©w

* 2. ¨ú®ø¿ï¨úª¬ºA¡Aºû«ùµe­±½Ã¥Í
thisform.ole1.Object.SelLength = 0

* 3. ?? ­°ºû¥´À»¡G±j­¢ Excel Àx¦s®æª½±µ±q°Å¶K怜³f¡A¹ý©³µ´±þ VFOX Åܼƪº Big5 ¦Ã¬V¡I
ExcelApp.Cells(6, 1).Select() && ª«²z©wÁã¿ï¨ú¸ÓÀx¦s®æ
ExcelApp.ActiveSheet.Paste() && À»µo Excel ­ì¥Í¶K¤W¡I²§Åé¦r¡B²Åéªø¦a§}§¹¬ü²{§Î¡I

ExcelApp.VISIBLE = .T.
¦^³»ºÝ
À˵ø·|­û­Ó¤H¸ê®Æ µo°e¨p¤H°T®§
CPS0204



µù¥U®É¶¡: 2014-08-24
¤å³¹: 524


²Ä 4 ¼Ó

µoªíµoªí©ó: ¬P´Á¤@ ¤»¤ë 15, 2026 8:25 pm    ¤å³¹¥DÃD: ¤Þ¨¥¦^ÂÐ

1.«È¤á°ò¥»ÀɤºÄæ¦ì¦p¤U:
«È¤á¥N¸¹ CHAR(10)
«È¤á¦WºÙ VARCHAR(100) &&BIG5½X,¥­®ÉERP³£¥Î¦¹Äæ
«È¤á²ºÙ VARCHAR(20) &&BIG5½X,¥­®ÉERP³£¥Î¦¹Äæ
«È¤á¥þ¦W(¦³¤ä«ù²§Åé¦r) NVARCHAR(800).....¦b¬Y¨Ç¹ï±b³æ©Î¹ï¥~³øªí,´N§ì¦¹Äæ¨ÓÂàEXCEL,¤è¥i¦C¦L,¦]¬°¤£¤ä«ùREPORT FORM
¦pªG¬O¾P³f³æ,¥u¯à®M¦LÂIÂí¦Lªí¾÷,¼È®É¨S¦³·Q¨ì¦nªºREPORT ¤èªk,¦³¥i¯à
±Ä¨úBMP»s§@¦n¤§«á,©ñ¨ì³ÆµùÄæ¦ì,¹J¨ì³oºØ«È¤á(EXP: 咙ûiªÑ¥÷¦³­­¤½¥q)
¬°¤Fªí¥Ü´L­««È¤á¦WºÙ,¥i¯à¥ý¦bWINDOWS ºI¹Ï¦¨BMPµM«á¦AVFOX9 ªºREPORT¦C¦L¦¹OLEÄæ¦ì!¨Ó¨ú¥N¤W­zªº«È¤á¦WºÙC(100)BIG5½X!

¥H¤W¤D¨Ï¥ÎVFOX9ªº©µÄò¤èªkUNICODE....»P«È¤á·¾³q¤§«áÀ³¸Ó¥i¥H½Ì¸Ñ¤£«K!
¦^³»ºÝ
À˵ø·|­û­Ó¤H¸ê®Æ µo°e¨p¤H°T®§
syntech



µù¥U®É¶¡: 2003-05-16
¤å³¹: 4268
¨Ó¦Û: Taipei,Taiwan

²Ä 5 ¼Ó

µoªíµoªí©ó: ¬P´Á¤@ ¤»¤ë 15, 2026 9:55 pm    ¤å³¹¥DÃD: ¤Þ¨¥¦^ÂÐ

§Ú¦n¹³¬Ý¨ì¥Îªi°Ê¯¥¥´¤p³¾ XD
·Pı«Ü¦³¹D²z§r

_________________
¦pªG¤½¥q¦³¤U¦C§xÂZ:
1. §ä¤£¨ì«K©y,§Ö³t,²©öªº ¥Í²£±Æµ{³nÅé
2. ¤£ª¾¹D¦p¦ó§Ö³t±Æ©w ±ÄÁÊ­p¹º
3. ¦¨¥»§ì¤£·Ç,¦Û¤vºâ¤ñ³nÅéºâ¦³¥Î
4. ·Q¾Ç²ß¨t²Î³W¹º,·Q§ä¨t²Î¬[ºcªºÅU°Ý

½ÐÁpµ¸§Ú­Ì,¤]³\§Ú­ÌÀ°±o¤W¦£
¦^³»ºÝ
À˵ø·|­û­Ó¤H¸ê®Æ µo°e¨p¤H°T®§ µo°e¹q¤l¶l¥ó AIM Address
CPS0204



µù¥U®É¶¡: 2014-08-24
¤å³¹: 524


²Ä 6 ¼Ó

µoªíµoªí©ó: ¬P´Á¤G ¤»¤ë 16, 2026 7:10 am    ¤å³¹¥DÃD: ¤Þ¨¥¦^ÂÐ

¦C¦L²§Åé¦rreport form ¤]¸Ñ¨M

CPS0204 ¦b ¬P´Á¤G ¤»¤ë 16, 2026 1:03 pm §@¤F²Ä 1 ¦¸­×§ï
¦^³»ºÝ
À˵ø·|­û­Ó¤H¸ê®Æ µo°e¨p¤H°T®§
syntech



µù¥U®É¶¡: 2003-05-16
¤å³¹: 4268
¨Ó¦Û: Taipei,Taiwan

²Ä 7 ¼Ó

µoªíµoªí©ó: ¬P´Á¤G ¤»¤ë 16, 2026 9:54 am    ¤å³¹¥DÃD: ¤Þ¨¥¦^ÂÐ

§ï¥Î¨ä¥L³øªí¤u¨ã,§ï¥Î¨ä¥L¶}µo¤u¨ã°µUI. Orz
_________________
¦pªG¤½¥q¦³¤U¦C§xÂZ:
1. §ä¤£¨ì«K©y,§Ö³t,²©öªº ¥Í²£±Æµ{³nÅé
2. ¤£ª¾¹D¦p¦ó§Ö³t±Æ©w ±ÄÁÊ­p¹º
3. ¦¨¥»§ì¤£·Ç,¦Û¤vºâ¤ñ³nÅéºâ¦³¥Î
4. ·Q¾Ç²ß¨t²Î³W¹º,·Q§ä¨t²Î¬[ºcªºÅU°Ý

½ÐÁpµ¸§Ú­Ì,¤]³\§Ú­ÌÀ°±o¤W¦£
¦^³»ºÝ
À˵ø·|­û­Ó¤H¸ê®Æ µo°e¨p¤H°T®§ µo°e¹q¤l¶l¥ó AIM Address
CPS0204



µù¥U®É¶¡: 2014-08-24
¤å³¹: 524


²Ä 8 ¼Ó

µoªíµoªí©ó: ¬P´Á¤G ¤»¤ë 16, 2026 10:23 am    ¤å³¹¥DÃD: ¤Þ¨¥¦^ÂÐ

..§ï¥Î¨ä¥L³øªí¤u¨ã,§ï¥Î¨ä¥L¶}µo¤u¨ã°µUI. Orz

®¦
§Ú¸Õ¤@¤Uª½±µ¶}ºô­¶,©I¥sphp ª½±µÅª¨úms sql (unicode)¨Ï¥Îphp ¥Í¦¨¹ï±b³æ!
­è­è¨Ï¥Î¤pµe®a¤âµe¤@­Ó«È¤á¥þ¦WªºBMPÀÉ(16¦â)
µM«á©Ô¦ÜVFOX9 REPORT ·í¤¤·í§@ª«¥ó(OLE),¥i¥H¹F¨ì¥Øªº

ÁÂÁÂ
¦^³»ºÝ
À˵ø·|­û­Ó¤H¸ê®Æ µo°e¨p¤H°T®§
CPS0204



µù¥U®É¶¡: 2014-08-24
¤å³¹: 524


²Ä 9 ¼Ó

µoªíµoªí©ó: ¬P´Á¤G ¤»¤ë 16, 2026 12:49 pm    ¤å³¹¥DÃD: ¤Þ¨¥¦^ÂÐ

unicode²§Åé¦rµLªk¦C¦L(report form)¸Ñ¨M¤F
±Ä¨úvfox9 ©I¥sphp ºô­¶,ÅýphpŪ¨úms-sql ²§Åé¦r,¦A¦Û°Ê¥Í¦¨(«È¤á¦WºÙ)ªºunicodeªºbmpÀÉ

µM«á¶Ç¦^¥»¾÷¦s©ñ¦b memoÀɤº
¦¹®Éreport form ´N¥i¥H¨ú¥Î¦¹bmp¨Ó¦C¦L!¤£»Ý­n«È¤á¦Û¤v¥h¤pµe®a»s°µbmp
(¦b«È¤á°ò¥»ÀɺûÅ@µe­±¤¤,¦³²§Åé¦r»Ý¨DªÌ,´N­n«ö¤@¦¸¥Í¦¨bmp«ö¶s),¤é«áª½±µ¥i¥HŪ¨ú¦¹bmpÀÉ
¦^³»ºÝ
À˵ø·|­û­Ó¤H¸ê®Æ µo°e¨p¤H°T®§
CPS0204



µù¥U®É¶¡: 2014-08-24
¤å³¹: 524


²Ä 10 ¼Ó

µoªíµoªí©ó: ¬P´Á¤G ¤»¤ë 16, 2026 6:25 pm    ¤å³¹¥DÃD: ¤Þ¨¥¦^ÂÐ

unicode (²§Åé¦r,²Åé¦r,¤é¤å)...ªº¿Ã¹õÅã¥Ü,¿é¤J,¦sÀÉ(ms sql server),Âàxls,report form³£¸Ñ¨M¤F
´N¥i¥H¦A©µÄòvfoxpro ªº¥Í©R.......
¦^³»ºÝ
À˵ø·|­û­Ó¤H¸ê®Æ µo°e¨p¤H°T®§
CPS0204



µù¥U®É¶¡: 2014-08-24
¤å³¹: 524


²Ä 11 ¼Ó

µoªíµoªí©ó: ¬P´Á¥| ¤»¤ë 18, 2026 8:36 am    ¤å³¹¥DÃD: ¤Þ¨¥¦^ÂÐ

§ó¥¿:¬O©Ò¦³°®²bªºwindows-os ³£¤£¯àrun,°£«Dµù¥U¤@¦¸fm20.dll
©Î¬O¤p§Þ¥©: ¥ý½Ð«È¤á¦w¸Ë¤@¦¸´¶³qª©¥»ms-office,¥L´N·|¦Û¦æ¸É¦w¸Ëfm20.dll

»Ý±N¦³¦w¸Ë¹Lªº¹q¸£ ªº fm20.dll, FM20CHT.DLL copy ¨ì ¤£¯à¶]¤§¹q¸£ªº
c:\windows\syswow64\¤U,¥²¶·¯d¤U¨Ó¤£¯à§R°£¦¹dllÀÉ

µM«á¨Ï¥ÎºÞ²zªÌÅv­­¶}±Òdosµ¡
regsvr32 fm20.dll ¤@¦¸,¦³¥X²{µù¥U¦¨¥\!
´N¥i¥H©ñ¤ß¨Ï¥Î¥»°Ï¥\¯à
(¦pªGµLªk¦w¸Ë½Ð¥ý¤U¸ü vc_redist.x86.exe µM«á°õ¦æ¥L
¦bµù¥U¤@¦¸§Y¥i)
¦^³»ºÝ
À˵ø·|­û­Ó¤H¸ê®Æ µo°e¨p¤H°T®§
CPS0204



µù¥U®É¶¡: 2014-08-24
¤å³¹: 524


²Ä 12 ¼Ó

µoªíµoªí©ó: ¬P´Á¤@ ¤»¤ë 22, 2026 4:56 pm    ¤å³¹¥DÃD: ¤Þ¨¥¦^ÂÐ

¦³»Ý­n¦¹¸Ñ¨M¤è®×ªººô¤Í¥i¥H¯d¨¥.....¤j®a¦@¦P¨É¥Î
¦^³»ºÝ
À˵ø·|­û­Ó¤H¸ê®Æ µo°e¨p¤H°T®§
±q¤§«eªº¤å³¹¶}©lÅã¥Ü:   
µoªí·s¥DÃD   ¦^ÂÐ¥DÃD    VFP ·R¥ÎªÌªÀ°Ï ­º­¶ -> VFP °Q½×°Ï ©Ò¦³ªº®É¶¡§¡¬° ¥x¥_®É¶¡ (GMT + 8 ¤p®É)
²Ä1­¶(¦@1­¶)

 
«e©¹:  
±z µLªk ¦b³o­Óª©­±µoªí¤å³¹
±z µLªk ¦b³o­Óª©­±¦^ÂФ峹
±z µLªk ¦b³o­Óª©­±½s¿è¤å³¹
±z µLªk ¦b³o­Óª©­±§R°£¤å³¹
±z µLªk ¦b³o­Óª©­±¶i¦æ§ë²¼
±z µLªk ¦b³o­Óª©­±ªþ¥[ÀÉ®×
±z µLªk ¦b³o­Óª©­±¤U¸üÀÉ®×


Powered by phpBB © 2001, 2005 phpBB Group
¥¿Å餤¤å»y¨t¥Ñ phpbb-tw ºûÅ@»s§@