목록
반응형
전체 글 (
반응형
107)
개발꿈나무

자동화 flow를 실행할 때마다 새로운 excel file을 생성하고 기존의 templete excel file의 sheet를 복사하여 새로운 excel file에 저장한 후 flow를 돌며 생성된 excel file에 데이터를 쓰고자 한다. 먼저 새로운 excel file을 생성하는 것은 다음과 같다. Excel Application Scope에서 새로운 excel 파일의 경로를 지정해주면 된다. 이 때 property에서 Create if not exists를 체크해야 파일이 없는 경우 새로운 파일을 생성한다. 나는 excel file의 이름을 Test_생성시각으로 할 것이기 때문에 excelName이라는 변수에 "Test_" + Datetime.now를 지정했는데 이 파일을 생성하려고 하니 erro..

automation flow를 만들던 중 어떤 기능을 수행했을 때 excel파일이 생성되고 그 파일을 사용하여 작업을 수행해야 하는 경우가 있다. 이 때, 생성되는 파일의 이름이 매번 다르게 생성된다면 (ex: file-오늘날짜) 문제가 생긴다. 오늘 날짜 또는 현재 시각 데이터가 포함된 파일을 접근하기 위해서는 Ui Selector에서 정규표현식을 사용하여 수정해주어야 한다. Ui Selector에 정규표현식(regex)를 사용하는 방법은 다음과 같다. ui element = '정규표현식' matching:title='regex' 나의 경우 생성되는 파일명은 tippingload_20220322132530.xlsx 형태로 현재 날짜, 시각을 담고 있다. ^tippingload[_0-9]+\.xlsx\s..

UI Target Selector에 변수값 대입하기 - {{변수이름}} 변수에 text와 변수값 할당하기 - "text" & 변수 null 조건 처리하기 - IsNull: IsNothing(변수) - IsNotNull: Not IsNulll(변수) Excel에서 column 읽어 string으로 바꾸기, list로 바꾸기 - Read Column의 return type은 IEnumerable IEnumerable type을 string으로 바꾸기: String.Join(Environment.NewLine , readColumnResult) - 각각의 data를 줄바꿈을 사이에 끼워 하나의 string으로 만든다. string을 list로 만들기: plant_str.Split(environment.NewL..

웹사이트에 이런 table이 있다고 했을 때 나는 download link를 클릭할 것이다. 단, Requester가 내 계정인 row라는 조건이 적용되어야 한다. 우선 Extract Structured Data 액티비티를 추가하여 웹의 table을 가져와 process_list라는 DataTable로 저장하고, Filter Data Table 액티비티를 이용하여 process_list에 필터를 걸어 process_list_filter라는 DataTable로 저장한다. filter는 열 또는 행에 대하여 모두 걸 수 있다. my_account라는 변수에 내 계정이 저장되어 있다고 가정하면 위와 같이 필터를 걸 수 있다. Convert.ToInt32(process_list_filter.Rows(0).ite..
Task.Run(async() => await GetChangeStruct(item.DCT_NO)).Wait(); @{ W_DCN item = context as W_DCN; Task.Run(async() => await GetChangeStruct(item.DCT_NO)).Wait(); } @code{ List Index_CS_List { get; set; } private async Task GetChangeStruct(string dctno) { var change_struct = await DcnListService.GetChangeStructure(dctno); Index_CS_List.Clear(); for (int i = 0; i < change_struct.Count(); i++) { In..

이런 식으로 Grid row를 확장하면 세부 그리드가 나타나도록 소스를 작성할 것이다. @{ if(detail != null) { @for (int i = 0; i < detail.Count; i += 2) { @detail.Keys.ToList()[i] @detail.Values.ToList()[i] @if (i + 1 < detail.Count) { @detail.Keys.ToList()[i + 1] @detail.Values.ToList()[i + 1] } } } } @code { async Task OnRowExpandHandler(GridRowExpandEventArgs args) { W_DCN item = args.Item as W_DCN; Dictionary dcn = await DcnLis..
grid에서 데이터의 길이가 칸의 width보다 긴 경우 데이터를 잘라서 표현한 후 tooltip을 추가할 것이다. 예를 들어 데이터는 abcdefg인데 cell의 길이는 5자라고 가정한다면 abcde...을 표현하고 mouseover시 tooltip에 abcdefg를 출력한다는 것이다. @{ var currItem = context as W_DCN; if (currItem.STATUS?.Length > 21) { @(currItem.STATUS.Substring(0,21) + "...") } else { @currItem.STATUS } } @code { protected void OnCellRenderHandler(GridCellRenderEventArgs args) { args.Class = "cu..
Telerik grid의 Product Name이라는 컬럼의 헤더에 Tooltip을 추가할 것이다. Product Name @statusMessage @code { string statusMessage = "test"; } 컬럼의 HeaderTemplate 안에 tooltip class를 생성한 후 그 클래스에 대해 tooltip을 추가한다. HeaderTemplate을 추가하면 Column의 Title 속성은 적용되지 않는다. 따라서 Header Template 안에 Column header name을 추가해줘야 한다.
Blazor로 웹 프로그램을 개발하던 중 특정 페이지에서만 Navigation bar를 hide해야 했다. Main Layout을 건드리자니 nav bar가 제대로 나와야 하는 페이지들이 문제였다. 그래서 Service에 속성을 추가하고 이 데이터를 이용하여 Nav bar의 visible을 조작하였다. namespace WebProgram { public class NavbarControlService { public string NavBarVisible { get; set; } } } NavbarControlService에 NavBarVisible이라는 속성을 추가한다. @inherits LayoutComponentBase @inject NavbarControlService NavbarControlSe..
Blazor WebServer를 이용하여 웹 개발 중 DB 업데이터가 반영되지 않는 문제가 발생했다. 알고보니 웹서버를 실행시키는 처음에만 DBContext를 가져오고 그 이후로는 계속 이전에 가져왔던 DbContext에서 데이터를 가져와서 발생한 문제였다. 그래서 service의 메소드에서 직접 DbContext를 초기화시켜줬는데 2가지 방법이 있었다. 1. DbContext의 entiries Reload 2. DbContext 초기화 처음에는 entries를 초기화하는 방식으로 문제를 해결했는데 속도가 너무 느려지는 단점이 있었다. namespace WebProject.Services { public class DcnListService { readonly IntegrationContext conte..