码迷,mamicode.com
首页 > 其他好文 > 详细

日常工作

时间:2015-08-12 18:53:03      阅读:376      评论:0      收藏:0      [点我收藏+]

标签:

  1. 调用窗体代码:var reg =  form.ShowModalDialog(lims.GetFormSource("caoss_UserManagement.addPerson"));
  2. 调用SS代码:  var dummy = lims.CallServer("caoss_UserManagement.SS_insert",[reg[0],reg[1],reg[2],reg[3]]);注意的是,参数的传递是以数组的形式存在的。如果是单个参数,也可以只写一个,可以不用数组表示。
  3. 调用DS代码:  dataGridShowInfo.Data = lims.GetDataSource("caoss_UserManagement.michael_user_db",[form.Variables["strWhere"],form.Variables["StepCode"],form.Variables["strParams"]]);同样是以数组形式存在的 
  4. Refresh和RefreshEx的区别:Refresh是刷新整个DataGrid,RefreshEx是刷新DataGrid之后重新定位到之前选定的列
  5. 实现添加之后的定位:思路是先获取新添加的列的唯一值,一般用Origrec,然后返回,后台接收到之后先刷新DataGrid控件,然后根据DataGrid的Find方法来定位,具体的方法是dataGridShowInfo.Find(["ORIGREC"],[dummy[1]]);  dataGridShowInfo是DataGrid控件的ID,["ORIGREC"]是唯一标示,[dummy[1]]是唯一标示的的具体值。
    技术分享
     1 function lbtnaddExp_OnClick( sender, eventArgs )
     2 {
     3     var USERNAME = dataGridShowInfo.GetCurrentRowData("USERNAME");
     4     var isTrue = lims.CallServer("caoss_UserManagement.SSaddExp",[USERNAME]);
     5     if(isTrue[0] == true)
     6     {
     7         dgShowExpInfo.Refresh();
     8         dgShowExpInfo.Find(["ORIGREC"],[isTrue[1]]);
     9     }
    10 }
    添加定位
  6. 获取唯一标示的值得方法:var USERNAME = dataGridShowInfo.GetCurrentRowData("USERNAME");
  7. TabControl优化办法:在DataGrid或者TabControl的OnChange事件里面添加自定义函数RefreshChildren();然后再自定义函数RefreshChildren来设置TabControl的页面切换,或者DataGrid的换行;下面提供一个示例:
    技术分享
    1 function dataGridShowInfo_OnRowChange( sender, eventArgs )
    2 {
    3     var USERNAME = dataGridShowInfo.GetCurrentRowData("USERNAME");
    4     form.Variables["RefreshChildren"] = [ true, true, true,true,true];
    5     RefreshChildren();
    6     dataGridShowInfo.RefreshEx();
    7 }
    DataGrid的change事件

     

    技术分享
    1 function tcPerson_OnTabChanged( sender, eventArgs )
    2 {
    3     RefreshChildren();
    4 }
    TabControl的change事件

     

  8. 实现UP弹窗编辑大文本,首先在需要弹窗的控件列中设置字段的Type为UD,然后调用该控件的OnUdCellEditorRequest事件,在事件中写以下函数:
    技术分享
     1 function dgShowExpInfo_OnUdCellEditorRequest( sender, eventArgs )
     2 {
     3     var ReadOnly = true;
     4     var bStyle = "";
     5     if(eventArgs["Column"].Id == ‘COMMENTS‘)//‘COMMENTS‘为需要UD弹窗的列。
     6     {
     7         UpdateUD(eventArgs, dgShowExpInfo, "MICHAEL_EXPERIENCE", "COMMENTS", !ReadOnly, bStyle);
     8 /*[eventArgs是固定写法,dgShowExpInfo是控件的ID,"MICHAEL_EXPERIENCE"是控件所绑定数据源的数据库表格,"COMMENTS"
     9                                                 是控件所绑定数据源的数据库表格中的对应的某一列,和上面的UD弹窗对应的列对应,!ReadOnly设置只读属性,]*/
    10     }
    11 }
    OnUdCellEditorRequest
  9. 关于实现QBE查询:添加LinkButton按钮,设置其on_click事件:
    技术分享
     1 function lbtnQuery_OnClick( sender, eventArgs )
     2 {
     3     //调用实现QBE查询的弹窗,获取返回值
     4     var resultValues = form.ShowModalDialog(lims.GetFormSource("QBE.QBE_FORSEARCH"),["Query"]);
     5     if(resultValues == null )
     6     {
     7         return ;
     8     }
     9     //    如果返回值不为空,则把返回值赋值给另外一个局部变量,
    10     //    如果该返回值为null或者为"",则重新把""赋值给该变量。否则用and链接该字符串,以便在SS或者DS中调用。
    11     //    最后调用自己写的DS函数来获取要查询的值。
    12     else
    13     {
    14         var strQBEWhere = resultValues ;
    15         if(strQBEWhere == null || strQBEWhere == "")
    16         {
    17             strQBEWhere = "";
    18         }
    19         else
    20         {
    21             strQBEWhere = "and" + strQBEWhere ;
    22         }
    23         dataGridShowInfo.Data = lims.GetDataSource("caoss_UserManagement.michael_user_db",[form.Variables["strWhere"],form.Variables["StepCode"],form.Variables["strParams"],strQBEWhere]);        
    24     }
    25     
    26 }
    QBE查询 
  10. 工作流中提交操作的实现:设置提交按钮的on_click事件,如下:(需要调用公共代码)
    技术分享
    1 function lbtnSubmit_OnClick( sender, eventArgs )
    2 {
    3     var aOrigrec = dataGridShowInfo.GetSelectedRowsData("ORIGREC");//获取DataGrid的ORIGREC。
    4     //调用公共窗体-Audit,根据需要传入参数,不一定是代码中的三个参数,可以自定义参数个数。实现更多的功能
    5     form.ShowModalDialog( lims.GetFormSource("GeneralWorkFlowActions.Audit"),[ form.Variables["WorkFlowCode"], form.Variables["StepCode"], aOrigrec] );    
    6     dataGridShowInfo.RefreshEx();
    7 }
    Submit提交(工作流) 
  11. 页面中实现图片添加、显示功能:在页面中添加Image控件,设置其Onclick事件如下:
    技术分享
     1 function imgPicture_OnClick( sender, eventArgs )
     2 {
     3     var Origrec = dataGridShowInfo.GetCurrentRowData("ORIGREC");
     4     if(Origrec == null || Origrec == "") return;
     5     //调用窗体来让用户选择图片,然后把返回的图片路径赋值给file。
     6     var file = Dialogs.ShowOpenFileDialog("JPEG Files (*.jpg)|*.jpg|GIF Files (*.gif)|*.gif|PNG Files (*.png)|*.png");
     7     if (file == "")
     8         return;
     9     //把图片路径赋值给要显示图片的路径属性控件ID.ImageSource
    10     imgPicture.ImageSource = file;
    11     //图片路径经过一定的格式编码,然后赋值给StarDocID用来表示路径
    12     var serverFile : Byte[] = lims.FileToByteArray(file);
    13     var StarDocID = lims.CallServer("Sunway.UploadFileToStarDoc_Multi",
    14                                     [file, serverFile ]);
    15     //传入参数更新数据库表格中图片列的值[表格名称,表格列id,表格列对应的值,寻找该列对应的参数也就是where后边的内容]
    16     lims.CallServer("Sunway.Update",["MICHAEL_USERS","PICTURE",StarDocID,Origrec]);
    17     //如果StarDocID为真,则刷新控件,然后获取数据库表格中该字段的的值,赋值给一个本地变量,
    18     //然后把它赋值给控件的ImageSource属性来显示控件
    19     if(StarDocID)
    20     {
    21         dataGridShowInfo.RefreshEx();
    22         var localFile = csDownloadAttachment(StarDocID);
    23         imgPicture.ImageSource = localFile;
    24     }    
    25 }
    图片显示 
  12. 调用系统函数来删除DataGrid中的行(支持多行删除),下面的是我自定义的删除函数:
    技术分享
     1 function DeleteRows_diy(dg, TableName )
     2 {
     3     if(TableName == null || TableName == "")        //判断传过来的数据库表格名字是否为空,如果为空,则根据控件获取表格名字
     4     {
     5         TableName = dg.RootTable.DataMember;        //获取表格名字
     6     }
     7     if(dg.RowCount < 1)                                //如果删除的表格行数少于1,则返回,删除失败
     8         return;
     9         
    10         //调用弹出窗,确定是否删除,返回值为YES和其他值NO。,然后赋值给okToDelete
    11     var okToDelete = Dialogs.MessageBox(form.Resources("mesAreYouSureDel"), form.Resources["Question"], "YESNO", "QUESTION");
    12     if (okToDelete == "YES")    //如果为YES    ,则执行删除
    13     {
    14         var OrigrecList = dg.GetSelectedRowsData("ORIGREC");        //获取当前行。可多行
    15         lims.CallServer("Sunway.DeleteRows",[TableName,OrigrecList]);        //往DeleteRows传入表格名和唯一值Origrec,执行删除操作
    16         dg.Refresh();                                    //刷新表格
    17         return true;                                    //返回刷新成功
    18     }
    19     else return;                                //返回
    20 }
    DeleteRows_diy 

日常工作

标签:

原文地址:http://www.cnblogs.com/csschn/p/4724757.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!