麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 學院 > 開發設計 > 正文

2019-11-11 05:14:56
字體:
來源:轉載
供稿:網友
   1 package com.kingdee.eas.custom;   2 import java.io.File;   3 import java.io.FileNotFoundException;   4 import java.io.FileOutputStream;   5 import java.io.IOException;   6 import java.io.InputStream;   7 import java.io.PRintWriter;   8 import java.io.StringWriter;   9 import java.math.BigDecimal;  10 import java.sql.SQLException;  11 import java.text.ParseException;  12 import java.text.SimpleDateFormat;  13 import java.util.ArrayList;  14 import java.util.Date;  15 import java.util.HashMap;  16 import java.util.Iterator;  17 import java.util.Map;  18 import javax.swing.JFileChooser;  19 import javax.swing.JOptionPane;  20 import org.mozilla.javascript.Context;  21 import jxl.Cell;  22 import jxl.Sheet;  23 import jxl.Workbook;  24 import jxl.format.Alignment;  25 import jxl.format.Border;  26 import jxl.format.BorderLineStyle;  27 import jxl.format.Colour;  28 import jxl.read.biff.BiffException;  29 import jxl.write.Label;  30 import jxl.write.WritableCellFormat;  31 import jxl.write.WritableSheet;  32 import jxl.write.WritableWorkbook;  33 import jxl.write.WriteException;  34 import bsh.This;  35 import com.kingdee.bos.BOSException;  36 import com.kingdee.bos.ctrl.extendcontrols.KDBizPromptBox;  37 import com.kingdee.bos.ctrl.kdf.table.ICell;  38 import com.kingdee.bos.ctrl.kdf.table.IColumn;  39 import com.kingdee.bos.ctrl.kdf.table.KDTDefaultCellEditor;  40 import com.kingdee.bos.ctrl.kdf.table.KDTMergeManager;  41 import com.kingdee.bos.ctrl.kdf.table.KDTSelectBlock;  42 import com.kingdee.bos.ctrl.kdf.table.KDTable;  43 import com.kingdee.bos.ctrl.kdf.table.util.KDTableUtil;  44 import com.kingdee.bos.ctrl.swing.KDDatePicker;  45 import com.kingdee.bos.dao.IObjectCollection;  46 import com.kingdee.bos.dao.IObjectPK;  47 import com.kingdee.bos.dao.IObjectValue;  48 import com.kingdee.bos.metadata.bot.BOTMappingCollection;  49 import com.kingdee.bos.metadata.bot.BOTMappingFactory;  50 import com.kingdee.bos.metadata.bot.BOTMappingInfo;  51 import com.kingdee.bos.metadata.bot.BOTRelationCollection;  52 import com.kingdee.bos.metadata.entity.EntityViewInfo;  53 import com.kingdee.bos.metadata.entity.FilterInfo;  54 import com.kingdee.bos.metadata.entity.FilterItemInfo;  55 import com.kingdee.bos.metadata.query.util.CompareType;  56 import com.kingdee.bos.sql.ParserException;  57 import com.kingdee.bos.ui.face.CoreUIObject;  58 import com.kingdee.bos.ui.face.IUIWindow;  59 import com.kingdee.bos.ui.face.UIException;  60 import com.kingdee.bos.ui.face.UIFactory;  61 import com.kingdee.bos.util.BOSUuid;  62 import com.kingdee.eas.base.btp.BTPManagerFactory;  63 import com.kingdee.eas.base.btp.BTPTransformResult;  64 import com.kingdee.eas.base.btp.IBTPManager;  65 import com.kingdee.eas.base.codingrule.CodingRuleManagerFactory;  66 import com.kingdee.eas.base.codingrule.ICodingRuleManager;  67 import com.kingdee.eas.base.message.BMCMessageFactory;  68 import com.kingdee.eas.base.message.BMCMessageInfo;  69 import com.kingdee.eas.base.message.IBMCMessage;  70 import com.kingdee.eas.base.message.MsgBizType;  71 import com.kingdee.eas.base.message.MsgPriority;  72 import com.kingdee.eas.base.message.MsgStatus;  73 import com.kingdee.eas.base.message.MsgType;  74 import com.kingdee.eas.base.netctrl.IMutexServiceControl;  75 import com.kingdee.eas.base.netctrl.MutexParameter;  76 import com.kingdee.eas.base.netctrl.MutexServiceControlFactory;  77 import com.kingdee.eas.base.permission.UserInfo;  78 import com.kingdee.eas.basedata.master.auxacct.GeneralAsstActTypeGroupCollection;  79 import com.kingdee.eas.basedata.master.auxacct.GeneralAsstActTypeGroupFactory;  80 import com.kingdee.eas.basedata.org.AdminOrgUnitCollection;  81 import com.kingdee.eas.basedata.org.AdminOrgUnitFactory;  82 import com.kingdee.eas.basedata.org.AdminOrgUnitInfo;  83 import com.kingdee.eas.basedata.org.CtrlUnitCollection;  84 import com.kingdee.eas.basedata.org.CtrlUnitFactory;  85 import com.kingdee.eas.basedata.org.CtrlUnitInfo;  86 import com.kingdee.eas.basedata.org.PositionInfo;  87 import com.kingdee.eas.basedata.person.PersonCollection;  88 import com.kingdee.eas.basedata.person.PersonFactory;  89 import com.kingdee.eas.basedata.person.PersonInfo;  90 import com.kingdee.eas.common.client.OprtState;  91 import com.kingdee.eas.common.client.SysContext;  92 import com.kingdee.eas.common.client.UIContext;  93 import com.kingdee.eas.common.client.UIFactoryName;  94 import com.kingdee.eas.fm.common.FMIsqlFacadeFactory;  95 import com.kingdee.eas.fm.common.IFMIsqlFacade;  96 import com.kingdee.eas.framework.CoreBillBaseInfo;  97 import com.kingdee.eas.framework.client.CoreBillEditUI;  98 import com.kingdee.eas.framework.client.EditUI;  99 import com.kingdee.eas.hr.emp.PersonPositionFactory; 100 import com.kingdee.eas.hr.emp.PersonPositionInfo; 101 import com.kingdee.eas.util.SysUtil; 102 import com.kingdee.eas.util.client.EASResource; 103 import com.kingdee.eas.util.client.MsgBox; 104 import com.kingdee.jdbc.rowset.IRowSet; 105 import com.kingdee.util.Uuid; 106 /*** 107  * EAS開發工具類 108  * @author 趙戩 109  * 110  */ 111 public class UtilClass { 112     /*** 113      * 信息提示框 114      * @param value 提示內容 115      */ 116     public static void alert(String value){ 117         MsgBox.showInfo(value); 118         SysUtil.abort(); 119     } 120  121     /*** 122      * 信息提示框(帶詳細信息) 123      * @param value 提示內容 124      */ 125     public static void alert2(String Title,String info){ 126         MsgBox.showDetailAndOK(null, Title, info, 0); 127         SysUtil.abort(); 128     } 129  130     /*** 131      * 信息提示框(帶提示) 132      * @return value 提示內容 133      */ 134     public static boolean alertReturn(String value){ 135         return MsgBox.isYes(MsgBox.showConfirm2(value)); 136     } 137  138     /*** 139      * 程序停止運行 140      */ 141     public static void Stop(){ 142         SysUtil.abort(); 143     } 144  145     /** 146      * 單據數據加鎖 147      * @param billId 單據ID 148      */ 149     public static void addBillDataLock(String BillFID){ 150         IMutexServiceControl mutex = MutexServiceControlFactory.getRemoteInstance(); 151         mutex.requestBizObjIDForUpdate(BillFID); 152     } 153  154     /** 155      * 單據數據解鎖 156      * @param billId 單據ID 157      */ 158     public static void removeBillDataLock(String BillFID){ 159         IMutexServiceControl mutex = MutexServiceControlFactory.getRemoteInstance(); 160         mutex.releaSEObjIDForUpdate(BillFID); 161     } 162  163     /** 164      * 根據ID獲取數據是否加鎖 165      * @param id 單據編號 166      * @return true 已加鎖 or false 未加鎖 167      */ 168     public static boolean getBillDataLockStatus(String BillFID){ 169         IMutexServiceControl mutex = MutexServiceControlFactory.getRemoteInstance(); 170         boolean returnvalue = false; 171         HashMap map = mutex.getObjIDForUpdateList(); 172         for (Iterator iter = map.keySet().iterator(); iter.hasNext();) { 173             String key = iter.next().toString(); 174             if(BillFID.equals(key.substring(0, 28))){ 175                 returnvalue = true; 176             } 177         } 178         return returnvalue; 179     } 180  181     /** 182      * 表格獲取選中行某列值   183      * 返回ArrayList集合 184      * @param tblMain 列表對象 185      * @param CellName 列名 186      * @return ArrayList集合 187      *  188      * 返回遍歷 189             try { 190                 ArrayList list = UtilClass.getTableCellsValue(kDTable1, "cell1"); 191                 if(list.size()>0){ 192                     for (Iterator iter = list.iterator(); iter.hasNext();) {  193                         System.out.println((String)iter.next());  194                     } 195                 }else{ 196                     UtilClass.alert("請選擇要操作的記錄"); 197                 } 198             } catch (Exception e1) { 199             } 200      */ 201     public static ArrayList getTableCellsValue(KDTable tblMain, String CellName){ 202         ICell cellstr; 203         Object strObj = null; 204         KDTSelectBlock block = null; 205         ArrayList returnValue = new ArrayList(); 206         int size = tblMain.getSelectManager().size(); 207         for (int i = 0; i < size; i++) { 208             block = tblMain.getSelectManager().get(i); 209             for (int j = block.getTop(); j <= block.getBottom(); j++) { 210                 cellstr = tblMain.getRow(j).getCell(CellName); 211                 strObj =  cellstr.getValue(); 212                 returnValue.add(strObj); 213             } 214         } 215         return returnValue; 216     } 217  218     /** 219      * 設置List默認查詢條件 220      * @param mainQuery List MainQuery 221      * @param Filter 條件 222      * 例:UtilClass.setListQueryFilter(mainQuery, "orderid.batchnum is not null"); 223      */ 224     public static void setListQueryFilter(EntityViewInfo mainQuery,String Filter){ 225         try { 226             mainQuery.setFilter(Filter); 227         } catch (ParserException e) { 228             alert2("設置List默認查詢條件出錯!",e.getMessage()); 229         } 230     } 231     /** 232      * 獲取KDTable選擇行的行號(選擇行的第一行) 233      * @param tblMain 234      * @return 行號 235      */ 236     public static int getRowNumFirst(KDTable tblMain){ 237         return tblMain.getSelectManager().get(0).getTop(); 238     } 239     /** 240      * 獲取KDTable選擇行的行號 241      * @param tblMain 242      * @return 行號 243      */ 244     public static int[] getRowNum(KDTable tblMain){ 245         return KDTableUtil.getSelectedRows(tblMain); 246     } 247     /** 248      * 導出KDTable表格數據到Excel文件 249      * @param table KDTable 250      * @param RowNums 行號集合 如果RowNums行數為0,導出全部數據 251      * return 生成文件目錄 252      * 例:UtilClass.TableExpot(kDTable1, new int[0], null); 253      */ 254     public static String TableExpot(KDTable table,int[] RowNums,String FileName){ 255         String returnvaleu = ""; 256         String Filepath = ""; 257         //打開目錄選擇器 258         try { 259             Filepath = UtilClass.OpenPathSelect(); 260             String File = ""; 261             if("".equals(Filepath)){ 262                 return returnvaleu; 263             }else{ 264                 if(FileName==null||"".equals(FileName)){ 265                     FileName = "temp"; 266                 } 267                 File = Filepath+"//"+FileName+".xls"; 268             } 269             File file = new File(File); 270             //如果找到相同的文件,執行刪除 271             if(file.exists() && file.isFile()){ 272                 file.delete(); 273             } 274             WritableWorkbook wwb = Workbook.createWorkbook(new File(File)); 275             //創建工作表 276             wwb.createSheet("sheet1", 0); 277             //獲取工作表  278             WritableSheet ws = wwb.getSheet(0); 279  280             //表頭行樣式 281             WritableCellFormat TableHead = new WritableCellFormat(); 282             TableHead.setBorder(Border.ALL, BorderLineStyle.THIN); 283             TableHead.setAlignment(Alignment.CENTRE); 284             TableHead.setBackground(Colour.GRAY_25); 285  286             //表體數據行樣式 287             WritableCellFormat TableRow = new WritableCellFormat(); 288             TableRow.setAlignment(Alignment.CENTRE); 289  290             if(RowNums==null){ 291                 //生成表頭 292                 for(int i=0;i<table.getColumnCount();i++){ 293                     if(table.getHeadRow(0).getCell(i).getValue()!=null){ 294                         ws.addCell(new Label(i,0,table.getHeadRow(0).getCell(i).getValue().toString(),TableHead)); 295                     } 296                 } 297                 //生成表體數據 298                 for(int i=0;i<table.getRowCount();i++){ 299                     for(int j=0;j<table.getColumnCount();j++){ 300                         if(table.getRow(i).getCell(j).getValue()!=null){ 301                             ws.addCell(new Label(j,i+1,table.getRow(i).getCell(j).getValue().toString(),TableRow)); 302                         } 303                     } 304                 } 305             }else{ 306                 //生成表頭 307                 for(int i=0;i<table.getColumnCount();i++){ 308                     if(table.getHeadRow(0).getCell(i).getValue()!=null){ 309                         ws.addCell(new Label(i,0,table.getHeadRow(0).getCell(i).getValue().toString(),TableHead)); 310                     } 311                 } 312                 //生成表體數據 313                 for(int z=0;z<RowNums.length;z++){ 314                     int i = RowNums[z]; 315                     for(int j=0;j<table.getColumnCount();j++){ 316                         if(table.getRow(i).getCell(j).getValue()!=null){ 317                             ws.addCell(new Label(j,z+1,table.getRow(i).getCell(j).getValue().toString(),TableRow)); 318                         } 319                     } 320                 } 321             } 322             wwb.write();     323             wwb.close(); 324             returnvaleu = File; 325         } catch (Exception e) { 326             alert2("生成Excel文件出錯",Filepath); 327         }  328         return returnvaleu; 329     } 330     /*** 331      * 設置表格列名 332      * @param Table Table名稱 333      * @param Colunm 列名 334      * @param name 值 335      *  336      */ 337     public static void setTableColumnName(KDTable Table,String ColunmID,String ColunmName){ 338         KDTable kt = new KDTable(); 339         kt = Table; 340         kt.getHeadRow(0).getCell(ColunmID).setValue(ColunmName); 341         Table = kt; 342     } 343     /** 344      * 設置表格融合方式 345      * @param tblMain 表格 346      * @param type 融合方式 0 :行融合 1:列融合 2:自由融合 347      */ 348     public static void setTableMergeMode(KDTable tblMain,int type){ 349         if(type==0){ 350             tblMain.getMergeManager().setMergeMode(KDTMergeManager.FREE_ROW_MERGE); 351         } 352         if(type==1){ 353             tblMain.getMergeManager().setMergeMode(KDTMergeManager.FREE_COLUMN_MERGE); 354         } 355         if(type==2){ 356             tblMain.getMergeManager().setMergeMode(KDTMergeManager.FREE_MERGE); 357         } 358     } 359     /*** 360      * 表格行選擇器,從第R1行選到R2行 361      * @param tblMain 表格 362      * @param R1 開始行號 363      * @param R2 結束行號 364      */ 365     public static void setTableSelectRows(KDTable tblMain,int R1,int R2){ 366         tblMain.getSelectManager().select(R1-1, 0, R2-1, 0); 367     } 368  369  370     /** 371      * 設置按鈕圖片名稱 372      * @param btnName 按鈕名稱 373      * @param imgName 圖片名稱 374      * EAS圖片名稱保存位置:BOS環境下   工程/lib/client/eas/eas_resource_common_ico.jar 375      */ 376     public static void setButtonImg(com.kingdee.bos.ctrl.swing.KDWorkButton ButtonName,String imgName){ 377         ButtonName.setIcon(EASResource.getIcon(imgName)); 378         ButtonName.setEnabled(true); 379     } 380     /** 381      * 設置F7 382      * @param F7Name F7名稱 383      * @param ConditionSQL 過濾條件SQL(如果輸入值不等于"",則添加條件) 384      *        例   " fbilltypestatr = '1' and (entrys.id is null or entrys.seq = 1)" 385      * @param Query 屬性 例:"com.kingdee.eas.cmt.basedata.app.OperatorOrgQuery" 386      * @param EditFrmat 屬性 例:"$number$" 387      * @param DisplayFormat 屬性 例:"$name$" 388      * @param CommitFormat 屬性 例:"$number$" 389      * @throws BOSException  390      */ 391     public static void setF7(KDBizPromptBox F7Name,String ConditionSQL ,String Query,String EditFrmat,String DisplayFormat,String CommitFormat){ 392         //添加分錄過濾條件 393         try { 394             EntityViewInfo view = new EntityViewInfo(); 395             if(ConditionSQL != ""){ 396                 view.setFilter(ConditionSQL); 397             } 398             //設置F7屬性 399             F7Name.setQueryInfo(Query);//關聯Query 400             F7Name.setEditFormat(EditFrmat);//編輯樣式 401             F7Name.setDisplayFormat(DisplayFormat);//展現樣式 402             F7Name.setCommitFormat(CommitFormat);//提交樣式 403             F7Name.setEntityViewInfo(view); 404             F7Name.setEnabledMultiSelection(false); 405         } catch (Exception e) { 406             alert2("F7["+F7Name+"]初始化出錯,請聯系管理員!",e.getMessage()); 407         } 408     } 409     /** 410      * 設置分錄F7 411      * @param col 列名 kdtEntrys.getColumn("boxType") 412      * @param ConditionSQL 過濾條件SQL(如果輸入值不等于"",則添加條件) 413      *        例   " fbilltypestatr = '1' and (entrys.id is null or entrys.seq = 1)" 414      * @param Query 屬性 例:"com.kingdee.eas.cmt.basedata.app.OperatorOrgQuery" 415      * @param EditFrmat 屬性 例:"$number$" 416      * @param DisplayFormat 屬性 例:"$name$" 417      * @param CommitFormat 屬性 例:"$number$" 418      */ 419     public static void setEntryF7(IColumn col,String ConditionSQL ,String Query,String EditFrmat,String DisplayFormat,String CommitFormat){ 420         try { 421             KDBizPromptBox prmt = new KDBizPromptBox(); 422             EntityViewInfo view = new EntityViewInfo(); 423             if(ConditionSQL != ""){ 424                 view.setFilter(ConditionSQL); 425             } 426             prmt.setQueryInfo(Query); 427             prmt.setEditFormat(EditFrmat); 428             prmt.setCommitFormat(CommitFormat); 429             prmt.setDisplayFormat(DisplayFormat); 430             prmt.setEntityViewInfo(view); 431             prmt.setEnabledMultiSelection(false); 432             KDTDefaultCellEditor editor = new KDTDefaultCellEditor(prmt); 433             col.setEditor(editor); 434         } catch (ParserException e) { 435             alert2("分錄F7初始化出錯,請聯系管理員!",e.getMessage()); 436         } 437  438     } 439     /** 440      * 日期轉換字符串 441      * @param date 日期 442      * @param type 顯示格式 yyyy-MM-dd yyyy-MM-dd HH:mm:ss 443      * String returnvalue = UtilClass.DateToString(this.Startdatetest.getValue(), "yyyy-MM-dd"); 444      */ 445     public static String DateToString (Object date,String type){ 446         String returnvalue = ""; 447         if(date != null){ 448             try{ 449                 SimpleDateFormat sdf = new SimpleDateFormat(type); 450                 returnvalue = sdf.format(date); 451             } 452             catch(Exception ex){ 453                 alert("日期格式轉換出錯"); 454             } 455         } 456         return returnvalue; 457     } 458     /** 459      * 字符串轉為日期 460      * @param DateStr 字符串 461      * @param type 類型 "yyyy-MM-dd HH:mm:ss" 462      * @return Date  java.util.Date 463      */ 464     public static Date StringToDate(String DateStr,String type){ 465         Date returnvalue = null; 466         try { 467             SimpleDateFormat sdf = new SimpleDateFormat(type); 468             returnvalue = sdf.parse(DateStr); 469         } catch (ParseException e) { 470             alert2("日期轉換出錯",DateStr+"-->"+type); 471         } 472         return returnvalue; 473     } 474     /** 475      * 設置DKDatePicker控件顯示格式 476      * @param date 日期控制  477      * @param dateType 格式樣式 例:"yyyy-MM-dd HH:mm:ss"      "yyyy-MM-dd" 478      */ 479     public static void setKDDatePicker(KDDatePicker date,String dateType){ 480         date.setDatePattern(dateType); 481     } 482     /** 483      * 獲取當前時間(KDDatePicker控件)默認值 例如:創建時間 修改時間 審核時間 484      * @return java.sql.Timestamp 當前時間 485      */ 486     public static java.sql.Timestamp getTime(){ 487         java.sql.Timestamp time = new java.sql.Timestamp(new java.util.Date().getTime()); 488         return time; 489     } 490  491     /** 492      * 打開文件 493      * @param FilePath 文件路徑 494      */ 495     public static void OpenFile(String FilePath){ 496         try { 497             Runtime.getRuntime().exec("cmd /c start /"/" /""+FilePath.replaceAll("////", "////////")+"/""); 498         } catch (IOException e) { 499             alert2("打開文件出錯",FilePath); 500         } 501     } 502     /** 503      * 打開文件選擇器 504      * @return 文件路徑 505      */ 506     public static String OpenFilesSelect(){ 507         String returnvalue = ""; 508         JFileChooser chooser = new JFileChooser(); 509         chooser.setDialogTitle("請選擇文件"); 510         chooser.showDialog(null, "確定"); 511         if(chooser.getSelectedFile()!=null){ 512             File file = chooser.getSelectedFile(); 513             returnvalue = file.getPath(); 514         } 515         return returnvalue; 516     } 517  518     /** 519      * 打開目錄選擇器 520      * @return 521      */ 522     public static String OpenPathSelect(){ 523         String returnvalue = ""; 524         JFileChooser chooser = new JFileChooser(); 525         chooser.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY); 526         chooser.setDialogTitle("請選擇目錄"); 527         chooser.showDialog(null,"保存"); 528         if(chooser.getSelectedFile()!=null){ 529             File file = chooser.getSelectedFile(); 530             returnvalue = file.getPath(); 531         } 532         return returnvalue; 533     } 534     /** 535      * 向Excel文件插入數據 536      * @param File  537      * @param sheetNum 工作表序號 538      * @param y 行 539      * @param x 列 540      * @param value 內容 541      */ 542     public static void setExcelValue(String File,int sheetNum,int x,int y,String value){ 543         try { 544             File file = new File(File); 545             //如果找到相同的文件,執行刪除 546             if(!file.exists() && !file.isFile()){ 547                 return; 548             } 549             //Excel獲得文件  550             Workbook wb = Workbook.getWorkbook(new File(File));  551             //打開一個文件的副本,并且指定數據寫回到原文件  552             WritableWorkbook book = Workbook.createWorkbook(new File(File),wb);  553             //獲取工作表  554             WritableSheet sheet=book.getSheet(sheetNum); 555             sheet.addCell(new Label(y,x,value));  556             book.write();  557             book.close();  558         } catch (Exception e) { 559         }   560     } 561     /** 562      * 讀取Excel文件 563      * @param File 文件名 564      * @param sheetNum 工作表序號 565      * @param y 行 566      * @param x 列 567      */ 568     public static String getExcelValue(String File,int sheetNum,int y,int x){ 569         String result = ""; 570         try { 571             File file = new File(File); 572             //如果找到相同的文件,執行刪除 573             if(!file.exists() && !file.isFile()){ 574                 alert(File+"文件沒找到!"); 575             } 576             Workbook book= Workbook.getWorkbook(new File(File));  577             //獲得第一個工作表對象  578             Sheet sheet=book.getSheet(sheetNum);  579             //得到第一列第一行的單元格  580             Cell cell1=sheet.getCell(x,y);  581             result=cell1.getContents().toString();  582             book.close(); 583         } catch (FileNotFoundException e) { 584             alert2("讀取Excel文件出錯","請關閉當前打開的Excel文件"); 585         } catch (BiffException e) { 586             alert2("讀取Excel文件出錯",e.toString()); 587         } catch (IOException e) { 588             alert2("讀取Excel文件出錯",e.toString()); 589         } 590         return result; 591     } 592  593     /** 594      * 讀取Excel文件(第一sheet頁中的內容) 595      * @param File 文件路徑 596      * @param sheetNum sheet頁號 597      * @return 二維數組 598      *  599      */ 600     public static Object[][] getExcelValue(String File,int sheetNum){ 601         Object [][] returnvalue = null; 602         try { 603             Workbook book= Workbook.getWorkbook(new File(File));  604             Sheet sheet=book.getSheet(sheetNum); 605             returnvalue = new Object[sheet.getRows()][sheet.getColumns()]; 606             for(int i=1;i<sheet.getRows();i++){ 607                 for(int j=0;j<sheet.getColumns();j++){ 608                     returnvalue[i][j]=sheet.getCell(j,i).getContents(); 609                 } 610             } 611         } catch (FileNotFoundException e) { 612             alert2("讀取Excel文件出錯","請關閉當前打開的Excel文件"); 613         } catch (BiffException e) { 614             alert2("讀取Excel文件出錯",e.toString()); 615         } catch (IOException e) { 616             alert2("讀取Excel文件出錯",e.toString()); 617         } 618         return returnvalue; 619     } 620  621     /*** 622      * 發送即時消息 623      * @param FSuser 發送人ID 624      * @param JSuser 接收人ID 625      * @param MessageTitle 標題 626      * @param Messages 內容 627      */ 628     public static void addMessage(String FSuser,String JSuser,String MessageTitle,String Messages){ 629         try { 630             IBMCMessage i = BMCMessageFactory.getRemoteInstance(); 631             BMCMessageInfo info = new BMCMessageInfo();  632             info.setType(MsgType.ONLINE);// 消息類型,例如通知消息,任務消息,狀態更新消息 633             info.setBizType(MsgBizType.ONLINE);// 業務類型,例如工作流,預警平臺 634             info.setPriority(MsgPriority.HIGH); // 優先級 635             info.setStatus(MsgStatus.UNREADED); // 消息狀態 636             info.setReceiver(JSuser); // 接收人ID (User的ID,不是Person的ID) 637             info.setSender(FSuser);// 消息發送人 638             info.setTitle(MessageTitle); // 消息標題 639             info.setBody(Messages);// 消息內容 640             i.submit(info); 641         } catch (Exception e) { 642             alert2("發送即時消息出錯","標題:"+MessageTitle+"  內容:"+Messages); 643         } 644     } 645  646  647  648     /** 649      * 列轉行 650      * @param list 數據集合 651      * @param delimiter 分隔符 例:"," 652      * @param bracketsLeft 左括號符號 653      * @param bracketsRight 右括號符號 654      * @return String 655      */ 656     public static String CellToRow(ArrayList list,String delimiter,String bracketsLeft,String bracketsRight){ 657         String returnvalue = ""; 658         for (Iterator iter = list.iterator(); iter.hasNext();){ 659             if(!"".equals(bracketsLeft) && bracketsLeft != null && !"".equals(bracketsRight) && bracketsRight != null){ 660                 returnvalue += bracketsLeft + (String)iter.next() + bracketsRight; 661             } 662             returnvalue+=delimiter; 663         } 664         return returnvalue.substring(0, returnvalue.length()-1); 665     } 666  667     /** 668      * 打開窗口 669      * @param URL UI地址 670      * @param ctx 參數集合 671      * @param openType 打開窗口類型 例:UIFactoryName.MODEL 672      * @param billStatus 單據狀態  例:OprtState.ADDNEW 673      *  674      *   675         打開普通UI頁面 676         HashMap cix = new HashMap(); 677         String orderid = "asiofjlqkjwfklaslkasdf=" 678         cix.put("orderid", orderid); 679         UtilClass.openUI("com.kingdee.eas.cmt.commission.client.GoodsUI", cix, UIFactoryName.MODEL, OprtState.ADDNEW); 680  681         打開單據EditUI頁面 682          HashMap cix = new HashMap(); 683         cix.put("ID", fid); 684         UtilClass.openUI("com.kingdee.eas.cmt.commission.client.CmtTranConsignEditUI", cix, UIFactoryName.NEWWIN, OprtState.VIEW); 685  686  687         在打開的單據獲取前面頁面傳來的參數 688         this.getUIContext().get("orderid").toString() 689      * 690      * 691      */ 692     public static void openUI(String URL,HashMap ctx,String openType,String billStatus){ 693         try { 694             IUIWindow ui = UIFactory.createUIFactory(openType).create(URL, ctx, null, billStatus); 695             ui.show(); 696         } catch (UIException e) { 697             alert2("彈出UI程序出錯:",URL); 698         } 699     } 700  701     /** 702      * 發送參數 703      * @param ContextID 參數編號 704      * @param values 參數值 705      */ 706     public static void setSysContext(String ContextID,Object values){ 707         SysContext.getSysContext().setProperty(ContextID, values); 708     } 709  710     /** 711      * 獲取參數 712      * @param ContextID 參數編號 713      * @return 參數值(Object) 714      */ 715     public static Object getSysContext(String ContextID){ 716         return SysContext.getSysContext().getProperty(ContextID); 717     } 718  719     /** 720      * 獲取UI參數 721      * @param UI 722      * @return 723      */ 724     public static String getUIContext(CoreUIObject UI){ 725         String returnvalue = ""; 726         if(UI.getUIContext().get("UIClassParam")!=null){ 727             returnvalue = UI.getUIContext().get("UIClassParam").toString(); 728         } 729         return returnvalue; 730     } 731  732     /** 733      * 創建單據編號 734      * @param Parameter 規則參數 735      *        參數說明: 736      *               logo          編號頭標示 737      *               date          日期時間 738      *               Delimiter  分隔符 739      *               digit         序號位數 740      *               isTissueIsolation   是否組織隔離(0:不隔離1:隔離) 741      *               table      表名 742      * @return String 單據編號 743      *  744      *  HashMap Parameter = new HashMap(); 745         //編號頭標示符號 746         Parameter.put("logo", "CMT"); 747         //日期 748         Parameter.put("date", UtilClass.DateToString(UtilClass.getTime(), "yyyyMMdd")); 749         //分隔符 750         Parameter.put("Delimiter", "-"); 751         //序號位數 752         Parameter.put("digit", "5"); 753         //是否隔離組織0為不隔離1為隔離 754         Parameter.put("isTissueIsolation", "0"); 755         //單據表名 756         Parameter.put("table", "T_BAS_VehicleType"); 757         String billNum = UtilClass.createrBillNumber(Parameter); 758      *  759      */ 760     public static String createrBillNumber(HashMap Parameter){ 761         StringBuffer returnvalue = new StringBuffer(); 762         //編號頭Logo 763         if(Parameter.get("logo")!=null){ 764             returnvalue.append(Parameter.get("logo")); 765         } 766         //添加時間 767         if(Parameter.get("date")!=null){ 768             if(Parameter.get("Delimiter")!=null){ 769                 returnvalue.append(Parameter.get("Delimiter")); 770             } 771             returnvalue.append(Parameter.get("date")); 772         } 773         //創建序號位(digit:序號位數) 774         if(Parameter.get("digit")!=null){ 775             StringBuffer getDigitSQL = new StringBuffer(); 776             Integer digit = new Integer(Parameter.get("digit").toString()); 777             StringBuffer digitValue = new StringBuffer(); 778             for(int i=0;i<digit.intValue();i++){ 779                 digitValue.append("0"); 780             } 781             getDigitSQL.append("select trim(to_char(count(*)+1,'"+digitValue+"')) from "+Parameter.get("table")+"  "); 782             //是否組織隔離 783             if("1".equals(Parameter.get("isTissueIsolation"))){ 784                 getDigitSQL.append(" where FControlUnitID = '"+getCU().getId()+"'"); 785             } 786             if(Parameter.get("Delimiter")!=null){ 787                 returnvalue.append(Parameter.get("Delimiter")); 788             } 789             //獲取數據庫記錄數 790             returnvalue.append(executeQueryString(getDigitSQL.toString())); 791         } 792         return returnvalue.toString(); 793     } 794  795     /** 796      *  當前登錄組織 797      * @return 798      */ 799     public static CtrlUnitInfo getCU(){ 800         return SysContext.getSysContext().getCurrentCtrlUnit(); 801     } 802  803     /** 804      * 判斷當前組織是否為集團要目錄 805      * @return boolean 806      */ 807     public static boolean isRootCU(){ 808         if("1".equals(executeQueryString("select tc.flevel from t_org_baseunit tc where tc.fid = '"+getCU().getId()+"'"))){ 809             return true; 810         }else{ 811             return false; 812         } 813     } 814  815     /** 816      * 獲取集團組織ID 817      * @return 818      */ 819     public static CtrlUnitInfo getRootCU(){ 820         CtrlUnitInfo cinfo = new CtrlUnitInfo(); 821         try { 822             CtrlUnitCollection cinfos = CtrlUnitFactory.getRemoteInstance().getCtrlUnitCollection("select * where level = 1 "); 823             cinfo = cinfos.get(0); 824         } catch (BOSException e) { 825             alert2("獲取集團組織ID出錯",e.getMessage()); 826         } 827         return cinfo; 828     } 829     /** 830      * 當前登錄用戶 831      * @return 832      */ 833     public static UserInfo getUser(){ 834         return SysContext.getSysContext().getCurrentUserInfo(); 835     } 836     /** 837      * 當前登陸人員 838      * @return 839      */ 840     public static PersonInfo getPerson(){ 841         PersonInfo personinfo = null; 842         try { 843             PersonCollection Personcollection = PersonFactory.getRemoteInstance().getPersonCollection(" select * where name = '" + SysContext.getSysContext().getCurrentUserInfo().getName() +"'"); 844             personinfo=Personcollection.get(0); 845         } catch (Exception e1) { 846         } 847         return personinfo; 848     } 849     /** 850      * 當前登錄人員部門 851      * @return 852      */ 853     public static AdminOrgUnitInfo getDepartment(){ 854         AdminOrgUnitInfo returnvalue = null; 855         try { 856             PersonPositionInfo PersonPosition = PersonPositionFactory.getRemoteInstance().getPersonPositionInfo("select primaryPosition.* where person = '" + getPerson().getId() + "'"); 857             PositionInfo Position = PersonPosition.getPrimaryPosition(); 858             AdminOrgUnitCollection collection = AdminOrgUnitFactory.getRemoteInstance().getAdminOrgUnitCollection(" select * where id= '" + Position.getAdminOrgUnit().getId() +"'"); 859             returnvalue = collection.get(0); 860         } catch (Exception e2) { 861         } 862         return returnvalue; 863     } 864  865     /** 866      * 通過fid獲取表名 867      * @param fid 868      * @return 表名 869      */ 870     public static String getDBTableName(String fid){ 871         String Tablename = ""; 872         com.kingdee.bos.util.BOSObjectType bosType = BOSUuid.read(fid).getType(); 873         try { 874             Tablename = FMIsqlFacadeFactory.getRemoteInstance().getTableNameByBosType(bosType); 875         } catch (BOSException e) { 876             alert2("獲取表名出錯",fid); 877         } 878         return Tablename; 879     } 880  881     /** 882      * 執行SQL(查詢,返回集合) 883      * @param sql 884      * @return  885       IRowSet rs = UtilClass.executeQuery(sql.toString()); 886       while(rs.next()){ 887          rs.getObject(1).toString(); 888       } 889      */ 890     public static IRowSet executeQuery(String sql){ 891         IRowSet returnvalue = null; 892         try { 893             IFMIsqlFacade db = com.kingdee.eas.fm.common.FMIsqlFacadeFactory.getRemoteInstance(); 894             returnvalue = db.executeQuery(" /*dialect*/ "+sql, null); 895         } catch (Exception e) { 896             alert2("執行SQL出錯",sql); 897         } 898         return returnvalue; 899     } 900     /** 901      * 執行SQL(查詢,返回單看值) 902      * @param sql 903      * @return String 904      */ 905     public static String executeQueryString(String sql){ 906         String returnvalue = null; 907         try { 908             IFMIsqlFacade db = com.kingdee.eas.fm.common.FMIsqlFacadeFactory.getRemoteInstance(); 909             IRowSet rs = db.executeQuery(" /*dialect*/ "+sql, null); 910             while(rs.next()){ 911                 if(rs.getObject(1)!=null){ 912                     returnvalue = rs.getObject(1).toString(); 913                 } 914             } 915         } catch (Exception e) { 916             alert2("執行SQL出錯",sql); 917         } 918         return returnvalue; 919     } 920     /** 921      * 執行SQL(新增,修改) 922      * @param sql 923      */ 924     public static void executeSql(String sql){ 925         try { 926             IFMIsqlFacade db = com.kingdee.eas.fm.common.FMIsqlFacadeFactory.getRemoteInstance(); 927             db.executeSql(" /*dialect*/ "+sql); 928         } catch (Exception e) { 929             alert2("執行SQL出錯",sql); 930         } 931     } 932  933     /** 934      * SQL數據導出到Excel文件 935      * @param sql 936      * @param FileName 文件名 937      */ 938     public static String SQLExpot(String sql,String FileName){ 939         String returnvalue =""; 940         try { 941             if("".equals(sql)||sql==null){ 942                 return  returnvalue; 943             } 944             if(FileName==null||"".equals(FileName)){ 945                 FileName = "temp"; 946             } 947             String Filepath = UtilClass.OpenPathSelect(); 948             String File = ""; 949             if("".equals(Filepath)){ 950                 return returnvalue; 951             }else{ 952                 File = Filepath+"//"+FileName+".xls"; 953             } 954             File file = new File(File); 955             //如果找到相同的文件,執行刪除 956             if(file.exists() && file.isFile()){ 957                 file.delete(); 958             } 959             WritableWorkbook wwb = Workbook.createWorkbook(new File(File)); 960             //創建工作表 961             wwb.createSheet("sheet1", 0); 962             //獲取工作表  963             WritableSheet ws = wwb.getSheet(0); 964  965             //表頭行樣式 966             WritableCellFormat TableHead = new WritableCellFormat(); 967             TableHead.setBorder(Border.ALL, BorderLineStyle.THIN); 968             TableHead.setAlignment(Alignment.CENTRE); 969             TableHead.setBackground(Colour.GRAY_25); 970  971             //表體數據行樣式 972             WritableCellFormat TableRow = new WritableCellFormat(); 973             TableRow.setAlignment(Alignment.CENTRE); 974  975             IRowSet rs = UtilClass.executeQuery(sql); 976             //生成列名 977             for(int i=0;i<rs.getRowSetMetaData().getColumnCount();i++){ 978                 String columnName = rs.getRowSetMetaData().getColumnName(i+1); 979                 ws.addCell(new Label(i,0,columnName,TableHead)); 980             } 981             int z=1; 982             while(rs.next()){ 983                 for(int j=1;j<=rs.getRowSetMetaData().getColumnCount();j++){ 984                     if(rs.getObject(j)!=null){ 985                         ws.addCell(new Label(j-1,z,rs.getObject(j).toString(),TableRow)); 986                     } 987                 } 988                 z++; 989             } 990             wwb.write();     991             wwb.close(); 992         } catch (Exception e) { 993             alert2("導出數據生成Excel文件出錯",sql); 994         } 995         return returnvalue; 996     } 997  998  999     /**1000      * 集裝箱箱號正確性驗證1001      * @param BoxNum 箱號1002      * @return Boolean1003        if(!UtilClass.BoxVerification(boxnum)){1004             if(!UtilClass.alertReturn("箱號:"+boxnum+" 不是國際標準箱號,是否保存?")){1005                 UtilClass.Stop();1006             }1007         }1008      */1009     public static boolean BoxVerification(String BoxNum){1010         HashMap bj = new HashMap();1011         bj.put("0", 0);1012         bj.put("1", 1);1013         bj.put("2", 2);1014         bj.put("3", 3);1015         bj.put("4", 4);1016         bj.put("5", 5);1017         bj.put("6", 6);1018         bj.put("7", 7);1019         bj.put("8", 8);1020         bj.put("9", 9);1021         bj.put("A", 10);1022         bj.put("B", 12);1023         bj.put("C", 13);1024         bj.put("D", 14);1025         bj.put("E", 15);1026         bj.put("F", 16);1027         bj.put("G", 17);1028         bj.put("H", 18);1029         bj.put("I", 19);1030         bj.put("J", 20);1031         bj.put("K", 21);1032         bj.put("L", 23);1033         bj.put("M", 24);1034         bj.put("N", 25);1035         bj.put("O", 26);1036         bj.put("P", 27);1037         bj.put("Q", 28);1038         bj.put("R", 29);1039         bj.put("S", 30);1040         bj.put("T", 31);1041         bj.put("U", 32);1042         bj.put("V", 34);1043         bj.put("W", 35);1044         bj.put("X", 36);1045         bj.put("Y", 37);1046         bj.put("Z", 38);1047 1048         //去掉箱號兩邊空格1049         String newBoxNum = BoxNum.trim();1050 1051         //判斷箱號是否為國際標準11位1052         if(newBoxNum.length() != 11){1053             return false;1054         }1055 1056         //判斷前四位為字母  區別小寫1057         for(int i=0;i<4;i++){1058             String Nums = newBoxNum.substring(i, i+1);1059             char chs[] = Nums.toCharArray();1060             if((int)chs[0]<65 || (int)chs[0]>90){1061                 return false;1062             }1063         }1064 1065         //判斷后7位為數字1066         for(int i=4;i<11;i++){1067             String Nums = newBoxNum.substring(i, i+1);1068             char chs[] = Nums.toCharArray();1069             if((int)chs[0]<48 || (int)chs[0]>57){1070                 return false;1071             }1072         }1073 1074         //判斷第11數驗證碼是否正確1075         double VerificationNumSum = 0;1076         for(int i=0;i<10;i++){1077             //獲取當前位字母或數字對應的數值1078             double bjdata = ((Integer)bj.get(newBoxNum.substring(i, i+1))).doubleValue();1079             //獲取當前位對應的2的i次方1080             double jfdata = Math.pow(2,i);1081             VerificationNumSum+=bjdata*jfdata;1082         }1083         int VerificationNum =(int)VerificationNumSum%11;1084         int sub11 = new Integer(newBoxNum.substring(10)).intValue();1085         //如果計算結果與第11位數是否相等1086         if(VerificationNum!=sub11){1087             return false;1088         }1089         return true;1090     }1091 1092     /**1093      * 從Oracle數據讀取圖片字節碼生成圖片文件1094      * @param img_num 圖片編號(參數表編號)1095      * @param file 文件地址 "c://bmw.png"1096 1097             系統參數表1098             -- 創建表1099             create table T_SYS_FUTVAN1100             (1101               FNUMBER             NVARCHAR2(55),1102               FNAME               NVARCHAR2(256),1103               PARAMETER_STRING    NVARCHAR2(256),1104               PARAMETER_NUMBER    NUMBER,1105               PARAMETER_DATE      DATE,1106               PARAMETER_TIMESTAMP TIMESTAMP(6),1107               PARAMETER_BLOB      BLOB1108             )1109             -- 創建字段說明 1110             comment on column T_SYS_FUTVAN.FNUMBER1111               is '參數編號';1112             comment on column T_SYS_FUTVAN.FNAME1113               is '參數名稱';1114             comment on column T_SYS_FUTVAN.PARAMETER_STRING1115               is '文本型參數';1116             comment on column T_SYS_FUTVAN.PARAMETER_NUMBER1117               is '數據型參數';1118             comment on column T_SYS_FUTVAN.PARAMETER_DATE1119               is '日期型參數';1120             comment on column T_SYS_FUTVAN.PARAMETER_TIMESTAMP1121               is '時間型參數';1122             comment on column T_SYS_FUTVAN.PARAMETER_BLOB1123               is '字節型參數';1124      * 1125      */1126     public static void getImgFromOracle(String img_num,String file){1127         try {1128             IRowSet rs = executeQuery("select parameter_blob from t_sys_futvan where fnumber = '"+img_num+"'"); 1129             while(rs.next()){1130                 java.sql.Blob blob = rs.getBlob(1);1131                 InputStream ins = blob.getBinaryStream();1132                 File f = new File(file);1133                 FileOutputStream fout = new FileOutputStream(f);1134                 byte[]b = new byte[10244];1135                 int len = 0;1136                 while((len = ins.read(b)) != -1){1137                     fout.write(b,0,len);1138                 }1139                 fout.close();1140                 ins.close();1141             }1142         } catch (Exception e) {1143             System.out.println();1144         }1145     }1146 1147     /**1148      * BOTP單據轉換1149      * @param botpNum 轉換規則編號1150      * @param BillInfo 原單據1151      */1152     public static void BOTP(String botpNum,CoreBillBaseInfo BillInfo){1153         String error = "";1154         try {1155             // 取得BOPT的映射1156             BOTMappingCollection botmapping = BOTMappingFactory.getRemoteInstance().getBOTMappingCollection("select * where    name = '"+botpNum+"'  ");1157             BOTMappingInfo btpMappingInfo = null;1158             if (botmapping !=null && botmapping.size() == 1) {1159                 btpMappingInfo = botmapping.get(0);1160             } else {1161                 if(botmapping==null || botmapping.size()<1){1162                     error = "未找到轉換規則  規則編號:"+botpNum;1163                 }1164                 if(botmapping.size()>1){1165                     error = "找到多條轉換規則,請刪除重復規則。   規則編號:"+botpNum;1166                 }1167                 throw new Exception();1168             }1169             //執行單據轉換1170             BTPTransformResult transformResult = BTPManagerFactory.getRemoteInstance().transform(BillInfo, btpMappingInfo);1171 1172             //取得目標單據列表1173             IObjectCollection toBillList = transformResult.getBills();1174             1175             //保存目標單據1176             for (int i = 0; i < toBillList.size(); i++) {   1177                 CoreBillBaseInfo destBillInfo = (CoreBillBaseInfo) toBillList.getObject(i);1178                 BTPManagerFactory.getRemoteInstance().saveRelations(destBillInfo, transformResult.getBOTRelationCollection());1179             }1180             1181         } catch (Exception e) {1182             if("".equals(error) || error == null){1183                 alert2("單據轉換出錯",e.getMessage());1184             }else{1185                 alert2("單據轉換出錯",error);1186             }1187         }1188     }1189     1190     /**1191      * 分攤功能1192      * @param Total 總數1193      * @param Allocations 分攤明細1194      * @param newScale 小數位數1195      * @return 分攤分集合1196         String [][]Allocations = new String[3][2];1197         Allocations[0][0] = "001";1198         Allocations[0][1] = "3";1199         Allocations[1][0] = "002";1200         Allocations[1][1] = "3";1201         Allocations[2][0] = "003";1202         Allocations[2][1] = "3";1203         String [][] rv = UtilClass.mathAllocation(new BigDecimal("100"), Allocations,2);1204      */1205     public static String[][] mathAllocation(BigDecimal Total,String[][] Allocations,int newScale){1206         String[][] returnvalue = new String[Allocations.length][2];1207         BigDecimal sum = new BigDecimal("0");1208         BigDecimal Allocationsum = new BigDecimal("0");1209         try {1210             //獲取明細總數1211             for(int i=0;i<Allocations.length;i++){1212                 if(Allocations[i][1]!=null&&!"".equals(Allocations[i][1])){1213                     sum = sum.add(new BigDecimal(Allocations[i][1]));1214                 }1215             }1216             1217             //按比例分攤1218             for(int i=0;i<Allocations.length;i++){1219                 if(Allocations[i][1]!=null&&!"".equals(Allocations[i][1])){1220                     BigDecimal thisValue = new BigDecimal(Allocations[i][1]);1221                     BigDecimal AllocationValue = thisValue.divide(sum,16, BigDecimal.ROUND_HALF_UP).multiply(Total).setScale(newScale, BigDecimal.ROUND_HALF_UP);1222                     returnvalue[i][0] = Allocations[i][0];1223                     returnvalue[i][1] = AllocationValue.toString();1224                 }else{1225                     returnvalue[i][0] = Allocations[i][0];1226                     returnvalue[i][1] = "0";1227                 }1228             }1229             1230             //判斷分攤后每條記錄數據是否與總數相同1231             for(int i=0;i<returnvalue.length;i++){1232                 if(returnvalue[i][1]!=null&&!"".equals(returnvalue[i][1])){1233                     Allocationsum = Allocationsum.add(new BigDecimal(returnvalue[i][1]));1234                 }1235             }1236             1237             //如果分攤后結果與分攤前總數不一等。在分攤記錄最后一條。加上。分攤后總數與分攤總數的差值1238             if(Allocationsum.compareTo(Total)!=0){1239                 BigDecimal xz = new BigDecimal(returnvalue[returnvalue.length-1][1]).subtract(Allocationsum.subtract(Total));1240                 returnvalue[returnvalue.length-1][1] = xz.toString();1241             }1242         } catch (Exception e) {1243             StringBuffer er = new StringBuffer();1244             for(int i=0;i<Allocations.length;i++){1245                 er.append("| "+Allocations[i][0]+"   "+Allocations[i][1]+" |");1246             }1247             alert2("分攤出錯","分攤總數:"+Total.toString()+"  明細:"+er.toString());1248         }1249         return returnvalue;1250     }1251     1252 }1253 1254 /*1255 1256 --BOTP單據查詢1257 select tbotpm.fname               轉換規則編號,1258        tbotpm.fsrcentityalias_l2  源單據名稱,1259        tbotpm.FSrcEntityFullName  源單據對象,1260        tbotpd.FSrcObjectID 源單據fid,1261        tbotpm.fdestentityalias_l2 目錄單據名稱,1262        tbotpm.FDestEntityFullName 目標單據對象,1263        tbotpd.FDestObjectID 目標單據fid1264   from T_BOT_Relation tbotpc1265  inner join t_bot_mapping tbotpm1266     on tbotpc.FBOTMappingID = tbotpm.fid1267  inner join t_bot_relationentry tbotpd1268     on tbotpc.fid = tbotpd.FKeyID1269            1270            1271 1272 --憑證查詢1273 SELECT1274 DISTINCT VOUCHER.Fid  主表FID,1275  VOUCHER.Fnumber 憑證號,1276  TO_CHAR(VOUCHER.FBookedDate, 'YYYY-MM-DD') 記賬日期,1277  ENTRIES.Fid 分錄fid1278  1279   FROM T_GL_Voucher VOUCHER1280 1281   LEFT OUTER JOIN T_PM_User CASHIER1282     ON VOUCHER.FCashierID = CASHIER.FID1283 1284   LEFT OUTER JOIN T_BD_VoucherTypes  VOUCHERTYPE1285     ON VOUCHER.FVoucherTypeID = VOUCHERTYPE.FID1286 1287   LEFT OUTER JOIN T_BD_Period  PERIOD1288     ON VOUCHER.FPeriodID = PERIOD.FID1289 1290   LEFT OUTER JOIN T_PM_User  AUDITOR1291     ON VOUCHER.FAuditorID = AUDITOR.FID1292 1293   LEFT OUTER JOIN T_PM_User  HANDLER1294     ON VOUCHER.FHandlerID = HANDLER.FID1295 1296   LEFT OUTER JOIN T_PM_User  CREATOR1297     ON VOUCHER.FCreatorID = CREATOR.FID1298 1299   LEFT OUTER JOIN T_PM_User  POSTER1300     ON VOUCHER.FPosterID = POSTER.FID1301 1302   LEFT OUTER JOIN T_PM_User  CANCELLER1303     ON VOUCHER.FCancellerID = CANCELLER.FID1304 1305  INNER JOIN T_GL_VoucherEntry  ENTRIES1306     ON VOUCHER.FID = ENTRIES.FBillID1307 1308   LEFT OUTER JOIN T_ORG_BaseUnit  COMPANY1309     ON VOUCHER.FCompanyID = COMPANY.FID1310 1311  left JOIN (SELECT1312              1313              DISTINCT VOUCHER.FID  ID,1314                       ASSISTRECORDS.FDescription FDescriptions,1315                       ASSGRP.fnumbergroup_l2 fnumbergroup_l2s,1316                       ASSISTRECORDS.FSettlementCode FSettlementCodes,1317                       ASSISTRECORDS.Fid assFid1318                       VOUCHER.FIsCheck  ISCHECK,1319                       VOUCHER.FCompanyID  COMPANY.ID,1320                       COMPANY.FName_l2  COMPANY.NAME,1321                       PERIOD.FNumber  PERIOD.NUMBER,1322                       ((TO_CHAR(PERIOD.FPeriodYear) || '.') ||1323                       TO_CHAR(PERIOD.FPeriodNumber))  PERIOD,1324                       VOUCHERTYPE.FName_l2  VOUCHERTYPE.NAME,1325                       VOUCHERTYPE.FNumber  VOUCHERTYPE.NUMBER,1326                       VOUCHER.FNumber  NUMBER,1327                       VOUCHER.FBookedDate  BOOKEDDATE,1328                       VOUCHER.FBizDate  BIZDATE,1329                       VOUCHER.fsourceSys  SOURCESYS,1330                       VOUCHER.FSourceType  SOURCETYPE,1331                       CASHIER.FName_l2  CASHIER.NAME,1332                       AUDITOR.FName_l2  AUDITOR.NAME,1333                       CREATOR.FName_l2  CREATOR.NAME,1334                       POSTER.FName_l2  POSTER.NAME,1335                       VOUCHER.FBizStatus  BIZSTATUS,1336                       VOUCHER.FEntryCount  ENTRYCOUNT,1337                       ENTRIES.FID  ENTRIES.ID,1338                       ENTRIES.FSeq  ENTRIES.SEQ,1339                       ENTRIES.FDescription  ENTRIES.DESCRIPTION,1340                       ACCOUNT.FNumber  ACCOUNT.NUMBER,1341                       ACCOUNT.FLongName_l2  ACCOUNT.LONGNAME,1342                       CURRENCY.FName_l2  CURRENCY.NAME,1343                       CURRENCY.FPrecision  CURRENCY.PRECISION,1344                       ENTRIES.FOriginalAmount  ENTRIES.ORIGINALAMOUNT,1345                       CASE ENTRIES.FEntryDC1346                         WHEN 1 THEN1347                          ENTRIES.FLocalAmount1348                         ELSE1349                          NULL1350                       END AS LOCALAMOUNTDEBIT,1351                       CASE ENTRIES.FEntryDC1352                         WHEN 1 THEN1353                          NULL1354                         ELSE1355                          ENTRIES.FLocalAmount1356                       END AS LOCALAMOUNTCREDIT,1357                       CASE ENTRIES.FEntryDC1358                         WHEN 1 THEN1359                          ENTRIES.FReportingAmount1360                         ELSE1361                          NULL1362                       END AS REPORTINGAMOUNTDEBIT,1363                       CASE ENTRIES.FEntryDC1364                         WHEN 1 THEN1365                          NULL1366                         ELSE1367                          ENTRIES.FReportingAmount1368                       END AS REPORTINGAMOUNTCREDIT,1369                       VOUCHER.FHasCashAccount AS HASCASHACCOUNT,1370                       VOUCHER.FDescription AS DESCRIPTION,1371                       ENTRIES.FIsCussent AS ENTRIES.CUSSENT,1372                       ASSGRP.FLongNameGroup_l2 AS ASSGRP.LONGNAMEGROUP,1373                       VOUCHER.FAttachments AS ATTACHMENTS,1374                       VOUCHER.FCreateTime AS CREATETIME,1375                       ASSISTRECORDS.FDescription AS ASSISTRECORDS.DESCRIPTION,1376                       ASSISTRECORDS.FOriginalAmount AS ASSISTRECORDS.ORIGINALAMOUNT,1377                       ASSISTRECORDS.FLocalAmount AS ASSISTRECORDS.LOCALAMOUNT,1378                       ASSISTRECORDS.FReportingAmount AS ASSISTRECORDS.REPORTINGAMOUNT,1379                       ASSISTRECORDS.FQuantity AS ASSISTRECORDS.QUANTITY,1380                       ENTRIES.FQuantity AS ENTRIES.QUANTITY,1381                       VOUCHER.FIsCussent AS ISCUSSENT,1382                       VOUCHER.FIsMgCtrl AS ISMGCTRL,1383                       ASSISTRECORDS.FSettlementCode AS ASSISTRECORDS.SETTLEMENTCODE,1384                       ASSISTRECORDS.FBizNumber AS ASSISTRECORDS.BIZNUMBER,1385                       ASSISTRECORDS.FInvoiceNumber AS ASSISTRECORDS.INVOICENUMBER,1386                       ASSISTRECORDS.FTicketNumber AS ASSISTRECORDS.TICKETNUMBER,1387                       CUSTOMER.FNumber AS CUSTOMER.NUMBER,1388                       SETTLEMENTTYPE.FNumber AS SETTLEMENTTYPE.NUMBER,1389                       MATERIAL.FNumber AS MATERIAL.NUMBER,1390                       ORGUNIT.FNumber AS ORGUNIT.NUMBER,1391                       SUPPLIER.FNumber AS SUPPLIER.NUMBER,1392                       ASSISTRECORDS.FHasEffected AS ASSISTRECORDS.HASEFFECTED,1393                       ASSISTRECORDS.FFeeType AS ASSISTRECORDS.FEETYPE1394              1395                FROM T_GL_Voucher  VOUCHER1396              1397                LEFT OUTER JOIN T_PM_User  CASHIER1398                  ON VOUCHER.FCashierID = CASHIER.FID1399              1400                LEFT OUTER JOIN T_BD_VoucherTypes  VOUCHERTYPE1401                  ON VOUCHER.FVoucherTypeID = VOUCHERTYPE.FID1402              1403                LEFT OUTER JOIN T_BD_Period  PERIOD1404                  ON VOUCHER.FPeriodID = PERIOD.FID1405              1406                LEFT OUTER JOIN T_PM_User  AUDITOR1407                  ON VOUCHER.FAuditorID = AUDITOR.FID1408              1409                LEFT OUTER JOIN T_PM_User  HANDLER1410                  ON VOUCHER.FHandlerID = HANDLER.FID1411              1412                LEFT OUTER JOIN T_PM_User  CREATOR1413                  ON VOUCHER.FCreatorID = CREATOR.FID1414              1415                LEFT OUTER JOIN T_PM_User  POSTER1416                  ON VOUCHER.FPosterID = POSTER.FID1417              1418                LEFT OUTER JOIN T_PM_User  CANCELLER1419                  ON VOUCHER.FCancellerID = CANCELLER.FID1420              1421               INNER JOIN T_GL_VoucherEntry  ENTRIES1422                  ON VOUCHER.FID = ENTRIES.FBillID1423              1424                LEFT OUTER JOIN T_ORG_BaseUnit  COMPANY1425                  ON VOUCHER.FCompanyID = COMPANY.FID1426              1427                LEFT OUTER JOIN T_BD_Currency  CURRENCY1428                  ON ENTRIES.FCurrencyID = CURRENCY.FID1429              1430                LEFT OUTER JOIN T_BD_AccountView  ACCOUNT1431                  ON ENTRIES.FAccountID = ACCOUNT.FID1432              1433                LEFT OUTER JOIN T_GL_VoucherAssistRecord  ASSISTRECORDS1434                  ON ENTRIES.FID = ASSISTRECORDS.FEntryID1435              1436                LEFT OUTER JOIN T_BD_AssistantHG  ASSGRP1437                  ON ASSISTRECORDS.FAssGrpID = ASSGRP.FID1438              1439                LEFT OUTER JOIN T_BD_Customer  CUSTOMER1440                  ON ASSISTRECORDS.FCustomerID = CUSTOMER.FID1441              1442                LEFT OUTER JOIN T_BD_SettlementType  SETTLEMENTTYPE1443                  ON ASSISTRECORDS.FSettlementTypeID = SETTLEMENTTYPE.FID1444              1445                LEFT OUTER JOIN T_BD_Material  MATERIAL1446                  ON ASSISTRECORDS.FMaterialID = MATERIAL.FID1447              1448                LEFT OUTER JOIN T_ORG_Company  ORGUNIT1449                  ON ASSISTRECORDS.FOrgUnitID = ORGUNIT.FID1450              1451                LEFT OUTER JOIN T_BD_Supplier  SUPPLIER1452                  ON ASSISTRECORDS.FSupplierID = SUPPLIER.FID1453              1454                LEFT OUTER JOIN T_PM_User  HANDLER11455                  ON ASSISTRECORDS.FHandlerID = HANDLER1.FID)  VCHIDQUERY1456     ON VOUCHER.FID = VCHIDQUERY.ID1457 1458   LEFT OUTER JOIN T_BD_Currency  CURRENCY1459     ON ENTRIES.FCurrencyID = CURRENCY.FID1460 1461   LEFT OUTER JOIN T_BD_AccountView  ACCOUNT1462     ON ENTRIES.FAccountID = ACCOUNT.FID1463  where COMPANY.Fname_L2 = '中床國際物流集團有限公司'  1464  and TO_DATE(TO_CHAR(VOUCHER.FBookedDate, 'YYYY-MM-DD'), 'YYYY-MM-DD') >=1465                            TO_DATE('2009-01-01', 'YYYY-MM-DD')1466  AND TO_DATE(TO_CHAR(VOUCHER.FBookedDate, 'YYYY-MM-DD'), 'YYYY-MM-DD') <=1467                            TO_DATE('2009-12-31', 'YYYY-MM-DD')1468                            1469 1470 */
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 老女人碰碰在线碰碰视频 | 国产69精品久久久久久野外 | 性生活香蕉视频 | 亚洲第一成网站 | 亚洲91精品| 国产精品成人久久 | 毛片视频大全 | 色女人在线 | 成人激情在线观看 | 韩国一级免费视频 | 国产一级伦理片 | 国产精品99一区二区 | 久久精品一区二区三区不卡牛牛 | 性爱在线免费视频 | 日本不卡一二三区 | 亚洲电影在线播放 | 欧美成人激情在线 | 青青草华人在线 | 一级成人毛片 | www.成人在线视频 | 国产亲子伦在线观看 | 精品久久久久久久久久久久包黑料 | 免费黄网站在线播放 | 国产精品久久久久影院老司 | 黄色大片大毛片 | 超级av在线 | 在线日韩av电影 | 性高湖久久久久久久久aaaaa | 久久国产精品久久久久久电车 | 亚洲一区二区在线 | 国产亚洲黑人性受xxxx精品 | 国产成人在线视频 | 国产污污视频 | 成人午夜一区二区 | 免费毛片a线观看 | 亚洲四播房 | 亚洲精品无码不卡在线播放he | 亚洲午夜久久久精品一区二区三区 | 国产精品99久久久久久久 | 久久久国产一级片 | 蝌蚪久久窝 |