単位変換 共通

// 単位変換対象外項目
private Set<String> notColList {get;set;}

notColList = new Set<String>{'転換対象外の数値項目__c'};

obj = (Obj__c)COM_Util.convertUnit(Obj__c.sObjectType,obj,notColList,false);
   
/**
 * 円と万円を単位変換
 * @param  type :sObjectType 
 * @param  obj :対象オブジェクト
 * @param  notColList :転換対象外項目セット
 * @param  flg : ture: 円→万円; false:万円→円
 * @return パラメータ内容
 */
public static sObject convertUnit(Schema.sObjectType type,sObject obj,Set<String> notColList,Boolean flg){
    Schema.DescribeSObjectResult objDescribe = type.getDescribe();
    Map<String, Schema.SObjectField> fieldMap = objDescribe.fields.getMap();
    for(string fieldName :fieldMap.keyset()){
        DescribeFieldResult dfr = fieldMap.get(fieldName).getDescribe();
        if('DOUBLE'.equalsIgnoreCase(String.ValueOf(dfr.getType()))){
            if(obj.get(fieldName)!=null && !notColList.contains(fieldName)){
                decimal tempValue = 0;
                if(flg){
                    tempValue = (decimal)obj.get(fieldName)/10000;
                }else{
                    tempValue = (decimal)obj.get(fieldName)*10000;
                }
                obj.put(fieldMap.get(fieldName),tempValue);
            }
        }
    }
    return obj; 
}

