本帖最后由 Simon.hu 于 2020-9-24 11:48 编辑
先看一下效果
具体怎么做的呢?
首先,我的按钮放设置了一个条件格式,如果旁边的这个格子(此文本框已经设置了单元格名称,正式情况下可以隐藏它)等于1,本按钮就可以点击,不然本按钮就是禁用
(条件格式不会的,你自己看帮助文档哈~)
然后怎么让这个文本框在合适的时候变成1呢?这个就要用我们的代码了;
如果你懂代码,你可以自己研究一下我写的代码,如果你不懂的代码的话直接抄代码,然后给你对应的表格也起名叫做【表格1】就行
把以下代码,放到页面加载时命令
- var listview=Forguncy.Page.getListView("表格1");
- var spread=listview.getControl();
- var sheet=spread.getActiveSheet();
- sheet.bind(GC.Spread.Sheets.Events.SelectionChanged, function(a,b){
- var newSelection=b.newSelections;
- var listV=Forguncy.Page.getListView("表格1");
- if(newSelection.length>2){
- Forguncy.Page.getCell("showButton").setValue(2);
- return;
- }
- if(newSelection.length==2){
- var count=newSelection[0].rowCount+newSelection[1].rowCount;
- if(count!=2){
- Forguncy.Page.getCell("showButton").setValue(2);
- return;
- }
- }
- else if(newSelection.length==1){
- if(newSelection[0].rowCount!=2){
- Forguncy.Page.getCell("showButton").setValue(2);
- return;
- }
- }
- Forguncy.Page.getCell("showButton").setValue(1);
- })
复制代码
做到这一步,你的按钮的启用禁用就OK了
然后是如何交换值?这个我也是写的代码,你要是不懂一样没关系,只需要把对应的表格名字设置好,然后把权重列的名字也起好
按钮中的代码,一样,你要是懂的话,你可以仔细研究一下,你要是不懂的话,直接复制进去就行
- var listview=Forguncy.Page.getListView("表格1");
- var newSelection=listview.getControl().getActiveSheet().getSelections();
- if(newSelection.length>2){
- return;
- }
- if(newSelection.length==2){
- var count=newSelection[0].rowCount+newSelection[1].rowCount;
- if(count!=2){
- return;
- }
- var row0=newSelection[0].row;
- var row1=newSelection[1].row;
- var value=listview.getValue(row0,"weight")
- listview.setValue(row0,"weight", listview.getValue(row1,"weight"));
- listview.setValue(row1,"weight",value);
- }
- else if(newSelection.length==1){
- if(newSelection[0].rowCount!=2){
- return;
- }
- var row0=newSelection[0].row;
- var row1=row0+1;
- var value=listview.getValue(row0,"weight")
- listview.setValue(row0,"weight", listview.getValue(row1,"weight"));
- listview.setValue(row1,"weight",value);
- }
复制代码
这个代码是的只能修改UI的,所以我们还需要在给表格做一个提交操作
好了打完收工,下面是我的工程文件
|