12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879 |
- $PBExportHeader$f_kjls_getfj.srf
- global type f_kjls_getfj from function_object
- end type
- forward prototypes
- global function string f_kjls_getfj (long arg_pkid)
- end prototypes
- global function string f_kjls_getfj (long arg_pkid);Long arr_fileid[], ll_fileid, i = 0, row
- String arr_filename[], arr_filetype[], ls_filename, ls_filetype, Pathname
- Blob ls_filedata
- String errmsg
- String ls_guid
- SELECT top 1 newid()
- INTO :ls_guid
- From u_user;
- IF sqlca.SQLCode <> 0 THEN
- RETURN ''
- END IF
- DECLARE cur1 CURSOR FOR
- SELECT fileid, DisplayName,FileType
- FROM u_file
- WHERE billtype = 1466
- AND relid = :arg_pkid
- AND (filetype = 'bmp' OR filetype = 'rle' OR filetype = 'wmf'
- OR filetype = 'tif' OR filetype = 'jpg' OR filetype = 'gif' OR filetype = 'jpeg')
- Using sys_fileDB_sqlca;
-
- OPEN cur1;
- FETCH cur1 Into :ll_fileid, :ls_filename, :ls_filetype;
- DO WHILE sys_fileDB_sqlca.SQLCode = 0
- i++
- arr_fileid[i] = ll_fileid
- arr_filename[i] = ls_filename
- arr_filetype[i] = ls_filetype
- FETCH cur1 Into :ll_fileid, :ls_filename, :ls_filetype;
- LOOP
- CLOSE cur1;
- Long printid = 0
- FOR i = 1 To UpperBound(arr_fileid)
- Pathname = sys_cur_path+ins_fjtemppath+'\' + String(arr_fileid[i])+ '_' + arr_filename[i]+'.'+arr_filetype[i]
- IF Trim(Pathname) <> '' THEN
- IF Not FileExists ( Pathname ) THEN
- SetNull(ls_filedata)
- SelectBlob filedata
- Into:ls_filedata
- From u_file
- Where fileid = :arr_fileid[i] Using sys_fileDB_sqlca;
- IF sys_fileDB_sqlca.SQLCode = 0 THEN
- IF f_saveblobtofile(ls_filedata,Pathname,errmsg) <> 0 THEN
- // DONE: 插入记录
- printid++
- INSERT Into u_print_files(guid, printid, Pathname) Values(:ls_guid, :printid, :Pathname);
- IF sqlca.SQLCode <> 0 THEN
- ROLLBACK;
- RETURN ''
- END IF
- END IF
- END IF
- ELSE
- printid++
- INSERT Into u_print_files(guid, printid, Pathname) Values(:ls_guid, :printid, :Pathname);
- IF sqlca.SQLCode <> 0 THEN
- ROLLBACK;
- RETURN ''
- END IF
- END IF
- END IF
- NEXT
- COMMIT;
- RETURN ls_guid
- end function
|