请作为资深开发工程师,解释我给出的代码。请逐行分析我的代码并给出你对这段代码的理解。 我给出的代码是: 【[ public final void initMainContent(ContainerMap containerMap) { // スキャナ基盤の親クラスメソッド呼出しを行う super.initMainContent(containerMap); // 共通レイアウトをAPPInfra提供のレイアウトに設定 setMainContentView(R.layout.pp_activity_base); // ソフトウェアキーボードの非表示 getWindow().setSoftInputMode(LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN); // フィードバックを有効にする useFeedback(); // オプションを非活性にする setEnableActionFlowButton(false); // アクティビティ表示用モデルを生成 fullScrModel = new PPFullScrModel(this); // 業務メニューボタン5(検索) fullScrModel.getBusinessMenu5().setEnabled(canMoveOfSearchActivity()); // 業務メニューボタン6(確認) fullScrModel.getBusinessMenu6().setEnabled(canMoveOfConfirmActivity()); // アクティビティ表示用モデルを初期化 fullScrModel = ppCreatePage(fullScrModel); // イベント:アクティビティモデル初期化後 ppCreatePageAfter(containerMap); // アクティビティレイアウトを設定 if (fullScrModel.getActivityLayoutId() != 0) { // ignore } else { // アクティビティの透過設定を取得 Resources.Theme theme = this.getTheme(); int[] attrs = new int[]{android.R.attr.windowIsTranslucent}; // pp_activity_base.xmlのN8PanelFrameLayoutが非表示にならないので強制的に透明にする // ※N8ActivityHelper.setTranslucentメソッドで使用している // layout.setBackgroundResource(android.R.color.transparent); // では透明になっていない模様... TypedArray typedArray = theme.obtainStyledAttributes(attrs); boolean isTranslucent = typedArray.getBoolean(0, false); if (isTranslucent) { View view = this.findViewById(R.id.activity_root); view.setAlpha(0); } } // イベント:アクティビティレイアウト設定後 ppCreateTabPage(containerMap); // **** ファンクションボタン初期設定 **** // ファンクションボタン1 final Button func1 = (Button) PPUICastUtil.getButton(this, R.id.pp_header_func_title_btn1); func1.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { functionButton1Click(v); } }); // ファンクションボタン2 final Button func2 = (Button) PPUICastUtil.getButton(this, R.id.pp_header_func_title_btn2); func2.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { functionButton2Click(v); } }); // ファンクションボタン3 final Button func3 = (Button) PPUICastUtil.getButton(this, R.id.pp_header_func_title_btn3); func3.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { functionButton3Click(v); } }); if (fullScrModel.getMemoryStatus() != PPMemoryStatus.NONE) { func3.setText(getMemoryButtonCaption()); func3.setBackgroundResource(getMemoryButtonBackground()); func3.setTextColor(getMemoryButtonTextColorList()); func3.setVisibility(View.VISIBLE); func3.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { // メモリ状態を切り替え if (fullScrModel.getMemoryStatus() == PPMemoryStatus.ON) { fullScrModel.setMemoryStatus(PPMemoryStatus.OFF); } else { fullScrModel.setMemoryStatus(PPMemoryStatus.ON); } if (view instanceof Button) { Button self = (Button) view; // ボタンタイトル更 self.setText(getMemoryButtonCaption()); // ボタン背景色更 self.setBackgroundResource(getMemoryButtonBackground()); self.setTextColor(getMemoryButtonTextColorList()); // メモリボタン押下時処理 memoryButtonClick(view, getMemoryStatus()); } } }); } // MEMORY:メモリ詳細ボタン(レイアウトに存在する場合のみ) final Button memDetail = (Button) PPUICastUtil.getButton(this, R.id.pp_memory_info_detail); if (memDetail != null) { memDetail.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { memoryDetailButtonClick(v); } }); // 呼び出し元の画面名をメモリ詳細画面名にする getMemoryObject().setMemoryListTitle(fullScrModel.getCommonHeaderTitle()); } // MEMORY:メモリ全解除ボタン(レイアウトに存在する場合のみ) final Button memAllOff = (Button) PPUICastUtil.getButton(this, R.id.pp_memory_info_all_off); if (memAllOff != null) { memAllOff.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { memoryAllOffButtonClick(v); } }); } // 1件以上登録されている場合、通知アイコンを非活性に設定する if (getScrBean().getCount() > 0) { // 通知アイコン非活性 this.setEnableInnerNotificationIcon(false); this.setEnableOuterNotificationIcon(false); } }]】
05-29
一、综合实战—使用极轴追踪方式绘制信号灯 实战目标:利用对象捕捉追踪和极轴追踪功能创建信号灯图形 技术要点:结合两种追踪方式实现精确绘图,适用于工程制图中需要精确定的场景 1. 切至AutoCAD 操作步骤: 启动AutoCAD 2016软件 打开随书光盘中的素材文件 确认工作空间为"草图与注释"模式 2. 绘图设置 1)草图设置对话框 打开方式:通过"工具→绘图设置"菜单命令 功能定:该对话框包含捕捉、追踪等核心绘图辅助功能设置 2)对象捕捉设置 关键配置: 启用对象捕捉(F3快捷键) 启用对象捕捉追踪(F11快捷键) 勾选端点、中心、圆心、象限点等常用捕捉模式 追踪原理:命令执行时悬停光标可显示追踪矢量,再次悬停可停止追踪 3)极轴追踪设置 参数设置: 启用极轴追踪功能 设置角度增量为45度 确认后退出对话框 3. 绘制信号灯 1)绘制圆形 执行命令:"绘图→圆→圆心、半径"命令 绘制过程: 使用对象捕捉追踪定矩形中心作为圆心 输入半径值30并按Enter确认 通过象限点捕捉确保圆形置准确 2)绘制直线 操作要点: 选择"绘图→直线"命令 捕捉矩形上边中点作为起点 捕捉圆的上象限点作为终点 按Enter结束当前直线命令 重复技巧: 按Enter可重复最近使用的直线命令 通过圆心捕捉和极轴追踪绘制放射状直线 最终形成完整的信号灯指示图案 3)完成绘制 验证要点: 检查所有直线是否准确连接圆心和象限点 确认极轴追踪的45度增量是否体现 保存绘图文件(快捷键Ctrl+S)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值