public void CompressTest(string file, Paradox.Graphics.PixelFormat format) { TexImage image = TestTools.Load(library, file); TexLibraryTest.CompressTest(image, library, format); image.Dispose(); }
public static bool Infers <T>(this T premise, T conclusion, Paradox <T> predicate = null) { if (null == predicate) { return(premise.Implies(conclusion, Infers)); } if (Implies != predicate) { return(predicate(premise, conclusion)); } return(Implications.CheckImplies(premise, conclusion)); }
/// <summary> /// Initializes a new instance of the <see cref="LoadingRequest"/> class to load a texture from a <see cref="SiliconStudio.Paradox.Graphics.Image"/> instance. /// </summary> /// <param name="image">The image.</param> /// <param name="loadAsSRgb">Indicate if the input file should be loaded as in sRGB file</param> public LoadingRequest(Paradox.Graphics.Image image, bool loadAsSRgb) { PdxImage = image; Mode = LoadingMode.PdxImage; LoadAsSRgb = loadAsSRgb; }
/// <summary> /// Mixes shader parts to produces a single HLSL file shader. /// </summary> /// <param name="shaderMixinSource">The shader source.</param> /// <param name="macros">The shader perprocessor macros.</param> /// <param name="modifiedShaders">The list of modified shaders.</param> /// <returns>The combined shader in AST form.</returns> public ShaderMixinParsingResult Parse(ShaderMixinSource shaderMixinSource, Paradox.Shaders.ShaderMacro[] macros = null) { // Creates a parsing result HashSet<ModuleMixinInfo> mixinsToAnalyze; ShaderMixinParsingResult parsingResult; var context = ParseAndAnalyze(shaderMixinSource, macros, out parsingResult, out mixinsToAnalyze); // Return directly if there was any errors if (parsingResult.HasErrors) return parsingResult; // Update the clone context in case new instances of classes are created lock (hlslCloneContext) { HlslSemanticAnalysis.UpdateCloneContext(hlslCloneContext); } // only clone once the stage classes var mixCloneContext = new CloneContext(hlslCloneContext); foreach (var mixinInfo in mixinsToAnalyze) { foreach (var mixin in mixinInfo.Mixin.MinimalContext.Where(x => x.StageOnlyClass)) { mixin.DeepClone(mixCloneContext); } } // ---------------------------------------------------------- // Perform Shader Mixer // ---------------------------------------------------------- var externDict = new CompositionDictionary(); var finalModuleList = BuildCompositionsDictionary(shaderMixinSource, externDict, context, mixCloneContext, parsingResult); //PerformanceLogger.Stop(PerformanceStage.DeepClone); if (parsingResult.HasErrors) return parsingResult; // look for stage compositions and add the links between variables and compositions when necessary var extraExternDict = new Dictionary<Variable, List<ModuleMixin>>(); foreach (var item in externDict) { if (item.Key.Qualifiers.Contains(ParadoxStorageQualifier.Stage)) FullLinkStageCompositions(item.Key, item.Value, externDict, extraExternDict, parsingResult); } foreach (var item in extraExternDict) externDict.Add(item.Key, item.Value); var mixinDictionary = BuildMixinDictionary(finalModuleList); if (finalModuleList != null) { var finalModule = finalModuleList[0]; //PerformanceLogger.Start(PerformanceStage.Mix); var mixer = new ParadoxShaderMixer(finalModule, parsingResult, mixinDictionary, externDict, new CloneContext(mixCloneContext)); mixer.Mix(); //PerformanceLogger.Stop(PerformanceStage.Mix); // Return directly if there was any errors if (parsingResult.HasErrors) return parsingResult; var finalShader = mixer.GetMixedShader(); // Simplifies the shader by removing dead code var simplifier = new ExpressionSimplifierVisitor(); simplifier.Run(finalShader); parsingResult.Reflection = new EffectReflection(); var pdxShaderLinker = new ShaderLinker(parsingResult); pdxShaderLinker.Run(finalShader); // Return directly if there was any errors if (parsingResult.HasErrors) return parsingResult; // Find all entry points // TODO: make this configurable by CompileParameters foreach (var stage in new[] {ShaderStage.Compute, ShaderStage.Vertex, ShaderStage.Hull, ShaderStage.Domain, ShaderStage.Geometry, ShaderStage.Pixel}) { var entryPoint = finalShader.Declarations.OfType<MethodDefinition>().FirstOrDefault(f => f.Attributes.OfType<AttributeDeclaration>().Any(a => a.Name == "EntryPoint" && (string)a.Parameters[0].Value == stage.ToString())); if (entryPoint == null) { continue; } parsingResult.EntryPoints[stage] = entryPoint.Name.Text; // When this is a compute shader, there is no need to scan other stages if (stage == ShaderStage.Compute) break; } var typeCleaner = new ParadoxShaderCleaner(); typeCleaner.Run(finalShader); //PerformanceLogger.Stop(PerformanceStage.Global); //PerformanceLogger.PrintLastResult(); //SemanticPerformance.PrintResult(); //MixPerformance.PrintResult(); //GenerateShaderPerformance.PrintResult(); //StreamCreatorPerformance.PrintResult(); //ShaderLoader.PrintTime(); //PerformanceLogger.WriteOut(52); parsingResult.Shader = finalShader; } return parsingResult; }
internal ShaderCompilationContext ParseAndAnalyze(ShaderMixinSource shaderMixinSource, Paradox.Shaders.ShaderMacro[] macros, out ShaderMixinParsingResult parsingResult, out HashSet<ModuleMixinInfo> mixinsToAnalyze) { // Creates a parsing result parsingResult = new ShaderMixinParsingResult(); SiliconStudio.Shaders.Parser.ShaderMacro[] macrosParser; if (macros == null) { macrosParser = new SiliconStudio.Shaders.Parser.ShaderMacro[0]; } else { macrosParser = new SiliconStudio.Shaders.Parser.ShaderMacro[macros.Length]; for (var i = 0; i < macros.Length; ++i) macrosParser[i] = new SiliconStudio.Shaders.Parser.ShaderMacro(macros[i].Name, macros[i].Definition); } //PerformanceLogger.Start(PerformanceStage.Global); // ---------------------------------------------------------- // Load all shaders // ---------------------------------------------------------- lock (shaderLibrary) { //PerformanceLogger.Start(PerformanceStage.Loading); mixinsToAnalyze = shaderLibrary.LoadShaderSource(shaderMixinSource, macrosParser); //PerformanceLogger.Stop(PerformanceStage.Loading); } // Extract all ModuleMixinInfo and check for any errors var allMixinInfos = new HashSet<ModuleMixinInfo>(); foreach (var moduleMixinInfo in mixinsToAnalyze) { allMixinInfos.UnionWith(moduleMixinInfo.MinimalContext); } foreach (var moduleMixinInfo in allMixinInfos) { moduleMixinInfo.Log.CopyTo(parsingResult); var ast = moduleMixinInfo.MixinAst; var shaderClassSource = moduleMixinInfo.ShaderSource as ShaderClassSource; // If we have a ShaderClassSource and it is not an inline one, then we can store the hash sources if (ast != null && shaderClassSource != null) { parsingResult.HashSources[shaderClassSource.ClassName] = ast.SourceHash; } } // Return directly if there was any errors if (parsingResult.HasErrors) return null; // ---------------------------------------------------------- // Perform Type Analysis // ---------------------------------------------------------- //PerformanceLogger.Start(PerformanceStage.TypeAnalysis); var context = GetCompilationContext(mixinsToAnalyze, parsingResult); //PerformanceLogger.Stop(PerformanceStage.TypeAnalysis); // Return directly if there was any errors if (parsingResult.HasErrors) return context; lock (SemanticAnalyzerLock) { //PerformanceLogger.Start(PerformanceStage.SemanticAnalysis); //SemanticPerformance.Start(SemanticStage.Global); foreach (var mixin in mixinsToAnalyze) context.Analyze(mixin); //SemanticPerformance.Pause(SemanticStage.Global); //PerformanceLogger.Stop(PerformanceStage.SemanticAnalysis); } return context; }
public void ProcessingTest(string source, string extension, Filter.Rescaling rescaleFiler, Paradox.Graphics.PixelFormat format) { var image = texTool.Load(TestTools.InputTestFolder + source); texTool.CorrectGamma(image, 2.2); texTool.Rescale(image, 0.5f, 0.5f, rescaleFiler); texTool.GenerateMipMaps(image, Filter.MipMapGeneration.Box); var normalMap = texTool.GenerateNormalMap(image, 4); texTool.CorrectGamma(normalMap, 1/2.2); string output = "TextureTool_ProcessingTest_NormalMap" + rescaleFiler + "_" + format + "_" + source + extension; texTool.Save(normalMap, TestTools.TempFolder + output, format, normalMap.Width / 2); normalMap.Dispose(); Assert.IsTrue(TestTools.ComputeSHA1(TestTools.TempFolder + output).Equals(TestTools.GetInstance().Checksum[output])); //Console.WriteLine(output + "." + TestTools.ComputeSHA1(TestTools.TempFolder + output)); File.Delete(TestTools.TempFolder + output); texTool.Flip(image, Orientation.Horizontal); texTool.CorrectGamma(image, 1/2.2); output = "TextureTool_ProcessingTest_" + rescaleFiler + "_" + format + "_" + source + extension; texTool.Save(image, TestTools.TempFolder + output, format, 4); image.Dispose(); Assert.IsTrue(TestTools.ComputeSHA1(TestTools.TempFolder + output).Equals(TestTools.GetInstance().Checksum[output])); //Console.WriteLine(output + "." + TestTools.ComputeSHA1(TestTools.TempFolder + output)); File.Delete(TestTools.TempFolder + output); image.Dispose(); }
public void SaveTest(string input, string extension, Paradox.Graphics.PixelFormat compressionFormat, int minimumMipmapSize) { TexImage image = texTool.Load(TestTools.InputTestFolder + input); string output = Path.GetFileNameWithoutExtension(input) + extension; if (compressionFormat == Paradox.Graphics.PixelFormat.None) { texTool.Save(image, TestTools.TempFolder + output, minimumMipmapSize); } else { texTool.Save(image, TestTools.TempFolder + output, compressionFormat, minimumMipmapSize); } Assert.IsTrue(File.Exists(TestTools.TempFolder + output)); var loaded = texTool.Load(TestTools.TempFolder + output); Assert.IsTrue(TestTools.ComputeSHA1(loaded.Data, loaded.DataSize).Equals(TestTools.GetInstance().Checksum["TextureTool_Save_" + compressionFormat + "_" + minimumMipmapSize + "_" + loaded.Name])); //Console.WriteLine("TextureTool_Save_" + compressionFormat + "_" + minimumMipmapSize + "_" + loaded.Name + "." + TestTools.ComputeSHA1(loaded.Data, loaded.DataSize)); File.Delete(TestTools.TempFolder + output); loaded.Dispose(); image.Dispose(); }
public void CompressTest(string filename, Paradox.Graphics.PixelFormat format) { TexImage image = texTool.Load(TestTools.InputTestFolder + filename); texTool.Compress(image, format); Assert.IsTrue(image.Format == format); Assert.IsTrue(TestTools.ComputeSHA1(image.Data, image.DataSize).Equals(TestTools.GetInstance().Checksum["TextureTool_Compress_" + format + "_" + image.Name])); //Console.WriteLine("TextureTool_Compress_" + format + "_" + image.Name + "." + TestTools.ComputeSHA1(image.Data, image.DataSize)); image.Dispose(); }
private void btnTx_Click(object sender, EventArgs e) { //连接本地数据库,获取BC5300数据:修改base类 if (txtDjh.Text.Trim() == "") { MessageBox.Show("体检登记号不能为空!", "警告"); return; } if (txtTjbh.Text.Trim() == "") { MessageBox.Show("体检编号不能为空!", "警告"); return; } //全角半角转换 string djh = txtDjh.Text.Trim(); djh = comn.CharConverter(djh); string tjbh = txtTjbh.Text.Trim(); tjbh = comn.CharConverter(tjbh); DataTable dtnew = null; if (cmbJyyq.SelectedValue.ToString() == "0002") { #region BC5300 //容错处理:1.登记号和体检号互换 2.姓名判断 dtnew = jyjkBiz.GetJyjg(djh, tjbh, dtpDjrq.Value.ToString("yyyy-MM-dd")); //正常输入 if (dtnew.Rows.Count == 0) { dtnew = jyjkBiz.GetJyjg(tjbh, djh, dtpDjrq.Value.ToString("yyyy-MM-dd")); //登记号录成了体检号 } if (dtnew.Rows.Count == 0) { MessageBox.Show("未找到检验设备中的记录,请确认!"); return; } //获取到数据 string str_jyname = dtnew.Rows[0]["name"].ToString(); //检验设备录入的名字 string str_tjname = txtXm.Text.Trim(); //体检系统录入的名字 if (str_tjname != str_jyname) { if (DialogResult.No == MessageBox.Show("检验设备录入的名字为:" + str_jyname + " ;体检系统录入的名字为:" + str_tjname + "。是否继续?", "提示--姓名不匹配", MessageBoxButtons.YesNo, MessageBoxIcon.Information, MessageBoxDefaultButton.Button1)) { return; } } //MessageBox.Show("" + dtnew.Rows[0]["name"].ToString()); //开始处理处理:分别取出来赋值到前台 string str_wbc = dtnew.Rows[0]["WBC"].ToString(); string str_Bas = dtnew.Rows[0]["Bas#"].ToString(); string str_Bas_Percent = dtnew.Rows[0]["Bas_Percent"].ToString(); string str_Neu = dtnew.Rows[0]["Neu#"].ToString(); string str_Neu_Percent = dtnew.Rows[0]["Neu_Percent"].ToString(); string str_Eos = dtnew.Rows[0]["Eos#"].ToString(); string str_Eos_Percent = dtnew.Rows[0]["Eos_Percent"].ToString(); string str_Lym = dtnew.Rows[0]["Lym#"].ToString(); string str_Lym_Percent = dtnew.Rows[0]["Lym_Percent"].ToString(); string str_Mon = dtnew.Rows[0]["Mon#"].ToString(); string str_Mon_Percent = dtnew.Rows[0]["Mon_Percent"].ToString(); string str_ALY = dtnew.Rows[0]["ALY#"].ToString(); string str_ALY_Percent = dtnew.Rows[0]["ALY_Percent"].ToString(); string str_LIC = dtnew.Rows[0]["LIC#"].ToString(); string str_LIC_Percent = dtnew.Rows[0]["LIC_Percent"].ToString(); string str_RBC = dtnew.Rows[0]["RBC"].ToString(); string str_HGB = dtnew.Rows[0]["HGB"].ToString(); string str_MCV = dtnew.Rows[0]["MCV"].ToString(); string str_MCH = dtnew.Rows[0]["MCH"].ToString(); string str_MCHC = dtnew.Rows[0]["MCHC"].ToString(); string str_RDW_CV = dtnew.Rows[0]["RDW_CV"].ToString(); string str_RDW_SD = dtnew.Rows[0]["RDW_SD"].ToString(); string str_HCT = dtnew.Rows[0]["HCT"].ToString(); string str_PLT = dtnew.Rows[0]["PLT"].ToString(); string str_MPV = dtnew.Rows[0]["MPV"].ToString(); string str_PDW = dtnew.Rows[0]["PDW"].ToString(); string str_PCT = dtnew.Rows[0]["PCT"].ToString(); if (str_wbc == "") { str_wbc = "0"; } if (str_Bas == "") { str_Bas = "0"; } if (str_Bas_Percent == "") { str_Bas_Percent = "0"; } if (str_Neu == "") { str_Neu = "0"; } if (str_Neu_Percent == "") { str_Neu_Percent = "0"; } if (str_Eos == "") { str_Eos = "0"; } if (str_Eos_Percent == "") { str_Eos_Percent = "0"; } if (str_Lym == "") { str_Lym = "0"; } if (str_Lym_Percent == "") { str_Lym_Percent = "0"; } if (str_Mon == "") { str_Mon = "0"; } if (str_Mon_Percent == "") { str_Mon_Percent = "0"; } if (str_ALY == "") { str_ALY = "0"; } if (str_ALY_Percent == "") { str_ALY_Percent = "0"; } if (str_LIC == "") { str_LIC = "0"; } if (str_LIC_Percent == "") { str_LIC_Percent = "0"; } if (str_RBC == "") { str_RBC = "0"; } if (str_HGB == "") { str_HGB = "0"; } if (str_MCV == "") { str_MCV = "0"; } if (str_MCH == "") { str_MCH = "0"; } if (str_MCHC == "") { str_MCHC = "0"; } if (str_RDW_CV == "") { str_RDW_CV = "0"; } if (str_RDW_SD == "") { str_RDW_SD = "0"; } if (str_HCT == "") { str_HCT = "0"; } if (str_PLT == "") { str_PLT = "0"; } if (str_MPV == "") { str_MPV = "0"; } if (str_PDW == "") { str_PDW = "0"; } if (str_PCT == "") { str_PCT = "0"; } for (int i = 0; i < dgvJyjg.Rows.Count; i++) { if (dgvJyjg.Rows[i].Cells["xmsx"].Value.ToString().Trim() == "WBC") { dgvJyjg.Rows[i].Cells["jg"].Value = (Convert.ToDecimal(str_wbc) * Convert.ToDecimal(dgvJyjg.Rows[i].Cells["bl"].Value.ToString().Trim())).ToString(); } if (dgvJyjg.Rows[i].Cells["xmsx"].Value.ToString().Trim() == "Bas#") { dgvJyjg.Rows[i].Cells["jg"].Value = (Convert.ToDecimal(str_Bas) * Convert.ToDecimal(dgvJyjg.Rows[i].Cells["bl"].Value.ToString().Trim())).ToString(); } if (dgvJyjg.Rows[i].Cells["xmsx"].Value.ToString().Trim() == "Bas_Percent") { dgvJyjg.Rows[i].Cells["jg"].Value = (Convert.ToDecimal(str_Bas_Percent) * Convert.ToDecimal(dgvJyjg.Rows[i].Cells["bl"].Value.ToString().Trim())).ToString(); } if (dgvJyjg.Rows[i].Cells["xmsx"].Value.ToString().Trim() == "Neu#") { dgvJyjg.Rows[i].Cells["jg"].Value = (Convert.ToDecimal(str_Neu) * Convert.ToDecimal(dgvJyjg.Rows[i].Cells["bl"].Value.ToString().Trim())).ToString(); } if (dgvJyjg.Rows[i].Cells["xmsx"].Value.ToString().Trim() == "Neu_Percent") { dgvJyjg.Rows[i].Cells["jg"].Value = (Convert.ToDecimal(str_Neu_Percent) * Convert.ToDecimal(dgvJyjg.Rows[i].Cells["bl"].Value.ToString().Trim())).ToString(); } if (dgvJyjg.Rows[i].Cells["xmsx"].Value.ToString().Trim() == "Eos#") { dgvJyjg.Rows[i].Cells["jg"].Value = (Convert.ToDecimal(str_Eos) * Convert.ToDecimal(dgvJyjg.Rows[i].Cells["bl"].Value.ToString().Trim())).ToString(); } if (dgvJyjg.Rows[i].Cells["xmsx"].Value.ToString().Trim() == "Eos_Percent") { dgvJyjg.Rows[i].Cells["jg"].Value = (Convert.ToDecimal(str_Eos_Percent) * Convert.ToDecimal(dgvJyjg.Rows[i].Cells["bl"].Value.ToString().Trim())).ToString(); } if (dgvJyjg.Rows[i].Cells["xmsx"].Value.ToString().Trim() == "Lym#") { dgvJyjg.Rows[i].Cells["jg"].Value = (Convert.ToDecimal(str_Lym) * Convert.ToDecimal(dgvJyjg.Rows[i].Cells["bl"].Value.ToString().Trim())).ToString(); } if (dgvJyjg.Rows[i].Cells["xmsx"].Value.ToString().Trim() == "Lym_Percent") { dgvJyjg.Rows[i].Cells["jg"].Value = (Convert.ToDecimal(str_Lym_Percent) * Convert.ToDecimal(dgvJyjg.Rows[i].Cells["bl"].Value.ToString().Trim())).ToString(); } if (dgvJyjg.Rows[i].Cells["xmsx"].Value.ToString().Trim() == "Mon#") { dgvJyjg.Rows[i].Cells["jg"].Value = (Convert.ToDecimal(str_Mon) * Convert.ToDecimal(dgvJyjg.Rows[i].Cells["bl"].Value.ToString().Trim())).ToString(); } if (dgvJyjg.Rows[i].Cells["xmsx"].Value.ToString().Trim() == "Mon_Percent") { dgvJyjg.Rows[i].Cells["jg"].Value = (Convert.ToDecimal(str_Mon_Percent) * Convert.ToDecimal(dgvJyjg.Rows[i].Cells["bl"].Value.ToString().Trim())).ToString(); } if (dgvJyjg.Rows[i].Cells["xmsx"].Value.ToString().Trim() == "ALY#") { dgvJyjg.Rows[i].Cells["jg"].Value = (Convert.ToDecimal(str_ALY) * Convert.ToDecimal(dgvJyjg.Rows[i].Cells["bl"].Value.ToString().Trim())).ToString(); } if (dgvJyjg.Rows[i].Cells["xmsx"].Value.ToString().Trim() == "ALY_Percent") { dgvJyjg.Rows[i].Cells["jg"].Value = (Convert.ToDecimal(str_ALY_Percent) * Convert.ToDecimal(dgvJyjg.Rows[i].Cells["bl"].Value.ToString().Trim())).ToString(); } if (dgvJyjg.Rows[i].Cells["xmsx"].Value.ToString().Trim() == "LIC#") { dgvJyjg.Rows[i].Cells["jg"].Value = (Convert.ToDecimal(str_LIC) * Convert.ToDecimal(dgvJyjg.Rows[i].Cells["bl"].Value.ToString().Trim())).ToString(); } if (dgvJyjg.Rows[i].Cells["xmsx"].Value.ToString().Trim() == "LIC_Percent") { dgvJyjg.Rows[i].Cells["jg"].Value = (Convert.ToDecimal(str_LIC_Percent) * Convert.ToDecimal(dgvJyjg.Rows[i].Cells["bl"].Value.ToString().Trim())).ToString(); } if (dgvJyjg.Rows[i].Cells["xmsx"].Value.ToString().Trim() == "RBC") { dgvJyjg.Rows[i].Cells["jg"].Value = (Convert.ToDecimal(str_RBC) * Convert.ToDecimal(dgvJyjg.Rows[i].Cells["bl"].Value.ToString().Trim())).ToString(); } if (dgvJyjg.Rows[i].Cells["xmsx"].Value.ToString().Trim() == "HGB") { dgvJyjg.Rows[i].Cells["jg"].Value = (Convert.ToDecimal(str_HGB) * Convert.ToDecimal(dgvJyjg.Rows[i].Cells["bl"].Value.ToString().Trim())).ToString(); } if (dgvJyjg.Rows[i].Cells["xmsx"].Value.ToString().Trim() == "MCV") { dgvJyjg.Rows[i].Cells["jg"].Value = (Convert.ToDecimal(str_MCV) * Convert.ToDecimal(dgvJyjg.Rows[i].Cells["bl"].Value.ToString().Trim())).ToString(); } if (dgvJyjg.Rows[i].Cells["xmsx"].Value.ToString().Trim() == "MCH") { dgvJyjg.Rows[i].Cells["jg"].Value = (Convert.ToDecimal(str_MCH) * Convert.ToDecimal(dgvJyjg.Rows[i].Cells["bl"].Value.ToString().Trim())).ToString(); } if (dgvJyjg.Rows[i].Cells["xmsx"].Value.ToString().Trim() == "MCHC") { dgvJyjg.Rows[i].Cells["jg"].Value = (Convert.ToDecimal(str_MCHC) * Convert.ToDecimal(dgvJyjg.Rows[i].Cells["bl"].Value.ToString().Trim())).ToString(); } if (dgvJyjg.Rows[i].Cells["xmsx"].Value.ToString().Trim() == "RDW_CV") { dgvJyjg.Rows[i].Cells["jg"].Value = (Convert.ToDecimal(str_RDW_CV) * Convert.ToDecimal(dgvJyjg.Rows[i].Cells["bl"].Value.ToString().Trim())).ToString(); } if (dgvJyjg.Rows[i].Cells["xmsx"].Value.ToString().Trim() == "RDW_SD") { dgvJyjg.Rows[i].Cells["jg"].Value = (Convert.ToDecimal(str_RDW_SD) * Convert.ToDecimal(dgvJyjg.Rows[i].Cells["bl"].Value.ToString().Trim())).ToString(); } if (dgvJyjg.Rows[i].Cells["xmsx"].Value.ToString().Trim() == "HCT") { dgvJyjg.Rows[i].Cells["jg"].Value = (Convert.ToDecimal(str_HCT) * Convert.ToDecimal(dgvJyjg.Rows[i].Cells["bl"].Value.ToString().Trim())).ToString(); } if (dgvJyjg.Rows[i].Cells["xmsx"].Value.ToString().Trim() == "PLT") { dgvJyjg.Rows[i].Cells["jg"].Value = (Convert.ToDecimal(str_PLT) * Convert.ToDecimal(dgvJyjg.Rows[i].Cells["bl"].Value.ToString().Trim())).ToString(); } if (dgvJyjg.Rows[i].Cells["xmsx"].Value.ToString().Trim() == "MPV") { dgvJyjg.Rows[i].Cells["jg"].Value = (Convert.ToDecimal(str_MPV) * Convert.ToDecimal(dgvJyjg.Rows[i].Cells["bl"].Value.ToString().Trim())).ToString(); } if (dgvJyjg.Rows[i].Cells["xmsx"].Value.ToString().Trim() == "PDW") { dgvJyjg.Rows[i].Cells["jg"].Value = (Convert.ToDecimal(str_PDW) * Convert.ToDecimal(dgvJyjg.Rows[i].Cells["bl"].Value.ToString().Trim())).ToString(); } if (dgvJyjg.Rows[i].Cells["xmsx"].Value.ToString().Trim() == "PCT") { dgvJyjg.Rows[i].Cells["jg"].Value = (Convert.ToDecimal(str_PCT) * Convert.ToDecimal(dgvJyjg.Rows[i].Cells["bl"].Value.ToString().Trim())).ToString(); } } #endregion } else if (cmbJyyq.SelectedValue.ToString() == "0004") { #region BC3000 DataTable dtBC3000 = jyjkBiz.GetBC3000Jg(djh); if (dtBC3000.Rows.Count <= 0) { MessageBox.Show("没找到登记号为【" + djh + "】的体检结果!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information); return; } for (int i = 0; i < dgvJyjg.Rows.Count; i++) { string xmsx = dgvJyjg.Rows[i].Cells["xmsx"].Value.ToString().Trim(); for (int j = 0; j < dtBC3000.Rows.Count; j++) { //ItemCode,strValue string itemCode = dtBC3000.Rows[j]["ItemCode"].ToString().Trim(); if (xmsx == itemCode) { dgvJyjg.Rows[i].Cells["jg"].Value = dtBC3000.Rows[j]["strValue"].ToString().Trim(); break; } } } #endregion } else if (cmbJyyq.SelectedValue.ToString() == "0003") { #region 生化仪 dt = new DataTable(); Paradox pd = new Paradox(); string sql = "select sampleno from labmain where patno='" + djh + "'"; dt = pd.GetResult_odbc(sql); if (dt.Rows.Count == 0) { MessageBox.Show("没找到登记号为【" + djh + "】的体检结果!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information); return; } string samleno = dt.Rows[0][0].ToString().Trim(); sql = "select itemno,srcresult from labdetail where sampleno='" + samleno + "'"; dt = new DataTable(); dt = pd.GetResult_odbc(sql); for (int i = 0; i < dgvJyjg.Rows.Count; i++) { string xmsx = dgvJyjg.Rows[i].Cells["xmsx"].Value.ToString().Trim(); for (int j = 0; j < dt.Rows.Count; j++) { //ItemCode,strValue string itemCode = dt.Rows[j]["itemno"].ToString().Trim(); if (xmsx == itemCode) { dgvJyjg.Rows[i].Cells["jg"].Value = dt.Rows[j]["srcresult"].ToString().Trim(); break; } } } #endregion } CkzPd(); }
public ParadoxGame(Paradox game, Save save) : base(game) { _save = save; }