Jump to content

yakup

uniGUI Subscriber
  • Posts

    177
  • Joined

  • Last visited

Everything posted by yakup

  1. You can use demo project adding this procedure TMainForm.UniDBGrid1DrawColumnCell(Sender: TObject; ACol, ARow: Integer; Column: TUniDBGridColumn; Attribs: TUniCellAttribs); begin if TUniDBGrid(Sender).DataSource.DataSet.FieldByName('UnitPrice').AsFloat < 100 then begin Attribs.Font.Color := clRed; Attribs.Font.Style := [fsBold]; end; end; and make UseColumnRenderer := True;
  2. yes UseColumnRenderer := True, when false like this
  3. You can use demo project adding this procedure TxForm.UniDBGrid1DrawColumnCell(Sender: TObject; ACol, ARow: Integer; Column: TUniDBGridColumn; Attribs: TUniCellAttribs); begin if true then begin Attribs.Font.Color := clRed; Attribs.Font.Style := [fsBold]; end; end;
  4. I have a problem , when I Export in Unidbgridden like. this is what the checkbox looks like "&#160;&#160;" In colored text it looks like this, Render Error: Cannot set properties of null (setting 'tdAttr')
  5. I Solwed. function WhereIn(sText: String): String; var cArray: Array [0 .. 0] of Char; sArray: TArray<String>; s: string; i: integer; begin cArray[0] := ';'; sArray := sText.Split(cArray); for I := Low(sArray) to High(sArray) do begin if s.IsEmpty then s := sArray[i] else s := s + '","' + sArray[i]; end; Result := '("' + s + '")'; end; var i: integer; s: String; Date: Tdatetime; isD: Boolean; begin Sender.DataSource.DataSet.Filtered := False; Sender.DataSource.DataSet.Filter := ''; for I := 0 to Sender.Columns.Count - 1 do begin if Sender.Columns[I].Filtering.Enabled then begin isD := False; if (Sender.Columns[I].Filtering.Editor is TUniDateTimePicker) then begin try Date := VarToDateTime(Sender.Columns[I].Filtering.VarValue); if YearOf(Date) > 2000 then begin s := FormatDateTime('yyyy-MM-dd', Date); isD := True; end; except on E: Exception do end; end else begin try s := VarToStr(Sender.Columns[I].Filtering.VarValue); except on E: Exception do end; end; if not s.IsEmpty then begin if Trim(Sender.DataSource.DataSet.Filter) = '' then begin if Pos(';', s) > 0 then begin Sender.DataSource.DataSet.Filter := Sender.Columns[I].FieldName + ' IN ' + WhereIn(s); end else begin if isD then Sender.DataSource.DataSet.Filter := Sender.Columns[I].FieldName + ' = "' + s + '" ' else Sender.DataSource.DataSet.Filter := Sender.Columns[I].FieldName + ' LIKE "%' + s + '%" '; end; end else begin if Pos(';', s) > 0 then begin Sender.DataSource.DataSet.Filter := Sender.DataSource.DataSet.Filter + ' AND ' + Sender.Columns[I].FieldName + ' IN ' + WhereIn(s); end else begin Sender.DataSource.DataSet.Filter := Sender.DataSource.DataSet.Filter + ' AND ' + Sender.Columns[I].FieldName + ' LIKE "%' + s + '%" ' end; end; end; end; end; Sender.DataSource.DataSet.Filtered := True; end;
  6. Do you know how it is done in the dataset you used in the demo?
  7. I use MyDac componensts TMyQuery and TMyDataSource
  8. I'm using mySQL, I can do it on the SQL side. I'm looking for a way to do it via DataSet.Filter
  9. I added the detail, there was a problem while writing the message, I had to correct it several times, sorry.
  10. I want to do the filtering I mentioned, date filtering. but there is no example My code is as follows, it may be a bit complicated. to filter multiple fields like this. vartostr types get an error, this is normal.(The variable of (UnicodeString) items could not be converted to type (Date)). Don't look for something easy to use. How did you do this? procedure TFrameDigerTakipler.UniDBGrid1ColumnFilter(Sender: TUniDBGrid; const Column: TUniDBGridColumn; const Value: Variant); function WhereIn(sText: String): String; var cArray: Array [0 .. 0] of Char; sArray: TArray<String>; s: string; i: integer; begin cArray[0] := ';'; sArray := sText.Split(cArray); for I := Low(sArray) to High(sArray) do begin if s.IsEmpty then s := sArray[i] else s := s + '","' + sArray[i]; end; Result := '("' + s + '")'; end; var i: integer; s: String; begin Sender.DataSource.DataSet.Filtered := False; Sender.DataSource.DataSet.Filter := ''; if Trim(VarToStr(Value)) = '' then begin Sender.DataSource.DataSet.Filtered := False; Sender.DataSource.DataSet.Filter := ''; end else begin for I := 0 to Sender.Columns.Count - 1 do begin if Sender.Columns[I].Filtering.Enabled then begin s := VarToStr(Sender.Columns[I].Filtering.VarValue); if not s.IsEmpty then begin if Trim(Sender.DataSource.DataSet.Filter) = '' then begin if Pos(';', s) > 0 then begin Sender.DataSource.DataSet.Filter := Sender.Columns[I].FieldName + ' IN ' + WhereIn(s); end else begin Sender.DataSource.DataSet.Filter := Sender.Columns[I].FieldName + ' LIKE "%' + s + '%" ' end; end else begin if Pos(';', s) > 0 then begin Sender.DataSource.DataSet.Filter := Sender.DataSource.DataSet.Filter + ' AND ' + Sender.Columns[I].FieldName + ' IN ' + WhereIn(s); end else begin Sender.DataSource.DataSet.Filter := Sender.DataSource.DataSet.Filter + ' AND ' + Sender.Columns[I].FieldName + ' LIKE "%' + s + '%" ' end; end; end; end; end; Sender.DataSource.DataSet.Filtered := True; end; end;
  11. How do you use the date filter in Unidbgrid?
  12. Merhabalar, Toast bildirimlerine progressbar ekleyebilirmiyiz daha önce yapan oldu mu ? Bunun gibi mesela verdiğim süreden geriye doğru sayacak. Kıllandığım script Ext.toast({title: 'Giriş Yaptı',html: 'yakup Sisteme Giriş Yaptı...',align:'br',closeToolText: 'Kapat',closable:true,autoCloseDelay: 3000,}); https://docs-devel.sencha.com/extjs/7.3.1/modern/Ext.Toast.html#configs Buralarda araştırdım ama gözüme çarpmadı.
  13. Find your form in the TUniMainModule.UniGUİ MainModuleNewComponent procedure. And for in components , set the components to Enabled False with foreach.
  14. Buton'un birinin adını create koyduğum içinmiş. 🤦‍♂️
  15. Selamlar, Olağan şekilde bir tab nesnesine frame create etmek istiyorum bana edemezsin diyor. Her zaman yaptığım şey sorun ne olabilir neyi atlıyorum ki acaba ?
  16. I want to create runtime TUniAreaSeries but I get this error var q : TmyQuery; area :TUniAreaSeries; user:String; begin q := TMyQuery.Create(nil); q.Connection := MyDataModules.MyConnection; MesaiChart.SeriesList.Clear; try q.SQL.Clear; q.SQL.Add('SELECT un FROM sipaccount WHERE dp=1; '); q.Open; q.First; while not q.Eof do begin user := q.Fields[0].AsString; area := TUniAreaSeries.Create(MesaiChart); area.Name := 'Area_'+user; area.Title := user; area.DataSource := createDS(user); // create datasource area.XLabelsSource := 'gun'; area.YValues.ValueSource := 'second'; MesaiChart.SeriesList.Add(@area); q.Next; end; finally q.Free; end; end;
  17. probably related to WidgetColumn, I think it got better when I removed it.
  18. Grid - WidgetColumn2 Same problem in demo example Grid - WidgetColumn2.mp4
×
×
  • Create New...