Ver Mensaje Individual
  #1  
Antiguo 13-10-2022
steelha steelha is offline
Miembro
 
Registrado: mar 2012
Posts: 158
Reputación: 13
steelha Va por buen camino
Ayuda con Componente TcategoryPanelGroup

Buenas, he estado buscando información de cómo crear en tiempo de ejecución el tcategoryGroupPanel. He encontrado poca información de cómo hacerlo pero logre crear los paneles. Mi necesidad es si alguien sabe como puedo crear el panel y dentro de el crear la cantidades de controles que tengan por grupo. Tengo una DB en SQLSERVER la cual posee la siguiente estructura:
DBNAME : HistorialItems (esta posee los items hacer utilizados por la tabla plantilla que se define por cada medico)
Cita:
Iddatos captionGrupo Captionlabel Datostipo Datosgrupo Datosestado
1 HABITA Det. Casa Edit 2 True
2 HABITA Techo Edit 2 True
9 HABITA Disposición Excretas Memo 2 True
10 HABITA Estilo Vida Memo 2 True
31 ANT. GINECOLOGICO FUM Edit 6 True
32 ANT. GINECOLOGICO Menopausia Memo 6 True
40 HABITOS TOXIC Tabaco Checkbox 7 True
41 HABITOS TOXIC Café Checkbox 7 True
42 HABITOS TOXIC Alcohol Checkbox 7 True
43 HABITOS TOXIC Drogas Legales e Ilegalex Memo 7 True
44 HABITOS TOXIC Tizana Edit 7 True
Con este procedimiento logro obtener y crear la cantidad de grupo necesarios según la plantilla seleccionada
Código Delphi [-]
procedure TfrmPacientes.Crear_panel(plantilla : Integer);
Var
 LPanel   : TCategoryPanel;
 npaneles : Integer;
 i        : Integer;
begin
  DM.QryCalculos.SQL.Clear;
  DM.QryCalculos.SQL.Text := 'SELECT COUNT (*) AS Cantidad ' +
                             'FROM (SELECT COUNT(itemsgrupo) AS cantidad ' +
                             '      FROM (SELECT DISTINCT idPlantilla, idItems, itemsgrupo '+
                             '            FROM PlantillaItems '+
                             '      WHERE idPlantilla = lantilla '+
                             '            ) AS dt '+
                             '      GROUP BY itemsgrupo '+
                             '      ) AS CM';

  dm.QryCalculos.Parameters.ParamByName('plantilla').Value := plantilla;
  DM.QryCalculos.Open;
  npaneles := DM.QryCalculos.Fields[0].Value;
  DM.QryCalculos.Close;

  for i := 1 to npaneles do
    begin
      LPanel:=TCategoryPanel.Create(micategorygroup);
      LPanel.Caption:= Trim(DM.QryContruirItemsDatosCaptionGrupo.Value);
      LPanel.PanelGroup:= micategorygroup;
      LPanel.TabOrder  := i;
      LPanel.Name := Trim(DM.QryContruirItemsDatosCaptionGrupo.Value) // Por ahora obtengo error de nombre ya existe pero luego lo arreglo XD
    end;
end;

como se puede ver en el ejemplo de tabla, pueden existir uno o varios ítems para cada grupo. Acá es donde radica mi problema como crear el tipo de ítem dentro del grupo que le corresponde. Para luego guardar esa información del tcategorypanelgroup..

Agradeceré cualquier ayuda o aporte que puedan realizar. Mil gracias de ante mano por toda la ayuda prestada.
Responder Con Cita