要求定義の基本を知る——1 成功に導く必須スキル

本文介绍了一个特定网址的访问建议,推荐使用IE浏览器以获得更好的浏览体验。对于使用其他浏览器遇到问题的用户,文中给出了可能的解决方案。

http://itpro.nikkeibp.co.jp/article/lecture/20070124/259544/?ST=lecture

 

 

ps:最好用ie看,我用firefox没有打开。

public suspend fun onPopupDisplayTest(shireiCancelNoticeIfParam: JsonObject) { var messageCase1: String = "" var messageCase2: String = "" val params = ShireiCancelNoticeModel( shireiMngCd = shireiCancelNoticeIfParam["shireiMngCd"] ?.jsonPrimitive?.contentOrNull ?: "", tehaiReasonCd = shireiCancelNoticeIfParam["tehaiReasonCd"] ?.jsonPrimitive?.contentOrNull ?: "", tehaiMemo = shireiCancelNoticeIfParam["tehaiMemo"] ?.jsonPrimitive?.contentOrNull ?: "", cancelDenpyoFlg = shireiCancelNoticeIfParam["cancelDenpyoFlg"] ?.jsonPrimitive?.contentOrNull ?: "", ifShikibetsuCd = shireiCancelNoticeIfParam["ifShikibetsuCd"] ?.jsonPrimitive?.contentOrNull ?: "" ) val result = jAFRSHO07030E001UseCase2.invoke(params) val initializeDispData = result.getOrNull() if (initializeDispData != null) { if (initializeDispData.torikeshiReasonCls == "0") { messageCase1 = "指令は解除されました。" } else if (initializeDispData.torikeshiReasonCls == "1") { messageCase1 = "指令は振り替えられました。" } else if (initializeDispData.torikeshiReasonCls == "2") { messageCase1 = "指令は取り消しました。" } else { "" } } if (localStorageRepository.getTCarGyomuAppStatusInfo()?.windowId == "JAFRSHO03010") { messageCase2 = "指令一覧画面更新します。" } else { "編集は破棄され、指令一覧画面遷移します。" } val noticeMessage = messageCase1 + "\n" + messageCase2 setSuccess( JAFRSHO07030UiState( lblInstructionNo = "1234567 − 123", lblUketsukeCompDatetime = "2024/08/01 11:12", lblCancellationReason = "あいうえお678901234567890", lblMemo = "かきけこ6789012345678901234", lblNoticeMessage = noticeMessage, lblReceptionTime = "00:00受信" ) ) } 我在onPopupDisplayTest这个函数中定义了noticeMessage变量,现在想在下面的lblNoticeMessage = ,中使用,这里应该怎么调用 /** * 画面表示 * * @param shireiCancelNoticeIfParam 指令通IF */ @JafTransaction public suspend fun onPopupDisplay(shireiCancelNoticeIfParam: JsonObject) { // JAFRSHO07010E001 処理開始 // 1 変数設定す。 // 1.1 インスタンス変数.指令通IFJSON変換して、インスタンス変数.指令通モデル設定す。 shireiCancelNoticeModel = shireiCancelNoticeIfParam.toShireiCancelNoticeModel() try { val tReceivePopupQueInfoTmp: TReceivePopupQueInfo? = jAFRSHO07030E001UseCase1.invoke(shireiCancelNoticeModel).getOrThrow() if (tReceivePopupQueInfoTmp == null || tReceivePopupQueInfoTmp.dspStatusFlg != DspStatusFlg.COMPLETION.code ) { try { jAFRSHO07030E501UseCase.invoke(shireiCancelNoticeModel).getOrThrow() jAFRSHO07030E502UseCase.invoke(shireiCancelNoticeModel).getOrThrow() if (localStorageRepository.getTCarGyomuAppStatusInfo()?.windowId == "JAFRSHO03010") { // 14 指令一覧画面表示時、指令一覧更新(JAFRSHO03010E501実施す。 // 14.1 指令一覧更新(JAFRSHO03010E501実施す。 // jAFRSHO03010E501UseCase.invoke().getOrThrow() // TODO JAFRSHO03010E501UseCase 実装 } if (localStorageRepository.getTCarGyomuAppStatusInfo()?.windowId == "JAFRSHO06010") { // 14 指令一覧画面表示時、指令一覧更新(JAFRSHO03010E001実施す。 // 14.1 指令一覧更新(JAFRSHO03010E001実施す。 // jAFRSHO03010E001UseCase.invoke().getOrThrow() // TODO JAFRSHO03010E001UseCase 実装 } try { jAFRSHS99300P003UseCase.invoke( params = DotaiEventCdshireiMngCdModel( dotaiEventCd = "DTI_EVT_2112", shireiMngCd = shireiCancelNoticeModel.shireiMngCd ) ) jAFRSHS99300P003UseCase.invoke( params = DotaiEventCdshireiMngCdModel( dotaiEventCd = "DTI_EVT_2113", shireiMngCd = shireiCancelNoticeModel.shireiMngCd ) ) } catch (_: StandardBusinessException.BusinessException) { throw StandardBusinessException.BusinessException( Message.JAFRSHO99010EC00218.id, listOf(""), "動態変更処理失敗" ) } // 2 動態変更車載連携アプリ、車載ナビ送信す。 val isSuccessTmp: Boolean = jAFRSHS99300P004UseCase.invoke( params = DotaiEventCdshireiMngCdModel( dotaiEventCd = "DTI_EVT_2112", shireiMngCd = shireiCancelNoticeModel.shireiMngCd ) ).getOrThrow() if (!isSuccessTmp) { throw StandardBusinessException.BusinessException( Message.JAFRSHO99010EC00218.id, listOf(""), "動態変更送信処理失敗" ) } // 17 共通ヘッダー受信ポップアップキュー更新処理(JAFRSHO99010E503)実行す。 try { jAFRSHO99010E503UseCase.invoke( params = ReceivePopupQueUpdateInModel( ifNo = shireiCancelNoticeModel.ifShikibetsuCd, userCd = shireiCancelNoticeModel.userCd, recvDatetime = "", shireiMngCd = shireiCancelNoticeModel.shireiMngCd, gojiSyuseiFlg = 0 ) ).getOrThrow() } catch (_: StandardBusinessException.BusinessException) { throw StandardBusinessException.BusinessException( Message.JAFRSHO99010EC00218.id, listOf(""), "車受信ポップアップキュー更新処理失敗" ) } // 18 トランザクションコミットす。(@JafTransaction) } catch (e: Exception) { // 19 トランザクションが開いてい場合、ロールバックす。 throw e } } // 20 受信サウンド鳴らす。 if (localStorageRepository.getMCarWorkSettingInfoList().find { it.parameterName == "指令取消受信" }?.parameterValue != "" ) { playLocalAudio( filePathParam = localStorageRepository.getMCarWorkSettingInfoList().find { it.parameterName == "指令取消受信" }?.parameterValue!! ) } jAFRSHO07030E001UseCase2.invoke(shireiCancelNoticeModel).getOrThrow() val initializeDispDataTmp: InitializeDispData = jAFRSHO07030E001UseCase2.invoke( params = shireiCancelNoticeModel ).getOrThrow() // 26 画面項目設定す val inputFormat: String = DateUtils.TYPE_26 // 15桁(yyyyMMdd HHmmss) val outputFormat: String = DateUtils.TYPE_24 val uketsukeCompDatetimeTmp: Date? = parseFormatDate(inputFormat, initializeDispDataTmp.uketsukeCompDatetime) val uketsukeCompDatetimeFormatTmp = if (uketsukeCompDatetimeTmp != null) { DateUtils.getFormatString( outputFormat, uketsukeCompDatetimeTmp ) } else { "" } val uiStateDataTmp: JAFRSHO07030UiState = JAFRSHO07030UiState( lblInstructionNo = initializeDispDataTmp.shireiNo + " − " + initializeDispDataTmp.shireiBrNo, lblUketsukeCompDatetime = uketsukeCompDatetimeFormatTmp, lblCancellationReason = initializeDispDataTmp.reason, lblMemo = initializeDispDataTmp.tehaiMemo, lblReceptionTime = getCurrentFormatString(DateUtils.TYPE_1) + "受信", lblNoticeMessage = , ) }catch (ex: StandardBusinessException.BusinessException) { // 29 メッセージポップアップ表示す。 showMessage( messageId = ex.messageId, messageParameter = ex.params ) } }
09-24
import tkinter as tk class JapaneseTable: def __init__(self, root): self.root = root self.root.title("五十音图") # 设置窗口属性 self.root.overrideredirect(True) # 去除边框 self.root.attributes("-topmost", True) # 默认置顶 self.root.attributes("-alpha", 0.95) # 透明度 self.root.geometry("500x400+100+100") # 窗口大小和位置 # 添加拖动功能 self.drag_data = {"x": 0, "y": 0} self.root.bind("<Button-1>", self.start_drag) self.root.bind("<B1-Motion>", self.drag_window) # 创建布局 self.create_widgets() # 绑定右键菜单 self.root.bind("<Button-3>", self.show_menu) def create_widgets(self): # 平假名、片假名和罗马音数据(按行排列) hiragana = [ ['あ', 'い', 'う', 'え', 'お'], ['か', 'き', '', 'け', 'こ'], ['さ', 'し', 'す', 'せ', 'そ'], ['た', 'ち', 'つ', 'て', 'と'], ['な', '', 'ぬ', 'ね', ''], ['は', 'ひ', 'ふ', 'へ', 'ほ'], ['ま', 'み', 'む', 'め', 'も'], ['や', 'い', 'ゆ', 'え', 'よ'], ['ら', 'り', '', 'れ', 'ろ'], ['わ', 'い', 'う', 'え', ''] ] katakana = [ ['ア', 'イ', 'ウ', 'エ', 'オ'], ['カ', 'キ', 'ク', 'ケ', 'コ'], ['サ', 'シ', 'ス', 'セ', 'ソ'], ['タ', 'チ', 'ツ', 'テ', 'ト'], ['ナ', 'ニ', 'ヌ', 'ネ', 'ノ'], ['ハ', 'ヒ', 'フ', 'ヘ', 'ホ'], ['マ', 'ミ', 'ム', 'メ', 'モ'], ['ヤ', 'イ', 'ユ', 'エ', 'ヨ'], ['ラ', 'リ', 'ル', 'レ', 'ロ'], ['ワ', 'イ', 'ウ', 'エ', 'ヲ'] ] # 罗马音数据 romaji = [ ['a', 'i', 'u', 'e', 'o'], ['ka', 'ki', 'ku', 'ke', 'ko'], ['sa', 'shi', 'su', 'se', 'so'], ['ta', 'chi', 'tsu', 'te', 'to'], ['na', 'ni', 'nu', 'ne', 'no'], ['ha', 'hi', 'fu', 'he', 'ho'], ['ma', 'mi', 'mu', 'me', 'mo'], ['ya', 'i', 'yu', 'e', 'yo'], ['ra', 'ri', 'ru', 're', 'ro'], ['wa', 'i', 'u', 'e', 'wo'] ] # 创建表格 for i in range(10): for j in range(5): # 创建单元格容器 cell_frame = tk.Frame(self.root, bg="#f8f8f8", bd=1, relief="solid") cell_frame.grid(row=i, column=j, padx=2, pady=2, sticky="nsew") # 平假名(大号) hira_label = tk.Label(cell_frame, text=hiragana[i][j], font=("Arial Unicode MS", 16), # 使用通用字体 bg="#f8f8f8", fg="#000000") hira_label.pack(side="top", fill="x", pady=(5, 0)) # 片假名(小号) kata_label = tk.Label(cell_frame, text=katakana[i][j], font=("Arial Unicode MS", 12), # 使用通用字体 bg="#f8f8f8", fg="#555555") kata_label.pack(side="top", fill="x", pady=(2, 0)) # 罗马音(更小号) romaji_label = tk.Label(cell_frame, text=romaji[i][j], font=("Arial Unicode MS", 10), # 使用通用字体 bg="#f8f8f8", fg="#0000ff") romaji_label.pack(side="top", fill="x", pady=(0, 5)) # 设置行高 self.root.grid_rowconfigure(i, weight=1) # 设置列宽 for j in range(5): self.root.grid_columnconfigure(j, weight=1) # 添加控制按钮 control_frame = tk.Frame(self.root, bg="#f8f8f8") control_frame.grid(row=10, column=0, columnspan=5, sticky="ew") # 置顶按钮 self.pin_button = tk.Button(control_frame, text="置顶", command=self.toggle_pin, font=("Arial", 10), width=5) self.pin_button.pack(side="left", padx=5, pady=5) # 关闭按钮 close_button = tk.Button(control_frame, text="关闭", command=self.root.destroy, font=("Arial", 10), width=5) close_button.pack(side="right", padx=5, pady=5) def toggle_pin(self): """切换置顶状态""" self.root.attributes("-topmost", not self.root.attributes("-topmost")) self.pin_button.config(text="取消置顶" if self.root.attributes("-topmost") else "置顶") def show_menu(self, event): """显示右键菜单""" menu = tk.Menu(self.root, tearoff=0) menu.add_command(label="切换置顶", command=self.toggle_pin) menu.add_separator() menu.add_command(label="关闭", command=self.root.destroy) menu.tk_popup(event.x_root, event.y_root) def start_drag(self, event): """开始拖动""" self.drag_data["x"] = event.x self.drag_data["y"] = event.y def drag_window(self, event): """拖动窗口""" x = self.root.winfo_rootx() + (event.x - self.drag_data["x"]) y = self.root.winfo_rooty() + (event.y - self.drag_data["y"]) self.root.geometry(f"+{x}+{y}") if __name__ == "__main__": root = tk.Tk() app = JapaneseTable(root) root.mainloop()这个代码现在有以下几个问题需要修复:1、只显示平假没有显示片假和罗马音。2、颜色显示完全没有。3、优化面板,酌情添加其他功能,确保主要功能正常。4、让字体变得更加好看,面板更加好看舒适。5、让我能够在看文档的同时能够参考这个五十音图学习日语,这个是我的主要目的
11-20
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值