public void InitFromSelectedElement(AddinDesignerEventArgs e) { Fields = new List <AxTableFieldParm>(); FieldsStr = ""; int curPos = 0; foreach (BaseField baseField in e.SelectedElements.OfType <BaseField>()) { curPos++; AxTableFieldParm fieldParm = new AxTableFieldParm(); fieldParm.FieldName = baseField.Name; fieldParm.FieldType = baseField.ExtendedDataType; fieldParm.IsMandatory = baseField.Mandatory == NoYes.Yes ? true : false; fieldParm.Position = curPos; if (fieldParm.FieldType == "") { if (baseField is FieldEnum) { fieldParm.FieldType = (baseField as FieldEnum).EnumType; } } Fields.Add(fieldParm); FieldsStr += fieldParm.FieldName + Environment.NewLine; } var field = (BaseField)e.SelectedElement; AxTable axTable = (AxTable)field.Table.GetMetadataType(); TableName = axTable.Name; VarName = AxHelper.GetVarNameFromType(TableName); }
public override void InitFromSnippetsParms(SnippetsParms snippetsParms) { ClassName = snippetsParms.GetParmStr(ClassNameParm); ClassDescription = snippetsParms.GetParmStr(DescriptionParmName); QueryTable = snippetsParms.GetParmStr(QueryTableParmName); ExternalTable = snippetsParms.GetParmStr(ExternalTableNameParmName); IsAddFileUpload = snippetsParms.GetParmBool(AddFileUploadParmName); IsCreateMenuItem = snippetsParms.GetParmBool(CreateMenuItemParmName); if (ExternalTable != "") { ExternalTableVar = new RunBaseBuilderVar(); ExternalTableVar.Type = ExternalTable; ExternalTableVar.Name = $"caller{ExternalTable}"; } List <List <string> > parmList = snippetsParms.GetParmListSeparated(ParametersParmName); FieldsList = new List <RunBaseBuilderVar>(); foreach (List <string> subList in parmList) { RunBaseBuilderVar runBaseBuilderVars = new RunBaseBuilderVar(); string item = subList[0]; if (item[item.Length - 1] == MandatoryPropertySym)//check mandatory { runBaseBuilderVars.IsMandatory = true; runBaseBuilderVars.Type = item.Remove(item.Length - 1).Trim(); } else { runBaseBuilderVars.IsMandatory = false; runBaseBuilderVars.Type = item; } if (String.IsNullOrEmpty(runBaseBuilderVars.Type)) { throw new Exception("Type should be specified"); } if (subList.Count > 1 && !String.IsNullOrWhiteSpace(subList[1])) //check var name { runBaseBuilderVars.Name = subList[1]; } else { runBaseBuilderVars.Name = AxHelper.GetVarNameFromType(runBaseBuilderVars.Type); } if (subList.Count > 2 && !String.IsNullOrWhiteSpace(subList[2])) { runBaseBuilderVars.Label = subList[2]; } if (subList.Count > 3 && !String.IsNullOrWhiteSpace(subList[3])) { runBaseBuilderVars.LabelHelp = subList[3]; } runBaseBuilderVars.DlgName = $"dlg{AxHelper.UppercaseWords(runBaseBuilderVars.Name)}"; FieldsList.Add(runBaseBuilderVars); } }
private void TableNameTextBox_Validated(object sender, EventArgs e) { if (String.IsNullOrWhiteSpace(TableVarNameTextBox.Text) && !String.IsNullOrWhiteSpace(TableNameTextBox.Text)) { TableVarNameTextBox.Text = AxHelper.GetVarNameFromType(TableNameTextBox.Text.Trim()); _parms.TableVarName = TableVarNameTextBox.Text; } }
public void InitFromRelation(Relation relation) { Table1 = relation.RelatedTable; Table2 = relation.Table.Name; Table1Var = AxHelper.GetVarNameFromType(Table1); Table2Var = AxHelper.GetVarNameFromType(Table2); string relationName; relationName = relation.Name; RelationsList = new List <RelationDef>(); AxHelper axHelper = new AxHelper(); AxTable axTable = axHelper.MetadataProvider.Tables.Read(Table2); AxTableRelation axTableRelation = axTable.Relations[relationName]; foreach (AxTableRelationConstraint relationPair in axTableRelation.Constraints) { RelationDef pair = new RelationDef(); if (relationPair is AxTableRelationConstraintField) { pair.Field1 = (relationPair as AxTableRelationConstraintField).RelatedField; pair.Field2 = (relationPair as AxTableRelationConstraintField).Field; } else { if (relationPair is AxTableRelationConstraintFixed) { pair.Field1 = (relationPair as AxTableRelationConstraintFixed).ValueStr; pair.Field2 = (relationPair as AxTableRelationConstraintFixed).Field; pair.Field1Fixed = true; } else { if (relationPair is AxTableRelationConstraintRelatedFixed) { pair.Field1 = (relationPair as AxTableRelationConstraintRelatedFixed).RelatedField; pair.Field2 = (relationPair as AxTableRelationConstraintRelatedFixed).ValueStr; pair.Field2Fixed = true; } } } if (!String.IsNullOrEmpty(pair.Field1)) { RelationsList.Add(pair); } } }
private void TableNameTextBox_Validated(object sender, EventArgs e) { if (!String.IsNullOrWhiteSpace(TableNameTextBox.Text)) { FormNameTextBox.Text = TableNameTextBox.Text; _parms.FormName = FormNameTextBox.Text; TableVarNameTextBox.Text = AxHelper.GetVarNameFromType(TableNameTextBox.Text.Trim()); _parms.TableVarName = TableVarNameTextBox.Text; if (!_parms.IsExternalEDT) { PrimaryKeyEDTTextBox.Text = $@"{TableNameTextBox.Text}Id"; _parms.PrimaryKeyEdtName = PrimaryKeyEDTTextBox.Text; } FieldNameTextBox.Text = $@"{AxHelper.UppercaseWords(TableVarNameTextBox.Text)}Id"; _parms.KeyFieldName = FieldNameTextBox.Text; } }
public override void InitFromSnippetsParms(SnippetsParms snippetsParms) { ClassName = snippetsParms.GetParmStr(ClassNameParm); GenerateReportController = snippetsParms.GetParmBool(GenerateReportControllerParm); GenerateReportDP = snippetsParms.GetParmBool(GenerateReportDPParm); ReportDPTableName = snippetsParms.GetParmStr(ReportDPTableNameParm); if (String.IsNullOrWhiteSpace(ReportDPTableName)) { ReportDPTableName = "TableTemDB"; } ReportDPTableVarName = AxHelper.GetVarNameFromType(ReportDPTableName); string baseStr = ClassName; if (ClassName.ToLower().EndsWith("contract")) { baseStr = ClassName.Substring(0, ClassName.Length - "contract".Length); } ClassNameDP = $"{baseStr}DP"; ClassNameController = $"{baseStr}Controller"; List <List <string> > parmList = snippetsParms.GetParmListSeparated(ParametersParmName); FieldsList = new List <DataContractBuilderVar>(); GroupsList = new List <DataContractBuilderVar>(); int groupNum = 0; IsAnyMandatory = false; Dictionary <string, int> groutPosDict = new Dictionary <string, int>(); foreach (List <string> subList in parmList) { DataContractBuilderVar builderVar = new DataContractBuilderVar(); string item = subList[0]; if (item[item.Length - 1] == MandatoryPropertySym)//check mandatory { builderVar.IsMandatory = true; builderVar.Type = item.Remove(item.Length - 1).Trim(); } else { builderVar.IsMandatory = false; builderVar.Type = item; } if (String.IsNullOrEmpty(builderVar.Type)) { throw new Exception("Type should be specified"); } if (subList.Count > 1 && !String.IsNullOrWhiteSpace(subList[1])) //check var name { builderVar.Name = subList[1]; } else { builderVar.Name = AxHelper.GetVarNameFromType(builderVar.Type); } if (subList.Count > 2 && !String.IsNullOrWhiteSpace(subList[2])) { builderVar.Label = subList[2]; } if (subList.Count > 3 && !String.IsNullOrWhiteSpace(subList[3])) { builderVar.LabelHelp = subList[3]; } if (subList.Count > 4 && !String.IsNullOrWhiteSpace(subList[4])) { builderVar.GroupName = subList[4]; } if (subList.Count > 5 && !String.IsNullOrWhiteSpace(subList[5])) { builderVar.GroupLabel = subList[5]; } //calculate if (!groutPosDict.ContainsKey(builderVar.GroupName)) { groutPosDict.Add(builderVar.GroupName, 0); if (!String.IsNullOrWhiteSpace(builderVar.GroupName)) { groupNum++; var varGr = new DataContractBuilderVar { GroupName = builderVar.GroupName, GroupLabel = builderVar.GroupLabel, PositionInGroup = groupNum }; GroupsList.Add(varGr); } } groutPosDict[builderVar.GroupName]++; if (builderVar.IsMandatory) { IsAnyMandatory = true; } builderVar.PositionInGroup = groutPosDict[builderVar.GroupName]; FieldsList.Add(builderVar); } }
void SrcRun() { CodeGenerate.SetMethodName("run"); CodeGenerate.AppendLine("public void run()"); CodeGenerate.BeginBlock(); foreach (RunBaseBuilderVar df in FieldsList) { CodeGenerate.AppendLine($"info(strFmt(\"{df.Name}=%1\", {df.Name}));"); } if (IsAddFileUpload != FileUploadType.None) { CodeGenerate.AppendLine("System.IO.MemoryStream memoryStreamFile;"); CodeGenerate.AppendLine("try"); CodeGenerate.AppendLine("{"); CodeGenerate.AppendLine(" if (!fileUploadResult)"); CodeGenerate.AppendLine(" {"); CodeGenerate.AppendLine(" throw error(\"File is empty\");"); CodeGenerate.AppendLine(" }"); CodeGenerate.AppendLine(" //get file names"); CodeGenerate.AppendLine(" container fileNameCon = Docu::splitFilename(fileUploadResult.getFileName());"); CodeGenerate.AppendLine(" if (!fileNameCon)"); CodeGenerate.AppendLine(" {"); CodeGenerate.AppendLine(" throw error(\"File is empty\");"); CodeGenerate.AppendLine(" }"); CodeGenerate.AppendLine(" str fileName = strFmt('%1.%2', conPeek(fileNameCon, 1), conPeek(fileNameCon, 2));"); CodeGenerate.AppendLine(" str folderName = strFmt('%1', conPeek(fileNameCon, 3));"); CodeGenerate.AppendLine(" //get file data"); CodeGenerate.AppendLine(" memoryStreamFile = fileUploadResult.openResult();"); switch (IsAddFileUpload) { case FileUploadType.CSV: CodeGenerate.AppendLine(" //https://github.com/TrudAX/XppTools#devcommon-model"); CodeGenerate.AppendLine(" DEVFileReaderCSV fileReader = new DEVFileReaderCSV();"); CodeGenerate.AppendLine(" fileReader.readCSVFile(memoryStreamFile);"); CodeGenerate.AppendLine(" fileReader.readHeaderRow();"); CodeGenerate.AppendLine(" while (fileReader.readNextRow())"); CodeGenerate.AppendLine(" {"); CodeGenerate.AppendLine(" info(strFmt(\"row: % 1\", fileReader.getCurRow()));"); CodeGenerate.AppendLine(" info(strFmt(\" % 1, % 2, % 3\","); CodeGenerate.AppendLine(" fileReader.getStringByName('Main account'),"); CodeGenerate.AppendLine(" fileReader.getStringByName('BusinessUnit'),"); CodeGenerate.AppendLine(" fileReader.getRealByName('Amount')"); CodeGenerate.AppendLine(" ));"); CodeGenerate.AppendLine(" }"); break; case FileUploadType.Excel: CodeGenerate.AppendLine(" //https://github.com/TrudAX/XppTools#devcommon-model"); CodeGenerate.AppendLine(" DEVFileReaderExcel fileReader = new DEVFileReaderExcel();"); CodeGenerate.AppendLine(" fileReader.openFile(memoryStreamFile);"); CodeGenerate.AppendLine(" fileReader.readHeaderRow();"); CodeGenerate.AppendLine(" while (fileReader.readNextRow())"); CodeGenerate.AppendLine(" {"); CodeGenerate.AppendLine(" info(strFmt(\"row: % 1\", fileReader.getCurRow()));"); CodeGenerate.AppendLine(" info(strFmt(\" % 1, % 2, % 3\","); CodeGenerate.AppendLine(" fileReader.getStringByName(\"Main account\"),"); CodeGenerate.AppendLine(" fileReader.getStringByName(\"BusinessUnit\"),"); CodeGenerate.AppendLine(" fileReader.getRealByName(\"Amount\")"); CodeGenerate.AppendLine(" ));"); CodeGenerate.AppendLine(" }"); break; default: CodeGenerate.AppendLine(" AsciiStreamIo asciiIo = AsciiStreamIo::constructForRead(memoryStreamFile);"); CodeGenerate.AppendLine(" asciiIo.inRecordDelimiter('\\n');"); CodeGenerate.AppendLine(" while (asciiIo.status() == IO_Status::Ok)"); CodeGenerate.AppendLine(" {"); CodeGenerate.AppendLine(" container c = asciiIo.read();"); CodeGenerate.AppendLine(" if (conLen(c) > 0)"); CodeGenerate.AppendLine(" {"); CodeGenerate.AppendLine(" info(strFmt(\"File data:%1\", conPeek(c, 1)));"); CodeGenerate.AppendLine(" }"); CodeGenerate.AppendLine(" }"); break; } CodeGenerate.AppendLine("}"); CodeGenerate.AppendLine("catch (Exception::Error)"); CodeGenerate.AppendLine("{"); CodeGenerate.AppendLine(" exceptionTextFallThrough();"); CodeGenerate.AppendLine("}"); CodeGenerate.AppendLine("finally"); CodeGenerate.AppendLine("{"); CodeGenerate.AppendLine(" fileUploadResult.deleteResult();"); CodeGenerate.AppendLine(" memoryStreamFile = null;"); CodeGenerate.AppendLine("}"); } if (!String.IsNullOrEmpty(QueryTable)) { string queryCursor = AxHelper.GetVarNameFromType(QueryTable); CodeGenerate.AppendLine("int processedCounter;"); CodeGenerate.AppendLine("QueryBuildDataSource qBDS;"); CodeGenerate.AppendLine($"{QueryTable} {queryCursor};"); CodeGenerate.AppendLine(""); CodeGenerate.AppendLine($"qBDS = queryRun.query().dataSourceTable(tableNum({QueryTable}));"); CodeGenerate.AppendLine($"SysQuery::findOrCreateRange(qBDS, fieldnum({QueryTable}, RecId)).value(queryValue(\"\"));"); CodeGenerate.AppendLine(""); CodeGenerate.AppendLine("this.progressInit(RunBase::getDescription(classIdGet(this)),"); CodeGenerate.AppendLine(" SysQuery::countTotal(queryRun),"); CodeGenerate.AppendLine(" #AviSearch);"); CodeGenerate.AppendLine(""); CodeGenerate.AppendLine("while (queryRun.next())"); CodeGenerate.BeginBlock(); CodeGenerate.AppendLine($"{queryCursor} = queryRun.get(tablenum({QueryTable}));"); CodeGenerate.AppendLine(""); CodeGenerate.AppendLine("processedCounter++;"); CodeGenerate.AppendLine("progress.incCount();"); CodeGenerate.EndBlock(); CodeGenerate.AppendLine("info(strfmt(\" %1 record(s) processed\", processedCounter));"); } else { if (IsAddFileUpload == FileUploadType.None) { CodeGenerate.AppendLine("if (! this.validate())"); CodeGenerate.AppendLine("{"); CodeGenerate.AppendLine(" throw error(\"Validation error\");"); CodeGenerate.AppendLine("}"); CodeGenerate.AppendLine(""); CodeGenerate.AppendLine("ttsbegin;"); CodeGenerate.AppendLine(""); CodeGenerate.AppendLine("ttscommit;"); } } CodeGenerate.EndBlock(); }